a 3êdg‚jã@s„ddlZddlZddlZgd¢Zej ejdd¡Ze dej ej B¡Z dd„Z dd „Z d Zd d „eed ƒDƒZddddœZdFdd„Zdd„Zdd„Zdd„ZGdd„dƒZGdd„deƒZdGd d!„ZiZd"gZddddefd#d$„Zdedfd%d&„Ziaiad'adHd(d)„ZdId*d+„Z dJd,d-„Z!d.d/„Z"d0d1„Z#d2d3„Z$d4d5„Z%d6d7„Z&d8d9„Z'd:d;„Z(dd?„Z*d@dA„Z+dBdC„Z,dDdE„Z-eZ.dS)KéN)ÚNullTranslationsÚGNUTranslationsÚCatalogÚfindÚ translationÚinstallÚ textdomainÚbindtextdomainÚbind_textdomain_codesetÚdgettextÚ dngettextÚgettextÚlgettextÚ ldgettextÚ ldngettextÚ lngettextÚ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 ccsPt t|¡D]8}|j}|dkr q | |¡}|dkr>td|ƒ‚|Vq dVdS)NÚ WHITESPACESÚINVALIDz invalid token in plural form: %sÚ)ÚreÚfinditerÚ_token_patternÚ lastgroupÚgroupÚ ValueError)ÚpluralÚmoÚkindÚvalue©r&ú#/usr/local/lib/python3.9/gettext.pyÚ _tokenizeVs  r(cCs|rtd|ƒStdƒSdS)Nz#unexpected token in plural form: %szunexpected end of plural form)r!)r%r&r&r'Ú_erroras r)))ú||)ú&&)z==z!=)ú<ú>z<=z>=)ú+ú-)Ú*ú/ú%cCs i|]\}}|D] }||“qqSr&r&)Ú.0ÚiÚopsÚopr&r&r'Ú oór7éÚorÚandz//)r*r+r1éÿÿÿÿc Cs¦d}t|ƒ}|dkr&|d7}t|ƒ}q |dkrXt|ƒ\}}d||f}|dkr¦tdƒ‚nN|dkrnd ||f}n8zt|d ƒ}Wnty˜t|ƒd‚Yn0d ||f}t|ƒ}d }|tvrt|}||krÐq|d vrè|d vrèd|}t ||¡}t||dƒ\} }d||| f}|}q²||kr2dkr>nnd|}|dkrž|dkržt|dƒ\} }|dkrrt|ƒ‚t|ƒ\} }d| || f}|dkržd|}||fS)Nrú!znot ú(z%s(%s)ú)z%unbalanced parenthesis in plural formÚnz%s%sé z%s%déd)ééz(%s)r9z%s %s %srDú?rú:z%s if %s else %s)ÚnextÚ_parser!Úintr)Ú _binary_opsÚ _c2py_opsÚget) ÚtokensÚpriorityÚresultÚnexttokÚsubr%Újr4r6ÚrightÚif_trueÚif_falser&r&r'rHrsP           rHcCsXz t|ƒ}Wn&ty2td|jjfƒd‚Yn0ddl}| d|jjftd¡|S)Nz'Plural value must be an integer, got %srrD)ÚroundÚ TypeErrorÚ __class__Ú__name__ÚwarningsÚwarnÚDeprecationWarning)r@r4rZr&r&r'Ú_as_int£s  ÿÿÿþr]cCs°t|ƒdkrtdƒ‚z|tt|ƒƒ\}}|r2t|ƒ‚d}|D]6}|dkr`|d7}|dkrptdƒ‚q:|dkr:|d8}q:d ti}td ||ƒ|d WStyªtdƒ‚Yn0dS) Nièz"plural form expression is too longrr>r9éz%plural form expression is too complexr?r]z›if True: def func(n): if not isinstance(n, int): n = _as_int(n) return int(%s) Úfunc)Úlenr!rHr(r)r]ÚexecÚRecursionError)r"rOrPÚdepthÚcÚnsr&r&r'Úc2py¯s.   ûû  rfcCs>ddl}| |¡}d}d}d}d}| d¡}|dkrV||d…}|d|…}||O}nd}| d¡}|dkrŽ||d…}|d|…}||O}nd}| d¡}|dkrÆ||d…} |d|…}||O}nd} |} g} t|dƒD]R} | |@sÞ| } | |@r| | 7} | |@r| |7} | |@r&| |7} |  | ¡qÞ|  ¡| S) Nrr9érDú@rÚ.Ú_)rÚ normalizerÚrangeÚappendÚreverse)ÚlocrÚCOMPONENT_CODESETÚCOMPONENT_TERRITORYÚCOMPONENT_MODIFIERÚmaskÚposÚmodifierÚcodesetÚ territoryÚlanguageÚretr4Úvalr&r&r'Ú _expand_langÓsF               r{c@s€eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zddd„ZdS) rNcCs.i|_d|_d|_d|_|dur*| |¡dS©N)Ú_infoÚ_charsetÚ_output_charsetÚ _fallbackrH©ÚselfÚfpr&r&r'Ú__init__ÿs zNullTranslations.__init__cCsdSr|r&rr&r&r'rHszNullTranslations._parsecCs|jr|j |¡n||_dSr|)r€Ú add_fallback)r‚Úfallbackr&r&r'r… szNullTranslations.add_fallbackcCs|jr|j |¡S|Sr|)r€r )r‚Úmessager&r&r'r s zNullTranslations.gettextcCs†ddl}| dtd¡ddl}|jrf| ¡*| ddt¡|j |¡WdƒS1s\0Y|jrx|  |j¡S|  |  ¡¡S)Nrú/lgettext() is deprecated, use gettext() insteadrgÚignoreú.*\blgettext\b.*) rZr[r\rr€Úcatch_warningsÚfilterwarningsrrÚencodeÚgetpreferredencoding)r‚r‡rZrr&r&r'rsÿ ÿ* zNullTranslations.lgettextcCs*|jr|j |||¡S|dkr"|S|SdS©Nr9)r€r)r‚Úmsgid1Úmsgid2r@r&r&r'r#s zNullTranslations.ngettextcCsœddl}| dtd¡ddl}|jrj| ¡.| ddt¡|j |||¡WdƒS1s`0Y|dkrx|}n|}|jrŽ|  |j¡S|  |  ¡¡S)Nrú1lngettext() is deprecated, use ngettext() insteadrgr‰ú.*\blngettext\b.*r9) rZr[r\rr€r‹rŒrrrrŽ©r‚rr‘r@rZrÚtmsgr&r&r'r+s"ÿ ÿ. zNullTranslations.lngettextcCs|jr|j ||¡S|Sr|)r€r)r‚Úcontextr‡r&r&r'r=szNullTranslations.pgettextcCs,|jr|j ||||¡S|dkr$|S|SdSr)r€r)r‚r–rr‘r@r&r&r'rBs zNullTranslations.npgettextcCs|jSr|)r}©r‚r&r&r'ÚinfoJszNullTranslations.infocCs|jSr|)r~r—r&r&r'ÚcharsetMszNullTranslations.charsetcCsddl}| dtd¡|jS)Nrzoutput_charset() is deprecatedrg©rZr[r\r)r‚rZr&r&r'Úoutput_charsetPs ÿzNullTranslations.output_charsetcCs ddl}| dtd¡||_dS)Nrz"set_output_charset() is deprecatedrgrš)r‚r™rZr&r&r'Úset_output_charsetVs ÿz#NullTranslations.set_output_charsetcCsJddl}|j|jd<|durFhd£}|t|ƒ@D]}t||ƒ|j|<q0dS)Nrrj>rrrr rr)Úbuiltinsr Ú__dict__ÚsetÚgetattr)r‚ÚnamesrÚallowedÚnamer&r&r'r\s  zNullTranslations.install)N)N)rYÚ __module__Ú __qualname__r„rHr…r rrrrrr˜r™r›rœrr&r&r&r'rþs rc@s\eZdZdZdZdZdZdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dd„Z dd„ZdS)rlÞ*l•$<z%s%s)rr9cCs|d?|d@fS)Néiÿÿr&)r‚Úversionr&r&r'Ú _get_versionsrszGNUTranslations._get_versionsc"Csöddlm}t|ddƒ}i|_}dd„|_| ¡}t|ƒ}|d|dd…ƒd}||jkr||d |dd …ƒ\}} } } d } n6||jkr¦|d |dd …ƒ\}} } } d } n t dd|ƒ‚|  |¡\} }| |j vrÞt ddt | ƒ|ƒ‚t d| ƒD]}|| || | d…ƒ\}}||}|| || | d…ƒ\}}||}||kr`||kr`|||…}|||…}n t dd|ƒ‚|dkrld}| d¡D]æ}| ¡ ¡}|sžq„| d¡rº| d¡rºq„d}}d|vr| dd¡\}}| ¡ ¡}| ¡}||j|<|}n|r|j|d|7<|dkr8| d¡d|_n0|dkr„| d¡}|d d¡d}t|ƒ|_q„|jpvd}d|vrÌ| d¡\}} | d¡}t ||ƒ}t|ƒD]\}}!t |!|ƒ|||f<q¬nt ||ƒ|t ||ƒ<| d7} | d7} qèdS)Nr)Úunpackr£rcSs t|dkƒSr)rI)r@r&r&r'Úr8z(GNUTranslations._parse..z4Iz>IIzBad magic numberzBad version number ézFile is corruptó z #-#-#-#-#rFr9Ú z content-typezcharset=z plural-formsú;zplural=Úasciió)Ústructr©r Ú_catalogr"Úreadr`ÚLE_MAGICÚBE_MAGICÚOSErrorr¨ÚVERSIONSÚstrrlÚsplitÚdecodeÚstripÚ startswithÚendswithÚlowerr}r~rfÚ enumerate)"r‚rƒr©ÚfilenameÚcatalogÚbufÚbuflenÚmagicr§ÚmsgcountÚ masteridxÚtransidxÚiiÚ major_versionÚ minor_versionr4ÚmlenÚmoffÚmendÚtlenÚtoffÚtendÚmsgr•ÚlastkÚb_itemÚitemÚkÚvr"r™rr‘Úxr&r&r'rHvsv                      zGNUTranslations._parsecCspddl}| dtd¡ddl}tƒ}|j ||¡}||urP|jrL|j |¡S|}|j rb|  |j ¡S|  |  ¡¡S)Nrrˆrg) rZr[r\rÚobjectr²rLr€rrrrŽ)r‚r‡rZrÚmissingr•r&r&r'rÏsÿ  zGNUTranslations.lgettextcCs–ddl}| dtd¡ddl}z|j|| |¡f}Wn>tyt|jr^|j |||¡YS|dkrl|}n|}Yn0|j rˆ|  |j ¡S|  |  ¡¡S)Nrr’rgr9) rZr[r\rr²r"ÚKeyErrorr€rrrrŽr”r&r&r'rÞs ÿ   zGNUTranslations.lngettextcCs6tƒ}|j ||¡}||ur2|jr.|j |¡S|S|Sr|)rØr²rLr€r )r‚r‡rÙr•r&r&r'r ðs zGNUTranslations.gettextcCs\z|j|| |¡f}Wn>tyV|jr@|j |||¡YS|dkrN|}n|}Yn0|Sr)r²r"rÚr€r)r‚rr‘r@r•r&r&r'rùs  zGNUTranslations.ngettextcCsF|j||f}tƒ}|j ||¡}||urB|jr>|j ||¡S|S|Sr|)ÚCONTEXTrØr²rLr€r)r‚r–r‡Ú ctxt_msg_idrÙr•r&r&r'rszGNUTranslations.pgettextc Csl|j||f}z|j|| |¡f}Wn@tyf|jrP|j ||||¡YS|dkr^|}n|}Yn0|Sr)rÛr²r"rÚr€r)r‚r–rr‘r@rÜr•r&r&r'rs  zGNUTranslations.npgettextN)rYr¤r¥r´rµrÛr·r¨rHrrr rrrr&r&r&r'rfsY   rFc Csâ|dur t}|durRg}dD]"}tj |¡}|r| d¡}q@qd|vrR| d¡g}|D]$}t|ƒD]}||vrf| |¡qfqZ|rŠg} nd} |D]J}|dkr¢qÞtj ||dd|¡} tj  | ¡r’|rÔ|  | ¡q’| Sq’| S)N)ÚLANGUAGEÚLC_ALLÚ LC_MESSAGESÚLANGrFÚCrßz%s.mo) Ú_default_localedirÚosÚenvironrLr¹rmr{ÚpathÚjoinÚexists) ÚdomainÚ localedirÚ languagesÚallÚenvarrzÚnelangsÚlangÚnelangrOÚmofiler&r&r'rs8       rÚ unspecifiedc CsD|dur t}t|||dd}|sB|r*tƒSddlm}t|d|ƒ‚d}|D]ô} |tj | ¡f} t   | ¡} | durªt | dƒ } t   | || ƒ¡} Wdƒn1s 0Yddl } |   | ¡} |tur$ddl}| dtd¡|r$| ¡(| d d t¡|  |¡Wdƒn1s0Y|dur4| }qJ| | ¡qJ|S) NT)rër)ÚENOENTz$No translation file found for domainÚrbzparameter codeset is deprecatedrgr‰z.*\bset_output_charset\b.*)rrrÚerrnoròÚFileNotFoundErrorrãråÚabspathÚ _translationsrLÚopenÚ setdefaultÚcopyÚ _unspecifiedrZr[r\r‹rŒrœr…)rèrérêÚclass_r†rvÚmofilesròrOrðÚkeyÚtrƒrúrZr&r&r'rGsD ÿ  .  ÿ ÿ*  rcCst||d|d}| |¡dS)NT)r†rv)rr)rèrérvr¡rÿr&r&r'rrsrÚmessagescCs|dur |atSr|)Ú_current_domain)rèr&r&r'r€srcCs|dur|t|<t |t¡Sr|)Ú _localedirsrLrâ)rèrér&r&r'r ‡sr cCs0ddl}| dtd¡|dur&|t|<t |¡S)Nrz'bind_textdomain_codeset() is deprecatedrg)rZr[r\Ú_localecodesetsrL)rèrvrZr&r&r'r Žsÿr cCs8zt|t |d¡ƒ}Wnty,|YS0| |¡Sr|)rrrLr¶r )rèr‡rÿr&r&r'r ˜s   r cCsâddl}| dtd¡ddl}t |¡}zP| ¡4| ddt¡t|t  |d¡|d}Wdƒn1sl0YWn$t yœ|  |p”|  ¡¡YS0| ¡(| ddt¡|  |¡WdƒS1sÔ0YdS)Nrz1ldgettext() is deprecated, use dgettext() insteadrgr‰ú.*\bparameter codeset\b.*©rvrŠ)rZr[r\rrrLr‹rŒrrr¶rrŽr)rèr‡rZrrvrÿr&r&r'rŸs&ÿ  ÿ8  ÿrcCsPzt|t |d¡ƒ}Wn*ty@|dkr4|YS|YSYn0| |||¡Sr)rrrLr¶r)rèrr‘r@rÿr&r&r'r ±s r c Csøddl}| dtd¡ddl}t |¡}zP| ¡4| ddt¡t|t  |d¡|d}Wdƒn1sl0YWn6t y®|dkr”|}n|}|  |p¦|  ¡¡YS0| ¡,| ddt¡|  |||¡WdƒS1sê0YdS) Nrz3ldngettext() is deprecated, use dngettext() insteadrgr‰rrr9r“)rZr[r\rrrLr‹rŒrrr¶rrŽr) rèrr‘r@rZrrvrÿr•r&r&r'r»s,ÿ  ÿ8  ÿrcCs:zt|t |d¡ƒ}Wnty,|YS0| ||¡Sr|)rrrLr¶r)rèr–r‡rÿr&r&r'rÒs   rcCsRzt|t |d¡ƒ}Wn*ty@|dkr4|YS|YSYn0| ||||¡Sr)rrrLr¶r)rèr–rr‘r@rÿr&r&r'rÚs rcCs tt|ƒSr|)r r)r‡r&r&r'r åsr cCsZddl}| dtd¡| ¡(| ddt¡tt|ƒWdƒS1sL0YdS)Nrrˆrgr‰z.*\bldgettext\b.*)rZr[r\r‹rŒrr)r‡rZr&r&r'rèsÿ ÿrcCstt|||ƒSr|)r r)rr‘r@r&r&r'rñsrcCs^ddl}| dtd¡| ¡,| ddt¡tt|||ƒWdƒS1sP0YdS)Nrr’rgr‰z.*\bldngettext\b.*)rZr[r\r‹rŒrr)rr‘r@rZr&r&r'rôsÿ ÿrcCs tt||ƒSr|)rr)r–r‡r&r&r'rþsrcCstt||||ƒSr|)rr)r–rr‘r@r&r&r'rsr)r<)NNF)N)N)N)/rãrÚsysÚ__all__råræÚ base_prefixrâÚcompileÚVERBOSEÚDOTALLrr(r)rJr¿rKrHr]rfr{rrrr÷rûrrrrrrr r r rr rrrr rrrrrrr&r&r&r'Ú1sZ  õ    1 $+h9 &ÿ +