+
    iC0  c                   s    . ROt ^ RItRtRtRt]],           tRt]R,           R	,           tR
tRt	]],           ]	,           ],           t
RR lt/ t ! R R4      t]! 4       t ! R R4      t ! R R4      tR# )ascii_letters	FormatterTemplateNz 	
ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZZ
0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c                 s    T;'       g    R P                  \        \        P                  V P	                  V4      4      4      # )Z )joinZmapstrZ
capitalizeZsplit)sZsep   &&(/usr/lib64/python3.14/string/__init__.pycapwordsr   %   s.     JJ3S>??    c                   s*   a  ] tR t^7t o RR ltRtV tR# )_TemplatePatternNc                s.    Vf   V # VP                  4       # N)_compile_pattern)selfZinstancecls   &&&r   __get__Z_TemplatePattern.__get__9   s    ;K##%%r	    r   )__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__   @r   r
   r
   7   s     & &r	   r
   c                   s   a a ] tR t^@t oRtRtRtRt]t	V 3R lt
]R 4       tR tR t]3R lt]3R	 ltR
 tR tRtVtV ;t# )r   Z$z(?a:[_a-z][_a-z0-9]*)Nc                sD   < \         SV `  4        V P                  4        R # r   )Zsuper__init_subclass__r   )r   	__class__s   &r   r   ZTemplate.__init_subclass__N   s    !#r	   c           	     s   ^ RI pV P                  P                  R\        4      pV\        J dW   VP	                  V P
                  4      pV P                  pV P                  ;'       g    V P                  pRV RV RV RV R2	pV P                  f   VP                  V n        VP                  W P                  VP                  ,          4      ;q`n        V# )    Npatternz
            z(?:
              (?P<escaped>zC)  |   # Escape sequence of two delimiters
              (?P<named>zJ)       |   # delimiter and a Python identifier
              {(?P<braced>z)} |   # delimiter and a braced identifier
              (?P<invalid>)             # Other ill-formed delimiter exprs
            )
            )reZ__dict__Zgetr
   Zescape	delimiter	idpatternbraceidpatternflagsZ
IGNORECASEZcompileZVERBOSEr   )r   r   r   ZdelimZidZbidZpats   &      r   r   ZTemplate._compile_patternR   s    ,,""9.>?&&IIcmm,EB$$55CG  ' " 5 !	G 99CIJJw		BJJ0FGGk
r	   c                s    Wn         R # r   template)r   r%   r   r   __init__ZTemplate.__init__h   s     r	   c                s    VP                  R 4      pV P                  RV P                  RR7      pV'       g   ^p^pM/V\        RP	                  VRR 4      4      ,
          p\        V4      p\        RWT3,          4      h)invalidNT)Zkeepends z.Invalid placeholder in string: line %d, col %di)Zstartr%   Z
splitlinesZlenr   
ValueError)r   moiZlinesZcolnoZlinenos   &&    r   _invalidZTemplate._invalidm   s|    HHYbq!,,d,;EFBGGE#2J/00EZFI ) * 	*r	   c                  a a S\         J d   VoMV'       d   ^ RIHp V! VS4      oVV 3R lpS P                  P	                  VS P
                  4      # )r   ChainMapc                 s6  < V P                  R 4      ;'       g    V P                  R4      pVe   \        SV,          4      # V P                  R4      e   SP                  # V P                  R4      e   SP                  V 4       \	        RSP
                  4      hnamedbracedescapedr'   #Unrecognized named group in pattern)groupr   r    r,   r)   r   r*   r1   mappingr      & r   convertZ$Template.substitute.<locals>.convert   s    HHW%;;();E 75>**xx	".~~%xx	".b!B!\\+ +r	   _sentinel_dictZcollectionsr/   r   Zsubr%   r   r7   Zkwsr/   r9      bb,  r   
substituteZTemplate.substitutey   sD    n$G,sG,G
	+ ||77r	   c               r-   )r   r.   c                 sx  < V P                  R 4      ;'       g    V P                  R4      pVe    \        SV,          4      # V P                  R4      e   SP                  # V P                  R4      e   V P                  4       # \	        RSP
                  4      h  \         d    T P                  4       u # i ; ir0   )r5   r   ZKeyErrorr    r)   r   r6   r8   r   r9   Z)Template.safe_substitute.<locals>.convert   s    HHW%;;();E &wu~.. xx	".~~%xx	".xxz!B!\\+ +   &88:%&s   B B98B9r:   r<   r=   r   safe_substituteZTemplate.safe_substitute   sD    n$G,sG,G	+ ||77r	   c                s0   V P                   P                  V P                  4       Fl  pVP                  R 4      e    R# VP                  R4      e   K.  VP                  R4      e   KC  VP                  R4      e   KX  \	        RV P                   4      h	  R# )r'   Fr1   r2   r3   r4   T)r   finditerr%   r5   r)   )r   r*   s   & r   is_validZTemplate.is_valid   s|    ,,''6Bxx	".!)HHX&.HHY'/ !!FLL" " 7 r	   c                sx   . pV P                   P                  V P                  4       F  pVP                  R 4      ;'       g    VP                  R4      pVe   W19  d   VP	                  V4       KJ  Ve   KP  VP                  R4      e   Ke  VP                  R4      e   Kz  \        RV P                   4      h	  V# )r1   r2   r'   r3   r4   )r   r@   r%   r5   appendr)   )r   Zidsr*   r1   s   &   r   get_identifiersZTemplate.get_identifiers   s    ,,''6BHHW%;;();E U%5

5!-HHY'/HHY'/ !!FLL" " 7 
r	   r$   )r   r   r   r   r    r!   r"   r#   r
   r   r   Zclassmethodr   r&   r,   r;   r>   r?   rA   rC   r   r   Z__classcell__)r   r   s   @@r   r   r   @   sh      I
 )INEG  *!

* "0 8( '5 8, r	   c                   sZ   a  ] tR t^t o R tR tRR ltR tR tR t	R t
R tR	 tR
tV tR# )r   c               s&    V P                  WV4      # r   )vformat)r   format_stringargskwargss   ""*,r   formatZFormatter.format   s    ||M88r	   c                sh    \        4       pV P                  WW4^4      w  rVV P                  WBV4       V# )i   )Zset_vformatcheck_unused_args)r   rE   rF   rG   	used_argsresult_s   &&&&   r   rD   ZFormatter.vformat   s2    E	MM-v!L	y7r	   c           
     s   V^ 8  d   \        R4      h. pV P                  V4       EF  w  rrV'       d   VP                  V4       V	f   K&  \        P                  ! V	4      w  rVR8X  d.   VRJ d   \        R4      h\        V4      V	,           p	V^,          pM+\        V\        4      '       d   V'       d   \        R4      hRpV P                  WV4      w  rVP                  V4       V P                  W4      pV P                  WVWE^,
          VR7      w  rVP                  V P                  W4      4       EK  	  RP                  V4      V3# )r   zMax string recursion exceededr(   FzJcannot switch from manual field specification to automatic field numberingzJcannot switch from automatic field numbering to manual field specification)auto_arg_index)r)   parserB   _stringformatter_field_name_splitr   
isinstanceint	get_fieldZaddconvert_fieldrI   format_fieldr   )r   rE   rF   rG   rK   Zrecursion_depthrN   rL   Zliteral_text
field_nameformat_spec
conversionZfield_firstrM   objZarg_useds   &&&&&&&         r   rI   ZFormatter._vformat   sR   Q<==

=) >Lk l+ %
 ")!C!CJ!O"$%.( *5 6 6 "%^!4z!AJ"a'NS11%( *9 : :
 &+N !%z Hh' ((9 /3mmvq0#1 /< /3+ d//ABY *\ wwv..r	   c                sN    \        V\        4      '       d	   W!,          # W1,          # r   )rR   rS   )r   ZkeyrF   rG      &&&&r   	get_valueZFormatter.get_value  s    c39;r	   c                s    R # r   r   )r   rK   rF   rG   r[   r   rJ   ZFormatter.check_unused_args  s    r	   c                s    \        W4      # r   )rH   )r   valuerX   r   r   rV   ZFormatter.format_field  s    e))r	   c                s    Vf   V# VR8X  d   \        V4      # VR8X  d   \        V4      # VR8X  d   \        V4      # \        RP	                  V4      4      h)Nr   ZrZaz"Unknown conversion specifier {0!s})r   ZreprZasciir)   rH   )r   r]   rY   r   r   rU   ZFormatter.convert_field  sZ    L3u:3;3<=DDZPQQr	   c                s.    \         P                  ! V4      # r   )rP   Zformatter_parser)r   rE   r   r   rO   ZFormatter.parse/  s    ''66r	   c                s    \         P                  ! V4      w  rEV P                  WBV4      pV F"  w  rxV'       d   \        Wh4      pK  Wh,          pK$  	  Wd3# r   )rP   rQ   r\   Zgetattr)	r   rW   rF   rG   ZfirstZrestrZ   Zis_attrr+   s	   &&&&     r   rT   ZFormatter.get_field8  sO    88DnnU&1 JGcof	  zr	   r   N)r   )r   r   r   r   rH   rD   rI   r\   rJ   rV   rU   rO   rT   r   r   r   r   r   r   r      s9     94/n*
R(7 r	   )r    ascii_lowercaseascii_uppercaser   digits	hexdigits	octdigits	printablepunctuation
whitespacer   r   r   )Z__all__rP   re   r^   r_   r    r`   ra   rb   rd   rc   r   r;   r
   r   r   r   r	   r   <module>rf      s   "2  
../1	X(		5]"[0:=	
@ & & $% ~ ~Vz zr	   