+
    ˜h©jY	 ã                  óN	  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIHt ^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH t  ^ RIH!t! ^ RIH"t" ^ RIH#t# ^ RI$t$^RI%H&t& ^RI%H't' ^RI(H)t) ^RIH*t* ^RI%H+t+ ]"! R4      t,]"! RRR7      t-]"! R ]R!]3,          R"7      t.]"! R#R$R"7      t/]"! R%R&R"7      t0]"! R'R(R"7      t1]"! R)R*R"7      t2R+ R, lt3 ! R- R.4      t4R/ R0 lt5R1 R2 lt6RËR3 R4 llt7R5 R6 lt8R7 R8 lt9R9 R: lt:R; R< lt;]"! R=R>R"7      t<R? R@ lt=RA RB lt>]"! RC4      t?]"! RD4      t@ ! RE RF4      tARG tB]RHRRIR!/RJ RK ll4       tC]RHRRIRL/RM RN ll4       tCRHRRIRL/RO RP lltCRQ RR ltDRÌRS RT lltERÍRU RV lltFRÍRW ltGRÎRX RY lltHRZ tIR[ tJRÏR\ R] lltK ! R^ R_4      tLR` tMRa tNRÐRb ltORc tPRÑRd ltQ]"! ReRfR"7      tR ! Rg Rh]]-,          4      tS ! Ri Rj]S]-,          4      tT ! Rk Rl]S]-,          4      tU]!'       d
   ]StV]StW]XtY]XtZM]U;tVtY]T;tWtZRm Rn lt[ ! Ro Rp4      t\]!'       d   ]Xt]M]\P¼                  t] ! Rq Rr4      t_Rs Rt lt`Ru Rv ltaRw Rx ltbRÒRy Rz lltcR{ R| ltdR} R~ lteR R€ ltfRËR� R‚ lltgRƒ R„ lthR… ti ! R† R‡]X4      tj ! Rˆ R‰]],,          4      tk ! RŠ R‹]],,          4      tl ! RŒ R�]],,          4      tm ! RŽ R�]n4      to ! R� R‘]p4      tq ! R’ R“]qR”7      tr]!'       d
   ^ R•IHsts ]sttM]rtt]"! R–]Pê                  R"7      tvRÓR— R˜ lltw^sxR™ Rš ltyR› Rœ ltzRÔR� lt{ ! Rž RŸ]|4      t}RËR  R¡ llt~R¢ R£ lt/ t€R¤]�R¥&   R¦ R§ lt‚]EP                  ! R¨4      t„RÕR© Rª llt…R« R¬ lt†]EP                  ! R­4      t‡]EP                  ! R®4      tˆ]ˆ]‡3R¯ R° llt‰]p! R4      tŠR± t‹]EP                  ! R²4      tŒ ! R³ R´4      t� ! Rµ R¶4      tŽR· t�RÖR¸ R¹ llt�Rº R» lt‘R¼ t’R½ R¾ lt“R¿ RÀ lt”RÁ RÂ lt•]EP                  ! RÃ4      t–RÄ RÅ lt—RÆ RÇ lt˜RÓRÈ lt™ ! RÉ RÊ]Pê                  4      tš]šEP6                  t›]#],]*]šEP6                  ,          3,          tœR# )×z…Routines to help with the creation, loading and introspection of
modules, classes, hierarchies, attributes, functions, and methods.

)ÚannotationsN©Úupdate_wrapper)ÚCodeType)ÚAny)ÚCallable)Úcast)ÚDict)Ú	FrozenSet)ÚGeneric)ÚIterator)ÚList)ÚNoReturn)ÚOptional)Úoverload)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnion)Ú_collections)Úcompat)ÚHAS_CYEXTENSION)ÚLiteral)ÚexcÚ_TÚ_T_coT)Ú	covariantÚ_F.)ÚboundÚ_MPzmemoized_property[Any]Ú_MAz#HasMemoized.memoized_attribute[Any]Ú_HPzhybridproperty[Any]Ú_HMzhybridmethod[Any]c               ó    € V ^8„  d   QhRRRR/# )é   Úxr   ÚreturnÚstr© )Úformats   "ÚV/var/www/html/bestweb/venv/lib/python3.14/site-packages/sqlalchemy/util/langhelpers.pyÚ__annotate__r.   ?   s   € ÷ $ñ $ˆsð $�sñ $ó    c                ó¬   € V P                  R 4      p \        P                  ! 4       pVP                  V 4       \	        \
        VP                  4       4      # )zutf-8)Úencoder   Úmd5_not_for_securityÚupdater   r*   Ú	hexdigest)r(   Úms   & r-   Úmd5_hexr6   ?   s<   € Ø	�‰�Ó€AÜ×#Ò#Ó%€AØ‡H�HˆQ„KÜ”�Q—[‘[“]Ó#Ð#r/   c                  óB   € ] tR t^Ft$ RtRtR]R&   R R ltR R ltRt	R	# )
Úsafe_reraiseaÔ  Reraise an exception after invoking some
handler code.

Stores the existing exception info before
invoking so that it is maintained across a potential
coroutine context switch.

e.g.::

    try:
        sess.commit()
    except:
        with safe_reraise():
            sess.rollback()

TODO: we should at some point evaluate current behaviors in this regard
based on current greenlet, gevent/eventlet implementations in Python 3, and
also see the degree to which our own asyncio (based on greenlet also) is
impacted by this. .rollback() will cause IO / context switch to occur in
all these scenarios; what happens to the exception context from an
"except:" block if we don't explicitly store it? Original issue was #2703.

Ú	_exc_infozdUnion[None, Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]]c               ó   € V ^8„  d   QhRR/# ©r'   r)   ÚNoner+   )r,   s   "r-   r.   Úsafe_reraise.__annotate__k   s   € ÷ (ñ (˜4ñ (r/   c                	ó:   € \         P                  ! 4       V n        R # ©N)ÚsysÚexc_infor9   ©Úselfs   &r-   Ú	__enter__Úsafe_reraise.__enter__k   s   € ÜŸš›ˆŽr/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   Útype_zOptional[Type[BaseException]]ÚvaluezOptional[BaseException]Ú	tracebackzOptional[types.TracebackType]r)   r   r+   )r,   s   "r-   r.   r=   n   s2   € ÷ 2ñ 2à,ð2ð 'ð2ð 1ð	2ð
 
ñ2r/   c                	óÀ   € V P                   f   Q hVf.   V P                   w  rEpVf   Q hR V n         VP                  V4      hR V n         Vf   Q hVP                  V4      hr?   )r9   Úwith_traceback)rC   rG   rH   rI   Úexc_typeÚ	exc_valueÚexc_tbs   &&&&   r-   Ú__exit__Úsafe_reraise.__exit__n   so   € ð �~‰~Ò)Ð)Ð)àŠ=Ø*.¯.©.Ñ'ˆH ØÒ(Ð(Ð(Ø!ˆDŒNØ×*Ñ*¨6Ó2Ð2à!ˆDŒNØÒ$Ð$Ð$Ø×&Ñ& yÓ1Ð1r/   )r9   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ú__annotations__rD   rO   Ú__static_attributes__r+   r/   r-   r8   r8   F   s'   ‡ ñð0 €Iðó õ(÷2ñ 2r/   r8   c               ó    € V ^8„  d   QhRRRR/# )r'   ÚclsúType[_T]r)   zIterator[Type[_T]]r+   )r,   s   "r-   r.   r.   �   s   € ÷ ñ ˜ð Ð&8ñ r/   c              #  óÔ   "  € \        4       pV .pV'       dO   VP                  4       p W9   d   K   VP                  V 4       VP                  V P	                  4       4       V x € KV  R # 5ir?   )ÚsetÚpopÚaddÚextendÚ__subclasses__)rZ   ÚseenÚstacks   &  r-   Úwalk_subclassesrd   �   sS   é € Ü“U€DàˆE€Eß
Ø�i‰i‹kˆØŒ;Ùà�H‰H�SŒMØ�‰�S×'Ñ'Ó)Ô*ØŒ	ñ ùs   ‚A(˜AA(c               ó    € V ^8„  d   QhRRRR/# )r'   Úelementr   r)   r*   r+   )r,   s   "r-   r.   r.   �   s   € ÷ 6ñ 6 3ð 6¨3ñ 6r/   c                ó~   € \        V \        4      '       d   V #  \        V 4      #   \         d    R T ,          u # i ; i)zunprintable element %r)Ú
isinstancer*   Ú	Exception)rf   s   &r-   Ústring_or_unprintablerj   �   s=   € Ü�'œ3×ÒØˆð	6Ü�w“<ÐøÜô 	6Ø+¨gÕ5Ò5ð	6ús   š
% ¥<»<c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rZ   ú	Type[Any]Úuse_nameúOptional[str]r)   r*   r+   )r,   s   "r-   r.   r.   ™   s)   € ÷ Oñ OØ	ðOØ+ðOàñOr/   c                óˆ   € T;'       g    V P                   pR P                  R \        P                  ! RV4       4       4      # )Ú c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5ir?   )Úlower)Ú.0Úns   & r-   Ú	<genexpr>Ú(clsname_as_plain_name.<locals>.<genexpr>�   s   é € ÐNÑ'M !—G‘G—I�IÓ'Mùs   ‚z([A-Z][a-z]+|SQL))rQ   ÚjoinÚreÚfindall)rZ   rm   Únames   && r-   Úclsname_as_plain_namer{   ™   s6   € ð ×#Ð#�s—|‘|€DØ�8‰8ÑN¤r§z¢zÐ2FÈÔ'MÓNÓNÐNr/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   Úinstance_or_clszUnion[Type[Any], object]Úagainst_methodúCallable[..., Any]r)   Úboolr+   )r,   s   "r-   r.   r.       s&   € ÷ ,ñ ,Ø-ð,à&ð,ð 
ñ,r/   c                ó‚   € \        V \        4      '       g   V P                  pMT pVP                  p\	        W#4      pWA8g  # )z1Return True if the two class methods don't match.)rh   ÚtypeÚ	__class__rQ   Úgetattr)r}   r~   Úcurrent_clsÚmethod_nameÚcurrent_methods   &&   r-   Úmethod_is_overriddenrˆ       s?   € ô �o¤t×,Ò,Ø%×/Ñ/‰à%ˆà ×)Ñ)€Kä'.¨{Ó'H€NàÑ+Ð+r/   c               ó    € V ^8„  d   QhRRRR/# )r'   ÚslcÚslicer)   úTuple[Any, ...]r+   )r,   s   "r-   r.   r.   ²   s   € ÷ ñ �eð  ñ r/   c                óÖ   € . pV P                   V P                  V P                  3 F6  p\        VR4      '       d   VP	                  4       pVP                  V4       K8  	  \        V4      # )zjdecode a slice object as sent to __getitem__.

takes into account the 2.5 __index__() method, basically.

Ú	__index__)ÚstartÚstopÚstepÚhasattrrŽ   ÚappendÚtuple)rŠ   Úretr(   s   &  r-   Údecode_slicer–   ²   sU   € ð €CØ�Y‰Y˜Ÿ™ #§(¡(Ó*ˆÜ�1�k×"Ò"Ø—‘“ˆAØ�
‰
�1Žñ +ô �‹:Ðr/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   ÚusedúSequence[str]Úbasesr*   r)   zIterator[str]r+   )r,   s   "r-   r.   r.   À   s&   € ÷ Mñ M˜-ð M°ð M¸ñ Mr/   c           
   '  ó  a"  € \        V 4      pV Fi  o\        P                  ! S3\        V3R  l\	        R4      4      4      pV F!  pWB9  g   K  VP                  V4       Vx €  KW  	  \        RS,          4      h	  R# 5i)c                ó(   <€ S\        V 4      ,           # r?   ©r*   )ÚiÚbases   &€r-   Ú<lambda>Ú!_unique_symbols.<locals>.<lambda>Å   s   ø€ ˜$¤ Q£ž-r/   iè  z&exhausted namespace for symbol base %sN)r]   Ú	itertoolsÚchainÚmapÚranger_   Ú	NameError)r˜   rš   Úused_setÚpoolÚsymrŸ   s   &*   @r-   Ú_unique_symbolsrª   À   st   øé € Ü�4‹y€HÛˆÜ�ŠØˆGÜÔ'¬¨t«Ó5ó
ˆó ˆCØÖ"Ø—‘˜SÔ!Ø’	Úñ	 ô ÐDÀtÕKÓLÐLó ùs   ƒAB Á0B c               ó$   € V ^8„  d   QhRRRRRR/# )r'   ÚfnzCallable[[int], Any]rt   Úintr)   zIterator[Any]r+   )r,   s   "r-   r.   r.   Ð   s"   € ÷ ñ Ð%ð ¨#ð °-ñ r/   c              #  óf   "  € V'       d%   W( ^,           ,          pV ! V4      x € W,          pK,  R# 5i)z6Call the given function given each nonzero bit from n.Nr+   )r¬   rt   Úbs   && r-   Úmap_bitsr°   Ð   s,   é € ÷ Ø��a•�LˆÙ�‹eŠØ	�Šñ ùs   ‚1‹&1Ú_Fnr   c               ó    € V ^8„  d   QhRRRR/# )r'   Útargetr   r)   zCallable[[_Fn], _Fn]r+   )r,   s   "r-   r.   r.   Þ   s    € ÷ S,ñ S,Ð(ð S,Ð-Añ S,r/   c                ó.   a € R V 3R llp\        VS 4      # )z'A signature-matching decorator factory.c               ó    € V ^8„  d   QhRRRR/# )r'   r¬   r±   r)   r+   )r,   s   "r-   r.   Údecorator.<locals>.__annotate__á   s   € ÷ N-ñ N-�Sð N-˜Sñ N-r/   c                ó¤  <€ \         P                  ! V 4      '       g(   \         P                  ! V 4      '       g   \        R 4      h\	        V RR4      pVe&   RV n         \        P                  ! V 4      pWn        M\        P                  ! V 4      pR\        VP                  ;'       g    R4      ,          p\        P                  VP                  ;'       g    R4      pVP                  / VVR7      p\        \        RV^ ,          4      4      \        RVR,          4      ,           V P                   3,           p\#        VRR4      w  rg\        WgR7      pVP%                  \'        VR	R
7      4       V P                   VR&   \         P(                  ! V 4      '       d   RVR&   RVR&   M
RVR&   RVR&   R\+        V^ ,          4      9   d   RV,          p	M	RV,          p	VSWpRV P,                  /p
\        \.        P0                  \3        WšV P                   4      4      pV P4                  Vn        V P6                  Vn        \9        W°4      #   Yn        i ; i)znot a decoratable functionr.   N)r   ÚdefaultsÚkwonlydefaultszTuple[str, ...]:é   é   Nr³   r¬   )r³   r¬   F©Úgroupedrz   zasync Úprefixzawait Útarget_prefixÚ Ú__zf%(prefix)sdef %(name)s%(grouped_args)s:
    return %(target_prefix)s%(target)s(%(fn)s, %(apply_pos)s)
ze%(prefix)sdef %(name)s%(grouped_args)s:
    return %(target_prefix)s%(target)s(%(fn)s, %(apply_kw)s)
rQ   r?   r+   )ÚinspectÚ
isfunctionÚismethodri   r„   r.   r   Úinspect_getfullargspecÚlenr¸   ÚdictÚfromkeysr¹   Ú_replacer”   r   rQ   rª   r3   Úformat_argspec_plusÚiscoroutinefunctionÚreprrR   ÚtypesÚFunctionTypeÚ_exec_code_in_envÚ__defaults__Ú__kwdefaults__r   )r¬   ÚannofuncÚspecÚempty_defaultsÚempty_kwdefaultsÚnamesÚ	targ_nameÚfn_nameÚmetadataÚcodeÚenvÚ	decoratedr³   s   &           €r-   ÚdecorateÚdecorator.<locals>.decorateá   s$  ø€ Ü×!Ò! "×%Ò%¬g×.>Ò.>¸r×.BÒ.BÜÐ8Ó9Ð9ô ˜2˜~¨tÓ4ˆØÒØ"ˆBŒOð+Ü×4Ò4°RÓ8�à"*•ä×0Ò0°Ó4ˆDð !¤3 t§}¡}×':Ð':¸Ó#;Õ;ˆÜŸ=™=¨×)<Ñ)<×)BÐ)BÀÓCÐØ�}‰}ØØ#Ø+ð ó 
ˆô ”$Ð(¨$¨q­'Ó2Ó3ÜÐ$ d¨3¥iÓ0õ1à�{‰{ˆnõð 	ô
 -¨U°H¸dÓCÑˆ	ä-1¸Ô-OˆØ�‰Ô+¨D¸%Ô@ÔAØŸ;™;ˆ�Ñä×&Ò& r×*Ò*Ø!)ˆH�XÑØ(0ˆH�_Ò%à!#ˆH�XÑØ(*ˆH�_Ñ%ð ”4˜˜Q�“=Ô ðð õ‰Dð
ð õˆDð �vØØ˜Ÿ™ð
ˆô Ü×ÑÜ˜d¨¯©Ó5ó
ˆ	ð "$§¡ˆ	ÔØ#%×#4Ñ#4ˆ	Ô Ü˜iÓ,Ð,øðE #+•ús   ÁI ÉIr   )r³   rÝ   s   f r-   Ú	decoratorrß   Þ   s   ø€ ÷N-ð N-ô` ˜( FÓ+Ð+r/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   rÚ   zUnion[str, types.CodeType]rÛ   úDict[str, Any]rØ   r*   r)   r   r+   )r,   s   "r-   r.   r.   4  s,   € ÷ ñ Ø
$ðØ+9ðØDGðàñr/   c                ó(   € \        W4       W,          # r?   )Úexec)rÚ   rÛ   rØ   s   &&&r-   rÏ   rÏ   4  s   € ô 	ˆ„OØ�<Ðr/   Ú_PFÚ_TEc                  óP   € ] tR tRtRR R lltR tR R ltR R	 ltR
 R ltRt	R# )ÚPluginLoaderi?  Nc               ó    € V ^8„  d   QhRRRR/# )r'   Úgroupr*   Úauto_fnzOptional[Callable[..., Any]]r+   )r,   s   "r-   r.   ÚPluginLoader.__annotate__@  s   € ÷ ñ ØðØ#?ñr/   c                	ó,   € Wn         / V n        W n        R # r?   )ré   Úimplsrê   )rC   ré   rê   s   &&&r-   Ú__init__ÚPluginLoader.__init__@  s   € ð Œ
Ø%'ˆŒ
ØŽr/   c                	ó:   € V P                   P                  4        R # r?   )rí   ÚclearrB   s   &r-   rñ   ÚPluginLoader.clearG  s   € Ø�
‰
×ÑÖr/   c               ó    € V ^8„  d   QhRRRR/# )r'   rz   r*   r)   r   r+   )r,   s   "r-   r.   rë   J  s   € ÷ 
ñ 
˜ð 
 ñ 
r/   c                	óè  € WP                   9   d   V P                   V,          ! 4       # V P                  '       d/   V P                  V4      pV'       d   W P                   V&   V! 4       # \        P                  ! V P                  4       F?  pVP
                  V8X  g   K  VP                  V P                   V&   VP                  4       u # 	  \        P                  ! R V P                  : RV: 24      h)zCan't load plugin: Ú:)	rí   rê   r   Úimportlib_metadata_getré   rz   Úloadr   ÚNoSuchModuleError)rC   rz   ÚloaderÚimpls   &&  r-   r÷   ÚPluginLoader.loadJ  s¯   € Ø—:‘:ÔØ—:‘:˜dÖ#Ó%Ð%à�<�<ˆ<Ø—\‘\ $Ó'ˆFßØ#)—
‘
˜4Ñ Ù“x�ä×1Ò1°$·*±*Ö=ˆDØ�y‰y˜DÖ Ø#'§9¡9�—
‘
˜4Ñ Ø—y‘y“{Ò"ñ >ô
 ×#Ó#Ø*.¯*¬*²dÐ;ó
ð 	
r/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   rz   r*   Ú
modulepathÚobjnamer)   r<   r+   )r,   s   "r-   r.   rë   ]  s(   € ÷  ñ  ˜Sð  ¨cð  ¸Cð  ÀDñ  r/   c                	ó4   aa€ VV3R  lpW@P                   V&   R# )c                 ó†   <€ \        S4      p SP                  R 4      R,           F  p\        W4      p K  	  \        V S4      # )Ú.ºrº   NN)Ú
__import__Úsplitr„   )ÚmodÚtokenrý   rþ   s     €€r-   r÷   Ú#PluginLoader.register.<locals>.load^  sA   ø€ Ü˜ZÓ(ˆCØ#×)Ñ)¨#Ó.¨r×2Ð2�Ü˜cÓ)’ñ 3ä˜3 Ó(Ð(r/   N©rí   )rC   rz   rý   rþ   r÷   s   &&ff r-   ÚregisterÚPluginLoader.register]  s   ù€ ö	)ð  �
‰
�4Ór/   c               ó    € V ^8„  d   QhRRRR/# )r'   rz   r*   r)   r<   r+   )r,   s   "r-   r.   rë   f  s   € ÷ ñ ˜sð  tñ r/   c                	ó    € V P                   V R # r?   r  )rC   rz   s   &&r-   Ú
deregisterÚPluginLoader.deregisterf  s   € Ø�J‰J�tÒr/   )rê   ré   rí   r?   )
rQ   rR   rS   rT   rî   rñ   r÷   r	  r  rX   r+   r/   r-   rç   rç   ?  s    † ÷òõ
õ& ÷ñ r/   rç   c                ó@  €  \         P                  pV P                  pVP                  p\	        VP
                  R V 4      \        VP                  V,          4      3#   \         d5    \        P                  ! T 4      pT^ ,          \        T^,          4      3u # i ; ir?   )rÂ   ÚCO_VARKEYWORDSÚ__code__Úco_argcountÚlistÚco_varnamesr€   Úco_flagsÚAttributeErrorr   rÅ   )r¬   Úco_varkeywordsÚcoÚnargsrÓ   s   &    r-   Ú_inspect_func_argsr  j  sŽ   € ð
Ü ×/Ñ/ˆð �[‰[ˆØ—‘ˆä�—‘  Ð'Ó(Ü�—‘˜~Õ-Ó.ð
ð 	
øô ô &ô
 ×,Ò,¨RÓ0ˆØ�A�wœ˜T !�W›Ð%Ò%ð&ús   ‚A Á<BÂBÚ_setÚraiseerrc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   rZ   r‚   r  úOptional[Set[str]]r  zLiteral[True]r)   zSet[str]r+   )r,   s   "r-   r.   r.     s2   € ÷ ñ Ø	ðð ðð ð	ð
 ñr/   c               ó   € R # r?   r+   ©rZ   r  r  s   &$$r-   Úget_cls_kwargsr!  ~  s   € ñ r/   Fc               ó(   € V ^8„  d   QhRRRRRRRR/# ©r'   rZ   r‚   r  r  r  r€   r)   r+   )r,   s   "r-   r.   r.   ˆ  s,   € ÷ ñ Ø	ðØ*ðØ=Aðàñr/   c               ó   € R # r?   r+   r   s   &$$r-   r!  r!  ‡  s   € ñ r/   c               ó(   € V ^8„  d   QhRRRRRRRR/# r#  r+   )r,   s   "r-   r.   r.   �  s,   € ÷ 2ñ 2Ø	ð2Ø*ð2Ø=Að2àñ2r/   c               óB  € VRJ pV'       d   \        4       pVf   Q hV P                  P                  RR4      pT;'       dG    \        V\        P
                  4      ;'       d%    \        VP                  \        P                  4      pV'       dI   \        V4      w  rgVP                  V4       V'       g"   V'       g   V'       d   \        RV  R24      hR# MRpV'       d	   V'       d$   V P                   F  p\        W�R7      e   K   M	  VP                  R4       V# )aA  Return the full set of inherited kwargs for the given `cls`.

Probes a class's __init__ method, collecting all named arguments.  If the
__init__ defines a \**kwargs catch-all, then the constructor is presumed
to pass along unrecognized keywords to its base classes, and the
collection process is repeated recursively on each of the bases.

Uses a subset of inspect.getfullargspec() to cut down on method overhead,
as this is used within the Core typing system to create copies of type
objects which is a performance-sensitive operation.

No anonymous tuple arguments please !

Nrî   Fz
given cls z  doesn't have an __init__ method)r  rC   )r]   Ú__dict__Úgetrh   rÍ   rÎ   r  r   r  r3   Ú	TypeErrorÚ	__bases__r!  Údiscard)	rZ   r  r  ÚtoplevelÚctrÚhas_initrÖ   Úhas_kwÚcs	   &$$      r-   r!  r!  �  s÷   € ð" �tˆ|€HßÜ‹uˆØÒÐÐà
�,‰,×
Ñ
˜: uÓ
-€Cð 	÷ 	5ð 	5Ü�sœE×.Ñ.Ó/÷	5ð 	5ä�s—|‘|¤U§^¡^Ó4ð ÷ Ü*¨3Ó/‰ˆØ�‰�EÔçŸhßÜØ   Ð%EÐFóð ñ øàˆç—vØ—”ˆAÜ˜aÔ+Ô3Ùñ ð 	‡L�L�ÔØ€Kr/   c               ó    € V ^8„  d   QhRRRR/# )r'   Úfuncr   r)   ú	List[str]r+   )r,   s   "r-   r.   r.   Â  s   € ÷ 2ñ 2Ð,ð 2°ñ 2r/   c                ó<   € \         P                  ! V 4      ^ ,          # )zwReturn the set of legal kwargs for the given `func`.

Uses getargspec so is safe to call for methods, functions,
etc.

)r   rÅ   )r2  s   &r-   Úget_func_kwargsr5  Â  s   € ô ×(Ò(¨Ó.¨qÕ1Ð1r/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   r¬   r   Úno_selfr€   Ú_is_initr)   zcompat.FullArgSpecr+   )r,   s   "r-   r.   r.   Í  s,   € ÷ 9;ñ 9;Øð9;Ø%)ð9;Ø=Að9;àñ9;r/   c           	     óô  € \         P                  ! V 4      '       d   \        RV ,          4      h\         P                  ! V 4      '       gK   \	        V R4      '       dÞ   \         P
                  ! V 4      '       gÂ   \         P                  ! V 4      '       g¦   V'       dˆ   V'       d€   \        P                  ! V 4      p\        P                  ! VP                  R,          VP                  VP                  VP                  VP                  VP                  VP                   4      # \        P                  ! V 4      # \         P                  ! V 4      '       dÌ   V'       d¤   V'       g   V P"                  '       dŠ   \        P                  ! V P$                  4      p\        P                  ! VP                  R,          VP                  VP                  VP                  VP                  VP                  VP                   4      # \        P                  ! V P$                  4      # \         P
                  ! V 4      '       d   \'        V P(                  VRR7      # \	        V R4      '       d!   \        P                  ! V P$                  4      # \	        V R4      '       dP   \         P                  ! V P*                  4      '       d   \'        V P*                  VR7      # \        R	V ,          4      h\        R	V ,          4      h)
zêReturn the argument signature for any callable.

All pure-Python callables are accepted, including
functions, methods, classes, objects with __call__;
builtins and other edge cases like functools.partial() objects
raise a TypeError.

zCan't inspect builtin: %sr  r  T)r7  r8  Ú__func__Ú__call__)r7  zCan't inspect callable: %s)rÂ   Ú	isbuiltinr)  rÃ   r’   ÚisclassrÄ   r   rÅ   ÚFullArgSpecÚargsÚvarargsÚvarkwr¸   Ú
kwonlyargsr¹   r   Ú__self__r:  Úget_callable_argspecrî   r;  )r¬   r7  r8  rÓ   s   &&& r-   rD  rD  Í  s  € ô ×Ò˜×ÒÜÐ3°bÕ8Ó9Ð9Ü	×	Ò	˜B×	Ò	Ü��J×ÒÜ—’ ×#Ò#Ü× Ò  ×$Ò$çŸÜ×0Ò0°Ó4ˆDÜ×%Ò%Ø—	‘	˜"•Ø—‘Ø—
‘
Ø—‘Ø—‘Ø×#Ñ#Ø× Ñ óð ô ×0Ò0°Ó4Ð4Ü	×	Ò	˜"×	Ò	ßŸ B§K§K KÜ×0Ò0°·±Ó=ˆDÜ×%Ò%Ø—	‘	˜"•Ø—‘Ø—
‘
Ø—‘Ø—‘Ø×#Ñ#Ø× Ñ óð ô ×0Ò0°·±Ó=Ð=Ü	�Š˜×	Ò	Ü#Ø�K‰K °4ô
ð 	
ô 
��Z×	 Ò	 Ü×,Ò,¨R¯[©[Ó9Ð9Ü	��Z×	 Ò	 Ü×Ò˜BŸK™K×(Ò(Ü'¨¯©¸WÔEÐEäÐ8¸2Õ=Ó>Ð>äÐ4°rÕ9Ó:Ð:r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   r¬   z-Union[Callable[..., Any], compat.FullArgSpec]r½   r€   r)   zDict[str, Optional[str]]r+   )r,   s   "r-   r.   r.   	  s)   € ÷ r
ñ r
Ø5ðr
Ø@Dðr
àñr
r/   c           
     óh  € \        V 4      '       d   \        P                  ! V 4      pMT p\        P                  ! V!  p\        P                  ! V^ ,          V^,          V^,          RV^,          4      pV^ ,          '       dO   V^ ,          ^ ,          p\        P                  ! V^ ,          R,          V^,          V^,          RV^,          4      pM&V^,          '       d   RV^,          ,          pTpMRpTp^ pV^,          '       d3   V\	        \        \        \        ,          V^,          4      4      ,          pV^,          '       d   V\	        V^,          4      ,          pV^ ,          V^,          ,           pV'       d   V^ V,
          R p	MRp	\        P                  ! VV^,          V^,          V	R R7      p
V^ ,          '       d3   \        P                  ! VR,          V^,          V^,          V	R R7      pMT
pV'       d   \        VVVV
VVR7      # \        VVV^R	 V
^R	 V^R	 V^R	 R7      # )
a¤  Returns a dictionary of formatted, introspected function arguments.

A enhanced variant of inspect.formatargspec to support code generation.

fn
   An inspectable callable or tuple of inspect getargspec() results.
grouped
  Defaults to True; include (parens, around, argument) lists

Returns:

args
  Full inspect.formatargspec for fn
self_arg
  The name of the first positional argument, varargs[0], or None
  if the function defines no positional arguments.
apply_pos
  args, re-written in calling rather than receiving syntax.  Arguments are
  passed positionally.
apply_kw
  Like apply_pos, except keyword-ish args are passed as keywords.
apply_pos_proxied
  Like apply_pos but omits the self/cls argument

Example::

  >>> format_argspec_plus(lambda self, a, b, c=3, **d: 123)
  {'grouped_args': '(self, a, b, c=3, **d)',
   'self_arg': 'self',
   'apply_kw': '(self, a, b, c=c, **d)',
   'apply_pos': '(self, a, b, c, **d)'}

Nr  z%s[0]c                ó&   € R \        V 4      ,           # ©Ú=r�   ©r(   s   &r-   r    Ú%format_argspec_plus.<locals>.<lambda>\  s   € ˜c¤C¨£Fžlr/   )Úformatvaluec                ó&   € R \        V 4      ,           # rH  r�   rJ  s   &r-   r    rK  e  s   €  #¬¨A«¦,r/   )Úgrouped_argsÚself_argÚ	apply_posÚapply_kwÚapply_pos_proxiedÚapply_kw_proxiedr+   éÿÿÿÿ)	Úcallabler   rÅ   Úinspect_formatargspecrÆ   r   r   r   rÇ   )r¬   r½   rÓ   r?  rP  rO  rR  Únum_defaultsÚ	name_argsÚdefaulted_valsrQ  rS  s   &&          r-   rÊ   rÊ   	  s  € ôH �‡|‚|Ü×,Ò,¨RÓ0‰àˆä×'Ò'¨Ñ.€Dä×,Ò,ØˆQ���a•˜$˜q�' 4¨¨a­ó€Ið ˆA‡w„wØ˜•7˜1•:ˆä"×8Ò8Ø��G�B�K˜˜a� $ q¥'¨4°°aµó
Ñð 
ˆa�Œà˜T !�WÕ$ˆà%ÑàˆØ%Ðà€LØˆA‡w„wØœœD¤¤s¥¨T°!­WÓ5Ó6Õ6ˆØˆA‡w„wØœ˜D �G›Õ$ˆà�Q•˜$˜q�'Õ!€I÷ Ø" 1 |Õ#3Ð#5Ð6‰àˆä×+Ò+ØØˆQ�ØˆQ�ØÙ*ô€Hð ˆA‡w„wÜ!×7Ò7Ø�b�MØ��GØ��GØÙ.ô
Ñð $ÐçÜØØØØØ/Ø-ô
ð 	
ô ØØØ  "�oØ˜a �^Ø/°°"Ð5Ø-¨a°Ð3ô
ð 	
r/   c           	     óò   € V \         P                  J d   RpV'       d   RMRpV'       d   RMRpM \        WR7      # \	        RVVVVVR
7      #   \         d    RpT'       d   TMRpT'       d   RMR	p L8i ; i)a  format_argspec_plus with considerations for typical __init__ methods

Wraps format_argspec_plus with error handling strategies for typical
__init__ cases:

.. sourcecode:: text

  object.__init__ -> (self)
  other unreflectable (usually C) -> (self, *args, **kwargs)

z(self)rC   z()rÀ   r¼   z(self, *args, **kwargs)zself, *args, **kwargsz(*args, **kwargs)z*args, **kwargs)rO  rN  rP  rQ  rR  rS  )Úobjectrî   rÊ   r)  rÇ   )Úmethodr½   rN  r?  Úproxieds   &&   r-   Úformat_argspec_initr^  ~  s†   € ð ”—‘Ó Øˆß"‰x¨ˆß!‘$ r‰ð	LÜ& vÔ?Ð?ô
 ØØ!ØØØ!Ø ôð øô	 ô 	LØ4ˆLß#*‘<Ð0GˆDß-4Ñ)Ð:KŠGð	Lús   ±A ÁA6Á#A6Á/A6Á5A6c               ó8   € V ^8„  d   QhRRRRRRRRRRR	RR
RRR/# )r'   Ú
target_clsrl   Útarget_cls_sphinx_namer*   Úproxy_cls_sphinx_nameÚclassmethodsr™   ÚmethodsÚ
attributesÚuse_intermediate_variabler)   zCallable[[_T], _T]r+   )r,   s   "r-   r.   r.   Ÿ  sX   € ÷ ñ Øðàðð ðð  ð	ð
 ðð ðð  -ðð ñr/   c                ó   € R pV# )a;  A class decorator indicating attributes should refer to a proxy
class.

This decorator is now a "marker" that does nothing at runtime.  Instead,
it is consumed by the tools/generate_proxy_methods.py script to
statically generate proxy methods and attributes that are fully
recognized by typing tools such as mypy.

c                ó   € V # r?   r+   )rZ   s   &r-   rÝ   Ú&create_proxy_methods.<locals>.decorate²  s   € Øˆ
r/   r+   )r`  ra  rb  rc  rd  re  rf  rÝ   s   &&&&&&& r-   Úcreate_proxy_methodsrj  Ÿ  s   € ò&ð €Or/   c                óš   €  \         P                  ! V 4      #   \         d(    T \        P                  J d
   R.RRR3u # R.RRR3u # i ; i)zÿinspect.getargspec with considerations for typical __init__ methods

Wraps inspect.getargspec with error handling for typical __init__ cases:

.. sourcecode:: text

  object.__init__ -> (self)
  other unreflectable (usually C) -> (self, *args, **kwargs)

rC   Nr?  Úkwargs)r   rÅ   r)  r[  rî   )r\  s   &r-   Úgetargspec_initrm  ¸  sU   € ð6Ü×,Ò,¨VÓ4Ð4øÜô 6Ø”V—_‘_Ó$Ø�H˜d D¨$Ð/Ò/à�H˜f h°Ð5Ò5ð	6ús   ‚ ˜&A
Á A
Á	A
c                ó‚   € \        V \        P                  4      '       d   V P                  '       g   V P                  # V # )zKAdjust the incoming callable such that a 'self' argument is not
required.

)rh   rÍ   Ú
MethodTyperC  r:  )Úfunc_or_clss   &r-   Úunbound_method_to_callablerq  Ì  s4   € ô �+œu×/Ñ/×0Ò0¸×9M×9MÐ9MØ×#Ñ#Ð#àÐr/   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r'   Úobjr   Úadditional_kwzSequence[Tuple[str, Any]]Ú
to_inspectz%Optional[Union[object, List[object]]]Ú
omit_kwargr™   r)   r*   r+   )r,   s   "r-   r.   r.   Ø  sH   € ÷ KBñ KBØ	ðKBà,ðKBð 6ðKBð ð	KBð
 	ñKBr/   c           	     óJ  a € Vf   S .pM\         P                  ! V4      p\        4       p. p\         P                  ! 4       pRp\	        V4       EFW  w  r‰ \
        P                  ! V	P                  4      p
V
P                  '       d   \        V
P                  4      M^ pV^ 8X  dj   V
P                  '       d   V
P                  pV'       d!   VP                  V
P                  ^V)  4       MSVP                  V
P                  R,          4       M0TP                  V
P                  ^V)   Uu. uF  qÌV3NK  	  up4       V'       d`   V
P                  '       g   Q hTP                  \        V
P                  V) R V
P                  4       UUu. uF  w  rÍWÍ3NK
  	  upp4       EKW  EKZ  	  . pVP                  V 3R lV 4       4       VeG   \!        S V4      '       d5   TP                  \#        S V4       Uu. uF  p\%        V4      NK  	  up4       VP'                  4        FC  w  ppWÃ9   d   K   \#        S WÄ4      pWôJd$   VV8w  d   VP)                  V: RV: 24       KA  KC  KE  	  V'       dB   V F;  w  pp \#        S WÄ4      pWôJd$   VV8w  d   VP)                  V: RV: 24       K9  K;  K=  	  S P,                  P.                  : RRP1                  V4      : R2# u upi u uppi   \         d     EKª  i ; iu upi   \*         d     Kî  i ; i  \*         d     K¯  i ; i)zuProduce a __repr__() based on direct association of the __init__()
specification vs. same-named attributes present.

Nr  c              3  óP   <"  € T F  p\        \        SVR 4      4      x € K  	  R # 5ir?   )rÌ   r„   )rs   Úargrs  s   & €r-   ru   Úgeneric_repr.<locals>.<genexpr>  s"   øé € ÐD¹8°C”$”w˜s C¨Ó.×/Ð/»8ùs   ƒ#&rI  Ú(ú, Ú))r   Úto_listr[  ÚOrderedDictÚ	enumerater   rÅ   rî   r¸   rÆ   r@  r`   r?  r3   Úzipr)  r’   r„   rÌ   Úitemsr“   ri   rƒ   rQ   rw   )rs  rt  ru  rv  ÚmissingÚpos_argsÚkw_argsÚvargsrž   ÚinsprÓ   Údefault_lenry  ÚdefaultÚoutputÚvalÚdefvals   f&&&             r-   Úgeneric_reprr�  Ø  s¼  ø€ ð ÒØ�U‰
ä!×)Ò)¨*Ó5ˆ
ä‹h€Gà€HÜ2>×2JÒ2JÓ2L€GØ€EÜ˜Z×(‰ˆð	Ü×0Ò0°·±Ó?ˆDð 15··°œ#˜dŸm™mÔ,À1ˆKØ�AŒvØ—<—<�<Ø ŸL™L�EßØ—O‘O D§I¡I¨a°°Ð$=Õ>à—O‘O D§I¡I¨b¥MÕ2à—‘Ø/3¯y©y¸¸K¸<Ñ/HÓIÑ/H¨˜7“^Ñ/HÑIô÷ Ø—}—}�}Ð$�}Ø—‘ô -0Ø ŸI™I { l mÐ4°d·m±mô-ôñ-™L˜Cð ›ñ-ò÷ò ñ' )ð: €Fà
‡M�MÔD¹8ÓDÔDàÒœW S¨%×0Ò0Ø�‰¬G°C¸Ô,?Ó@Ñ,? S”t˜C–yÑ,?Ñ@ÔAà—}‘}–‰ˆˆVØÔÙð	Ü˜#˜sÓ,ˆCØÓ! c¨V¤mØ—‘«ªcÐ2Ö3ñ '4Ñ!ñ '÷ Û(‰KˆC�ðÜ˜c 3Ó0�ØÓ%¨#°¬-Ø—M‘M«S²#Ð"6Ö7ñ +8Ñ%ñ )ð —}‘}×-Ô-¨t¯y©y¸Ö/@ÐAÐAùòO Jùóøô' ô 	Ûð	üò> Aøô ô 	Úð	ûô ô ÚðúsH   Á K)Ä+K
ÆK#Ç6K<È00LÉ90LË)K9Ë8K9ÌLÌLÌL"Ì!L"c                  ó:   € ] tR tRtRtR	tR tR tR
R ltR t	Rt
R# )Úportable_instancemethodi&  zWTurn an instancemethod into a (parent, name) pair
to produce a serializable callable.

c                	óN   € R V P                   RV P                  RV P                  /# ©r³   rz   rl  r‘  rB   s   &r-   Ú__getstate__Ú$portable_instancemethod.__getstate__.  s'   € à�d—k‘kØ�D—I‘IØ�d—k‘kð
ð 	
r/   c                	ól   € VR ,          V n         VR,          V n        VP                  RR4      V n        R# )r³   rz   rl  Nr+   )r³   rz   r(  rl  )rC   Ústates   &&r-   Ú__setstate__Ú$portable_instancemethod.__setstate__5  s*   € Ø˜H•oˆŒØ˜&•MˆŒ	Ø—i‘i ¨"Ó-ˆŽr/   c                	óV   € VP                   V n        VP                  V n        W n        R # r?   )rC  r³   rQ   rz   rl  )rC   Úmethrl  s   &&&r-   rî   Ú portable_instancemethod.__init__:  s   € Ø—m‘mˆŒØ—M‘MˆŒ	ØŽr/   c                	ó„   € VP                  V P                  4       \        V P                  V P                  4      ! V/ VB # r?   )r3   rl  r„   r³   rz   )rC   ry  Úkws   &*,r-   r;  Ú portable_instancemethod.__call__?  s1   € Ø
�	‰	�$—+‘+ÔÜ�t—{‘{ D§I¡IÔ.°Ð:°rÑ:Ð:r/   )rl  rz   r³   N)r³   rz   rl  Ú__weakref__)r+   )rQ   rR   rS   rT   rU   rV   r’  r–  rî   r;  rX   r+   r/   r-   r�  r�  &  s"   † ñð
 :€Iò
ò.ô
ö
;r/   r�  c                óF  a€ V 0o\        V P                  4      pV'       dò   VP                  4       pV3R lVP                   4       pV F%  pVP	                  V4       SP                  V4       K'  	  VP                  R8X  g   \        VR4      '       g   K~  \        V\        4      '       g   VP                  4       MVP                  V4       Uu. uF  pVS9  g   K  VNK  	  up F%  pVP	                  V4       SP                  V4       K'  	  Kù  \        S4      # u upi )a  Return an unordered sequence of all classes related to cls.

Traverses diamond hierarchies.

Fibs slightly: subclasses of builtin types are not returned.  Thus
class_hierarchy(class A(object)) returns (A, object), not A plus every
class systemwide that derives from object.

c              3  ó8   <"  € T F  qS9  g   K  Vx € K  	  R # 5ir?   r+   )rs   Ú_Úhiers   & €r-   ru   Ú"class_hierarchy.<locals>.<genexpr>S  s   øé € Ð9™K�q°D©=—’›Kùs   ƒ�
Úbuiltinsra   )r  Ú__mro__r^   r*  r“   r_   rR   r’   Ú
issubclassr‚   ra   )rZ   Úprocessr0  rš   r¯   r¡  Úsr¢  s   &      @r-   Úclass_hierarchyr©  D  s   ø€ ð ˆ5€DÜ�3—;‘;Ó€Gß
Ø�K‰K‹MˆÜ9˜AŸKšKÓ9ˆãˆAØ�N‰N˜1ÔØ�H‰H�QŽKñ ð �<‰<˜:Ô%¬W°QÐ8H×-IÒ-IÙô " !¤T×*Ò*ð × Ñ Ô"à×%Ñ% aÓ(ð)ó
ñ)ð ð
 ˜‰}÷ ˆAñ)ô
ˆAð �N‰N˜1ÔØ�H‰H�QŽKó
ô �‹:Ðùò
s   Ã	DÃDc              #  ó®   "  € \        V 4      pV F?  pV P                   F,  pW#P                  9   g   K  W#P                  V,          3x €  K=  	  KA  	  R# 5i)z½iterate all the keys and attributes associated
with a class, without using getattr().

Does not use getattr() so that class-sensitive
descriptors (i.e. property.__get__()) are not called.

N)Údirr¥  r'  )rZ   ÚkeysÚkeyr0  s   &   r-   Úiterate_attributesr®  j  sF   é € ô ˆs‹8€DÛˆØ—”ˆAØ—j‘jÖ ØŸJ™J s�OÐ,Ò,Úó ó ùs
   ‚-A´!Ac                ó„  € V'       d   TpMmVf   R	p\        V4       Uu. uFR  pVP                  R4      '       g   K  VP                  R4      '       g   K5  \        W4      '       d   KH  Wr9  g   KP  VNKT  	  ppV EF  p \	        W4      p	\        V	R4      '       g   K$  \	        V	RV	4      p	\        \        P                  V	4      p
 \        P                  ! T
4      p\        P                  ! T^ ,          4      p\        P                  ! T^ ,          R,          4      pR\        4       ,          pTRJ;'       d    YE/;'       g    / p\        Yï4        T
P                  Yø,          n        \!        YYø,          4       EK  	  R# u upi   \         d     EK  i ; i  \         d    RpRp L�i ; i  \         d     LSi ; i)
z9Automates delegation of __specials__ for a proxying type.NrÁ   r;  r:  r  z(self, *args, **kw)z(*args, **kw)z?def %(method)s%(fn_args)s: return %(name)s.%(method)s%(d_args)s)rV   Ú__del__Ú__getattribute__Ú__metaclass__r’  r–  )r«  Ú
startswithÚendswithr’   r„   r   rÍ   rÎ   r  r   rÅ   rV  r)  Úlocalsrã   rÐ   Úsetattr)Úinto_clsÚfrom_clsÚskipÚonlyrz   Úfrom_instanceÚdundersr5   r\  Úmaybe_fnr¬   rÓ   Úfn_argsÚd_argsÚpyrÛ   s   &&&&&&          r-   Úmonkeypatch_proxied_specialsrÁ  z  s¬  € ÷ Ø‰àŠ<ðˆDô ˜”]ó	
á"�à—‘˜T×"ô ð —J‘J˜t×$ô	 ô
   ×,ô ð ‘M÷ ˆAÙ"ð 	ð 	
ô ˆð	Ü˜xÓ0ˆHÜ˜8 Z×0Ò0ÙÜ˜x¨°XÓ>ˆHÜ”e×(Ñ(¨(Ó3ˆBð	%Ü×0Ò0°Ó4ˆDÜ×2Ò2°4¸µ7Ó;ˆGÜ×1Ò1°$°qµ'¸"µ+Ó>ˆFð3Ü5;³Xõ>ð 	ð  Ð%×?Ð?¨4Ð*?×EÐEÀ2ð 	ô 	ˆRŒð	Ø')§¡ˆC�KÔ$ô 	� #¥+×.ó? ùò	
øô& ô 	Ûð	ûô ô 	%Ø+ˆGØ$ŠFð	%ûô ô 	Ùð	úsY   ŸF½FÁFÁ)FÁ1FÂ F	Â'F	ÃAFÅF1Æ	FÆFÆF.Æ-F.Æ1F?Æ>F?c                ó6   € \        V RV 4      \        VRV4      J # )z;Return True if the two methods are the same implementation.r:  )r„   )Úmeth1Úmeth2s   &&r-   Úmethods_equivalentrÅ  ½  s(   € ô �5˜* eÓ,´Øˆz˜5ó1ð ð r/   c           	     óº  € V'       g   V'       g   \        R4      h\        V\        4      '       d   \        W4      '       d   V # \        T;'       g4    \	        V4       Uu. uF  qDP                  R4      '       d   K  VNK  	  up4      p\        \	        V 4      4      p\        P                  p\        V\        4      '       d   TpM.V'       g   \        4       p\        P                  pM\        V4      pV! VP                  V4      V4      '       d   V # \        V \        4      '       gL   V\        P                  J ;'       d    R;'       g    Rp\        V : RV: RRP                  V4      : 24      h ! R R	4      p	V'       d   R
VP                  ,           V	n        \        4       p
\        V 4       Fg  w  r¼Wµ9  d   \        RV,          4      h\        V4      '       g   \        V: RV: R24      h\        W›\!        V4      4       V
P#                  V4       Ki  	  V! W£4      '       d   V	# \        RRP                  W:,
          4      ,          4      hu upi )a*  Ensure basic interface compliance for an instance or dict of callables.

Checks that ``obj`` implements public methods of ``cls`` or has members
listed in ``methods``. If ``required`` is not supplied, implementing at
least one interface method is sufficient. Methods present on ``obj`` that
are not in the interface are ignored.

If ``obj`` is a dict and ``dict`` does not meet the interface
requirements, the keys of the dictionary are inspected. Keys present in
``obj`` that are not in the interface will raise TypeErrors.

Raises TypeError if ``obj`` does not meet the interface criteria.

In all passing cases, an object with callable members is returned.  In the
simple case, ``obj`` is returned as-is; if dict processing kicks in then
an anonymous class is returned.

obj
  A type, instance, or dictionary of callables.
cls
  Optional, a type.  All public methods of cls are considered the
  interface.  An ``obj`` instance of cls will always pass, ignoring
  ``required``..
methods
  Optional, a sequence of method names to consider as the interface.
required
  Optional, a sequence of mandatory implementations. If omitted, an
  ``obj`` that provides at least one interface method is considered
  sufficient.  As a convenience, required may be a type, in which case
  all public methods of the type are required.

z2a class or collection of method names are requiredr¡  zany ofzall ofz does not implement z: r|  c                  ó   € ] tR tRtRtRtR# )Ú(as_interface.<locals>.AnonymousInterfacei  zA callable-holding shell.r+   N©rQ   rR   rS   rT   rU   rX   r+   r/   r-   ÚAnonymousInterfacerÈ    s   † Ý'r/   rÊ  Ú	Anonymousz%r: unknown in this interfacerI  z is not callablez,dictionary does not contain required keys %s)r)  rh   r‚   r]   r«  r³  ÚoperatorÚgeÚgtÚintersectionrÇ   rw   rQ   Údictlike_iteritemsrU  r¶  Ústaticmethodr_   )rs  rZ   rd  Úrequiredr5   Ú	interfaceÚimplementedÚcompliesÚ	qualifierrÊ  Úfoundr\  rú   s   &&&&         r-   Úas_interfacerØ  Å  sÕ  € ÷B —wÜÐLÓMÐMä�#”t×Ò¤¨C×!5Ò!5Øˆ
ä�G×MÐM¬3¨s¬8ÓM©8 a¿<¹<È×;L§ ©8ÑMÓN€IÜ”c˜#“h“-€Kä�{‰{€HÜ�(œD×!Ò!Ø‰ßÜ“5ˆÜ—;‘;‰ä�x“=ˆá�×(Ñ(¨Ó3°X×>Ò>Øˆ
ô �cœ4× Ò Ø¤§¡Ð+×8Ð8°×DÐD¸Hˆ	Üã“I˜tŸy™y¨Õ3ð5ó
ð 	
÷
(ñ (÷ Ø&1°C·L±LÕ&@ÐÔ#Ü‹E€Eä*¨3Ö/‰ˆØÔ"ÜÐ;¸fÕDÓEÐEÜ˜�~Š~Ü³v»tÐDÓEÐEÜÐ"¬L¸Ó,>Ô?Ø�	‰	�&Öñ 0ñ �× Ò Ø!Ð!ä
Ø6Ø
�)‰)�HÕ$Ó
%õ	&óð ùòS  Ns   Á!IÁ>IÚ_GFDzgeneric_fn_descriptor[Any]c                  óÌ   € ] tR tRt$ RtR]R&   R]R&   R]R&   RR
 R llt]R R l4       t]R R l4       tR R lt]	'       d   R R lt
R R ltR R lt]R R l4       tRtR	# )Úgeneric_fn_descriptori  aO  Descriptor which proxies a function when the attribute is not
present in dict

This superclass is organized in a particular way with "memoized" and
"non-memoized" implementation classes that are hidden from type checkers,
as Mypy seems to not be able to handle seeing multiple kinds of descriptor
classes used for the same attribute.

úCallable[..., _T_co]Úfgetrn   rU   r*   rQ   Nc               ó    € V ^8„  d   QhRRRR/# )r'   rÝ  rÜ  Údocrn   r+   )r,   s   "r-   r.   Ú"generic_fn_descriptor.__annotate__-  s   € ÷ &ñ &Ð1ð &¸ñ &r/   c                	ój   € Wn         T;'       g    VP                  V n        VP                  V n        R # r?   ©rÝ  rU   rQ   ©rC   rÝ  rß  s   &&&r-   rî   Úgeneric_fn_descriptor.__init__-  s%   € ØŒ	Ø×*Ð*˜dŸl™lˆŒØŸ™ˆŽr/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   rC   rÙ  rs  r<   rZ   r   r)   r+   )r,   s   "r-   r.   rà  3  s   € ×=Ñ=�dÐ= Ð=¨CÐ=°DÑ=r/   c                	ó   € R # r?   r+   ©rC   rs  rZ   s   &&&r-   Ú__get__Úgeneric_fn_descriptor.__get__2  s   € Ù:=r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rs  r[  rZ   r   r)   r   r+   )r,   s   "r-   r.   rà  6  s   € ×:Ñ:˜6Ð:¨Ð:°Ñ:r/   c                	ó   € R # r?   r+   rç  s   &&&r-   rè  ré  5  s   € Ù7:r/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   rC   rÙ  rs  r   rZ   r)   zUnion[_GFD, _T_co]r+   )r,   s   "r-   r.   rà  8  s)   € ÷ $ñ $�dð $ ð $¨3ð $Ð3Eñ $r/   c                	ó   € \        4       hr?   ©ÚNotImplementedErrorrç  s   &&&r-   rè  ré  8  ó   € Ü!Ó#Ð#r/   c               ó$   € V ^8„  d   QhRRRRRR/# ©r'   Úinstancer   rH   r)   r<   r+   )r,   s   "r-   r.   rà  =  s   € ×AÑA CÐA°ÐA¸ÑAr/   c                	ó   € R # r?   r+   ©rC   ró  rH   s   &&&r-   Ú__set__Úgeneric_fn_descriptor.__set__=  s   € ¹cr/   c               ó    € V ^8„  d   QhRRRR/# ©r'   ró  r   r)   r<   r+   )r,   s   "r-   r.   rà  ?  s   € ×8Ñ8 sÐ8¨tÑ8r/   c                	ó   € R # r?   r+   )rC   ró  s   &&r-   Ú
__delete__Ú generic_fn_descriptor.__delete__?  s   € ±Sr/   c               ó    € V ^8„  d   QhRRRR/# )r'   rs  r   r)   r<   r+   )r,   s   "r-   r.   rà  A  s   € ÷ $ñ $˜#ð $ $ñ $r/   c                	ó   € \        4       hr?   rî  ©rC   rs  s   &&r-   Ú_resetÚgeneric_fn_descriptor._resetA  rð  r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rs  r   rz   r*   r)   r<   r+   )r,   s   "r-   r.   rà  E  s!   € ÷ $ñ $˜ð $ 3ð $¨4ñ $r/   c                	ó   € \        4       hr?   rî  ©rZ   rs  rz   s   &&&r-   ÚresetÚgeneric_fn_descriptor.resetD  s   € ä!Ó#Ð#r/   ©rU   rQ   rÝ  r?   )rQ   rR   rS   rT   rU   rW   rî   r   rè  r   rö  rû  r   Úclassmethodr  rX   r+   r/   r-   rÛ  rÛ    sf   ‡ ñð ÓØÓØƒM÷&ð
 Ü=ó Ø=àÜ:ó Ø:õ$÷ åAå8õ$ð ô$ó ô$r/   rÛ  c                  ó8   € ] tR tRtRt]'       g   R tRtR# RtR# )Ú_non_memoized_propertyiI  z¹a plain descriptor that proxies a function.

primary rationale is to provide a plain attribute that's
compatible with memoized_property which is also recognized as equivalent
by mypy.

c                	ó0   € Vf   V # V P                  V4      # r?   ©rÝ  rç  s   &&&r-   rè  Ú_non_memoized_property.__get__T  s   € ØŠ{Ø�Ø—9‘9˜S“>Ð!r/   r+   N)rQ   rR   rS   rT   rU   r   rè  rX   r+   r/   r-   r
  r
  I  s   † ñ÷ ö	"ó r/   r
  c                  óF   € ] tR tRtRt]'       g   R tR t]R 4       t	Rt
R# )Ú_memoized_propertyiZ  z2A read-only @property that is only evaluated once.c                	óf   € Vf   V # V P                  V4      ;VP                  V P                  &   pV# r?   )rÝ  r'  rQ   ©rC   rs  rZ   Úresults   &&& r-   rè  Ú_memoized_property.__get___  s0   € ØŠ{Ø�Ø37·9±9¸S³>ÐAˆC�L‰L˜Ÿ™Ñ'¨&ØˆMr/   c                	óD   € \         P                  WP                  4       R # r?   )r  r  rQ   rÿ  s   &&r-   r   Ú_memoized_property._resete  s   € Ü× Ñ  §m¡mÖ4r/   c                	ó>   € VP                   P                  VR 4       R # r?   )r'  r^   r  s   &&&r-   r  Ú_memoized_property.reseth  s   € à�‰×Ñ˜˜tÖ$r/   r+   N)rQ   rR   rS   rT   rU   r   rè  r   r  r  rX   r+   r/   r-   r  r  Z  s&   † Ù<çò	ò5ð ñ%ó ô%r/   r  c               ó    € V ^8„  d   QhRRRR/# ©r'   r¬   r    r)   r+   )r,   s   "r-   r.   r.   ‰  s   € ÷ 'ñ ' ð ' rñ 'r/   c                ó(   a € V 3R lp\        VS 4      # )zÐDecorate a method memoize its return value.

Best applied to no-arg methods: memoization is not sensitive to
argument values, and will always return the same value even when
called with different arguments.

c                ó¢   <a€ S! V .VO5/ VB oV3R  lpSP                   Vn         SP                  Vn        W0P                  SP                   &   S# )c                 ó   <€ S# r?   r+   ©Úarœ  r  s   *,€r-   ÚmemoÚ6memoized_instancemethod.<locals>.oneshot.<locals>.memo•  s   ø€ ØˆMr/   )rQ   rU   r'  ©rC   r?  rœ  r  r  r¬   s   &*, @€r-   ÚoneshotÚ(memoized_instancemethod.<locals>.oneshot’  sI   ù€ Ù�DÐ&˜4Ò& 2Ñ&ˆõ	ð Ÿ™ˆŒØ—z‘zˆŒØ%)�‰�b—k‘kÑ"Øˆr/   r   )r¬   r"  s   f r-   Úmemoized_instancemethodr$  ‰  s   ø€ õ	ô ˜' 2Ó&Ð&r/   c                  ó¦   € ] tR tRt$ Rt]'       g   Rt]! 4       tR]	R&   R R lt
R R ltR	 R
 lt ! R R]],          4      t]R R l4       tRtR# )ÚHasMemoizedi   zwA mixin class that maintains the names of memoized elements in a
collection for easy cache clearing, generative, etc.

zFrozenSet[str]Ú_memoized_keysc               ó   € V ^8„  d   QhRR/# r;   r+   )r,   s   "r-   r.   ÚHasMemoized.__annotate__­  s   € ÷ *ñ * Tñ *r/   c                	ód   € V P                    F  pV P                  P                  VR 4       K!  	  R # r?   )r'  r'  r^   ©rC   Úelems   & r-   Ú_reset_memoizationsÚHasMemoized._reset_memoizations­  s&   € Ø×'Ô'ˆDØ�M‰M×Ñ˜d DÖ)ó (r/   c               ó   € V ^8„  d   QhRR/# r;   r+   )r,   s   "r-   r.   r)  ±  s   € ÷ -ñ -¨ñ -r/   c                	óP   € V P                    F  pWP                  9  d   K  Q h	  R # r?   )r'  r'  r+  s   & r-   Ú_assert_no_memoizationsÚ#HasMemoized._assert_no_memoizations±  s"   € Ø×'Ô'ˆDØŸ}™}Ö,Ð,Ð,ó (r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   r­  r*   rH   r   r)   r<   r+   )r,   s   "r-   r.   r)  µ  s!   € ÷ %ñ %¨3ð %°sð %¸tñ %r/   c                	óV   € W P                   V&   V ;P                  V0,          un        R # r?   )r'  r'  )rC   r­  rH   s   &&&r-   Ú_set_memoized_attributeÚ#HasMemoized._set_memoized_attributeµ  s!   € Ø"�‰�cÑØ×Ò ˜uÕ$×r/   c                  ó|   € ] tR tRt$ RtR]R&   R]R&   R]R&   RR
 R llt]R R l4       t]R R l4       tR tRt	R	# )ÚHasMemoized.memoized_attributei¹  zDA read-only @property that is only evaluated once.

:meta private:

úCallable[..., _T]rÝ  rn   rU   r*   rQ   Nc               ó    € V ^8„  d   QhRRRR/# )r'   rÝ  r9  rß  rn   r+   )r,   s   "r-   r.   Ú+HasMemoized.memoized_attribute.__annotate__Ä  s   € ÷ 	*ñ 	*Ð!2ð 	*¸ñ 	*r/   c                	ój   € Wn         T;'       g    VP                  V n        VP                  V n        R # r?   râ  rã  s   &&&r-   rî   Ú'HasMemoized.memoized_attribute.__init__Ä  s%   € ØŒIØ×.Ð. $§,¡,ˆDŒLØ ŸM™MˆDŽMr/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   rC   r#   rs  r<   rZ   r   r)   r+   )r,   s   "r-   r.   r;  Ê  s   € ×?Ñ?˜#Ð? DÐ?¨sÐ?°sÑ?r/   c                	ó   € R # r?   r+   rç  s   &&&r-   rè  Ú&HasMemoized.memoized_attribute.__get__É  s   € Ù<?r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rs  r   rZ   r)   r   r+   )r,   s   "r-   r.   r;  Í  s   € ×8Ñ8˜sÐ8¨Ð8°Ñ8r/   c                	ó   € R # r?   r+   rç  s   &&&r-   rè  r@  Ì  s   € Ù58r/   c                	ó®   € Vf   V # V P                  V4      ;VP                  V P                  &   pV;P                  V P                  0,          un        V# r?   )rÝ  r'  rQ   r'  r  s   &&& r-   rè  r@  Ï  sG   € ØŠ{Ø�Ø37·9±9¸S³>ÐAˆC�L‰L˜Ÿ™Ñ'¨&Ø×Ò 4§=¡= /Õ1ÕØˆMr/   r  r?   )
rQ   rR   rS   rT   rU   rW   rî   r   rè  rX   r+   r/   r-   Úmemoized_attributer8  ¹  sB   ‡ ñ	ð  ÓØÓØ‹÷	*ð
 
Ü?ó 
Ø?à	Ü8ó 
Ø8ö	r/   rD  c               ó    € V ^8„  d   QhRRRR/# r  r+   )r,   s   "r-   r.   r)  ×  s   € ÷ +ñ +¨ð +°ñ +r/   c                ó.   a€ R V3R llp\        VS4      # )z=Decorate a method memoize its return value.

:meta private:

c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   rC   r   r?  rœ  r)   r+   )r,   s   "r-   r.   Ú9HasMemoized.memoized_instancemethod.<locals>.__annotate__Þ  s(   € ÷ 
	ñ 
	˜#ð 
	 cð 
	°ð 
	¸ñ 
	r/   c                óê   <a€ S! V .VO5/ VB oV3R  lpSP                   Vn         SP                  Vn        W0P                  SP                   &   V ;P                  SP                   0,          un        S# )c                 ó   <€ S# r?   r+   r  s   *,€r-   r  ÚBHasMemoized.memoized_instancemethod.<locals>.oneshot.<locals>.memoá  s   ø€ Ø�r/   )rQ   rU   r'  r'  r!  s   &*, @€r-   r"  Ú4HasMemoized.memoized_instancemethod.<locals>.oneshotÞ  s`   ù€ Ù˜Ð*˜tÒ* rÑ*ˆFõð ŸK™KˆDŒMØŸ:™:ˆDŒLØ)-�M‰M˜"Ÿ+™+Ñ&Ø×Ò B§K¡K =Õ0ÕØˆMr/   r   )rZ   r¬   r"  s   &f r-   r$  Ú#HasMemoized.memoized_instancemethodÖ  s   ø€ ÷
	ð 
	ô ˜g rÓ*Ð*r/   r+   N)rQ   rR   rS   rT   rU   r   rV   Ú	frozensetr'  rW   r-  r1  r5  Úmemoized_propertyr   rD  r  r$  rX   r+   r/   r-   r&  r&     sT   ‡ ñ÷
 ð ˆ	á%.£[€N�NÓ0õ*õ-õ%ôÐ.¨rÕ2ô ð: ô+ó ô+r/   r&  c                  ó0   € ] tR tRtRtRtR tR R ltRtR# )ÚMemoizedSlotsió  a@  Apply memoized items to an object using a __getattr__ scheme.

This allows the functionality of memoized_property and
memoized_instancemethod to be available to a class using __slots__.

The memoized get is not threadsafe under freethreading and the
creator method may in extremely rare cases be called more than once.

c                	ó   € \        V4      hr?   )r  )rC   r­  s   &&r-   Ú_fallback_getattrÚMemoizedSlots._fallback_getattr   s   € Ü˜SÓ!Ð!r/   c               ó    € V ^8„  d   QhRRRR/# )r'   r­  r*   r)   r   r+   )r,   s   "r-   r.   ÚMemoizedSlots.__annotate__  s   € ÷ /ñ /˜sð / sñ /r/   c                	ó²  a aa€ SP                  R 4      '       g   SP                  R4      '       d   \        S4      h\        S P                  R S 24      '       d$   \	        S R S 24      ! 4       p\        S SV4       V# \        S P                  RS 24      '       d+   \	        S RS 24      oVVV 3R lpSP                  Vn        V# S P                  S4      # )Ú_memoized_attr_Ú_memoized_method_c                 ó„   <a€ S! V / VB oV3R  lpSP                   Vn         SP                  Vn        \        SSV4       S# )c                 ó   <€ S# r?   r+   r  s   *,€r-   r  Ú8MemoizedSlots.__getattr__.<locals>.oneshot.<locals>.memo  s   ø€ Ø!�Mr/   )rQ   rU   r¶  )r?  rœ  r  r  r­  r™  rC   s   *, @€€€r-   r"  Ú*MemoizedSlots.__getattr__.<locals>.oneshot  s@   ù€ Ù˜tÐ* rÑ*�õ"ð !%§¡�”Ø#Ÿ|™|�”Ü˜˜c 4Ô(Ø�r/   )r³  r  r’   rƒ   r„   r¶  rU   rS  )rC   r­  rH   r"  r™  s   ff  @r-   Ú__getattr__ÚMemoizedSlots.__getattr__  sÉ   ú€ Ø�>‰>Ð+×,Ò,°·±Ø÷1
ò 1
ô ! Ó%Ð%ô �T—^‘^ °s°eÐ%<×=Ò=Ü˜D O°C°5Ð"9Ô:Ó<ˆEÜ�D˜#˜uÔ%ØˆLÜ�T—^‘^Ð'8¸¸Ð%>×?Ò?Ü˜4Ð#4°S°EÐ!:Ó;ˆD÷	ð #Ÿl™lˆGŒOØˆNà×)Ñ)¨#Ó.Ð.r/   r+   N)	rQ   rR   rS   rT   rU   rV   rS  r^  rX   r+   r/   r-   rQ  rQ  ó  s   † ñð €Iò"÷/ñ /r/   rQ  c               ó    € V ^8„  d   QhRRRR/# )r'   rs  r   r)   r€   r+   )r,   s   "r-   r.   r.   $  s   € ÷ 	ñ 	�ð 	˜ñ 	r/   c                óÈ   € \        V \        4      '       dC   V P                  4       P                  4       p V R9   d   R# V R9   d   R# \	        RV ,          4      h\        V 4      # )ÚtrueTFzString is not true/false: %r)rb  ÚyesÚonÚyÚtÚ1)ÚfalseÚnoÚoffrt   ÚfÚ0)rh   r*   Ústriprr   Ú
ValueErrorr€   )rs  s   &r-   Úasboolro  $  sV   € Ü�#”s×ÒØ�i‰i‹k×ÑÓ!ˆØÐ6Ô6ÙØÐ9Ô9ÙäÐ;¸cÕAÓBÐBÜ�‹9Ðr/   c               ó    € V ^8„  d   QhRRRR/# )r'   Útextr*   r)   z!Callable[[str], Union[str, bool]]r+   )r,   s   "r-   r.   r.   0  s   € ÷ ñ �sð Ð@ñ r/   c                 ó   a € R V 3R llpV# )ziReturn a callable that will evaluate a string as
boolean, or one of a set of "alternate" string values.

c               ó    € V ^8„  d   QhRRRR/# )r'   rs  r*   r)   zUnion[str, bool]r+   )r,   s   "r-   r.   Ú!bool_or_str.<locals>.__annotate__6  s   € ÷ ñ ˜3ð Ð#3ñ r/   c                ó,   <€ V S9   d   V # \        V 4      # r?   )ro  )rs  rq  s   &€r-   Úbool_or_valueÚ"bool_or_str.<locals>.bool_or_value6  s   ø€ Ø�$Œ;ØˆJä˜#“;Ðr/   r+   )rq  rv  s   j r-   Úbool_or_strrx  0  s   ø€ ÷ð ð Ðr/   c               ó    € V ^8„  d   QhRRRR/# )r'   rH   r   r)   úOptional[int]r+   )r,   s   "r-   r.   r.   ?  s   € ÷ ñ �ð ˜ñ r/   c                ó$   € V f   V # \        V 4      # )zCoerce to integer.)r­   )rH   s   &r-   Úasintr|  ?  s   € ð ‚}ØˆÜˆu‹:Ðr/   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r'   rœ  rá   r­  r*   rG   rl   Ú
flexi_boolr€   ÚdestzOptional[Dict[str, Any]]r)   r<   r+   )r,   s   "r-   r.   r.   G  sD   € ÷ 'ñ 'Øð'à	ð'ð ð'ð ð	'ð
 #ð'ð 
ñ'r/   c                ó  € Vf   T pW9   dv   \        V\        4      '       d   \        W,          V4      '       gF   W,          e:   V\        J d   V'       d   \        W,          4      WA&   R# V! W,          4      WA&   R# R# R# R# )z©If 'key' is present in dict 'kw', coerce its value to type 'type\_' if
necessary.  If 'flexi_bool' is True, the string '0' is considered false
when coercing to boolean.
N)rh   r‚   r€   ro  )rœ  r­  rG   r~  r  s   &&&&&r-   Úcoerce_kw_typer�  G  sk   € ð ‚|Øˆð 	Œ	Ü˜E¤4×(Ò(´
¸2½7ÀE×0JÒ0JØ�GÒà”D‹=ŸZÜ˜r�w›ˆD‹Iá˜b�g›ˆD‹Iñ  ñ 1Kñ 	r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rs  r   rZ   rl   r)   rŒ   r+   )r,   s   "r-   r.   r.   a  s!   € ÷ ñ ˜ð  9ð °ñ r/   c                óš   a € \        V4      pV3\        ;QJ d    . V 3R lV 4       F  NK  	  5,           # ! V 3R lV 4       4      ,           # )zZProduce a tuple structure that is cacheable using the __dict__ of
obj to retrieve values

c              3  ór   <"  € T F,  qSP                   9   g   K  VSP                   V,          3x € K.  	  R # 5ir?   ©r'  ©rs   Úkrs  s   & €r-   ru   Ú"constructor_key.<locals>.<genexpr>g  s-   øé € ð Ù&+ °C·L±LÑ/@ÔˆˆC�L‰L˜�OÕ£eùó   ƒ7š7)r!  r”   )rs  rZ   rÖ   s   f& r-   Úconstructor_keyrŠ  a  sO   ø€ ô
 ˜3Ó€EØˆ6—E”Eô Ù&+ó—Eõ ð �Eô Ù&+óó õ ð r/   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r'   rs  r   rZ   r[   r?  r   rœ  r)   r+   )r,   s   "r-   r.   r.   l  s/   € ÷ ñ ˜"ð  8ð °Cð ¸sð Àrñ r/   c                ó~   a € \        V4      pVP                  V 3R lVP                  V4       4       4       V! V/ VB # )z|Instantiate cls using the __dict__ of obj as constructor arguments.

Uses inspect to match the named arguments of ``cls``.

c              3  ór   <"  € T F,  qSP                   9   g   K  VSP                   V,          3x € K.  	  R # 5ir?   r…  r†  s   & €r-   ru   Ú#constructor_copy.<locals>.<genexpr>t  s.   øé € ð Ù&: À3Ç<Á<Ñ>OÔˆˆC�L‰L˜�OÕÓ&:ùr‰  )r!  r3   Ú
difference)rs  rZ   r?  rœ  rÖ   s   f&*, r-   Úconstructor_copyr�  l  sE   ø€ ô ˜3Ó€EØ‡I�Iô Ø&+×&6Ñ&6°rÔ&:óô ñ �Ð˜ÑÐr/   c               ó   € V ^8„  d   QhRR/# )r'   r)   zCallable[[], int]r+   )r,   s   "r-   r.   r.   z  s   € ÷ ñ Ð"ñ r/   c                 ón   aa€ \         P                  ! 4       o\        P                  ! ^4      oVV3R lp V # )z%Return a threadsafe counter function.c                 ól   <€ S;_uu_ 4        \        S 4      uuR R R 4       #   + '       g   i     R # ; ir?   )Únext)ÚcounterÚlocks   €€r-   Ú_nextÚcounter.<locals>._next�  s   ø€ ßŠTÜ˜“=÷ �T�T‹Tús   Œ"¢3	)Ú	threadingÚLockr¢   Úcount)r—  r•  r–  s    @@r-   r•  r•  z  s+   ù€ ô �>Š>Ó€DÜ�oŠo˜aÓ €Gö!ð €Lr/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   Úspecimenr   r‰  zOptional[Type[Any]]r)   r+   )r,   s   "r-   r.   r.   ˆ  s$   € ÷  ñ  Øð Ø/ð àñ r/   c                ó  € \        V R4      '       dA   V P                  e'   \        V P                  \        4      '       d   \        # V P                  # \	        V \
        4      '       d   \        M\        pV! V \        4      '       d   \        # V! V \        4      '       d   \        # V! V \        4      '       d   \        # \        V R4      '       d   \        # \        V R4      '       d   \        # \        V R4      '       d   \        # V# )z¸Given an instance or class, guess if it is or is acting as one of
the basic collection types: list, set and dict.  If the __emulates__
property is present, return that preferentially.
Ú__emulates__r“   r_   r]   )r’   rŸ  r¦  r]   rh   r‚   r  rÇ   )r�  r‰  Úisas   && r-   Úduck_type_collectionr¡  ˆ  sË   € ô ˆx˜×(Ò(à× Ñ Ò,´Ø×!Ñ!¤3÷2
ò 2
ô ˆJà×(Ñ(Ð(ä" 8¬T×2Ò2�*¼
€CÙ
ˆ8”T×ÒÜˆÙ	ˆX”s×	Ò	Üˆ
Ù	ˆX”t×	Ò	Üˆäˆx˜×"Ò"ÜˆÜ	�˜5×	!Ò	!Üˆ
Ü	�˜5×	!Ò	!Üˆàˆr/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   ry  r   Úargtypez'Union[Tuple[Type[Any], ...], Type[Any]]rz   r*   r)   r+   )r,   s   "r-   r.   r.   «  s,   € ÷ ñ Ø	ðØ>ðØFIðàñr/   c           
     ó0  € \        W4      '       d   V # \        V\        4      '       dC   \        P                  ! R V: RRP	                  R V 4       4      : R\        V 4      : R24      h\        P                  ! R V: RV: R\        V 4      : R24      h)z
Argument 'z ' is expected to be one of type z or c              3  ó4   "  € T F  pR V,          x € K  	  R# 5i)z'%s'Nr+   )rs   r  s   & r-   ru   Ú"assert_arg_type.<locals>.<genexpr>´  s   é € Ð$A¹°A V¨a§Z¢Z»ùs   ‚z, got 'Ú'z' is expected to be of type 'z', got ')rh   r”   r   ÚArgumentErrorrw   r‚   )ry  r£  rz   s   &&&r-   Úassert_arg_typer©  «  sy   € ô �#×ÒØˆ
ä�gœu×%Ò%Ü×#Ó#ã˜Ÿ™Ñ$A¹Ó$AÖAÄ4ÈÆ9ðNóð ô
 ×#Ó#ã›¤$ s¦)ð-óð r/   c           	     ó†  a a€ \        S R4      '       d   \        S P                  4       4      # \        S R\        S RR4      4      oSf   \	        RS ,          4      h\        S R4      '       d   V V3R lpV! 4       # \        S R4      '       d$   \        V3R	 lS P                  4        4       4      # \	        RS ,          4      h)
z?Return a (key, value) iterator for almost any dict-like object.r‚  Ú__getitem__r(  NzObject '%r' is not dict-likeÚiterkeysc               3  ób   <"  € SP                  4        F  p Sf   Q hV S! V 4      3x € K  	  R # 5ir?   )r¬  )r­  ÚdictlikeÚgetters    €€r-   ÚiteratorÚ$dictlike_iteritems.<locals>.iteratorÉ  s4   øé € Ø×(Ñ(Ö*�ØÒ)Ð)Ð)Ø™6 #›;Ð&Ô&ó +ùs   ƒ,/r¬  c              3  ó6   <"  € T F  qS! V4      3x € K  	  R # 5ir?   r+   )rs   r­  r¯  s   & €r-   ru   Ú%dictlike_iteritems.<locals>.<genexpr>Ð  s   øé € ÐB±/¨3™& ›+Õ&³/ùs   ƒ)r’   r  r‚  r„   r)  Úiterr¬  )r®  r°  r¯  s   f @r-   rÐ  rÐ  ½  s¢   ù€ ô ˆx˜×!Ò!Ü�H—N‘NÓ$Ó%Ð%ä�X˜}¬g°hÀÀtÓ.LÓM€FØ‚~ÜÐ6¸ÕAÓBÐBäˆx˜×$Ò$ö	'ñ
 ‹zÐÜ	�˜6×	"Ò	"ÜÔB°(·-±-´/ÓBÓBÐBäÐ6¸ÕAÓBÐBr/   c                  óN   a € ] tR tRt$ RtR]R&   R V 3R lltR
R R lltR	tV ;t	# )ÚclasspropertyiÕ  a)  A decorator that behaves like @property except that operates
on classes rather than instances.

The decorator is currently special when using the declarative
module, but note that the
:class:`~.sqlalchemy.ext.declarative.declared_attr`
decorator should be used for this purpose with declarative.

úCallable[[Any], Any]rÝ  c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rÝ  r·  ry  r   rœ  r+   )r,   s   "r-   r.   Úclassproperty.__annotate__â  s"   € ÷ $ñ $Ð1ð $¸ð $ÀCñ $r/   c                	óR   <€ \         SV `  ! V.VO5/ VB  VP                  V n        R # r?   )Úsuperrî   rU   )rC   rÝ  ry  rœ  rƒ   s   &&*,€r-   rî   Úclassproperty.__init__â  s%   ø€ Ü‰Ò˜Ð* Ò* rÒ*Ø—|‘|ˆŽr/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rs  r   rZ   zOptional[type]r)   r+   )r,   s   "r-   r.   r¹  æ  s!   € ÷ ñ ˜3ð  ^ð ¸sñ r/   c                	ó$   € V P                  V4      # r?   r  rç  s   &&&r-   rè  Úclassproperty.__get__æ  s   € Ø�y‰y˜‹~Ðr/   )rU   r?   )
rQ   rR   rS   rT   rU   rW   rî   rè  rX   Ú__classcell__©rƒ   s   @r-   r¶  r¶  Õ  s$   ø‡ ñð Ó÷$ð $÷õ r/   r¶  c                  ó:   € ] tR tRtR R ltR R ltR R ltRtR	# )
Úhybridpropertyiê  c               ó   € V ^8„  d   QhRR/# ©r'   r2  r9  r+   )r,   s   "r-   r.   Úhybridproperty.__annotate__ë  ó   € ÷ ñ Ð.ñ r/   c                	ó   € Wn         Wn        R # r?   )r2  Úclslevel©rC   r2  s   &&r-   rî   Úhybridproperty.__init__ë  s   € ØŒ	ØŽr/   c               ó$   € V ^8„  d   QhRRRRRR/# ©r'   ró  r   Úownerr)   r   r+   )r,   s   "r-   r.   rÆ  ï  ó!   € ÷ 'ñ ' ð '¨Cð '°Bñ 'r/   c                	óR   € Vf   V P                  V4      pV# V P                  V4      # r?   ©rÉ  r2  ©rC   ró  rÎ  Úclsvals   &&& r-   rè  Úhybridproperty.__get__ï  ó*   € ØÒØ—]‘] 5Ó)ˆFØˆMà—9‘9˜XÓ&Ð&r/   c               ó    € V ^8„  d   QhRRRR/# )r'   r2  r   r)   zhybridproperty[_T]r+   )r,   s   "r-   r.   rÆ  ö  s   € ÷ ñ Ð1ð Ð6Hñ r/   c                	ó   € Wn         V # r?   ©rÉ  rÊ  s   &&r-   Ú
classlevelÚhybridproperty.classlevelö  ó   € ØŒØˆr/   rÑ  N)rQ   rR   rS   rT   rî   rè  rÙ  rX   r+   r/   r-   rÃ  rÃ  ê  s   † õõ'÷ñ r/   rÃ  c                  óR   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltRt	R# )Úrw_hybridpropertyiû  c               ó   € V ^8„  d   QhRR/# rÅ  r+   )r,   s   "r-   r.   Úrw_hybridproperty.__annotate__ü  s   € ÷ 8ñ 8Ð.ñ 8r/   c                	ó,   € Wn         Wn        R V n        R # r?   )r2  rÉ  ÚsetfnrÊ  s   &&r-   rî   Úrw_hybridproperty.__init__ü  s   € ØŒ	ØŒØ37ˆŽ
r/   c               ó$   € V ^8„  d   QhRRRRRR/# rÍ  r+   )r,   s   "r-   r.   rß    rÏ  r/   c                	óR   € Vf   V P                  V4      pV# V P                  V4      # r?   rÑ  rÒ  s   &&& r-   rè  Úrw_hybridproperty.__get__  rÕ  r/   c               ó$   € V ^8„  d   QhRRRRRR/# rò  r+   )r,   s   "r-   r.   rß    s!   € ÷ $ñ $ ð $¨Cð $°Dñ $r/   c                	óH   € V P                   f   Q hV P                  W4       R # r?   ©rá  rõ  s   &&&r-   rö  Úrw_hybridproperty.__set__  s   € Ø�z‰zÒ%Ð%Ð%Ø�
‰
�8Ö#r/   c               ó    € V ^8„  d   QhRRRR/# ©r'   r2  r   r)   zrw_hybridproperty[_T]r+   )r,   s   "r-   r.   rß    s   € ÷ ñ Ð-ð Ð2Gñ r/   c                	ó   € Wn         V # r?   rè  rÊ  s   &&r-   ÚsetterÚrw_hybridproperty.setter  s   € ØŒ
Øˆr/   c               ó    € V ^8„  d   QhRRRR/# rë  r+   )r,   s   "r-   r.   rß    s   € ÷ ñ Ð1ð Ð6Kñ r/   c                	ó   € Wn         V # r?   rØ  rÊ  s   &&r-   rÙ  Úrw_hybridproperty.classlevel  rÛ  r/   )rÉ  r2  rá  N)
rQ   rR   rS   rT   rî   rè  rö  rí  rÙ  rX   r+   r/   r-   rÝ  rÝ  û  s    † õ8õ
'õ$õ÷ñ r/   rÝ  c                  ó>   € ] tR tRtRtR R ltR R ltR R ltR	tR
# )Úhybridmethodi  z/Decorate a function as cls- or instance- level.c               ó   € V ^8„  d   QhRR/# rÅ  r+   )r,   s   "r-   r.   Úhybridmethod.__annotate__  rÇ  r/   c                	ó.   € V;V n         V n        Wn        R # r?   )r2  r:  rÉ  rÊ  s   &&r-   rî   Úhybridmethod.__init__  s   € Ø$(Ð(ˆŒ	�D”MØŽr/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   ró  r   rÎ  r)   r9  r+   )r,   s   "r-   r.   rõ    s"   € ÷ ñ  ð ¨Cð Ð4Eñ r/   c                	óŠ   € Vf&   V P                   P                  W"P                  4      # V P                  P                  W4      # r?   )rÉ  rè  rƒ   r2  )rC   ró  rÎ  s   &&&r-   rè  Úhybridmethod.__get__  sB   € ØÒØ—=‘=×(Ñ(Ø—‘óð ð —9‘9×$Ñ$Øóð r/   c               ó    € V ^8„  d   QhRRRR/# )r'   r2  r   r)   zhybridmethod[_T]r+   )r,   s   "r-   r.   rõ  &  s   € ÷ ñ Ð1ð Ð6Fñ r/   c                	ó   € Wn         V # r?   rØ  rÊ  s   &&r-   rÙ  Úhybridmethod.classlevel&  rÛ  r/   )r:  rÉ  r2  N)	rQ   rR   rS   rT   rU   rî   rè  rÙ  rX   r+   r/   r-   ró  ró    s   † Ù9õõ÷ñ r/   ró  c                  óx   € ] tR tRt$ RtR]R&   / tR]R&   ]P                  ! 4       t	RR R	 llt
R
 tR tR tRtR# )Úsymboli+  a)  A constant symbol.

>>> symbol("foo") is symbol("foo")
True
>>> symbol("foo")
<symbol 'foo>

A slight refinement of the MAGICCOOKIE=object() pattern.  The primary
advantage of symbol() is its repr().  They are also singletons.

Repeated calls of symbol('name') will all return the same instance.

r*   rz   zDict[str, symbol]ÚsymbolsNc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   rz   r*   rß  rn   Ú	canonicalrz  r)   rÿ  r+   )r,   s   "r-   r.   Úsymbol.__annotate__?  s2   € ÷ ñ àðð ðð !ð	ð
 
ñr/   c                	ó²  € V P                   ;_uu_ 4        V P                  P                  V4      pVfe   \        V\        4      '       g   Q hVf   \        V4      p\        P                  \        V4      pWn	        V'       d   W$n
        W@P                  V&   M V'       d   W48w  d   \        RV: RV 24      hVuuR R R 4       #   + '       g   i     R # ; i)Nz#Can't replace canonical symbol for z with new int value )Ú_lockr   r(  rh   r*   Úhashr­   Ú__new__rÿ  rz   rU   r)  )rZ   rz   rß  r  r©   s   &&&& r-   r  Úsymbol.__new__?  s®   € ð �Y�Y‹YØ—+‘+—/‘/ $Ó'ˆCØŠ{Ü! $¬×,Ò,Ð,Ð,ØÒ$Ü $ T£
�IÜ—k‘k¤&¨)Ó4�Ø”ßØ"%”Kð %(—‘˜DÒ!ç Ô!1Ü#Ø=¸d¹Xð F.Ø.7¨[ð:óð ð ÷- �Y�Y‹Yús   •BCÂ!CÃC	c                	ó>   € \         V P                  R \        V 4      33# rJ  )rÿ  rz   r­   rB   s   &r-   Ú
__reduce__Úsymbol.__reduce__]  s   € Ü˜Ÿ	™	 3¬¨D«	Ð2Ð2Ð2r/   c                	ó   € \        V 4      # r?   )rÌ   rB   s   &r-   Ú__str__Úsymbol.__str__`  s   € Ü�D‹zÐr/   c                	ó$   € R V P                   : R2# )zsymbol(r}  )rz   rB   s   &r-   Ú__repr__Úsymbol.__repr__c  s   € Ø˜Ÿ™™ QÐ'Ð'r/   r+   )NN)rQ   rR   rS   rT   rU   rW   r   r™  rš  r  r  r
  r  r  rX   r+   r/   r-   rÿ  rÿ  +  s9   ‡ ñð ƒIà!#€GÐÓ#Ø�NŠNÓ€E÷ò<3òö(r/   rÿ  c                  ó.   € ] tR tRtR R ltR R ltRtR# )Ú_IntFlagMetaig  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r'   Ú	classnamer*   rš   zTuple[Type[Any], ...]Údict_rá   rœ  r   r)   r<   r+   )r,   s   "r-   r.   Ú_IntFlagMeta.__annotate__h  s<   € ÷ 
ñ 
àð
ð %ð
ð ð	
ð
 ð
ð 
ñ
r/   c                	óÄ  € . ;V n         pVP                  4        Fˆ  w  rg\        P                  ! R V4      '       d   K$  \	        V\
        4      '       d   \        WgR7      pM$VP                  R4      '       g   \        R4      hKk  \        WV4       VP                  V4       KŠ  	  \        P                  ! V Uu/ uF  qˆP                  VbK  	  up4      V n        R# u upi )z^__.*__$)r  r¡  z#Expected integer values for IntFlagN)Ú_itemsr‚  rx   Úmatchrh   r­   rÿ  r³  r)  r¶  r“   r   Úimmutabledictrz   Ú__members__)	rZ   r  rš   r  rœ  r‚  r‡  Úvr©   s	   &&&&,    r-   rî   Ú_IntFlagMeta.__init__h  s°   € ð  ÐˆŒ
�UØ—K‘K–M‰DˆAÜ�xŠx˜ Q×'Ò'ÙÜ˜!œS×!Ò!Ü˜QÔ,‘Ø—\‘\ #×&Ò&ÜÐ EÓFÐFáÜ�C˜CÔ Ø�L‰L˜Öñ "ô '×4Ò4Ù&+Ó,¡e˜s�X‰X�sŠ]¡eÑ,ó
ˆŽùÚ,s   Â:Cc               ó   € V ^8„  d   QhRR/# )r'   r)   zIterator[symbol]r+   )r,   s   "r-   r.   r  �  s   € ÷ 
ñ 
Ð*ñ 
r/   c                	ó   € \        R 4      h)z“iter not implemented to ensure compatibility with Python 3.11 IntFlag.  Please use __members__.  See https://github.com/python/cpython/issues/99304rî  rB   s   &r-   Ú__iter__Ú_IntFlagMeta.__iter__�  s   € Ü!ð=ó
ð 	
r/   r+   N)rQ   rR   rS   rT   rî   r!  rX   r+   r/   r-   r  r  g  s   † õ
÷2
ñ 
r/   r  c                  ó   € ] tR tRtRtRtR# )Ú_FastIntFlagi‰  z¶An 'IntFlag' copycat that isn't slow when performing bitwise
operations.

the ``FastIntFlag`` class will return ``enum.IntFlag`` under TYPE_CHECKING
and ``_FastIntFlag`` otherwise.

r+   NrÉ  r+   r/   r-   r$  r$  ‰  s   † õr/   r$  )Ú	metaclass)ÚIntFlagÚ_Ec          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r'   ry  r   ÚchoiceszDict[_E, List[Any]]rz   r*   Úresolve_symbol_namesr€   r)   zOptional[_E]r+   )r,   s   "r-   r.   r.   ž  sA   € ÷ Dñ DØ	ðDà ðDð ðDð ð	Dð
 ñDr/   c                óØ   € VP                  4        F4  w  rEWJ d   Vu # V'       d   WP                  8X  d   Vu # W9   g   K2  Vu # 	  V f   R# \        P                  ! RV RV : 24      h)a'  Given a user parameter, parse the parameter into a chosen value
from a list of choice objects, typically Enum values.

The user argument can be a string name that matches the name of a
symbol, or the symbol object itself, or any number of alternate choices
such as True/False/ None etc.

:param arg: the user argument.
:param choices: dictionary of enum values to lists of possible
    entries for each.
:param name: name of the argument.   Used in an :class:`.ArgumentError`
    that is raised if the parameter doesn't match any available argument.

NzInvalid value for 'z': )r‚  rz   r   r¨  )ry  r)  rz   r*  Ú
enum_valueÚchoices   &&&&  r-   Úparse_user_argument_for_enumr.  ž  si   € ð( &Ÿm™mžoÑˆ
ØÓØÒß! c¯_©_Ô&<ØÒØŽ]ØÒñ .ð ‚{Ùä
×
Ò
Ð1°$°°s¸3¹'ÐBÓ
CÐCr/   c               ó    € V ^8„  d   QhRRRR/# rù  r+   )r,   s   "r-   r.   r.   Ã  s   € ÷ 
ñ 
 ð 
¨ñ 
r/   c                ó6   € \         V n         \         ^,          s R# )zÎAssign a '_creation_order' sequence to the given instance.

This allows multiple instances to be sorted in order of creation
(typically within a single thread; the counter is not particularly
threadsafe).

N)Ú_creation_order)ró  s   &r-   Úset_creation_orderr2  Ã  s   € ô  /€HÔÜ�qÕ‚Or/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   r2  r   r?  r   rl  r)   r+   )r,   s   "r-   r.   r.   Ð  s)   € ÷ 7ñ 7Ð+ð 7°Cð 7À3ð 7È3ñ 7r/   c                ó�   €  V ! V/ VB #   \          d1    \        R\        P                  ! 4       R,          ,          4        R# i ; i)zPexecutes the given function, catches all exceptions and converts to
a warning.

z%s('%s') ignored:é    r'   NN)ri   Úwarnr@   rA   )r2  r?  rl  s   &*,r-   Úwarn_exceptionr7  Ð  s?   € ð
7Ù�TÐ$˜VÑ$Ð$øÜô 7ÜÐ¤#§,¢,£.°Õ"5Õ5×6ð7ús   ‚
 Š7AÁAc                óf   €  \        V 4      V8”  d   R V ^ V ,          # V #   \         d    T u # i ; i)z%s...)rÆ   r)  )rH   Úlen_s   &&r-   Úellipses_stringr:  Û  s=   € ðÜˆu‹:˜ÔØ˜U 1 T˜]Õ*Ð*àˆLøÜô ØŠðús   ‚  ž   0¯0c                  óV   a € ] tR tRt$ RtR]R&   R V 3R lltR R ltR	 R
 ltRt	V ;t
# )Ú_hash_limit_stringiå  a  A string subclass that can only be hashed on a maximum amount
of unique values.

This is used for warnings so that we can send out parameterized warnings
without the __warningregistry__ of the module,  or the non-overridable
"once" registry within warnings.py, overloading memory,


r­   Ú_hashc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   rH   r*   Únumr­   r?  úSequence[Any]r)   r<  r+   )r,   s   "r-   r.   Ú_hash_limit_string.__annotate__ò  s,   € ÷ ñ ØðØ!ðØ)6ðà	ñr/   c                	ó¤   <€ W,          R V,          ,           p\         SV `  W4      p\        RV\        V4      V,          3,          4      Vn        V# )z6 (this warning may be suppressed after %d occurrences)z%s_%d)r»  r  r  r=  )rZ   rH   r?  r?  ÚinterpolatedrC   rƒ   s   &&&&  €r-   r  Ú_hash_limit_string.__new__ò  sN   ø€ ð �ØDÀsÕJõ
ˆô ‰w‰˜sÓ1ˆÜ˜' U¬D°Ó,>ÀÕ,DÐ$EÕEÓFˆŒ
Øˆr/   c               ó   € V ^8„  d   QhRR/# )r'   r)   r­   r+   )r,   s   "r-   r.   rA  ü  s   € ÷ ñ ˜#ñ r/   c                	ó   € V P                   # r?   ©r=  rB   s   &r-   Ú__hash__Ú_hash_limit_string.__hash__ü  s   € Ø�z‰zÐr/   c               ó    € V ^8„  d   QhRRRR/# )r'   Úotherr   r)   r€   r+   )r,   s   "r-   r.   rA  ÿ  s   € ÷ )ñ )˜Cð ) Dñ )r/   c                	ó0   € \        V 4      \        V4      8H  # r?   )r  )rC   rK  s   &&r-   Ú__eq__Ú_hash_limit_string.__eq__ÿ  s   € Ü�D‹zœT %›[Ñ(Ð(r/   rG  )rQ   rR   rS   rT   rU   rW   r  rH  rM  rX   rÀ  rÁ  s   @r-   r<  r<  å  s(   ø‡ ñð ƒJ÷ð õ÷)ó )r/   r<  c               ó$   € V ^8„  d   QhRRRRRR/# )r'   Úmsgr*   rÚ   rn   r)   r<   r+   )r,   s   "r-   r.   r.     s!   € ÷ 
+ñ 
+ˆcð 
+˜ð 
+°$ñ 
+r/   c                óŽ   € V'       d#   \        \        P                  ! WR7      4       R# \        V \        P                  4       R# )zXIssue a warning.

If msg is a string, :class:`.exc.SAWarning` is used as
the category.

)rÚ   N)Ú_warnings_warnr   Ú	SAWarning)rP  rÚ   s   &&r-   r6  r6    s&   € ÷ Ü”s—}’} SÔ4Ö5ä�sœCŸM™MÖ*r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rP  r*   r?  r@  r)   r<   r+   )r,   s   "r-   r.   r.     s!   € ÷ 'ñ '�cð ' ð '°4ñ 'r/   c                ód   € V'       d   \        V ^
V4      p \        V \        P                  4       R# )zTIssue a warning with a parameterized string, limiting the number
of registrations.

N)r<  rR  r   rS  )rP  r?  s   &&r-   Úwarn_limitedrV    s#   € ÷
 Ü   b¨$Ó/ˆÜ�3œŸ™Ö&r/   z)Dict[CodeType, Tuple[str, Type[Warning]]]Ú_warning_tagsc               ó$   € V ^8„  d   QhRRRRRR/# )r'   Úmessager*   ÚcategoryzType[Warning]r)   úCallable[[_F], _F]r+   )r,   s   "r-   r.   r.     s$   € ÷ ñ ØðØ)ðàñr/   c                ó   a a€ VV 3R  lpV# )c                ó2   <€ SS3\         V P                  &   V # r?   )rW  r  )r¬   rZ  rY  s   &€€r-   ÚgoÚ#tag_method_for_warnings.<locals>.go   s   ø€ Ø&-¨xÐ%8Œ�b—k‘kÑ"Øˆ	r/   r+   )rY  rZ  r^  s   ff r-   Útag_method_for_warningsr`    s   ù€ öð €Ir/   z&^(?:sqlalchemy\.(?!testing)|alembic\.)c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r'   rY  zUnion[str, Warning]rZ  zOptional[Type[Warning]]Ú
stacklevelr­   r)   r<   r+   )r,   s   "r-   r.   r.   *  s0   € ÷ 0:ñ 0:Ø ð0:à%ð0:ð ð0:ð 
ñ	0:r/   c                ór  €  \         P                  ! V4      pR ;rEVe¾   V'       g>   \        P                  ! \        VP
                  P                  RR4      4      '       g   RpVP                  \        9   d0   Rp\        VP                  ,          w  rgT;'       g    TpV  RV R2p VP                  pV'       g   V^,          pK¬  V'       g   K¶  V'       g   KÀ  M Ve"   \        P                  ! WV^,           R7       R# \        P                  ! W^,           R7       R#   \         d    ^ p LT ^ p LY; i)FNrQ   rÀ   Tz (r}  )rb  )r@   Ú	_getframerx   r  Ú_not_sa_patternÚ	f_globalsr(  Úf_coderW  Úf_backrn  Úwarningsr6  )rY  rZ  rb  ÚframeÚstacklevel_foundÚwarning_tag_foundÚ_suffixÚ	_categorys   &&&     r-   rR  rR  *  s  € ð%Ü—’˜jÓ)ˆð 05Ð4ÐØÒ÷ $¬B¯HªHÜ §¡×!4Ñ!4°ZÀÓ!D÷-ò -ð
 $(Ð ð
 �|‰|œ}Ô,Ø$(Ð!Ü%2°5·<±<Õ%@Ñ"�Ø#×0Ð0 y�Ø$˜I R¨ y°Ð2�à—L‘LˆEç#Ø˜a•’
ß!Ñ!×&7Ñ&7Øð3  ð6 ÒÜ�Š�g°JÀµN×Cä�Š�g°q­.×9øôQ ô ð Š
ðð Š
ús   ‚D" Ä"D6Ä1D6c               ó$   € V ^8„  d   QhRRRRRR/# )r'   r¬   r9  Úretry_on_exceptionr€   r)   zCallable[..., Optional[_T]]r+   )r,   s   "r-   r.   r.   ]  s$   € ÷ ñ ØðØ/3ðà ñr/   c                ó(   a aa€ S .oR V VV3R llpV# )zJDecorate the given function to be a no-op after it is called exactly
once.c               ó$   € V ^8„  d   QhRRRRRR/# )r'   ry  r   rœ  r)   zOptional[_T]r+   )r,   s   "r-   r.   Úonly_once.<locals>.__annotate__e  s!   € ÷ ñ �ð ˜Cð  Lñ r/   c                 óŽ   <€ SpS'       d   SP                  4       p V! V / VB # R#    S'       d   SP                  ^ T4       h ; i)r5  N)r^   Úinsert)ry  rœ  Ú	strong_fnÚonce_fnr¬   Úoncerp  s   *,  €€€r-   r^  Úonly_once.<locals>.goe  sM   ø€ ð ˆ	ßØ—h‘h“jˆGðÙ Ð* rÑ*Ð*ñ øðß%Ø—K‘K  7Ô+Øús	   �' §Ar+   )r¬   rp  r^  rx  s   ff @r-   Ú	only_oncerz  ]  s   ú€ ð ˆ4€D÷ò ð €Ir/   z%sqlalchemy/([a-z_]+/){0,2}[a-z_]+\.pyzunit(?:2|test2?/)c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   Útbr3  Úexclude_prefixzre.Pattern[str]Úexclude_suffixr)   r+   )r,   s   "r-   r.   r.   {  s0   € ÷ ñ Øðà#ðð $ðð ñ	r/   c                óø   € ^ p\        V 4      ^,
          pW48:  d)   VP                  W,          4      '       d   V^,          pK.  W48:  d)   VP                  W,          4      '       d   V^,          pK.  WV^,            # )aT  Chop extraneous lines off beginning and end of a traceback.

:param tb:
  a list of traceback lines as returned by ``traceback.format_stack()``

:param exclude_prefix:
  a regular expression object matching lines to skip at beginning of
  ``tb``

:param exclude_suffix:
  a regular expression object matching lines to skip at end of ``tb``
)rÆ   Úsearch)r|  r}  r~  r�   Úends   &&&  r-   Úchop_tracebackr‚  {  se   € ð" €EÜ
ˆb‹'�A�+€CØ
Œ,˜>×0Ñ0°µ×;Ò;Ø��
ŠØ
Œ,˜>×0Ñ0°µ×9Ò9Øˆq�ŠØ�c˜A•gÐÐr/   c                ól   € R V ,          p\        4       P                  4       p\        W4       VR,          # )z&def set(obj, value):    obj.%s = valuer]   )rµ  Úcopyrã   )ÚattrnamerÚ   rÛ   s   &  r-   Ú
attrsetterr†  ˜  s*   € Ø3°hÕ>€DÜ
‹(�-‰-‹/€CÜˆ„OØˆu�:Ðr/   z^__.+__$c                  ó6   a € ] tR tRtRtRtR V 3R lltRtV ;t# )Ú
TypingOnlyi¢  z‹A mixin class that marks a class as 'typing only', meaning it has
absolutely no methods, attributes, or runtime functionality whatsoever.

c               ó   € V ^8„  d   QhRR/# r;   r+   )r,   s   "r-   r.   ÚTypingOnly.__annotate__ª  s   € ÷ 
$ñ 
$ $ñ 
$r/   c                	óü   <€ \         V P                  9   dS   V P                   Uu0 uF"  p\        P	                  V4      '       d   K   VkK$  	  ppV'       d   \        R V  RV R24      h\        SV `  4        R# u upi )zClass z< directly inherits TypingOnly but has additional attributes r  N)rˆ  r*  r'  Ú_dundersr  ÚAssertionErrorr»  Ú__init_subclass__)rZ   rz   Ú	remainingrƒ   s   &  €r-   rŽ  ÚTypingOnly.__init_subclass__ª  sx   ø€ Ü˜Ÿ™Ô&à!$§¢óÙ!-˜´X·^±^ÀD×5I—�¡ð ð ÷ Ü$Ø˜S˜Eð "-Ø-6¨K°qð:óð ô 	‰Ñ!Ö#ùòs   ¥A9ÁA9r+   )	rQ   rR   rS   rT   rU   rV   rŽ  rX   rÀ  rÁ  s   @r-   rˆ  rˆ  ¢  s   ø† ñð
 €I÷
$ö 
$r/   rˆ  c                  óV   a € ] tR tRt$ RtR]R&    R V 3R llt]R R l4       tR	t	V ;t
# )
ÚEnsureKWArgi·  a"  Apply translation of functions to accept \**kw arguments if they
don't already.

Used to ensure cross-compatibility with third party legacy code, for things
like compiler visit methods that need to accept ``**kw`` arguments,
but may have been copied from old code that didn't accept them.

r*   Úensure_kwargc               ó   € V ^8„  d   QhRR/# r;   r+   )r,   s   "r-   r.   ÚEnsureKWArg.__annotate__Ê  s   € ÷ $ñ $ $ñ $r/   c                	óT  <€ V P                   pV P                  pV'       dy   V Fr  p\        P                  ! W4      pV'       g   K#  W#,          p\        P
                  ! V4      pVP                  '       d   KU  V P                  V4      p\        WV4       Kt  	  \        SV `)  4        R # r?   )r“  r'  rx   r  r   rÅ   rA  Ú
_wrap_w_kwr¶  r»  rŽ  )	rZ   Úfn_regÚclsdictr­  r5   r¬   rÓ   Úwrappedrƒ   s	   &       €r-   rŽ  ÚEnsureKWArg.__init_subclass__Ê  s|   ø€ Ø×!Ñ!ˆØ—,‘,ˆßÛ�Ü—H’H˜VÓ)�ß‘1Ø ��BÜ!×8Ò8¸Ó<�DØŸ:Ÿ:š:Ø"%§.¡.°Ó"4˜Ü ¨'Ö2ñ ô 	‰Ñ!Ö#r/   c               ó    € V ^8„  d   QhRRRR/# )r'   r¬   r   r)   r+   )r,   s   "r-   r.   r•  Ù  s   € ÷ (ñ (Ð.ð (Ð3Eñ (r/   c                	ó.   a€ R  V3R llp\        VS4      # )c               ó$   € V ^8„  d   QhRRRRRR/# )r'   ry  r   rœ  r)   r+   )r,   s   "r-   r.   Ú,EnsureKWArg._wrap_w_kw.<locals>.__annotate__Ú  s!   € ÷ 	ñ 	�sð 	 #ð 	¨#ñ 	r/   c                 ó   <€ S! V !  # r?   r+   )ry  rœ  r¬   s   *,€r-   ÚwrapÚ$EnsureKWArg._wrap_w_kw.<locals>.wrapÚ  s   ø€ Ù�s‘8ˆOr/   r   )rZ   r¬   r¡  s   &f r-   r—  ÚEnsureKWArg._wrap_w_kwØ  s   ø€ ÷	ð 	ô ˜d BÓ'Ð'r/   r+   )rQ   rR   rS   rT   rU   rW   rŽ  r  r—  rX   rÀ  rÁ  s   @r-   r’  r’  ·  s3   ø‡ ñð Óð÷$ð $ð ô(ó ö(r/   r’  c                ó°  € \        VR4      '       d   \        W4      # T pVP                  P                  Vn        \        VR4      '       d   VP                  Vn        \        VP
                  R4      '       d:   VP
                  P                  '       d   VP
                  P                  Vn        V# VP                  '       d   VP                  Vn        V# )z�Augment functools.update_wrapper() to work with objects with
a ``__call__()`` method.

:param fn:
  object with __call__ method

rQ   rR   rU   )r’   r   rƒ   rQ   rR   r;  rU   )Úwrapperr¬   Ú_fs   && r-   Úwrap_callabler§  à  s�   € ô ˆr�:×ÒÜ˜gÓ*Ð*àˆØ—l‘l×+Ñ+ˆŒÜ�2�|×$Ò$ØŸM™MˆBŒMä�2—;‘; 	×*Ò*¨r¯{©{×/B×/BÐ/BØŸ™×,Ñ,ˆBŒJð ˆ	ð �Z�ZˆZØŸ™ˆBŒJàˆ	r/   c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rq  r*   r�   r­   r)   rz  r+   )r,   s   "r-   r.   r.   ø  s!   € ÷ <ñ <˜cð <¨#ð <°mñ <r/   c                óþ  € W,          R8X  g   Q R4       h^ pRpRp\        V 4      pTpWe8  dÐ   W,          pV'       d8   VR8X  d0   V^,           V8  d    W^,           ,          R8X  d   V^,          pKJ  RpM}V'       d8   VR8X  d0   V^,           V8  d    W^,           ,          R8X  d   V^,          pK‰  RpM>VR8X  d   RpM4VR8X  d   RpM*VR8X  d   V^,          pMVR8X  d   V^,          pV^ 8X  d   V# V^,          pKÕ  R# )	a¶  Return the index of the ``)`` that matches the ``(`` at ``start``.

The walk skips single-quoted (``'...'``) and double-quoted (``"..."``)
string literals, so parentheses inside string literals do not affect
the depth counter. ``''`` and ``""`` are treated as escaped quotes
inside their respective contexts, matching PostgreSQL/SQLite literal
conventions.

Returns ``None`` if the opening parenthesis is never closed
(unbalanced).  The character at ``text[start]`` must be ``(``.

Note for SQLite use, SQLite also supports MySQL backtick-style quotes as
well as SQL Server bracket style quotes; the latter has different escaping
behaviors.  A follow-up patch could add support for these two additional
styles (consider using an enum like QuotingStyle.DOUBLE |
QuotingStyle.BRACKET, etc.)

E.g.::

    >>> find_matching_paren("(a + b)")
    6
    >>> find_matching_paren("((a)(b))")
    7
    >>> find_matching_paren("(a = '(' AND b = ')')")
    20

r{  z'start index must point at an open parenFr§  Ú"Tr}  N)rÆ   )rq  r�   ÚdepthÚ	in_singleÚ	in_doublert   rž   Úchs   &&      r-   Úfind_matching_parenr¯  ø  sû   € ð8 �;˜#ÔÐHÐHÓHÐà€EØ€IØ€IÜˆD‹	€AØ€AØ
Œ%Ø�WˆßØ�SŒyØ�q•5˜1”9 ¨!¥e¥°Ô!3Ø˜•F�AÙØ!�	øßØ�SŒyØ�q•5˜1”9 ¨!¥e¥°Ô!3Ø˜•F�AÙØ!�	øØ�3ŒYØ‰IØ�3ŒYØ‰IØ�3ŒYØ�Q�J‰EØ�3ŒYØ�Q�JˆEØ˜ŒzØ�Ø	ˆQ�ŠÙr/   c               ó    € V ^8„  d   QhRRRR/# ©r'   rq  r*   r)   r+   )r,   s   "r-   r.   r.   7  s   € ÷ ñ ˜Sð  Sñ r/   c                óÊ   € V P                  4       p\        V4      pV^8  g   V^ ,          R8w  g   VR,          R8w  d   V # \        V^ 4      pVe   W2^,
          8X  d   V^R # V # )a5  Remove one layer of outer parentheses from ``text`` if they wrap the
entire (stripped) string.

Whitespace is preserved if the parentheses do not wrap the whole
expression. String literals are honored via :func:`find_matching_paren`,
so ``"(a = '(' AND b = ')')"`` correctly strips to
``"a = '(' AND b = ')'"`` rather than being interpreted as two separate
paren groups.

E.g.::

    >>> strip_outer_parens("(a IS NOT NULL)")
    'a IS NOT NULL'
    >>> strip_outer_parens("(a) AND (b)")
    '(a) AND (b)'
    >>> strip_outer_parens("a NOT NULL")
    'a NOT NULL'

r{  r}  rT  )rm  rÆ   r¯  )rq  ÚstrippedÚ	lstrippedÚcloses   &   r-   Ústrip_outer_parensr¶  7  sf   € ð( �z‰z‹|€HÜ�H“€IØ�1„}˜ � sÔ*¨h°r­l¸cÔ.AØˆÜ ¨!Ó,€EØÒ˜U°!¥mÔ3Ø˜˜"ˆ~ÐØ€Kr/   c                óú  € RV 9  d   V P                  R4      # ^ p. .p^ p\        V 4      pW48  d§   W,          pVR8X  dU   V^8X  dD   W4^,
          8  d7   W^,           ,          R8X  d#   VR,          P                  R4       V^,          pMBV^,          pM8VR8X  d   V^ 8X  d   VP                  . 4       MVR,          P                  V4       V^,          pK¬  V Uu. uF  pRP                  V4      NK  	  up# u upi )a˜  Parse a dotted identifier with accommodation for quoted names.

Includes support for SQL-style double quotes as a literal character.

E.g.::

    >>> quoted_token_parser("name")
    ["name"]
    >>> quoted_token_parser("schema.name")
    ["schema", "name"]
    >>> quoted_token_parser('"Schema"."Name"')
    ['Schema', 'Name']
    >>> quoted_token_parser('"Schema"."Name""Foo"')
    ['Schema', 'Name""Foo']

rª  r  rÀ   rT  )r  rÆ   r“   rw   )rH   r•  r  ÚidxÚlvÚcharr  s   &      r-   Úquoted_token_parserr»  U  sÞ   € ð$ �%ÔØ�{‰{˜3ÓÐð €EØ!˜d€FØ
€CÜ	ˆU‹€BØ
Œ(Ø�zˆØ�3Œ;Ø˜Œz˜c¨¥Fœl¨u¸1µW­~ÀÔ/DØ�r•
×!Ñ! #Ô&Ø�q•‘à˜•
‘Ø�SŒ[˜U aœZØ�M‰M˜"Õà�2�J×Ñ˜dÔ#Øˆq�Šá(.Ó/©˜uˆB�G‰G�EŽN©Ñ/Ð/ùÒ/s   ÃC8c               ó$   € V ^8„  d   QhRRRRRR/# )r'   Úparamsr   rq  r*   r)   r[  r+   )r,   s   "r-   r.   r.   �  s"   € ÷ 
ñ 
˜sð 
¨#ð 
Ð2Dñ 
r/   c                óD   a a€ \         P                  ! S 4      o V V3R  lpV# )c                ó¾   <€ V P                   R J;'       d    V P                   ;'       g    RpV'       d   \        TS Uu/ uF  q"SbK  	  up4      pWn         V # u upi )NrÀ   )rU   Úinject_param_text)r¬   rß  Úparamr½  rq  s   &  €€r-   rÝ   Ú$add_parameter_text.<locals>.decorate„  sU   ø€ Ø�j‰j Ð$×3Ð3¨¯©×9Ð9°rˆßÜ# CÁ6Ó)JÁ6¸%°ª+Á6Ñ)JÓKˆCØŒ
Øˆ	ùò *Ks   Á A
)r   r~  )r½  rq  rÝ   s   ff r-   Úadd_parameter_textrÃ  �  s   ù€ Ü×!Ò! &Ó)€Föð €Or/   c               ó    € V ^8„  d   QhRRRR/# r±  r+   )r,   s   "r-   r.   r.   Ž  s   € ÷ 	%ñ 	%˜Cð 	% Cñ 	%r/   c                óô   € V P                  R ^4      p\        V4      ^8X  d   V # Vw  r#VP                  R4      '       g%   VR ,           \        P                  ! V4      ,           # \        P                  ! V 4      # )Ú
rp   )r  rÆ   r³  ÚtextwrapÚdedent)rq  Ú
split_textÚ	firstliner�  s   &   r-   Ú_dedent_docstringrË  Ž  sd   € Ø—‘˜D !Ó$€JÜ
ˆ:ƒ˜!ÔØˆà)Ñˆ	Ø×Ñ ×$Ò$Ø˜4Õ¤(§/¢/°)Ó"<Õ<Ð<ä�Š˜tÓ$Ð$r/   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r'   Úgiven_doctextrn   Ú
injecttextr*   Úposr­   r)   r+   )r,   s   "r-   r.   r.   š  s,   € ÷ ñ Ø ðØ.1ðØ8;ðàñr/   c                óJ  € \        T ;'       g    R 4      pVP                  R4      p\        V4      ^8X  d   VP                  R 4       \        P
                  ! V4      P                  R4      pV^ ,          '       d   VP                  ^ R 4       \        V4       UUu. uF  w  rgVP                  4       '       d   K  VNK!  	  pppVP                  ^ ^ 4       V\        V\        V4      ^,
          4      ,          p	V^ V	 V,           WIR ,           pRP                  V4      # u uppi )rÀ   rÆ  N)rË  r  rÆ   r“   rÇ  rÈ  ru  r€  rm  Úminrw   )
rÍ  rÎ  rÏ  ÚdoctextÚlinesÚinjectlinesr?  ÚlineÚblanksÚ
inject_poss
   &&&       r-   Úinject_docstring_textrØ  š  së   € ô % ]×%8Ð%8°bÓ9€GØ�M‰M˜$Ó€EÜ
ˆ5ƒz�Q„Ø�‰�RÔÜ—/’/ *Ó-×3Ñ3°DÓ9€KØ�1‡~„~Ø×Ñ˜1˜bÔ!ä#,¨UÔ#3ÔHÑ#3‘i�c¸4¿:¹:¿<�cˆcÑ#3€FÑHØ
‡M�M�!�QÔàœ˜C¤ V£¨q¥Ó1Õ2€Jà�!�JÐ +Õ-°°kÐ0BÕB€EØ�9‰9�UÓÐùó Is   ÂDÂ;Dz(\s+):param (.+?):c               ó$   € V ^8„  d   QhRRRRRR/# )r'   rÒ  r*   Úinject_paramszDict[str, str]r)   r+   )r,   s   "r-   r.   r.   ±  s!   € ÷ (ñ (˜sð (°>ð (Àcñ (r/   c                ót  € \         P                  ! V P                  4       4      p. pR pV'       Edx   VP                  4       p\        P                  V4      pVf¶   V'       d­   VP                  ^4      P                  R4      pWq9   d‡   R\        VP                  ^4      4      ,          R,           pV'       dH   \        P
                  ! RV^ ,          4      p	V	'       d"   R\        V	P                  ^4      4      ,          pW�V,          ,           pM…V'       d   VP                  RVR.4       R pMfVP                  4       '       g   VP                  WTR.4       R pM:VP                  R4      '       d$   VP                  WRP                  4       .4       EKl  VP                  V4       EK€  RP                  V4      # )NÚ*rp   z(\s+)\SrÆ  z::)ÚcollectionsÚdequeÚ
splitlinesÚpopleftÚ
_param_regr  ré   ÚlstriprÆ   rx   r`   Úrstripr´  r“   rw   )
rÒ  rÚ  ÚdoclinesrÓ  Ú	to_injectrÕ  r5   rÁ  ÚindentÚm2s
   &&        r-   rÀ  rÀ  ±  sP  € Ü× Ò  ×!3Ñ!3Ó!5Ó6€HØ€Eð €Iß
ˆ(Ø×ÑÓ!ˆä×Ñ˜TÓ"ˆàÒßØŸ™ ›
×)Ñ)¨#Ó.�ØÔ)à ¤3 q§w¡w¨q£z£?Õ2°SÕ8�F÷  ÜŸXšX j°(¸1µ+Ó>˜ßØ%(¬3¨r¯x©x¸«{Ó+;Õ%;˜Fà &°uÕ)=Õ =�IøßØ�L‰L˜$ 	¨4Ð0Ô1Ø‰IØ—‘—’Ø�L‰L˜$¨4Ð0Ô1Ø‰IØ�]‰]˜4× Ò ð �L‰L˜$× 0Ñ 0Ó 2Ð3Ô4ÚØ�‰�T×à�9‰9�UÓÐr/   c               ó    € V ^8„  d   QhRRRR/# )r'   rÖ   r3  r)   rn   r+   )r,   s   "r-   r.   r.   Ü  s   € ÷ >ñ >˜Ið >¨-ñ >r/   c                ót  € \        V 4      ^ 8X  d   R# \        V 4      ^8*  pV'       d
   V R,          MV R,          V RR ,           p V  Uu. uF%  p\        V4      ^8”  d   RVR,          ,          MTNK'  	  ppV'       d   RP                  V4      # RP                  VR,          4      : RVR,          : 2# u upi )	zˆTrims a list of strings from the middle and return a string of up to
four elements. Strings greater than 11 characters will be truncatedN:r5  é   N:r5  r»   Nz%s..:Né   Nr|  z, ..., rT  )rÆ   rw   )rÖ   Úflagrz   Úress   &   r-   Úrepr_tuple_namesrî  Ü  sš   € ô ˆ5ƒz�Q„ÙÜˆu‹:˜‰?€DßˆE�#ŽJ E¨#¥J°°r°s°Õ$;€EÙFKÓ
LÁe¸d¤ T£¨R¤ˆ6�D˜•IÖ°TÒ9Áe€CÐ
LßØ�y‰y˜‹~Ðà $§	¡	¨#¨c­(Ö 3°S¸·WÐ=Ð=ùò	 Ms   Á	+B5c                óH   € \         '       d   R # V '       d   \        R4      hR# )TzDcython extensions were expected to be installed, but are not presentF)r   ÚImportError)Úraise_s   &r-   Úhas_compiled_extrò  ê  s$   € ßƒÙß	Üð"ó
ð 	
ñ
 r/   c                  ó8   € ] tR tRt]P
                  ! 4       tRtR# )Ú_Missingiö  r+   N)rQ   rR   rS   rT   ÚenumÚautoÚMissingrX   r+   r/   r-   rô  rô  ö  s   † Ø�iŠi‹k„Gr/   rô  r?   )FF)T)r+   r+   r+   r+   )r+   Nr+   )NNz
self.proxyN)NNN)TN)F)é   )Nr'   )r5  )�Ú__conditional_annotations__rU   Ú
__future__r   rÝ  rõ  Ú	functoolsr   rÂ   r¢   rÌ  rx   r@   rÇ  r™  rÍ   r   Útypingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   ri  rÀ   r   r   Ú_has_cyr   r   r   r   r   r    r"   r#   r$   r%   r6   r8   rd   rj   r{   rˆ   r–   rª   r°   r±   rß   rÏ   rä   rå   rç   r  r!  r5  rD  rÊ   r^  rj  rm  rq  r�  r�  r©  r®  rÁ  rÅ  rØ  rÙ  rÛ  r
  r  rO  Únon_memoized_propertyÚpropertyÚro_memoized_propertyÚro_non_memoized_propertyr$  r&  Ú!HasMemoized_ro_memoized_attributerD  rQ  ro  rx  r|  r�  rŠ  r�  r•  r¡  r©  rÐ  r¶  rÃ  rÝ  ró  r­   rÿ  r‚   r  r$  r&  ÚFastIntFlagÚEnumr'  r.  r1  r2  r7  r:  r*   r<  r6  rV  rW  rW   r`  Úcompilere  rR  rz  Ú_SQLA_REÚ_UNITTEST_REr‚  ÚNoneTyper†  rŒ  rˆ  r’  r§  r¯  r¶  r»  rÃ  rË  rØ  rá  rÀ  rî  rò  rô  r÷  Ú	MissingOr)rù  s   @r-   Ú<module>r
     sµ  øðôõ
 #ã Û Ý $Û Û Û Û 	Û 
Û Û Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý Û å Ý Ý $Ý Ý áˆTƒ]€Ù� 4Ô(€ÙˆT˜ # s (Õ+Ô,€ÙˆeÐ3Ô4€ÙˆeÐ@ÔA€ÙˆeÐ0Ô1€ÙˆeÐ.Ô/€õ$÷82ñ 82õvõ6÷Oõ,õ$õMõ ñ ˆeÐ/Ô0€õ
S,õlñ ˆeƒn€Ùˆeƒn€÷(ñ (òV
ð( 
ðð  $ðð "ö	ó 
ðð 
ðØ-1ðØDIöó 
ðð
2Ø-1ð2ØDI÷2õj2÷9;÷xr
ôj÷Bò26ò(	÷KB÷\;ñ ;ò<#òLô @/òFôSñl ˆvÐ9Ô:€ô($˜G E�Nô ($ôV"Ð2°5Õ9ô "ô"%Ð.¨uÕ5ô %÷< ð .ÐØ1Ðð
 $ÐØ'Ñð 0BÐAÐÐ,Ø7MÐMÐÐ4õ'÷.J+ñ J+÷Z Ø(0Ñ%à(3×(FÑ(FÐ%÷-/ñ -/õb	õõ÷'õ4õõ÷ õFò$Cô0�Hô ô*�W˜R•[ô ô"˜ �ô ô4�7˜2•;ô ô,9(ˆSô 9(ôx
�4ô 
ôD˜\õ ÷ Ýà�Kà€Kñ ˆT˜Ÿ™Ô#€÷DðD €õ
õ7ôô)˜ô )÷<
+õ'ð <>€Ð8Ó =õð —*“*ÐFÓG€÷0:õfð4 �:‹:Ð>Ó?€Ø�z‹zÐ.Ó/€ð
 '3Ø&.÷ñ4 �‹:€òð �:‹:�jÓ!€÷$ñ $÷*&(ñ &(òR÷0<õ~ò<)0õX
õ	%õð( �Z‹ZÐ-Ó.€
õ(õV>ô	ôˆt�y‰yô ð ×
Ò
€Ø�"�g˜h×.Ò.Õ/Ð/Õ0‚	r/   