*CG/SQrSSKrSrSrSr\\-rSr\S-S-rS rS r \\-\ -\-r SS jr SSK r SS KJr 0r"S S5r\R'5 "SS5rg)) ascii_lettersascii_lowercaseascii_uppercasecapwordsdigits hexdigits octdigits printable punctuation whitespace FormatterTemplateNz abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789abcdefABCDEF01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~cU=(d SR[[RUR U555$)N )joinmapstr capitalizesplit)sseps -/opt/alt/python313/lib64/python3.13/string.pyrr%s, J3  S> ??)ChainMapc|^\rSrSrSrSrSr\Rr U4Sjr Sr Sr \ 4Sjr\ 4S jrS rS rS rU=r$) r 9$z(?a:[_a-z][_a-z0-9]*)Nc |>[TU]5 SUR;a URnOZ[R "UR 5nURnUR=(d URnSUSUSUSUS3 n[R"XR[R-5Ulg)Npatternz z(?: (?PzC) | # Escape sequence of two delimiters (?PzJ) | # delimiter and a Python identifier {(?Pz)} | # delimiter and a braced identifier (?P) # Other ill-formed delimiter exprs ) ) super__init_subclass____dict__r%_reescape delimiter idpatternbraceidpatterncompileflagsVERBOSE)clsr%delimidbid __class__s rr'Template.__init_subclass__Es !#  $kkGJJs}}-EB$$5 C G '"5! Gkk'99s{{+BC rcXlgNtemplate)selfr:s r__init__Template.__init__Ws rcURS5nURSURSS9nU(dSnSnO+U[SR USS55- n[U5n[ SXT4-5e)NinvalidT)keependsz.Invalid placeholder in string: line %d, col %d)startr: splitlineslenr ValueError)r;moilinescolnolinenos r_invalidTemplate._invalid\s| HHY  bq!,,d,;EFBGGE#2J/00EZFI )* *rc ^^T[LaUmOU(a [UT5mUU4SjnTRRUTR5$)Nc&>URS5=(d URS5nUb[TU5$URS5b TR$URS5bTRU5 [ STR 5eNnamedbracedescapedr?#Unrecognized named group in pattern)grouprr+rMrGr%rHrRmappingr;s rconvert$Template.substitute..convertnsHHW%;();E 75>**xx ".~~%xx ". b!B!\\+ +r_sentinel_dict _ChainMapr%subr:r;rXkwsrYs`` r substituteTemplate.substitutehsA n $G W-G +||77rc ^^T[LaUmOU(a [UT5mUU4SjnTRRUTR5$)Ncf>URS5=(d URS5nUb[TU5$URS5b TR$URS5bUR5$[ STR 5e![a UR5s$f=frQ)rVrKeyErrorr+rGr%rWs rrY)Template.safe_substitute..convertsHHW%;();E &wu~..xx ".~~%xx ".xxz!B!\\+ +  &88:%&s BB0/B0r[r_s`` rsafe_substituteTemplate.safe_substitute{sA n $G W-G +||77rc$URRUR5HgnURS5b gURS5bM+URS5bM?URS5bMS[ SUR5e g)Nr?FrRrSrTrUT)r%finditerr:rVrG)r;rHs ris_validTemplate.is_valids|,,'' 6Bxx ".!)HHX&.HHY'/!!FLL""7rcl/nURRUR5HnURS5=(d URS5nUbX1;aUR U5 MGUbMLURS5bM`URS5bMt[ SUR5e U$)NrRrSr?rTrU)r%rjr:rVappendrG)r;idsrHrRs rget_identifiersTemplate.get_identifierss,,'' 6BHHW%;();E U%5 5!-HHY'/HHY'/!!FLL""7 rr9)__name__ __module__ __qualname____firstlineno__r+r,r-r) IGNORECASEr/r'r<rMr\rargrkrp__static_attributes__ __classcell__)r5s@rr r 9sRI )IN NNED$! *"08&'58* rr cP\rSrSrSrSrS SjrSrSrSr Sr S r S r S r g )r c&URXU5$r8)vformat)r; format_stringargskwargss rformatFormatter.formats||M88rch[5nURXX4S5upVURXBU5 U$)N)set_vformatcheck_unused_args)r;r}r~r used_argsresult_s rr|Formatter.vformats2E MM-v!L  y7 rc 8US:a [S5e/nURU5HuppU(aURU5 U cM#U S:Xa!USLa [S5e[U5n US- nO)U R 5(aU(a [S5eSnUR XU5upUR U 5 URX5n URXUXES- US9upURURX55 M SRU5U4$)NrzMax string recursion exceededrBFzJcannot switch from manual field specification to automatic field numberingrA)auto_arg_index) rGparsernrisdigit get_fieldadd convert_fieldr format_fieldr)r;r}r~rrrecursion_depthrr literal_text field_name format_spec conversionobjarg_useds rrFormatter._vformats= Q <= = =) >Lk l+% #%.(*566"%^!4J"a'N''))%(*566 &+N!%z H  h'((9/3mmvq0#1/</3+  d//ABW*Zwwv..rc<[U[5(aX!$X1$r8) isinstanceint)r;keyr~rs r get_valueFormatter.get_values c3  9 ; rcgr8)r;rr~rs rrFormatter.check_unused_argss rc[X5$r8)r)r;valuers rrFormatter.format_fields e))rcUcU$US:Xa [U5$US:Xa [U5$US:Xa [U5$[SR U55e)Nrraz"Unknown conversion specifier {0!s})rreprasciirGr)r;rrs rrFormatter.convert_field sZ  L 3 u:  3 ;  3 < =DDZPQQrc.[R"U5$r8)_stringformatter_parser)r;r}s rrFormatter.parses'' 66rc[R"U5upEURXBU5nUHupxU(a [Xh5nMXhnM Xd4$r8)rformatter_field_name_splitrgetattr) r;rr~rfirstrestris_attrrIs rrFormatter.get_field(sO88D nnU&1JGcof  zrrN)r)rrrsrtrurr|rrrrrrrrwrrrr r s69!"3/l * R(7 rr r8)__all__rr rrrrrrr r rrer) collectionsr r]r\r r'r rrrrs" 2 ../1  X  (  5 ] "[ 0: = @-rrl yyr