Ë ‚Ö¦iHSãóþ—dZddlZddlZddlZddlZgd¢Zej jejdd«Z ejdejejz«Z d„Zd„Zd Zeed «D���cic]\}}|D]}||“ŒŒc}}}Zd d d dœZd&d„Zd„Zd„Zd„ZGd„d«ZGd„de«Zd'd„ZiZ d(d„Zd)ddœd„Ziadad)d„Zd)d„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(eZ)ycc}}}w)*aªInternationalization and localization support. This module provides internationalization (I18N) and localization (L10N) support for your Python programs by providing an interface to the GNU gettext message catalog library. I18N refers to the operation by which a program is made aware of multiple languages. L10N refers to the adaptation of your program, once internationalized, to the local language and cultural habits. éN)ÚNullTranslationsÚGNUTranslationsÚCatalogÚbindtextdomainÚfindÚ translationÚinstallÚ textdomainÚdgettextÚ dngettextÚgettextÚngettextÚpgettextÚ dpgettextÚ npgettextÚ dnpgettextÚshareÚlocaleaÊ (?P[ \t]+) | # spaces and horizontal tabs (?P[0-9]+\b) | # decimal integer (?Pn\b) | # only n is allowed (?P[()]) | (?P[-*/%+?:]|[>, # <=, >=, ==, !=, &&, ||, # ? : # unary and bitwise ops # not allowed (?P\w+|.) # invalid token c#óÆK—tjt|«D]<}|j}|dk(rŒ|j |«}|dk(rt d|z«‚|–—Œ>d–—y­w)NÚ WHITESPACESÚINVALIDz invalid token in plural form: %sÚ)ÚreÚfinditerÚ_token_patternÚ lastgroupÚgroupÚ ValueError)ÚpluralÚmoÚkindÚvalues ú /usr/lib64/python3.12/gettext.pyÚ _tokenizer$Wsaèø€Ü�k‰kœ.¨&Ö1ˆØ�|‰|ˆØ �=Ò Ø Ø—‘˜“ˆØ �9Ò ÜÐ?À%ÑGÓHÐ HØ‹ ð2ð ƒHùs‚AA!có8—|rtd|z«Std«S)Nz#unexpected token in plural form: %szunexpected end of plural form)r)r"s r#Ú_errorr&cs"€Ù ÜÐ?À%ÑGÓHÐHäÐ9Ó:Ð:ó))ú||)ú&&)z==z!=)Ú<Ú>z<=z>=)Ú+Ú-)Ú*Ú/Ú%éÚorÚandz//)r(r)r/cóº—d}t|«}|dk(r|dz }t|«}|dk(rŒ|dk(r&t|«\}}|›d|›d�}|dk7r+td«‚|dk(r|›|›�}n t|d«}d ||fz}t|«}d }|t vrYt |}||krnJ|d vr |d vrd |z}t j||«}t||d z«\} }|›d|›d| ›�}|}|t vrŒY||cxk(rdk(rnnd |z}|dk(rF|dkrAt|d«\} }|dk7r t |«‚t|«\} }| ›d|›d| ›�}|dk(rd |z}||fS#t$r t |«d‚wxYw)NrÚ!znot Ú(Ú)z%unbalanced parenthesis in plural formÚné z%s%déd)ééz(%s)r1Ú r<Ú?rÚ:z if z else )ÚnextÚ_parserÚintr&Ú _binary_opsÚ _c2py_opsÚget) ÚtokensÚpriorityÚresultÚnexttokÚsubr"ÚjÚiÚopÚrightÚif_trueÚif_falses r#rArAvs¯€Ø €FÜ�6‹l€GØ �SŠ.Ø�&шÜ�v“,ˆð �S‹.ð�#‚~ܘf“~‰ ˆˆWÚ#¢SÐ)ˆØ �cŠ>ÜÐDÓEÐ EØ �CŠÙ!¡7Ð+‰ð ,ܘ Ó$ˆEð˜6 5˜/Ñ)ˆÜ�6‹l€Gà €AØ ”[Ñ Ü ˜Ñ ˆØ ˆxŠ<Ø à �‰;˜1 ™;ؘf‘_ˆFä �]‰]˜7 GÓ ,ˆÜ ¨¨A©Ó.‰ˆˆwÚ%¢r©5Ð1ˆØ ˆð ”[Ò ð ˆHÔ˜ÕØ˜&‘ˆà�#‚~˜( aš-Ü! &¨!Ó,ш�Ø �cŠ>ܘ“/Ð !Ü" 6›Nш�'Ú'.²¹ÐAˆØ �qŠ=ؘf‘_ˆFà �7ˆ?Ðøô=ò ,ܘ“/ tÐ +ð ,ús Á! EÅEcóì— t|«ddl}t j d«}d}|j�b|jjd«tk(r@|dz }|j}|j�#|jjd«tk(rŒ@|jd|jj›�t|«|S#t$r$td|jj›�«d‚wxYw)Nz%Plural value must be an integer, got rr1éÚ__name__) ÚroundÚ TypeErrorÚ __class__rSÚwarningsÚsysÚ _getframeÚf_backÚ f_globalsrEÚwarnÚDeprecationWarning)r8rWÚframeÚ stacklevels r#Ú_as_intr`¨sÚ€ð;Ü ˆaŒó Ü �M‰M˜!Ó €EØ€JØ �,‰,Ð " u§¡×':Ñ':¸:Ó'FÌ(Ò'RØ�a‰ˆ Ø— ‘ ˆð �,‰,Ð " u§¡×':Ñ':¸:Ó'FÌ(Ó'Rð ‡M‚MØ—;‘;×'Ò'ð*ä$Øôð €Høô ò;ÝØŸ™×-Ò-ð0ó1Ø6:ð ;ð;ús ‚ CÃ-C3cóN—t|«dkDr td«‚ tt|««\}}|r t |«‚d}|D](}|dk(r|dz }|dkDsŒtd«‚|dk(sŒ$|dz}Œ*t t d œ}td |z|«|d S#t$r td«‚wxYw) z‰Gets a C expression as used in PO files for plural forms and returns a Python function that implements an equivalent expression. ièz"plural form expression is too longrr6r1éz%plural form expression is too complexr7)r`rSz›if True: def func(n): if not isinstance(n, int): n = _as_int(n) return int(%s) Úfunc) ÚlenrrAr$r&r`rSÚexecÚRecursionError)rrHrIÚdepthÚcÚnss r#Úc2pyrj¼s×€ô  ˆ6ƒ{�TÒÜÐ=Ó>Ð>ðBÜ ¤¨6Ó!2Ó3‰ˆ�٠ܘ“/Ð !àˆÛˆAØ�CŠxؘ‘ �ؘ2“:ô%Ð%LÓMÐMØ�c“ؘ‘ ‘ðô!¬hÑ 7ˆÜ ðð ñ ð ô  ð �&‰zÐøÜ òBäÐ@ÓAÐAðBús›:BÁBÁ''BÂB$cóî—ddl}|j|«}d}d}d}d}|jd«}|dk\r||d}|d|}||z}nd}|jd«}|dk\r||d}|d|}||z}nd}|jd«}|dk\r||d} |d|}||z}nd} |} g} t|dz«D]:} | |zrŒ | } | |zr| | z } | |zr| |z } | |zr| |z } | j | «Œ<| j «| S) Nrr1rRr<Ú@rÚ.Ú_)rÚ normalizerÚrangeÚappendÚreverse)ÚlocrÚCOMPONENT_CODESETÚCOMPONENT_TERRITORYÚCOMPONENT_MODIFIERÚmaskÚposÚmodifierÚcodesetÚ territoryÚlanguageÚretrLÚvals r#Ú _expand_langràsS€ÛØ × Ñ ˜3Ó €CØ ÐØ ÐØ Ðà €DØ �(‰(�3‹-€CØ ˆa‚xØ�s�t�9ˆØ�$�3ˆiˆØ Ð"Ñ"‰àˆØ �(‰(�3‹-€CØ ˆa‚xØ�c�d�)ˆØ�$�3ˆiˆØ Ð!Ñ!‰àˆØ �(‰(�3‹-€CØ ˆa‚xؘ˜�Iˆ Ø�$�3ˆiˆØ Ð#Ñ#‰àˆ Ø€HØ €CÜ �4˜‘6Ž]ˆØ�T�E“ ؈CØÐ&Ò&¨¨yÑ(8¨ØÐ$Ò$¨¨w©¨ØÐ%Ò%¨¨x©¨Ø �J‰J�s�Oð ð‡K�K„MØ €Jr'cóL—eZdZd d„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d d „Z y) rNcóV—i|_d|_d|_|�|j|«yy©N)Ú_infoÚ_charsetÚ _fallbackrA©ÚselfÚfps r#Ú__init__zNullTranslations.__init__ s,€ØˆŒ ؈Œ ؈ŒØ ˆ>Ø �K‰K˜�Oð r'có—yr‚©r†s r#rAzNullTranslations._parses€Ø r'cób—|jr|jj|«y||_yr‚)r…Ú add_fallback)r‡Úfallbacks r#r�zNullTranslations.add_fallbacks"€Ø �>Š>Ø �N‰N× 'Ñ '¨Õ 1à%ˆD�Nr'cóT—|jr|jj|«S|Sr‚)r…r )r‡Úmessages r#r zNullTranslations.gettexts#€Ø �>Š>Ø—>‘>×)Ñ)¨'Ó2Ð 2؈r'cóf—|jr|jj|||«S|dk(r|S|S©Nr1)r…r)r‡Úmsgid1Úmsgid2r8s r#rzNullTranslations.ngettext s3€Ø �>Š>Ø—>‘>×*Ñ*¨6°6¸1Ó=Ð =Ø �Š6؈MàˆMr'cóV—|jr|jj||«S|Sr‚)r…r)r‡Úcontextr�s r#rzNullTranslations.pgettext(s%€Ø �>Š>Ø—>‘>×*Ñ*¨7°GÓ<Ð <؈r'cóh—|jr|jj||||«S|dk(r|S|Sr’)r…r)r‡r–r“r”r8s r#rzNullTranslations.npgettext-s5€Ø �>Š>Ø—>‘>×+Ñ+¨G°V¸VÀQÓGÐ GØ �Š6؈MàˆMr'có—|jSr‚)rƒ©r‡s r#ÚinfozNullTranslations.info5s €Ø�z‰zÐr'có—|jSr‚)r„r™s r#ÚcharsetzNullTranslations.charset8s €Ø�}‰}Ðr'có¤—ddl}|j|jd<|�1hd£}|t|«zD]}t ||«|j|<Œyy)Nrrn>r rrr)Úbuiltinsr Ú__dict__ÚsetÚgetattr)r‡ÚnamesržÚallowedÚnames r#r zNullTranslations.install;sS€ÛØ!%§¡ˆ×ј#ÑØ Ð ÚFˆGؤ# e£*Ô,�Ü*1°$¸Ó*=�×!Ñ! $Ò'ñ-ð r'r‚) rSÚ __module__Ú __qualname__r‰rAr�r rrrršrœr r‹r'r#rr s4„óò ò&ò ò òò òòô>r'rcó@—eZdZdZdZdZdZd„Zd„Zd„Z d„Z d „Z d „Z y ) rlÞ*l•$<z%s%s)rr1có—|dz |dzfS)z/Returns a tuple of major version, minor versionéiÿÿr‹)r‡Úversions r#Ú _get_versionszGNUTranslations._get_versionsPs€à˜2‘ ˜w¨Ñ/Ð0Ð0r'có—ddlm}t|dd«}ix|_}d„|_|j «}t |«}|d|dd«d}||jk(r|d |dd «\}} } } d } n0||jk(r|d |dd «\}} } } d } n tdd|«‚|j|«\} }| |jvrtddt| «z|«‚td| «D�]}|| || | dz«\}}||z}|| || | dz«\}}||z}||kr||kr |||}|||}n tdd|«‚|dk(�r4d}|jd«D�]}|j«j!«}|sŒ%|j#d«r|j%d«rŒHdx}}d|vrU|jdd«\}}|j!«j'«}|j!«}||j(|<|}n|r|j(|xxd|zz cc<|dk(r|jd«d|_Œà|dk(sŒæ|jd«}|djd«d}t-|«|_�Œ |j*xsd}d|vrV|jd«\}} |jd«}t||«}t/|«D]\}}!t|!|«|||f<Œnt||«|t||«<| dz } | dz } �Œy)z8Override this method to support alternative .mo formats.r)Úunpackr¤rcó—t|dk7«Sr’)rB)r8s r#Úz(GNUTranslations._parse..]s €¤ A¨¡F¤ r'z4Iz>IIzBad magic numberzBad version number ézFile is corruptó z #-#-#-#-#r?r1Ú z content-typezcharset=z plural-formsÚ;zplural=Úasciió)Ústructr­r¡Ú_catalogrÚreadrdÚLE_MAGICÚBE_MAGICÚOSErrorr«ÚVERSIONSÚstrrpÚsplitÚdecodeÚstripÚ startswithÚendswithÚlowerrƒr„rjÚ enumerate)"r‡rˆr­ÚfilenameÚcatalogÚbufÚbuflenÚmagicrªÚmsgcountÚ masteridxÚtransidxÚiiÚ major_versionÚ minor_versionrLÚmlenÚmoffÚmendÚtlenÚtoffÚtendÚmsgÚtmsgÚlastkÚb_itemÚitemÚkÚvrrœr“r”Úxs" r#rAzGNUTranslations._parseTs1€õ "ܘ2˜v rÓ*ˆð#%Ð$ˆŒ ˜Ù+ˆŒ Ø�g‰g‹iˆÜ�S“ˆá�t˜S  !˜WÓ% aÑ(ˆØ �D—M‘MÒ !Ù5;¸EÀ3ÀqÈÀ9Ó5MÑ 2ˆG�X˜y¨(؉BØ �d—m‘mÒ #Ù5;¸EÀ3ÀqÈÀ9Ó5MÑ 2ˆG�X˜y¨(؉Bä˜!Ð/°Ó:Ð :à'+×'9Ñ'9¸'Ó'BÑ$ˆ �}à  § ¡ Ñ -ܘ!Ð2´S¸Ó5GÑGÈÓRÐ Rô�q˜(×#ˆAÙ  C¨ °)¸A±+Ð$>Ó?‰JˆD�$ؘ$‘;ˆDÙ  C¨°¸!±Ð$<Ó=‰JˆD�$ؘ$‘;ˆDØ�fŠ} ¨¢Ø˜$˜t�n�ؘ4 �~‘ä˜aÐ!2°HÓ=Ð=à�q‹yà�Ø"Ÿj™j¨×/�FØ!Ÿ=™=›?×0Ñ0Ó2�DÙØ à—‘ {Ô3¸¿ ¹ ÀkÔ8RØ Ø �L�A˜Ø˜d‘{Ø#Ÿz™z¨#¨qÓ1™˜˜1ØŸG™G›IŸO™OÓ-˜ØŸG™G›I˜Ø()˜Ÿ ™  1™ Ø !™ÙØŸ ™  5Ó)¨T°D©[Ñ8Ó)ؘNÒ*Ø()¯©° Ó(;¸AÑ(>˜� ؘnÓ,ØŸG™G C›L˜Ø!" 1¡§¡¨IÓ!6°qÑ!9˜Ü&*¨6£l˜ž ð+0ð>—m‘mÒ. wˆGؘ#‰~à!$§¡¨7Ó!3‘�˜Ø—z‘z 'Ó*�ܘV WÓ-�Ü% džO‘D�A�qÜ+.¨q°'«?�G˜V Q˜KÒ(ñ,ô.1°°wÓ-?�œ˜C Ó)Ñ*à ˜‰NˆIØ ˜‰MŠHñs$r'có—t«}|jj||«}||ur-|jj||jd«f|«}||ur|S|jr|jj |«S|Sr’)Úobjectr·rErr…r )r‡r�Úmissingr×s r#r zGNUTranslations.gettext­sw€Ü“(ˆØ�}‰}× Ñ  ¨'Ó2ˆØ �7‰?Ø—=‘=×$Ñ$ g¨t¯{©{¸1«~Ð%>ÀÓHˆDØ �wÑ ØˆKØ �>Š>Ø—>‘>×)Ñ)¨'Ó2Ð 2؈r'cóÖ— |j||j|«f}|S#t$r;|jr|jj |||«cYS|dk(r|}Y|S|}Y|SwxYwr’)r·rÚKeyErrorr…r)r‡r“r”r8r×s r#rzGNUTranslations.ngettext¸sy€ð Ø—=‘= &¨$¯+©+°a«.Ð!9Ñ:ˆDðˆ øôò Ø�~Š~Ø—~‘~×.Ñ.¨v°v¸qÓAÒAØ�AŠvØ‘ðˆ ð‘Øˆ ð ús‚ $¤2A(ÁA(Á"A(Á'A(có2—|j||fz}t«}|jj||«}||ur-|jj||j d«f|«}||ur|S|j r|j j ||«S|Sr’)ÚCONTEXTrßr·rErr…r)r‡r–r�Ú ctxt_msg_idràr×s r#rzGNUTranslations.pgettextÄsŒ€Ø—l‘l g¨wÐ%7Ñ7ˆ Ü“(ˆØ�}‰}× Ñ  ¨gÓ6ˆØ �7‰?Ø—=‘=×$Ñ$ k°4·;±;¸q³>Ð%BÀGÓLˆDØ �wÑ ØˆKØ �>Š>Ø—>‘>×*Ñ*¨7°GÓ<Ð <؈r'cóú—|j||fz} |j||j|«f}|S#t$r<|jr |jj ||||«cYS|dk(r|}Y|S|}Y|SwxYwr’)rär·rrâr…r)r‡r–r“r”r8rår×s r#rzGNUTranslations.npgettextÐsŽ€Ø—l‘l g¨vÐ%6Ñ6ˆ ð Ø—=‘= ¨d¯k©k¸!«nÐ!<Ñ=ˆDðˆ øôò Ø�~Š~Ø—~‘~×/Ñ/°¸ÀÈÓKÒKØ�AŠvØ‘ðˆ ð‘Øˆ ð ús“ 5µ3A:Á*A:Á4A:Á9A:N) rSr¥r¦r¹rºrär¼r«rAr rrrr‹r'r#rrDs:„à€HØ€Hð€Gð€Hò1òWòr ò ò ó r'rcó—|€t}|€Rg}dD]6}tjj|«}|sŒ%|j d«}nd|vr|j d«g}|D](}t |«D]}||vsŒ|j |«ŒŒ*|rg} nd} |D]f}|dk(r| Stjj||dd|z«} tjj| «sŒP|r| j | «Œd| cS| S)N)ÚLANGUAGEÚLC_ALLÚ LC_MESSAGESÚLANGr?ÚCrêz%s.mo) Ú_default_localedirÚosÚenvironrEr¾rqrÚpathÚjoinÚexists) ÚdomainÚ localedirÚ languagesÚallÚenvarr~ÚnelangsÚlangÚnelangrHÚmofiles r#rrßs€àÐÜ&ˆ ØÐ؈ ÛBˆEÜ—*‘*—.‘. Ó'ˆCÚØŸI™I c›N� Ùð Cð �iÑ Ø × Ñ ˜SÔ !à€GÛˆÜ" 4Ö(ˆFؘWÒ$Ø—‘˜vÕ&ñ)ðñ  ؉àˆÛˆØ �3Š;Ø ð €Mô —‘—‘˜i¨¨}¸gÈÑ>NÓOˆÜ �7‰7�>‰>˜&Õ !ÙØ— ‘ ˜fÕ%à’ ðð €Mr'cóÈ—|€t}t|||d¬«}|s|r t«Sddlm}t |d|«‚d}|D]–}|t jj|«f} tj| «} | €1t|d«5} tj| || ««} ddd«ddl } | j| «} |€| }Œ†|j| «Œ˜|S#1swYŒ8xYw)NT)rör)ÚENOENTz$No translation file found for domainÚrb)rrrÚerrnorýÚFileNotFoundErrorrîrðÚabspathÚ _translationsrEÚopenÚ setdefaultÚcopyr�) rórôrõÚclass_rŽÚmofilesrýrHrûÚkeyÚtrˆrs r#rrsâ€à €~Ü ˆÜ�6˜9 i°TÔ:€GÙ Ù Ü#Ó%Ð %Ý Ü Ø FÈóPð Pð€Fۈؔr—w‘w—‘ vÓ.Ð/ˆÜ × Ñ ˜cÓ "ˆØ ˆ9Ü�f˜dÔ# rÜ!×,Ñ,¨S±&¸³*Ó=�÷$ó Ø �I‰I�a‹LˆØ ˆ>؉Fà × Ñ  Õ "ð!ð" €M÷$Ð#ús ÂCÃC! )r¢cóB—t||d¬«}|j|«y)NT)rŽ)rr )rórôr¢r s r#r r )s€Ü�F˜I°Ô5€A؇I�IˆeÕr'Úmessagescó—|�|atSr‚)Ú_current_domain)rós r#r r 4s€à ÐØ ˆÜ Ðr'cóL—|� |t|<tj|t«Sr‚)Ú _localedirsrErí)rórôs r#rr;s$€àÐØ'Œ �FÑÜ �?‰?˜6Ô#5Ó 6Ð6r'cóˆ— t|tj|d««}|j |«S#t$r|cYSwxYwr‚)rrrEr»r )rór�r s r#r r BsE€ðÜ ˜¤ §¡°¸Ó =Ó >ˆð �9‰9�WÓ Ðøô òØŠðús‚ 3³ AÁAcóž— t|tj|d««}|j |||«S#t$r|dk(r|cYS|cYSwxYwr’)rrrEr»r)rór“r”r8r s r#r r JsU€ðÜ ˜¤ §¡°¸Ó =Ó >ˆð �:‰:�f˜f aÓ (Ð(øô òØ �Š6ØŠMàŠMð ús‚ 5µA ÁA Á A cóŠ— t|tj|d««}|j ||«S#t$r|cYSwxYwr‚)rrrEr»r)rór–r�r s r#rrUsG€ðÜ ˜¤ §¡°¸Ó =Ó >ˆð �:‰:�g˜wÓ 'Ð'øô òØŠðús‚ 4´ AÁAcó — t|tj|d««}|j ||||«S#t$r|dk(r|cYS|cYSwxYwr’)rrrEr»r)rór–r“r”r8r s r#rr]sW€ðÜ ˜¤ §¡°¸Ó =Ó >ˆð �;‰;�w ¨°Ó 2Ð2øô òØ �Š6ØŠMàŠMð ús‚ 6¶A ÁA Á A có"—tt|«Sr‚)r r )r�s r#r r hs€Ü ”O WÓ -Ð-r'có&—tt|||«Sr‚)r r )r“r”r8s r#rrls€Ü ”_ f¨f°aÓ 8Ð8r'có$—tt||«Sr‚)rr )r–r�s r#rrps€Ü ”_ g¨wÓ 7Ð7r'có(—tt||||«Sr‚)rr )r–r“r”r8s r#rrts€Ü ”o w°¸ÀÓ BÐBr')éÿÿÿÿ)NNF)NNNFr‚)*Ú__doc__ÚoperatorrîrrXÚ__all__rðrñÚ base_prefixríÚcompileÚVERBOSEÚDOTALLrr$r&rCrÄrDrAr`rjrrrrrrr rr r rr r rrr rrrr)rLÚopsrMs000r#Úr!sYðñ ó`Û Û Û ò €ð—W‘W—\‘\ #§/¡/°7¸HÓEÐð�—‘ð ð �‰�B—I‘IÑ ó €ò  ò;ð€ ñ$-¨[¸!Ô#<ÕKÑ#<™˜˜CÃsÀˆr�1‰uÀsˆrÐ#<ÓK€ ؘu¨4Ñ 0€ ó/òd ò(!BòH'÷T7>ñ7>ôtWÐ&ôWóv!ðJ€ ð37Ø&+óðD¨Tôð € à€óó7òò)ò(ò3ò.ò9ò8òCð$ �ùôiLsÁ=C8