+
    Brh[T                        R t ^ RIt^ RIt^ RIt. R$Ot]P
                  P                  ]P                  RR4      tRs	R t
R tR%t]! ]^4       U UUu/ uF  w  rV F  q"V bK  	  K  	  uppp tRRR	RR
R/tR&R ltR tR tR tR t ! R R4      t ! R R]4      tR'R lt/ tR(R ltR)RR/R llt/ sRsR)R ltR)R ltR tR tR t R t!R  t"R! t#R" t$R# t%]t&R# u uppp i )*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sharelocalec              #   F  "   \         f2   ^ R IpVP                  RVP                  VP                  ,          4      s \         P                  V 4       FF  pVP                  pVR8X  d   K  VP                  V4      pVR8X  d   \        RV,          4      hVx  KH  	  Rx  R # 5i)Na"  
                (?P<WHITESPACES>[ \t]+)                    | # spaces and horizontal tabs
                (?P<NUMBER>[0-9]+\b)                       | # decimal integer
                (?P<NAME>n\b)                              | # only n is allowed
                (?P<PARENTHESIS>[()])                      |
                (?P<OPERATOR>[-*/%+?:]|[><!]=?|==|&&|\|\|) | # !, *, /, %, +, -, <, >,
                                                             # <=, >=, ==, !=, &&, ||,
                                                             # ? :
                                                             # unary and bitwise ops
                                                             # not allowed
                (?P<INVALID>\w+|.)                           # invalid token
            WHITESPACESINVALIDz invalid token in plural form: %s )	_token_patternrecompileVERBOSEDOTALLfinditer	lastgroupgroup
ValueError)pluralr   mokindvalues   &    $/usr/local/lib/python3.14/gettext.py	_tokenizer   G   s      % BII%' %%f-||= 9?%GHH . Hs   BB!c                 L    V '       d   \        R V ,          4      # \        R4      # )z#unexpected token in plural form: %szunexpected end of plural form)r   )r   s   &r   _errorr   c   s"    ?%GHH9::    ||&&/orandz//c                     R p\        V 4      pVR8X  d   VR,          p\        V 4      pK  VR8X  d+   \        V 4      w  rCV: RV: R2pVR8w  d   \        R4      hM'VR8X  d
   V: V: 2pM \        V^
4      pRY%3,          p\        V 4      p^dpV\
        9   df   \
        V,          pWq8  d   MQVR9   d   VR9   d
   R	V,          p\        P                  W34      p\        W^,           4      w  rV: R
V: R
V	: 2pTpKp  Yau;8X  d   ^8X  d   M M	R	V,          pVR8X  dR   V^ 8:  dK   \        V ^ 4      w  rVR8w  d   \	        V4      h\        V 4      w  rV
: RV: RV: 2pV^ 8X  d
   R	V,          pW#3#   \         d    \	        T4      Rhi ; i)r	   !znot ()z%unbalanced parenthesis in plural formnNz%s%dz(%s) ?: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   r,   r,   v   s   F6lG
S.&v,#~f~#S)c>DEE 	C!7+	,$E 6/)6lGA
[
  <;1;f_F]]7,A.%r51&#~(a-!&!,c>/!"6N'.Aq=f_F?=  	,/t+	,s   -E5 5Fc                      \        V 4       \	        T 4      #   \         d&    \        R T P                  P                  : 24      Rhi ; i)%Plural value must be an integer, got N)round	TypeError	__class____name___as_int2r%   s   &r   _as_intrD      sM    ;a A;  ;--0 16:	;;s	    0Ac                 ~    \         P                  ! V 4      #   \         d     Mi ; i^ RIp\        P
                  ! ^4      p^pTP                  e<   TP                  P                  R4      \        8X  d   T^,          pTP                  pKI  TP                  RT P                  P                  : 2\        T4       T # )    NrA   r=   )operatorindexr?   warningssys	_getframef_back	f_globalsr0   rA   warnr@   DeprecationWarning)r%   rI   frame
stacklevels   &   r   rB   rB      s    ~~a    MM!EJ
,,
"u':'::'F('Ra
MM;;''*$ Hs    &&c                   \        V 4      R8  d   \        R4      h \        \        V 4      4      w  rV'       d   \	        V4      h^ pV F9  pVR8X  d   V^,          pV^8  d   \        R4      hK'  VR8X  g   K0  V^,          pK;  	  R\
        R\        /p\        RV,          V4       VR	,          #   \         d    \        R4      hi ; i)
zGets 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 longr#   z%plural form expression is too complexr$   rD   rA   zif True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            func)	lenr   r,   r   r   rD   rA   execRecursionError)r   r3   r4   depthcnss   &     r   c2pyrZ      s    
 6{T=>>B 6!23/!ACx
2: %%LMM  c
  *h7 
 
 	 &z B@AABs   AB1 :6B1 1Cc                 n   ^ RI pVP                  V 4      p ^p^p^p^ pV P                  R4      pV^ 8  d   WR pV RV p WT,          pMRpV P                  R4      pV^ 8  d   WR pV RV p WR,          pMRpV P                  R4      pV^ 8  d   WR p	V RV p WS,          pMRp	T p
. p\        V^,           4       Fi  pW( ,          '       d   K  T
pW,          '       d	   W,          pW,          '       d	   W,          pW,          '       d	   W,          pVP	                  V4       Kk  	  VP                  4        V# )rF   N@r	   ._)r   	normalizefindrangeappendreverse)locr   COMPONENT_CODESETCOMPONENT_TERRITORYCOMPONENT_MODIFIERmaskposmodifiercodeset	territorylanguageretr7   vals   &             r   _expand_langrp      s>   


3
C   D
((3-C
axt9$3i"
((3-C
axd)$3i!
((3-C
axI	$3i#	H
C46]E		C&&(8$$%%JJsO  KKMJr   c                   d   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tRR ltRtV tR# )r   i  Nc                ^    / V n         R V n        R V n        Ve   V P                  V4       R # R # N)_info_charset	_fallbackr,   selffps   &&r   __init__NullTranslations.__init__  s,    
>KKO r   c                    R # rs    rw   s   &&r   r,   NullTranslations._parse  s    r   c                p    V P                   '       d   V P                   P                  V4       R # Wn         R # rs   )rv   add_fallback)rx   fallbacks   &&r   r   NullTranslations.add_fallback  s"    >>>NN''1%Nr   c                `    V P                   '       d   V P                   P                  V4      # V# rs   )rv   gettext)rx   messages   &&r   r   NullTranslations.gettext"  s%    >>>>>))'22r   c                    V P                   '       d   V P                   P                  WV4      # \        V4      pV^8X  d   V# V#    )rv   ngettextrB   )rx   msgid1msgid2r%   s   &&&&r   r   NullTranslations.ngettext'  s<    >>>>>**61==QK6MMr   c                `    V P                   '       d   V P                   P                  W4      # V# rs   )rv   pgettext)rx   contextr   s   &&&r   r   NullTranslations.pgettext0  s%    >>>>>**7<<r   c                    V P                   '       d   V P                   P                  WW44      # \        V4      pV^8X  d   V# V# r   )rv   	npgettextrB   )rx   r   r   r   r%   s   &&&&&r   r   NullTranslations.npgettext5  s<    >>>>>++GVGGQK6MMr   c                    V P                   # rs   )rt   rx   s   &r   infoNullTranslations.info>  s    zzr   c                    V P                   # rs   )ru   r   s   &r   charsetNullTranslations.charsetA  s    }}r   c                    ^ RI pV P                  VP                  R&   Ve8   0 RmpV\        V4      ,           F  p\	        W4      VP                  V&   K  	  R# R# )rF   Nr^   >   r   r   r   r   )builtinsr   __dict__setgetattr)rx   namesr   allowednames   &&   r   installNullTranslations.installD  sT    !%#FG#e*,,*1$*=!!$' - r   )ru   rv   rt   rs   )rA   
__module____qualname____firstlineno__rz   r,   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r     s<     &

> >r   c                   T   a  ] tR tRt o RtRtRtRtR tR t	R t
R tR	 tR
 tRtV tR# )r   iM  l   * l   $< z%s%sc                &    V^,	          VR,          3# )z/Returns a tuple of major version, minor versioni  r}   )rx   versions   &&r   _get_versionsGNUTranslations._get_versionsY  s    2w/00r   c                   ^ RI Hp \        VRR4      p/ ;V n        pR V n        VP                  4       p\        V4      pV! RVR,          4      ^ ,          pWpP                  8X  d   V! RVR,          4      w  rrR	pM3WpP                  8X  d   V! R
VR,          4      w  rrRpM\        ^ RV4      hV P                  V4      w  rWP                  9  d   \        ^ R\        V4      ,           V4      h\        ^ V	4       EF  pV! WW^,            4      w  ppVV,           pV! WW^,            4      w  ppVV,           pVV8  d   VV8  d   VVV pVVV pM\        ^ RV4      hV^ 8X  Edt   RpVP                  R4       EF[  pVP                  4       P!                  4       pV'       g   K,  VP#                  R4      '       d   VP%                  R4      '       d   K\  R;ppRV9   dV   VP                  R^4      w  ppVP!                  4       P'                  4       pVP!                  4       pVV P(                  V&   TpM.V'       d'   V P(                  V;;,          RV,           ,          uu&   VR8X  d!   VP                  R4      ^,          V n        EK  VR8X  g   EK  VP                  R4      pV^,          P                  R4      ^,          p\-        V4      V n        EK^  	  V P*                  ;'       g    RpRV9   dY   VP                  R4      w  pp VP                  R4      p\        VV4      p\/        V4       F  w  pp!\        V!V4      VVV3&   K  	  M\        VV4      V\        VV4      &   V
^,          p
V^,          pEK  	  R# )z8Override this method to support alternative .mo formats.)unpackr   r	   c                     \        V ^8g  4      # r   )r-   rC   s   &r   <lambda>(GNUTranslations._parse.<locals>.<lambda>f  s    AFr   z<I:Nr*   Nz<4I:r*      Nz<IIz>4Iz>IIzBad magic numberzBad version number zFile is corruptN   
z	#-#-#-#-#r(   
zcontent-typezcharset=zplural-forms;zplural=ascii    )structr   r   _catalogr   readrT   LE_MAGICBE_MAGICOSErrorr   VERSIONSstrra   splitdecodestrip
startswithendswithlowerrt   ru   rZ   	enumerate)"rx   ry   r   filenamecatalogbufbuflenmagicr   msgcount	masteridxtransidxiimajor_versionminor_versionr7   mlenmoffmendtlentofftendmsgtmsglastkb_itemitemkvr   r   r   r   xs"   &&                                r   r,   GNUTranslations._parse]  s    	"2vr* #%$+ggiStSW%a(MM!5;E3t95M2GyBmm#5;E3t95M2GyB!/::'+'9'9''B$-!2S5GGRR q(#A	A+$>?JD$$;D!$<=JD$$;Df}$tn4~a!2H==qy"jj/F!==?002D {33k8R8R  LAd{#zz#q11GGIOO-GGI()

1 !

5)TD[8)N*()
(;A(>n,GGCL!"1I!6q!9&*6l+ 0> mm..wG#~!$7!3zz'*VW-%dODAq+.q'?GVQK( , .1w-?C)*NIMHs $r   c                   \        4       pV P                  P                  W4      pW2J d-   V P                  P                  WP                  ^4      3V4      pW2Jd   V# V P                  '       d   V P                  P                  V4      # V# r   )objectr   r0   r   rv   r   )rx   r   missingr   s   &&  r   r   GNUTranslations.gettext  sq    (}}  2?==$$g{{1~%>HDK>>>>>))'22r   c                     V P                   WP                  V4      3,          pV#   \         dC    T P                  '       d   T P                  P	                  YT4      u # T^8X  d   Tp T# Tp T# i ; ir   )r   r   KeyErrorrv   r   )rx   r   r   r%   r   s   &&&& r   r   GNUTranslations.ngettext  sw    	==&++a.!9:D   	~~~~~..vqAAAv  	s!   #' A4A4"	A4.A43A4c                B   V P                   W3,          p\        4       pV P                  P                  W44      pWTJ d-   V P                  P                  W0P	                  ^4      3V4      pWTJd   V# V P
                  '       d   V P
                  P                  W4      # V# r   )CONTEXTr   r   r0   r   rv   r   )rx   r   r   ctxt_msg_idr   r   s   &&&   r   r   GNUTranslations.pgettext  s    llg%77(}}  6?==$$k;;q>%BGLDK>>>>>**7<<r   c                   V P                   W3,          p V P                  WPP                  V4      3,          pV#   \         dC    T P                  '       d   T P                  P                  YY44      u # T^8X  d   Tp T# Tp T# i ; ir   )r   r   r   r   rv   r   )rx   r   r   r   r%   r   r   s   &&&&&  r   r   GNUTranslations.npgettext  s    llg%66	==kk!n!<=D   	~~~~~//KKAv  	s!   #; BB6	BBB)r   ru   r   N)rF   r   )rA   r   r   r   r   r   r   r   r   r,   r   r   r   r   r   r   r   s   @r   r   r   M  sB     HH G H1Wr	

 r   c                 `   Vf   \         pVf^   . pR F=  p\        P                  P                  V4      pV'       g   K,  VP	                  R4      p M	  RV9  d   VP                  R4       . pV F.  p\        V4       F  pW9  g   K  VP                  V4       K  	  K0  	  V'       d   . p	MR p	V Fy  pVR8X  d    V	# \        P                  P                  WRRV ,          4      p
\        P                  P                  V
4      '       g   K\  V'       d   V	P                  V
4       Kw  V
u # 	  V	# )NLC_MESSAGESr(   Cz%s.mo)LANGUAGELC_ALLr   LANG)
_default_localedirosenvironr0   r   rb   rp   pathjoinexists)domain	localedir	languagesallenvarro   nelangslangnelangr3   mofiles   &&&&       r   r`   r`     s   &		BE**..'CsIIcN		 C
 iS!G"4(F$v& ) 
 3; M i}g>NO77>>&!!f%  Mr   c           	         Vf   \         p\        WVRR7      pV'       g&   V'       d   \        4       # ^ RIHp \        VRV 4      hR pV F  pV\        P                  P                  V4      3p	\        P                  V	4      p
V
f9   \        VR4      ;_uu_ 4       p\        P                  W! V4      4      p
R R R 4       ^ R IpVP                  V
4      p
Vf   T
pK  VP                  V
4       K  	  V#   + '       g   i     LD; i)NT)r  )ENOENTz$No translation file found for domainrb)r   r`   r   errnor	  FileNotFoundErrorr   r   abspath_translationsr0   open
setdefaultcopyr   )r   r   r  class_r   mofilesr	  r3   r  keytry   r  s   &&&&&        r   translationr    s    ~ 6iT:G#%%  FP 	P Frwwv./c"9fd##r!,,S&*= $ 	IIaL>F"! " M $#s   C33Dr   c                B    \        WR R7      pVP                  V4       R# )T)r   N)r  r   )r   r   r   r  s   &&$ r   r   r   2  s    F5AIIer   messagesc                     V e   V s \         # rs   )_current_domain)r   s   &r   
textdomainr  =  s     r   c                 P    Ve
   V\         V &   \         P                  V \        4      # rs   )_localedirsr0   r   )r   r   s   &&r   bindtextdomainr  D  s$    'F??6#566r   c                      \        V \        P                  V R 4      4      pTP	                  T4      #   \         d    Tu # i ; irs   )r  r  r0   r   r   )r   r   r  s   && r   dgettextr   K  sE     => 99W      3 AAc                      \        V \        P                  V R 4      4      pTP                  YT4      #   \         d    \	        T4      pT^8X  d   Tu # Tu # i ; irs   )r  r  r0   r   rB   r   )r   r   r   r%   r  s   &&&& r   	dngettextr#  S  s\     => ::fa((  QK6MM    4 AAAc                      \        V \        P                  V R 4      4      pTP	                  Y4      #   \         d    Tu # i ; irs   )r  r  r0   r   r   )r   r   r   r  s   &&& r   	dpgettextr&  _  sE     => ::g''  r!  c                      \        V \        P                  V R 4      4      pTP                  YY44      #   \         d    \	        T4      pT^8X  d   Tu # Tu # i ; irs   )r  r  r0   r   rB   r   )r   r   r   r   r%   r  s   &&&&& r   
dnpgettextr(  g  s\     => ;;w22  QK6MMr$  c                 "    \        \        V 4      # rs   )r   r  )r   s   &r   r   r   s  s    OW--r   c                 $    \        \        WV4      # rs   )r#  r  )r   r   r%   s   &&&r   r   r   w  s    _fa88r   c                 "    \        \        W4      # rs   )r&  r  )r   r   s   &&r   r   r   {  s    _g77r   c                 $    \        \        WW#4      # rs   )r(  r  )r   r   r   r%   s   &&&&r   r   r     s    owBBr   )r   r   Catalogr  r`   r  r   r  r   r#  r   r   r   r&  r   r(  ))r   )r   )z==z!=)<>z<=z>=)+-)*r   %))NNF)NNNFrs   )'__doc__rG   r   rJ   __all__r   r   base_prefixr   r
   r   r   r.   r   r/   r,   rD   rB   rZ   rp   r   r   r`   r  r  r   r  r  r  r  r   r#  r&  r(  r   r   r   r   r-  )r7   opsr8   s   000r   <module>r9     s3  
Z  	 
 WW\\#//7HE  8; $-[!#<K#<s1usr#<K4uc40	/d&!BH'T9> 9>xW& Wv!J DT  7	)(	3.98C$  Ls   C