R
    ¢¤Òj°  ã                   óÊ  €   Q s ] PHs] PHs] PHs] PHs] PHs] PHs, Q!Ns  Q Q\O                  2      s	\
 2       sQsQ"s  Q Q2      s\ Q#Q$ 2      s  Q Q2      sQ sQ	 sQ
 s  Q Q\2      sQP-Q ksQPQP
-Q ksQ sQ sQ sQPQPQP
Q\	O8                  -Q ksQ sQ sQ s Q s!\OD                  Q*          OF                  s$Q s%  Q Q \OL                  2      s'P! )%z3Helpers for introspecting and wrapping annotations.ÚFormatÚ
ForwardRefc                   ó(   €   \ sQ s]s]s]s]s]sQsP! )r   © )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚVALUEÚVALUE_WITH_FAKE_GLOBALSÚ
FORWARDREFÚSTRINGÚ__static_attributes__r   ó    Ú*/usr/local/lib/python3.15/annotationlib.pyr   r      s   ‡ Ø€EØÐØ€JØ„Fr   z!name '{name:.200}' is not definedc            
       óÖ   ` €   \ sQ s]6s n Qs\sQPQPQP	QP
-Q ksQ sQPQ	PQ
PQPQ\	O                  -Q ks\1Q ks\Q 2       s\Q 2       s\Q 2       sQ sQ sQ sQ sQ sQsU sP! )r   a—  Wrapper that holds a forward reference.

Constructor arguments:
* arg: a string representing the code to be evaluated.
* module: the module where the forward reference was created.
  Must be a string, not a module object.
* owner: The owning object (module, class, or function).
* is_argument: Does nothing, retained for compatibility.
* is_class: True if the forward reference was created in class scope.

ÚmoduleÚownerÚis_argumentÚis_classc               óâ   €   [        U[        2      %       f   [        Q U8 02      gVm        V@m        VPm        V m        V0m        PU m        PU m	        PU m
        PU m        PU m        PU m        P! )z*Forward reference must be a string -- got )Ú
isinstanceÚstrÚ	TypeErrorÚ__arg__Ú__forward_is_argument__Ú__forward_is_class__Ú__forward_module__Ú	__owner__Ú__globals__Ú__cell__Ú__extra_names__Ú__code__Ú__ast_node__Ú__resolved_str_cache__)ÚselfÚargr   r   r   r   s   &&$$$$r   Ú__init__ÚForwardRef.__init__E   st   � ô ˜#œs×#Ò#ÜÐHÈÉÐPÓQÐQàŒØ'2Ô$Ø$,Ô!Ø"(ÔØŒð  ˆÔð ˆŒØ#ˆÔð ˆŒØ ˆÔØ&*ˆÖ#r   c               ó   €   [        Q 2      g)zCannot subclass ForwardRef©r   )ÚclsÚargsÚkwdss   "*,r   Ú__init_subclass__ÚForwardRef.__init_subclass__d   s   � ÜÐ4Ó5Ð5r   ÚglobalsÚlocalsÚtype_paramsÚformatc               ó®	  €   S9[         O                  6X  c    U O                  ! 9[         O                  6X  c    P
oL#[         O                  6X  c   P	oL [        U2      g[        U O                  [        O                  2      %       c    U O                  O                  ! Ue   U O                  oUeD   U O                  d6   [        [        O                   O#                  U O                  P2      QP2      oUe   U O$                  oUe®   [        U[&        2      %       cL   [        UQP2      oU%       c6   [        O                   O#                  UP2      oU%       c   [        UQP2      oLL[        U[        O(                  2      %       c   [        UQP2      oL[+        U2      %       c   [        UQP2      oUe   - oUe   Ud   [        UQP2      oUe4   - o[        U[&        2      %       c   UO-                  [/        U2      2       LAUe3   [        U O                  [0        2      %       f   U O2                  %       c   [1        U2      oUd'   SF   D  o	UO5                  U	O6                  U	2       J!  	  [        U O                  [0        2      %       cC   U O                  O9                  2       F   D#  v  q« UO                  oUO5                  V¬2       J%  	  U O2                  %       c   UO-                  U O2                  2       U O:                  oUO=                  2       %       cÏ   [>        O@                   U2      %       f³   [B        oVÒ7   c
   V-*          oL5VÑ7   c
   V*          oL&[E        [F        U2      %       c   [        [F        U2      oU[B        Ic4   [        U[        OH                  2      %       c    UOK                  2       ! U! U%       c   U ! [O        [P        OS                  UQ5      UQ5      gU OT                  o [W        VñUQ5      !  [         c     CK|h 9 h [         c     CJ  h 9 h [L         c    S%       f   g S t ! h 9 h [L         c    S%       f   g  Lh 9 h[Y        - [F        OZ                  ASASASSS O\                  SQ5      o [W        XñSQ5      oSO_                  S O                  2       S!  [L         c    S t ! h 9 h)zxEvaluate the forward reference and return the value.

If the forward reference cannot be evaluated, raise an exception.
Ú__dict__r   r   Ú__type_params__)Úname)r0   r1   ©r0   r   r   r3   )0r   r   Ú__resolved_str__r
   r   ÚNotImplementedErrorr   r    ÚtypesÚCellTypeÚcell_contentsÚ
ValueErrorr   r   ÚgetattrÚsysÚmodulesÚgetr   ÚtypeÚ
ModuleTypeÚcallableÚupdateÚvarsÚdictr!   Ú
setdefaultr   ÚitemsÚ__forward_arg__ÚisidentifierÚkeywordÚ	iskeywordÚ	_sentinelÚhasattrÚbuiltinsÚLazyImportTypeÚresolveÚ	ExceptionÚ	NameErrorÚ_NAME_ERROR_MSGr3   Ú__forward_code__ÚevalÚ_StringifierDictr5   r   Útransmogrify)r%   r0   r1   r2   r   r3   Úis_forwardref_formatÚmodule_namer   ÚparamÚ	cell_nameÚcellÚ
cell_valuer&   ÚresolvedÚcodeÚ
new_localsÚresults   &$$$$$            r   ÚevaluateÚForwardRef.evaluateg   s  � ð Ø”—–Ù×,Ñ,Ð,Ø”—–Ù',Ñ$Ü×"Ö"Ø'+Ñ$ØÜ)¨&Ó1Ð1Ü�d—m‘m¤U§^¡^×4Ò4ðØ—}‘}×2Ñ2Ð2ð Š=Ø—N‘NˆEàŠ?˜t×6Ñ6ÒBÜÜ—‘—‘ × 7Ñ 7¸Ó>À
ÈDóˆGð Š?Ø×&Ñ&ˆGØŠ?Ü˜%¤×&Ò&Ü% e¨\¸4Ó@�ßÜ Ÿ[™[Ÿ_™_¨[¸$Ó?�FßÜ")¨&°*¸dÓ"C˜øÜ˜E¤5×#3Ñ#3×4Ò4Ü! %¨°TÓ:‘Ü˜%—’Ü! %¨¸Ó=�ð Š?ØˆGàÒ 5Ò#4Ü! %Ð):¸DÓAˆKàŠ>ØˆFÜ˜%¤×&Ò&Ø—‘œd 5›kÔ*øàÒ#Ü˜$Ÿ-™-¬×.Ò.Ø×#×#Ð#ô ˜&“\ˆFð
 Ò"Ü$�Ø×!Ñ! %§.¡.°%Ö8ñ %ô
 �d—m‘m¤T×*Ò*Ø#'§=¡=×#6Ñ#6×#8‘�	ð=Ø!%×!3Ñ!3�Jð ×%Ñ% iÖ<ñ $9ð ××ÐØ�M‰M˜$×.Ñ.Ô/à×"Ñ"ˆØ×Ñ×Ò¤g×&7Ò&7¸×&<Ò&<Ü ˆHØŒ}Ø!�;‘Ø”Ø"�<‘Üœ 3×'Ò'Ü"¤8¨SÓ1�àœyÓ(Ü˜h¬×(<Ñ(<×=Ò=ð$Ø'×/Ñ/Ó1Ð1ð $�Oß%Ø�ä¤× 6Ñ 6¸CÐ 6Ó @ÀsÔKÐKà×(Ñ(ˆDðÜ˜D¸&ÔAÐAøô} ô Úðûôp "ô Ûðûô2 %ô $ß3Ø!Ø#šð$ûô ô ß+Øñ ,ðúô *Ø:”8×$Ñ$Ð:¨Ð:°6Ð:ØØØ×2Ñ2ØôˆJðÜ˜d¸JÔG�ð ×'Ñ'¨¯©Ô6Ø�øô	 ô Ø’ðús„   ÂP Ê8P"Î9P5 ÐQ Ð	PÐPÐPÐ"	P2Ð,P2Ð1P2Ð5	QÐ?QÑQÑQÑ	Q(ÑQ(Ñ$Q(Ñ'Q(ÒS Ó	SÓSÓSc               ó¢   €   ] PHo] PHoU[        I c   UO                  Q2       QoUO	                  QQQQ5       UO                  U UUUUQ5      ! )é    ztyping.ForwardRef._evaluatezForwardRef._evaluatez¢{name} is a private API and is retained for compatibility, but will be removed in Python 3.16. Use ForwardRef.evaluate() or typing.evaluate_forward_ref() instead.)Úremove)r0   r1   r2   Ú_recursive_guardr   )é   é   )ÚtypingÚwarningsrO   Ú._deprecation_warning_for_no_type_params_passedÚ_deprecatedÚevaluate_forward_ref)r%   ÚglobalnsÚlocalnsr2   Úrecursive_guardrm   rn   s   &&&&$  r   Ú	_evaluateÚForwardRef._evaluateô   sp   � ÛÛàœ)Ó#Ø×AÑAØ-ôð ˆKØ×ÑØ"ðcàð	 	ô 	
ð ×*Ñ*ØØØØ#Ø,ð +ó 
ð 	
r   c                óÌ   €   U O                   d   U O                   ! U O                  d2   [        O                   U O                  2      U m         U O                   ! [	        Q2      g)NzDAttempted to access '__forward_arg__' on an uninitialized ForwardRef)r   r#   ÚastÚunparseÚAssertionError©r%   s   &r   rK   ÚForwardRef.__forward_arg__  sR   � à�<‰<Ò#Ø—<‘<ÐØ×ÑÒ(ÜŸ;š; t×'8Ñ'8Ó9ˆDŒLØ—<‘<ÐÜØRó
ð 	
r   c                ó,  €   U O                   e{   U O                  oU O                  oU%       cU   [        U2      o[        O
                   UQQ5      O                  oUO                  U2      o[        O                   U2      oVm         U O                   ! )NrX   ©Úmode)	r$   rK   r!   Ú_ExtraNameFixerrx   ÚparseÚbodyÚvisitry   )r%   Úresolved_strÚnamesÚvisitorÚast_exprÚnodes   &     r   r9   ÚForwardRef.__resolved_str__  sw   � ð ×&Ñ&Ò.Ø×/Ñ/ˆLØ×(Ñ(ˆEçÜ)¨%Ó0�ÜŸ9š9 \¸Ô?×DÑD�Ø—}‘} XÓ.�Ü"Ÿ{š{¨4Ó0�à*6Ô'à×*Ñ*Ð*r   c                óÜ   €   U O                   d   U O                   ! U O                  o [        [        U2      QQ2      U m         U O                   !  [         c    [	        QS8 02      gh 9 h)Nz<string>rX   z/Forward reference must be an expression -- got )r"   rK   ÚcompileÚ_rewrite_star_unpackÚSyntaxError)r%   r&   s   & r   rW   ÚForwardRef.__forward_code__(  sp   � à�=‰=Ò$Ø—=‘=Ð Ø×"Ñ"ˆð	YÜ#Ô$8¸Ó$=¸zÈ6ÓRˆDŒMð �}‰}Ðøô ô 	YÜÐ OÐPSÉwÐWÓXÐXð	Yús   ©A Á	A+ÁA+c           
     óL  €   [        U[        2      %       f   [        ! U O                  UO                  6H  9%       CcÛ    U O                  UO                  6H  9%       Cc¹    U O
                  UO
                  I 9%       Cc˜    U O                  UO                  6H  9%       Ccv    [        U O                  [        2      %       c”   [        UO                  [        2      %       ct   U O                  O                  2       TTt- tF   D  v  q#U[        U2      aJ  	  tooUO                  O                  2       TTt- tF   D  v  q#U[        U2      aJ  	  too6H  LU O                  UO                  I 9%       c£    U O                  UO                  6H  9%       c‚    U O                  %       c-   [        [        U O                  O                  2       2      2      LPUO                  %       c-   [        [        UO                  O                  2       2      2      LP6H  ! t tooh t tooh ©N)r   r   ÚNotImplementedrK   r   r   r   r    rH   rJ   Úidr   r!   ÚtupleÚsorted)r%   Úotherr7   r_   s   &&  r   Ú__eq__ÚForwardRef.__eq__3  s·  � Ü˜%¤×,Ò,Ü!Ð!à× Ñ  E×$9Ñ$9Ñ9÷ ñ Ø×'Ñ'¨5×+CÑ+CÑC÷ñ ð × Ñ  E×$5Ñ$5Ð5÷	ñ ð
 ×)Ñ)¨U×-GÑ-GÑG÷ñ ô ˜dŸm™m¬T×2Ò2´zÀ%Ç.Á.ÔRV×7WÒ7Wð 37·-±-×2EÑ2EÓ2GÔHÓ2G¡J D�”r˜$“x’Ñ2GÒHØ5:·^±^×5IÑ5IÓ5KÔLÓ5K¡z t�Dœ"˜T›(’NÑ5KÒLòMð —]‘] e§n¡nÐ4÷ð ð —‘ %§/¡/Ñ1÷ð ð AE×@T×@TÐ@T””v˜d×2Ñ2×8Ñ8Ó:Ó;Ô<ÐZ^ØAF×AV×AVÐAV””v˜e×3Ñ3×9Ñ9Ó;Ó<Ô=Ð\`ñbð!	
ùó IùÛLs   ÄHÄ9H c                ó0  €   [        U O                  U O                  [        U O                  2      U O
                  [        U O                  [        2      %       cM   [        [        U O                  O                  2       TTt, tF   D  v  qU[        U2      1MJ  	  too2      2      L[        U O                  2      1U O                  U O                  %       c2   [        [        U O                  O                  2       2      2      12      ! P12      ! t tooh r�   )ÚhashrK   r   r’   r   r   r   r    rH   r“   r”   rJ   r   r!   )r%   r7   r_   s   &  r   Ú__hash__ÚForwardRef.__hash__K  så   � ÜØ× Ñ Ø×#Ñ#Üˆt×ÑÓ Ø×%Ñ%ô ˜dŸm™m¬T×2Ò2ô ”fÀÇÁ×ATÑATÓAVÔWÓAV±:°4˜t¤R¨£XÓ.ÑAVÒWÓXÔYÜ8:¸4¿=¹=Ó8Iðð �N‰NØ;?×;O×;OÐ;OŒE”&˜×-Ñ-×3Ñ3Ó5Ó6Ó7ð
ó ð 	ð VZð
ó ð 	ùó Xs   ÂDc                ó4   €   [         O                  V1*          ! r�   ©r;   Ú	UnionType©r%   r•   s   &&r   Ú__or__ÚForwardRef.__or__Y  s   � Ü�‰˜t˜{Õ+Ð+r   c                ó4   €   [         O                  V1*          ! r�   r�   rŸ   s   &&r   Ú__ror__ÚForwardRef.__ror__\  s   � Ü�‰˜u˜{Õ+Ð+r   c                óF  €   , oU O                   d    UO                  QU O                   8 02       U O                  %       c   UO                  Q2       U O                  d    UO                  QU O                  8 02       QU O                  8 PO                  U2       Q0! )Nz	, module=z, is_class=Truez, owner=zForwardRef(Ú))r   Úappendr   r   r9   Újoin)r%   Úextras   & r   Ú__repr__ÚForwardRef.__repr___  s‹   � ØˆØ×"Ñ"Ò.Ø�L‰L˜9 T×%<Ñ%<Ñ$?Ð@ÔAØ×$×$Ð$Ø�L‰LÐ*Ô+Ø�>‰>Ò%Ø�L‰L˜8 D§N¡NÑ#5Ð6Ô7Ø˜T×2Ñ2Ñ5°b·g±g¸e³nÐ5EÀQÐGÐGr   )r   r#   r    r"   r!   r   r   r   r   r   r$   )r   r   r   r	   Ú__doc__Ú_SLOTSÚ	__slots__r'   r.   r   r
   re   rO   ru   ÚpropertyrK   r9   rW   r–   rš   r    r£   rª   r   Ú__classdictcell__©Ú__classdict__s   @r   r   r   6   sì   ø‡ � ñ
ð €Ið+ð ð	+ð
 ð+ð ð+ð ô+ò>6ðKð ðKð ð	Kð
 ðKð ðKð �|‰|ôKðZ 8Aô 
ð. ñ
ó ð
ð ñ+ó ð+ð" ñó ðò
ò0ò,ò,÷Hð Hr   c                   ó   ` €   \ sQ sQs n \sQQP-Q kksQ sQ sQ s	QQ ks
Q sQ	 sQ
 sQ sQ sQ sQ sU 1Q kQ ks\ \O(                   2       2      s\ \O,                   2       2      s\ \O0                   2       2      s\ \O4                   2       2      s\ \O8                   2       2      s\ \O<                   2       2      s\ \O@                   2       2      s!\ \OD                   2       2      s#\ \OH                   2       2      s%\ \OL                   2       2      s'\ \OP                   2       2      s)\ \OT                   2       2      s+\ \OX                   2       2      s-?U 1Q kQ ks.\. \O(                   2       2      s/\. \O,                   2       2      s0\. \O0                   2       2      s1\. \O4                   2       2      s2\. \O8                   2       2      s3\. \O<                   2       2      s4\. \O@                   2       2      s5\. \OD                   2       2      s6\. \OH                   2       2      s7\. \OL                   2       2      s8\. \OP                   2       2      s9\. \OT                   2       2      s:\. \OX                   2       2      s;?.Q s<\< \Oz                   2       2      s>\< \O~                   2       2      s@\< \O‚                   2       2      sB\< \O†                   2       2      sD\< \OŠ                   2       2      sF\< \OŽ                   2       2      sH?<Q sI\I \O”                   2       2      sK\I \O˜                   2       2      sM\I \Oœ                   2       2      sO?IQsPU sQP! )Ú_Stringifierém  Úextra_namesc               óò   €   [        U[        O                  [        12      %       f   P gPU m        P
U m        V@m        PU m        PU m        Vm	        V m
        Vpm        VPm        V0m        V`m        PU m        P! r�   )r   rx   ÚASTr   r   r   r   r   r"   r#   r   r!   r    r   Ú__stringifier_dict__r$   )r%   rˆ   r0   r   r   r_   Ústringifier_dictr¶   s   &&&&&&$$r   r'   Ú_Stringifier.__init__r  sm   � ô ˜$¤§¡¬# ×/Ò/Ð/Ð/ØˆŒØ',ˆÔ$Ø$,Ô!Ø"&ˆÔØˆŒØ ÔØ"ÔØ*ÔØŒØŒØ$4Ô!Ø&*ˆÖ#r   c                óv  €   [        U[        2      %       cf   [        UO                  [        2      %       c.   [        O
                   UO                  Q 5      UO                  1! UO                  UO                  1! [        U2      [        I c   [        U2      P1! U O                  O                  [        O                  6X  f.   Ud*   [        U2      [        [        [        [         ["        17   c   [        O$                   UQ5      P1! [        U2      [&        I c«   - o, o, oUO)                  2       F   Dw  v  qVU O+                  U2      v  qxUd   UO-                  U2       UO/                  U2       U O+                  U2      v  q˜Ud   UO-                  U2       UO/                  U	2       Jy  	  [        O0                   V42      U1! [        U2      [2        [4        [6        17   c    - o, o
SF   D<  oU O+                  U2      v  qÈUd   UO-                  U2       U
O/                  U2       J>  	  [2        [        O8                  [4        [        O:                  [6        [        O<                  -[        U2      *          oU U
2      U1! U O                  O?                  2       o[        O
                   UQ 5      Vá-1! )©r’   ©Úvalue) r   r´   r#   r   rx   ÚNamer!   rC   Ú	_TemplateÚ_template_to_astr¹   r3   r   r   ÚintÚfloatÚboolÚcomplexÚConstantrH   rJ   Ú_Stringifier__convert_to_astrF   r§   ÚDictÚlistr“   ÚsetÚListÚTupleÚSetÚcreate_unique_name)r%   r•   r¶   ÚkeysÚvaluesÚkeyr¿   Únew_keyÚnew_extra_namesÚ	new_valueÚeltsÚeltÚnew_eltÚ	ast_classr7   s   &&             r   Ú__convert_to_astÚ_Stringifier.__convert_to_ast�  s$  � Ü�eœ\×*Ò*Ü˜%×,Ñ,¬c×2Ò2Ü—x’x 5×#5Ñ#5Ô6¸×8MÑ8MÐMÐMØ×%Ñ% u×'<Ñ'<Ð<Ð<Ü�%‹[œIÓ%Ü# EÓ*¨DÐ0Ð0ð ×%Ñ%×,Ñ,´·±Ô=ØŠ}Ü�E‹{œs¤C¬´´gÐ>Ô>ä—<’< eÔ,¨dÐ2Ð2Ü�%‹[œDÓ ØˆKØˆDØˆFØ#Ÿk™kŸm‘
�Ø+/×+@Ñ+@ÀÓ+EÑ(�Ø"Ò.Ø×&Ñ& Ô7Ø—‘˜GÔ$Ø-1×-BÑ-BÀ5Ó-IÑ*�	Ø"Ò.Ø×&Ñ& Ô7Ø—‘˜iÖ(ñ ,ô —8’8˜DÓ)¨;Ð6Ð6Ü�%‹[œT¤5¬#Ð.Ô.ØˆKØˆDÜ�Ø+/×+@Ñ+@ÀÓ+EÑ(�Ø"Ò.Ø×&Ñ& Ô7Ø—‘˜GÖ$ñ	 ô
 œsŸx™x¬´·	±	¼3ÄÇÁÐHÌÈeËÕUˆIÙ˜T“? KÐ/Ð/à×,Ñ,×?Ñ?ÓAˆDÜ—8’8˜tÔ$ t mÐ3Ð3r   c                óþ   ` `€   [        U[        2      %       cU   - nUU 1Q  ko[        O                   U UO                  2      U UO
                  2      U UO                  2      Q5      R1! R O                  U2      ! )c                 óf   :€   U e   P! RO                  U 2      v  qUd   RO                  U2       U! r�   )rÈ   rF   )ÚobjÚnew_objrÔ   r¶   r%   s   &  €€r   ÚconvÚ3_Stringifier.__convert_to_ast_getitem.<locals>.conv¼  s7   ø� Ø’;ÙØ+/×+@Ñ+@ÀÓ+EÑ(�Ø"Ò.Ø×&Ñ& Ô7Ø�r   )ÚlowerÚupperÚstep)r   Úslicerx   ÚSliceÚstartÚstoprä   rÈ   )r%   r•   rà   r¶   s   f& @r   Ú__convert_to_ast_getitemÚ%_Stringifier.__convert_to_ast_getitem¸  sn   ù� Ü�eœU×#Ò#ØˆKöô —9’9Ù˜5Ÿ;™;Ó'Ù˜5Ÿ:™:Ó&Ù˜%Ÿ*™*Ó%ôð ð	ð ð ×(Ñ(¨Ó/Ð/r   c                óz   €   U O                   o[        U[        2      %       c   [        O                   UQ 5      ! U! ©r½   )r#   r   r   rx   rÀ   )r%   rˆ   s   & r   Ú	__get_astÚ_Stringifier.__get_astÌ  s.   � Ø× Ñ ˆÜ�dœC× Ò Ü—8’8˜tÔ$Ð$Øˆr   c           	     óX  €   - oU O                   d   UO                  U O                   2       Ud   UO                  U2       [        SU O                  U O                  U O
                  U O                  S9%       f    PQ5      oU O                  O                  O                  U2       U! )N)rº   r¶   )	r!   rF   r´   r   r   r   r¹   Ústringifiersr§   )r%   rˆ   r¶   rÔ   Ústringifiers   &&&  r   Ú
__make_newÚ_Stringifier.__make_newÒ  s—   � ØˆØ×ÑÒ+Ø×"Ñ" 4×#7Ñ#7Ô8ØÒ"Ø×"Ñ" ;Ô/Ü"ØØ×ÑØ�N‰NØ×%Ñ%Ø!×6Ñ6Ø'×/Ð/¨4ô
ˆð 	×!Ñ!×.Ñ.×5Ñ5°kÔBØÐr   c                ó   €   [        U 2      ! r�   r½   r{   s   &r   rš   Ú_Stringifier.__hash__å  s   � Ü�$‹xˆr   c                ó
  €   U O                   Q 6X  c   [        g[        U[        2      %       c_   - o, oSF   D<  oU O	                  U2      v  qVUd   UO                  U2       UO                  U2       J>  	  [        O                   U2      oLU O	                  U2      v  q[        U[        O                  2      %       f   P [        U2      2       gU O                  [        O                   U O                  2       U2      U2      ! r±   )r#   ÚKeyErrorr   r“   Ú$_Stringifier__convert_to_ast_getitemrF   r§   rx   rÍ   r¸   ÚreprÚ_Stringifier__make_newÚ	SubscriptÚ_Stringifier__get_ast)r%   r•   r¶   rÖ   r×   rØ   rÔ   s   &&     r   Ú__getitem__Ú_Stringifier.__getitem__è  sÐ   � ð ×Ñ Ô/ÜˆNÜ�eœU×#Ò#ØˆKØˆDÜ�Ø+/×+HÑ+HÈÓ+MÑ(�Ø"Ò.Ø×&Ñ& Ô7Ø—‘˜GÖ$ñ	 ô
 —I’I˜d“O‰Eà!%×!>Ñ!>¸uÓ!EÑˆEÜ˜%¤§¡×)Ò)Ð6¬4°«;Ó6Ð)Ø�‰œsŸ}š}¨T¯^©^Ó-=¸uÓEÀ{ÓSÐSr   c                ól   €   U O                  [        O                   U O                  2       U2      2      ! r�   )rú   rx   Ú	Attributerü   )r%   Úattrs   &&r   Ú__getattr__Ú_Stringifier.__getattr__û  s#   � Ø�‰œsŸ}š}¨T¯^©^Ó-=¸tÓDÓEÐEr   c                óÎ  €   - o, oSF   D<  oU O                  U2      v  qgUd   UO                  U2       UO                  U2       J>  	  , oUO                  2       F   DR  v  qšU O                  U
2      v  q·Ud   UO                  U2       UO                  [        O
                   V›2      2       JT  	  U O                  [        O                   U O                  2       VH2      U2      ! r�   )	rÈ   rF   r§   rJ   rx   rM   rú   ÚCallrü   )r%   r,   Úkwargsr¶   Úast_argsr&   Únew_argrÔ   Ú
ast_kwargsrÒ   r¿   rÕ   s   &*,         r   Ú__call__Ú_Stringifier.__call__þ  sÆ   � ØˆØˆÜˆCØ'+×'<Ñ'<¸SÓ'AÑ$ˆGØÒ*Ø×"Ñ" ?Ô3Ø�O‰O˜GÖ$ñ	 ð
 ˆ
Ø Ÿ,™,Ÿ.‰JˆCØ)-×)>Ñ)>¸uÓ)EÑ&ˆIØÒ*Ø×"Ñ" ?Ô3Ø×ÑœcŸkšk¨#Ó9Ö:ñ	 )ð
 �‰œsŸxšx¨¯©Ó(8¸(ÓOÐQ\Ó]Ð]r   c              #  ó|      €   U O                  [        O                   U O                  2       2      2      w €	   P! 3hr�   )rú   rx   ÚStarredrü   r{   s   &r   Ú__iter__Ú_Stringifier.__iter__  s$   é � Ø�o‰oœcŸkšk¨$¯.©.Ó*:Ó;Ó<Õ<ùs   ‚:<c                óœ   €   [        U O                  [        2      %       c   U O                  ! [        O                   U O                  2      ! r�   )r   r#   r   rx   ry   r{   s   &r   rª   Ú_Stringifier.__repr__  s6   � Ü�d×'Ñ'¬×-Ò-Ø×$Ñ$Ð$Ü�{Š{˜4×,Ñ,Ó-Ð-r   c                ó   €   [        Q 2      g)z8Cannot stringify annotation containing string formattingr*   )r%   Úformat_specs   &&r   Ú
__format__Ú_Stringifier.__format__  s   � ÜÐRÓSÐSr   c                ó6   :€   U ]6„  c   PgQRZ O                  -! ©é   Úop©rx   r¸   )r3   r²   s   "€r   Ú__annotate__Ú%_Stringifier._make_binop.__annotate__  s   ø� ÷ ñ ™Ÿ™ñ r   c                ó   ` €   U 1Q  koU! )c                 ó˜   :€   U O                  U2      v  q#U O                  [        O                   U O	                  2       RU2      U2      ! r�   ©rÈ   rú   rx   ÚBinOprü   ©r%   r•   Úrhsr¶   r  s   &&  €r   ÚbinopÚ'_Stringifier._make_binop.<locals>.binop  s@   ø� Ø#×4Ñ4°UÓ;ÑˆCØ—?‘?Ü—	’	˜$Ÿ.™.Ó*¨B°Ó4°kóð r   r   )r  r#  s   f r   Ú_make_binopÚ_Stringifier._make_binop  s   ø� õ	ð ˆr   c                ó6   :€   U ]6„  c   PgQRZ O                  -! r  r  )r3   r²   s   "€r   r  Ú&_Stringifier._make_rbinop.__annotate__2  s   ø� ÷ ñ ™Ÿ™ñ r   c                ó   ` €   U 1Q  koU! )c                 ó˜   :€   U O                  U2      v  q#U O                  [        O                   URU O	                  2       2      U2      ! r�   r  )r%   r•   Ú	new_otherr¶   r  s   &&  €r   ÚrbinopÚ)_Stringifier._make_rbinop.<locals>.rbinop3  s@   ø� Ø%)×%:Ñ%:¸5Ó%AÑ"ˆIØ—?‘?Ü—	’	˜) R¨¯©Ó)9Ó:¸Kóð r   r   )r  r,  s   f r   Ú_make_rbinopÚ_Stringifier._make_rbinop2  s   ø� õ	ð ˆr   c                ó   ` €   U 1Q  koU! )c                 óž   :€   U O                  U2      v  q#U O                  [        O                   U O	                  2       R,U,Q 5      U2      ! ))ÚleftÚopsÚcomparators)rÈ   rú   rx   ÚComparerü   r!  s   &&  €r   ÚcompareÚ+_Stringifier._make_compare.<locals>.compareL  sL   ø� Ø#×4Ñ4°UÓ;ÑˆCØ—?‘?Ü—’ØŸ™Ó)Ø˜Ø!$ ôð
 óð r   r   )r  r6  s   f r   Ú_make_compareÚ_Stringifier._make_compareK  s   ø� õ		ð ˆr   c                ó   ` €   U 1Q  koU! )c                 ón   :€   U O                  [        O                   RU O                  2       2      2      ! r�   )rú   rx   ÚUnaryOprü   )r%   r  s   &€r   Úunary_opÚ-_Stringifier._make_unary_op.<locals>.unary_opc  s$   ø� Ø—?‘?¤3§;¢;¨r°4·>±>Ó3CÓ#DÓEÐEr   r   )r  r=  s   f r   Ú_make_unary_opÚ_Stringifier._make_unary_opb  s   ø� õ	Fð ˆr   )r   r#   r    r"   r!   r   r   r   r   r   r$   r¹   )NNFNr�   )Rr   r   r   r	   r­   r®   r'   rÈ   rø   rü   rú   rš   rý   r  r
  r  rª   r  r%  rx   ÚAddÚ__add__ÚSubÚ__sub__ÚMultÚ__mul__ÚMatMultÚ
__matmul__ÚDivÚ__truediv__ÚModÚ__mod__ÚLShiftÚ
__lshift__ÚRShiftÚ
__rshift__ÚBitOrr    ÚBitXorÚ__xor__ÚBitAndÚ__and__ÚFloorDivÚ__floordiv__ÚPowÚ__pow__r.  Ú__radd__Ú__rsub__Ú__rmul__Ú__rmatmul__Ú__rtruediv__Ú__rmod__Ú__rlshift__Ú__rrshift__r£   Ú__rxor__Ú__rand__Ú__rfloordiv__Ú__rpow__r8  ÚLtÚ__lt__ÚLtEÚ__le__ÚEqr–   ÚNotEqÚ__ne__ÚGtÚ__gt__ÚGtEÚ__ge__r?  ÚInvertÚ
__invert__ÚUAddÚ__pos__ÚUSubÚ__neg__r   r°   r±   s   @r   r´   r´   m  s¹  ø‡ � ð €Iñ+ð õ+ò6)4òV0ò(ôò&òTò&Fò^ò =ò.ò
T÷ð ñ ˜#Ÿ'š'›)Ó$€GÙ˜#Ÿ'š'›)Ó$€GÙ˜#Ÿ(š(›*Ó%€GÙ˜SŸ[š[›]Ó+€JÙ˜cŸgšg›iÓ(€KÙ˜#Ÿ'š'›)Ó$€GÙ˜SŸZšZ›\Ó*€JÙ˜SŸZšZ›\Ó*€JÙ˜Ÿš›Ó%€FÙ˜#Ÿ*š*›,Ó'€GÙ˜#Ÿ*š*›,Ó'€GÙ˜sŸ|š|›~Ó.€LÙ˜#Ÿ'š'›)Ó$€Gà÷ð ñ ˜CŸGšG›IÓ&€HÙ˜CŸGšG›IÓ&€HÙ˜CŸHšH›JÓ'€HÙ˜sŸ{š{›}Ó-€KÙ §¢£	Ó*€LÙ˜CŸGšG›IÓ&€HÙ˜sŸzšz›|Ó,€KÙ˜sŸzšz›|Ó,€KÙ˜3Ÿ9š9›;Ó'€GÙ˜CŸJšJ›LÓ)€HÙ˜CŸJšJ›LÓ)€HÙ  §¢£Ó0€MÙ˜CŸGšG›IÓ&€Hàòñ ˜3Ÿ6š6›8Ó$€FÙ˜3Ÿ7š7›9Ó%€FÙ˜3Ÿ6š6›8Ó$€FÙ˜3Ÿ9š9›;Ó'€FÙ˜3Ÿ6š6›8Ó$€FÙ˜3Ÿ7š7›9Ó%€Fàòñ   §
¢
£Ó-€JÙ˜SŸXšX›ZÓ(€GÙ˜SŸXšX›ZÓ(€Gær   r´   c                ód  €   , oS F   Dù  oU[         Qb 9d+   v   UO                  [        O                   UQ5      2       J9    [        O                   [        O
                   QQ5      [        O                   UO                  Q5      [        O                   UO                  Q5      [        O                   UO                  Q5      [        O                   UO                  Q5      ,Q5      oUO                  U2       Jû  	  [        O                   [        O
                   QQ5      U, Q5      ! )z3Convert a `template` instance to a non-literal AST.r   r¾   ÚInterpolationr½   )Úfuncr,   ÚTemplate)ry  r,   Úkeywords)
r   r§   rx   rÇ   r  rÀ   r¿   Ú
expressionÚ
conversionr  )Útemplater,   ÚpartÚinterps   &   r   Ú_template_to_ast_constructorr�  o  sÃ   � à€DÜˆØÜ—Ø—‘œCŸLšL¨tÔ4Ö5ð àÜŸšÜŸš _Ô5äŸš¨4¯:©:Ô6ÜŸš¨4¯?©?Ô;ÜŸš¨4¯?©?Ô;ÜŸš¨4×+;Ñ+;Ô<ð	ô�ð —‘˜FÖ#ñ ô �8Š8œŸš ZÔ0°tÀbÔIÐIr   c                óú  €   , o] oS F   DÙ  oU[         Qb 9d+   v   UO                  [        O                   UQ5      2       J9    [        O                   UO
                  V*          UO                  %       c   [        UO                  2      LPUO                  %       c"   [        O                   UO                  Q5      LPQ5      oUO                  U2       U]*          oJÛ  	  [        O                   UQ5      ! )z8Convert a `template` instance to a t-string literal AST.r   r¾   )r   r¿   r}  r  )rÑ   )
r   r§   rx   rÇ   rx  r|  r}  Úordr  ÚTemplateStr)r~  ÚparsedrÑ   Úinterp_countr  r€  s   &&    r   Ú_template_to_ast_literalr‡  „  sº   � à€FØ€LÜˆØÜ—Ø—‘œcŸlšl°Ô6Ö7ð àÜ×*Ò*ØŸ™Ø Õ.Ø7;··°œs 4§?¡?Ô3ÈBà×'×'Ð'ô !$§¢°4×3CÑ3CÕ Dàô�ð —‘˜fÔ%Ø Õ!’ñ ô �?Š? &Ô)Ð)r   c                ó‚  €   [         9PI c&    Q U O                  2        D  %       f   J   P	L	  P
L Q U O                  2       2      %       c   [        U 2      !  [        9PI c    , Q U O                  2        D  MJ  	  3L Q U O                  2       2      o[        V2      !  [         c    [        S 2      t ! h 9 h)zAMake a best-effort conversion of a `template` instance to an AST.c              3   óf   €  S F      €   D"  pO                   O                  2       P6H  w €	   J$  	  P! 3h©Ú )r|  Ústrip©Ú.0r  s   & r   Ú	<genexpr>Ú#_template_to_ast.<locals>.<genexpr>   s#   ùÒ5Lé � Ñ5L¨T�?‰?× Ñ Ó" b×(Ó5Lùs   ‡*1c              3   óŽ   €  S F      €   D6  o[         O                   Q UO                   Q0QQ5      O                  w €	   J8  	  P! 3h)Ú(r¦   rX   r~   )rx   r�   r|  r‚   r�  s   & r   r�  r�  ¥  s5   ùâ/é� á/�ô �IŠI˜˜$Ÿ/™/Ð*¨!Ð,°6Ô:×?×?Û/ùs   ‡>A)ÚanyÚinterpolationsr�  r“   r�   r‡  )r~  r…  s   & r   rÂ   rÂ   š  s    � ÷ ƒsÑ
M°X×5LÑ5LÓ
M‡s‡sƒsÑ
M°X×5LÑ5LÓ
M×MÒMÜ+¨HÓ5Ð5ð6ç”ñ 
à ×/Ñ/ó
—’ñ 
à ×/Ñ/ó
ó 
ˆô $ HÓ5Ð5øô ô 6Ü+¨HÓ5Ò5ð6ús   Á
B% Á&4B% Â%	B>Â/B>Â=B>c                   óV   ` `€   \ sQ sQs nQPQPQP
-U 1Q kksQ sQ sQ sQ	sUs	U 9s
! )
rY   é¯  r0   r   r   c               ó€   :€   [         RU _  U2       Vm        V m        V0m        V@m        , U m        ]U m        VPm        P! )é   )	Úsuperr'   Ú	namespacer0   r   r   rð   Únext_idr3   )r%   rš  r0   r   r   r3   Ú	__class__s   &&$$$$€r   r'   Ú_StringifierDict.__init__°  s8   ø� Ü‰Ñ˜Ô#Ø"ŒØŒØŒ
Ø ŒØˆÔØˆŒØŽr   c                óš   €   [        UU O                  U O                  U O                  U Q 5      oU O                  O                  U2       U! ))r0   r   r   rº   )r´   r0   r   r   rð   r§   )r%   rÒ   Úfwdrefs   && r   Ú__missing__Ú_StringifierDict.__missing__º  sB   � ÜØØ—L‘LØ—*‘*Ø—]‘]Ø!ô
ˆð 	×Ñ× Ñ  Ô(Øˆr   c                óü   €   U O                   F   Di  o[        Um        PUm        [	        UO
                  [        2      %       c   UO
                  Um        PUm        Ue   JS  UO                  d   Jc  Vm        Jk  	  P! r�   )	rð   r   rœ  r¹   r   r#   r   r   r    )r%   Ú	cell_dictrÞ   s   && r   rZ   Ú_StringifierDict.transmogrifyÅ  s]   � Ø×$Õ$ˆCÜ&ˆCŒMØ'+ˆCÔ$Ü˜#×*Ñ*¬C×0Ò0Ø!×.Ñ.�”Ø#'�Ô ØÔ$¨¯©Ô)=Ø(–ó %r   c                óZ   €   Q U O                    Q0oU 9O                   ]*          tm         U! )Ú__annotationlib_name_Ú__)r›  )r%   r7   s   & r   rÏ   Ú#_StringifierDict.create_unique_nameÏ  s'   � Ø& t§|¡| n°BÐ7ˆØ�Š˜Õ�Øˆr   )r3   r0   r   rš  r›  r   rð   )r   r   r   r	   r'   r   rZ   rÏ   r   r°   Ú__classcell__)rœ  r²   s   @@r   rY   rY   ¯  s3   ù‡ � ð¨Tð ¸ð È÷ ò	ò)÷ò r   rY   r   c               ó    €   [        VUP	Q5      ! )z¨Call an evaluate function. Evaluate functions are normally generated for
the value of type aliases and the bounds, constraints, and defaults of
type parameter objects.
)r   Ú_is_evaluate)Úcall_annotate_function)re   r3   r   s   &&$r   Úcall_evaluate_functionr­  Õ  s   � ô
 " (¸%ÈdÔSÐSr   r«  c          
     óŠ  €   U[         O                  6X  c   [        Q2      g U  U2      !  [         c     Lh 9 hS[         O                  6X  Cc    S  [         O                  2       L< [         c#    [        S  [         O                  2      2      t ! [         c     Lh 9 h[        - SQ5      o[        S[        2      o[        XXTP
Q5      v  qg[        O                   S O                  SSS O                  S O                   Q5      oS [         O                  2      o	S%       c   [#        S	2      ! S	O%                  2       T
Tt- tF   D  v  q«S
[#        S2      aJ  	  too
! t too
h S[         O&                  6X  Cc   - S O(                  AS O*                  Ao[        S[        2      o[        SS O*                  SSSQ5      o[        XXTP	Q5      v  qm[        O                   S O                  SSS O                  S O                   Q5      o S [         O                  2      oSO-                  S2       S!  [         c    S  [         O                  2      t ! [         c     Lh 9 h[        - S O*                  SSSQ5      o[        XXTP
Q5      v  qm[        O                   S O                  SSS O                  S O                   Q5      oS [         O                  2      oSO-                  S2       S%       c9   [        S[.        2      %       c!   SO1                  [         O&                  Q5      ! S! SO%                  2       T
Tt- tF   D>  v  q«S
[        S[.        2      %       c!   SO1                  [         O&                  Q5      LSaJ@  	  too
! t too
h S[         O                  6X  c   [3        Q2      g[        QS8 02      g)aZ  Call an __annotate__ function. __annotate__ functions are normally
generated by the compiler to defer the evaluation of annotations. They
can be called with any of the format arguments in the Format enum, but
compiler-generated __annotate__ functions only support the VALUE format.
This function provides additional functionality to call __annotate__
functions with the FORWARDREF and STRING formats.

*annotate* must be an __annotate__ function, which takes a single argument
and returns a dict of annotations.

*format* must be a member of the Format enum or one of the corresponding
integer values.

*owner* can be the object that owns the annotations (i.e., the module,
class, or function that the __annotate__ function derives from). With the
FORWARDREF format, it is used to provide better evaluation capabilities
on the generated ForwardRef objects.

ú;The VALUE_WITH_FAKE_GLOBALS format is for internal use only)r3   )Úallow_evaluation)ÚclosureÚargdefsÚ
kwdefaultsr8   z/annotate function does not support VALUE formatzInvalid format: )r   r   r>   r:   r   Úannotations_to_stringr
   rT   rY   r   rC   Ú_build_closurer;   ÚFunctionTyper"   Ú__defaults__Ú__kwdefaults__Ú_stringify_singlerJ   r   Ú__builtins__r   rZ   r   re   ÚRuntimeError)Úannotater3   r   r«  r0   r   r±  Ú_ry  ÚannosrÒ   Úvalrš  r£  rd   s   &&$$           r   r¬  r¬  Ý  s‚  � ð( ”×/Ñ/Ô/ÜÐVÓWÐWðÙ˜ÓÐøÜô Ùðúà”—‘Õð	Ù”V×3Ñ3Õ4øÜ"ô 	Aä(©´&·,±,Ó)?Ó@Ò@Üô 	Ùð	úô # 2¨fÔ5ˆÜ˜e¤TÓ*ˆÜ#Ø˜XÀô
‰
ˆô ×!Ò!Ø×ÑØØØ×)Ñ)Ø×.Ñ.ô
ˆñ ”V×3Ñ3Ó4ˆßÜ$ UÓ+Ð+ð "ŸK™K›Mô
ã)‘�ð Ô" 3Ó'Ò'Ù)ò
ð 	
ùó 
ð 
”6×$Ñ$Õ	$ð$ F�x×,Ñ,ÐE°×0DÑ0DÐEˆ	Ü˜e¤TÓ*ˆÜ"ØØ×(Ñ(ØØØô
ˆô ,Ø˜XÀô
Ñˆô ×!Ò!Ø×ÑØØØ×)Ñ)Ø×.Ñ.ô
ˆð		Ùœ&×8Ñ8Ó9ˆFð × Ñ  Ô+ØˆMøô #ô 	*áœFŸL™LÓ)Ò)Üô 	Ùð	úô #ØØ×(Ñ(ØØØô
ˆô ,Ø˜XÀô
Ñˆô ×!Ò!Ø×ÑØØØ×)Ñ)Ø×.Ñ.ô
ˆñ ”f×4Ñ4Ó5ˆØ×Ñ˜YÔ'ßÜ˜&¤*×-Ò-Ø—‘¬f×.?Ñ.?�Ó@Ð@à�ð !'§¡£ôó !/‘H�Cð ä! #¤z×2Ò2ð —L‘L¬×(9Ñ(9�LÔ:àòñ
 !/òð ùó ð 
”6—<‘<Ô	ô ÐLÓMÐMäÐ+¨F©:Ð6Ó7Ð7sj   £+ «	9µ9¸9ÁA* Á*	B#Á4 B#ÂB#ÂB#Â"B#ÅE$ÈH7 È7	I'ÉI'ÉI'É#I'É&I'ÍNÍ&&Nc                óØ  €   U O                   %       f   Q! , o- o[        U O                  O                  U O                   P	Q5      F   Dƒ  v  qxV†U$   Po	U%       c    UO                   So	U	eM   [        UUUU O                  UUQ5      o
UO                  O                  U
2       [        O                   U
2      o	UO                  U	2       J…  	  [        U2      U1!  [
         c     Kh 9 h)N)Ústrict)r_   r   r0   r   rº   )NN)Ú__closure__Úzipr"   Úco_freevarsr=   r>   r´   r   rð   r§   r;   r<   r“   )r¼  r   r   rº   r°  Únew_closurer£  r7   r_   Únew_cellrŸ  s   &&&&$      r   rµ  rµ  y  sî   � Ø××ÐØÐØ€KØ€IÜ˜(×+Ñ+×7Ñ7¸×9MÑ9MÐVZ×[Ð[‰
ˆØ�$‰Øˆßð Ø×"Ò"ð  �ØÒÜ!ØØØØ ×,Ñ,Ø!Ø!1ôˆFð ×)Ñ)×0Ñ0°Ô8Ü—~’~ fÓ-ˆHØ×Ñ˜8Ö$ñ+ \ô, �Ó˜yÐ(Ð(øô! ô Ùðús   ÁCÃ	C)Ã%C)Ã(C)c                 óÄ   €   U Q I c   Q! [        U [        2      %       c   U ! [        U [        2      %       c    [        O                   [        U 2      2      ! [        U 2      ! ).ú...)r   r   rÁ   rx   ry   rÂ   rù   )Úannos   &r   r¹  r¹  —  sJ   � Øˆsƒ{Ùä	�Dœ#×	Ò	ØˆÜ	�Dœ)×	$Ò	$Ü�{Š{Ô+¨DÓ1Ó2Ð2ä�D‹zÐr   c                ó^   €    U Q*          !  [          c    S O                  QP2      t ! h 9 h)zÚRetrieve the annotate function from a class namespace dictionary.

Return None if the namespace does not contain an annotate function.
This is useful in metaclass ``__new__`` methods to retrieve the annotate function.
r  Ú__annotate_func__)r÷   rB   )rÞ   s   &r   Ú!get_annotate_from_class_namespacerÌ  £  s3   � ð2Ø�>Õ"Ð"øÜô 2Ø�w‰wÐ*¨DÓ1Ò1ð2ús   ƒ Œ	,–,«,r0   r1   Úeval_strr3   c               ó  €   U%       c!   U[         O                  6w  c   [        Q2      gS9[         O                  6X  c    [        U 2      oUeÓ   [	        V2      oLÆ9[         O
                  6X  c9     [        U 2      oUd   [        U2      !  [	        V2      oUe†   [        U 2      oLy9[         O                  6X  c6    [	        V2      oUd   [        U2      ! [        U 2      oUd;   [        U2      ! [         O                  6X  c   [        Q2      g [        QU8 02      gUe9   [        U [        2      %       f   [        U 2      %       c   - ! [        U 8 Q02      gU%       f   - ! U%       f   [        U2      ! Ud   UCeÙ   [        U [        2      %       cd   Po[        U QP2      oU%       c6   [         O"                  O%                  UP2      oU%       c   [        UQP2      o[        ['        U 2      2      o	S o
LY[        U [(        O*                  2      %       c   [        U Q2      oPo	Po
L([        U 2      %       c   [        U QP2      oPo	S o
LP9o9qšU
d÷   [-        U
2      .o [/        U
Q2      %       c<   U
O0                  o[-        U2      U7   c   LœUO3                  [-        U2      2       So
JN  [         O"                  O%                  Q	2      9o%       cW   [        V­O4                  2      %       c<   U
O6                  o[-        U2      U7   c   LUO3                  [-        U2      2       So
JË   [/        U
Q2      %       c   U
O8                  oUe   SoUe   S	o[        U Q
Q2      9o%       c+   Ue   - oSTt- tF   D  pÿO:                  UaJ  	  toU*          oUO=                  2       TTt- tF   D4  v  ooS[        U[>        2      %       f   SL[A        [C        U2      V2      aJ6  	  oooU!  [         c     CKnh 9 ht toh t tooh )aö  Compute the annotations dict for an object.

obj may be a callable, class, module, or other object with
__annotate__ or __annotations__ attributes.
Passing any other object raises TypeError.

The *format* parameter controls the format in which annotations are returned,
and must be a member of the Format enum or its integer equivalent.
For the VALUE format, the __annotations__ is tried first; if it
does not exist, the __annotate__ function is called. The
FORWARDREF format uses __annotations__ if it exists and can be
evaluated, and otherwise falls back to calling the __annotate__ function.
The STRING format tries __annotate__ first, and falls back to
using __annotations__, stringified using annotations_to_string().

This function handles several details for you:

  * If eval_str is true, values of type str will
    be un-stringized using eval().  This is intended
    for use with stringized annotations
    ("from __future__ import annotations").
  * If obj doesn't have an annotations dict, returns an
    empty dict.  (Functions and methods always have an
    annotations dict; classes, modules, and other types of
    callables may not.)
  * Ignores inherited annotations on classes.  If a class
    doesn't have its own annotations dict, returns an empty dict.
  * All accesses to object members and dict values are done
    using getattr() and dict.get() for safety.
  * Always, always, always returns a freshly-created dict.

eval_str controls whether or not values of type str are replaced
with the result of calling eval() on those values:

  * If eval_str is true, eval() is called on values of type str.
  * If eval_str is false (the default), values of type str are unchanged.

globals and locals are passed in to eval(); see the documentation
for eval() for more information.  If either globals or locals is
None, this function may replace that value with a context-specific
default, contingent on type(obj):

  * If obj is a module, globals defaults to obj.__dict__.
  * If obj is a class, globals defaults to
    sys.modules[obj.__module__].__dict__ and locals
    defaults to the obj class namespace.
  * If obj is a callable, globals defaults to obj.__globals__,
    although if obj is a wrapped function (using
    functools.update_wrapper()) it is first unwrapped.
z8eval_str=True is only supported with format=Format.VALUEr¯  zUnsupported format z does not have annotationsr   r5   r   Ú__wrapped__Ú	functoolsr6   r   )"r   r
   r>   Ú_get_dunder_annotationsÚ_get_and_call_annotater   rH   rT   r   r´  r   r   rC   rE   r   r?   r@   rA   rB   rG   r;   rD   r’   rP   rÏ  ÚaddÚpartialry  r   r   rJ   r   rX   rŒ   )rÞ   r0   r1   rÍ  r3   ÚannÚobj_globalsr\   r   Ú
obj_localsÚunwrapÚ	_seen_idsÚ	candidaterÐ  r2   r]   rÒ   r¿   Úreturn_values   &$$$$              r   Úget_annotationsrÜ  ¯  s•  � ÷j �FœfŸl™lÔ*ÜÐSÓTÐTà
ØŒV�\Ž\å)¨#Ó.ˆCð Š{Ü,¨SÓ9‘ØŒV×Öñ%Ü-¨cÓ2�ð ’?Ü ›9Ð$ð #ô )¨Ó5ˆCØŠ{ô .¨cÓ2‘ØŒV�]Ž]å(¨Ó5ˆCØŠÜ˜C“yÐ ä)¨#Ó.ˆCØŠÜ,¨SÓ1Ð1Ü×+Ö+ÜÐZÓ[Ð[ØÜÐ2°6±*Ð=Ó>Ð>à
‚{Ü�cœ4× Ò ¤H¨S§M¢MØˆIÜ˜3™'Ð!;Ð<Ó=Ð=çØˆ	çÜ�C‹yÐà‚˜&›.Ü�cœ4× Ò àˆKÜ! # |°TÓ:ˆKßÜŸ™Ÿ™¨°dÓ;�ßÜ")¨&°*¸dÓ"C�KÜœd 3›i›ˆJØ‰FÜ˜œU×-Ñ-×.Ò.ä! # zÓ2ˆKØˆJØ‰FÜ�c�]Š]ô " # }°dÓ;ˆKØˆJØ‰Fà04Ð4ˆKÐ4˜*àÒô
 ˜F›˜ˆIØÜ˜6 =×1Ò1Ø &× 2Ñ 2�IÜ˜)“}¨	Ô1ØØ—M‘M¤" Y£-Ô0Ø&�FÙÜ #§¡§¡°Ó <Ð<�9Ö<Ü! &×*;Ñ*;×<Ò<Ø$*§K¡K˜	Ü˜i›=¨IÔ5Ø!Ø!Ÿ™¤b¨£mÔ4Ø!*˜Ù ØÜ�v˜}×-Ò-Ø$×0Ñ0�àŠ?Ø!ˆGØŠ>ØˆFô
 ˜cÐ#4°bÓ9Ð9€{Ö9ØŠ>ØˆFØ5@ÓA³[¨E—.‘. %Ò'±[ÑAÀFÕJˆð
 Ÿ)™)›+ôó &‰JˆC�ð 	œ* U¬C×0Ò0‰UÜÔ& uÓ-¨wÓ?ò	@á%ð ñ ð
 ÐøôY ô ÚðüòJ Bùós*   Á3O. Í:P Î- PÏPÏ.	O=Ï8O=Ï<O=c                ór  €   [        U [        [        O                  [        O                  12      %       c9   U O
                  Q6X  c   U O                  ! U O
                   QU O                   0! [        U [        2      %       c"   [        U 2      o[        O                   U2      ! U QI c   Q! [        U 2      ! )a  Convert a Python value to a format suitable for use with the STRING format.

This is intended as a helper for tools that support the STRING format but do
not have access to the code that originally produced the annotations. It uses
repr() for most objects.

rQ   Ú..rÈ  )r   rC   r;   r¶  ÚBuiltinFunctionTyper   r   rÁ   rÂ   rx   ry   rù   )r¿   Útrees   & r   Ú	type_reprrá  b  s—   � ô �%œ$¤× 2Ñ 2´E×4MÑ4MÐN×OÒOØ×Ñ˜zÔ)Ø×%Ñ%Ð%Ø×"Ñ"Ð# 1 U×%7Ñ%7Ð$8Ð9Ð9Ü	�Eœ9×	%Ò	%Ü Ó&ˆÜ�{Š{˜4Ó Ð Ø�ƒ|ÙÜ�‹;Ðr   c           
     óž   €   U O                  2       TTt- tF   D)  v  qS[        U[        2      %       c   SL
[        U2      aJ+  	  too! t tooh )zwConvert an annotation dict containing values to approximately the STRING format.

Always returns a fresh a dictionary.
)rJ   r   r   rá  )ÚannotationsÚnÚts   &  r   r´  r´  v  sK   � ð  ×%Ñ%Ó'ôã'‰DˆAð 	
”
˜1œc×"Ò"‰1¬	°!«Ò4Ù'òð ùó s
   ”A	´A	c                ó^   €   U O                  2       O                  Q2      %       c   QU  Q0! U ! )zlIf the given argument annotation expression is a star unpack e.g. `'*Ts'`
rewrite it to a valid expression.
Ú*r’  z,)[0])ÚlstripÚ
startswith)r&   s   &r   rŒ   rŒ   �  s.   � ð ‡z�zƒ|×Ñ˜s×#Ò#Ø�3�%�uˆ~Ðàˆ
r   c                ó’   €   [        U QP2      oUd5   [        V!U Q5      o[        U[        2      %       f   [	        U 8 Q02      gU! P! )zOGet the __annotate__ function and call it.

May not return a fresh dictionary.
r  )r   z!.__annotate__ returned a non-dict)r?   r¬  r   rH   r>   )rÞ   r3   r¼  rÕ  s   &&  r   rÒ  rÒ  ‹  sL   � ô
 �s˜N¨DÓ1€HØÒÜ$ X¸SÔAˆÜ˜#œt×$Ò$Ü ™wÐ&GÐHÓIÐIØˆ
Ùr   Ú__annotations__c                óâ   €   [        U [        2      %       c    [        U 2      oL[	        U QP2      oUe   P! [        U[
        2      %       f   [        U 8 Q02      gU!  [         c     P! h 9 h)zmReturn the annotations for an object, checking that it is a dictionary.

Does not return a fresh dictionary.
rë  z+.__annotations__ is neither a dict nor None)r   rC   Ú_BASE_GET_ANNOTATIONSÚAttributeErrorr?   rH   r>   )rÞ   rÕ  s   & r   rÑ  rÑ  œ  sr   � ô �#”t×Òð	Ü'¨Ó,‰Cô
 �cÐ,¨dÓ3ˆØŠ;Ùä�cœ4× Ò Ü˜C™7Ð"MÐNÓOÐOØ€Jøô ô 	âð	ús   ™A Á	A.Á)A.Á-A.c                   ó>   ` €   \ sQ sQs n QsQ sU 1Q kQ ksQsU sP! )r€   i´  zLFixer for __extra_names__ items in ForwardRef __repr__ and string evaluationc                ó   €   Vm         P! r�   ©r¶   )r%   r¶   s   &&r   r'   Ú_ExtraNameFixer.__init__¶  s   � Ø&Ör   c                ó6   :€   U ]6„  c   PgQRZ O                  -! )r  rˆ   )rx   rÀ   )r3   r²   s   "€r   r  Ú'_ExtraNameFixer.visit_Name.__annotate__¹  s   ø� ÷ ñ ™sŸx™xñ r   c                ó°   €   U O                   O                  UO                  [        2      9o[        Ic!   [        O
                   [        U2      Q 5      oU! rì   )r¶   rB   r’   rO   rx   rÀ   rá  )r%   rˆ   Únew_names   && r   Ú
visit_NameÚ_ExtraNameFixer.visit_Name¹  s>   � Ø×(Ñ(×,Ñ,¨T¯W©W´iÓ@Ð@ˆHÌÓRÜ—8’8œy¨Ó2Ô3ˆDØˆr   rñ  )	r   r   r   r	   r¬   r'   r÷  r   r°   r±   s   @r   r€   r€   ´  s   ø‡ � ÙVò'÷ö r   r€   )r   r   r¬  r­  rÌ  rÜ  r´  rá  )r   r   r   Ú__weakref__r   r   r!   r"   r#   r    r   r¹   r$   rŠ  r   )(r¬   rx   rQ   ÚenumrM   r@   r;   Ú__all__ÚIntEnumr   ÚobjectrO   rV   r­   r   rC   rÁ   r´   r�  r‡  rÂ   rH   rY   r­  r¬  rµ  r¹  rÌ  r
   rÜ  rá  r´  rŒ   rÒ  r5   Ú__get__rí  rÑ  ÚNodeTransformerr€   r   r   r   Ú<module>r      s0  ñÙ 9ã 
Û Û Û Û 
Û ò	€ôˆT�\‰\ô ñ ‹H€	à5€ð
€÷"qHñ qHñh	 ’‹I€	÷ñ òDJò**ò,6ô*#�tô #ðLT°dô TðY8°dð Y8Èô Y8òx)ò<	ò	2ðpØðpØ!%ðpØ05ðpØ>D¿l¹lôpòfò(òòð Ÿ™Ð&7Õ8×@Ñ@Ð òô0�c×)Ñ)ö r   