ó
    ÞÅŸg«' ã                   ó¸  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKJr  \" \S5      r\" \5      r\
R&                  " 5       R(                  rS r\R.                  \R0                  4rS rS rS rS	 rS
 r\	R>                  " S5      r \	R>                  " S5      r!\	R>                  " S5      r"\	R>                  " S5      r#\	R>                  " S5      r$\%" S5      r&S r'S r( " S S\)5      r*S r+S\*" 5       4S jr,S r-S r. " S S5      r/ " S S\/5      r0 " S S\05      r1 " S S 5      r2 " S! S"5      r3 " S# S$\05      r4 " S% S&\45      r5 " S' S(\45      r6 " S) S*\45      r7 " S+ S,\65      r8 " S- S.\/5      r9 " S/ S0\/5      r: " S1 S2\:5      r; " S3 S4\/5      r< " S5 S6\05      r= " S7 S8\05      r> " S9 S:\/5      r? " S; S<\)5      r@ " S= S>\@5      rA " S? S@\@5      rB " SA SB\@5      rC " SC SD\@5      rD " SE SF\@5      rE " SG SH\E5      rF " SI SJ5      rG/ SKQrHSL rI\%" SM5      rJSN rKSO rLSP rMSQ rN " SR SS5      rOST rPSU rQ " SV SW5      rRg)Xz]
Main module.

Implement the central Checker class.
Also, it models the Bindings and Scopes.
é    N)ÚmessagesÚpypy_version_infoc                 óÎ  • [        U [        R                  5      (       a  U R                  /$ [        U [        R                  5      (       a7  U R                  U R
                  -   /U R                   Vs/ sH  o/PM     sn-   $ [        R                  S:¼  aE  [        U [        R                  5      (       a%  U R                   Vs/ sH  o"R                  PM     sn$ g g s  snf s  snf )N)é   é
   )Ú
isinstanceÚastÚIfÚbodyÚTryÚorelseÚhandlersÚsysÚversion_infoÚMatchÚcases)ÚnÚhdlÚmcs      ÚQ/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/pyflakes/checker.pyÚgetAlternativesr      s¨   € Ü�!”S—V‘V×ÑØ—‘ˆxˆÜ	�A”s—w‘w×	Ñ	Ø—‘˜Ÿ™Ñ!Ð"°q·z²zÓ%B±z°£e±zÑ%BÑBÐBÜ	×	Ñ	˜WÓ	$¬°A´s·y±y×)AÑ)AØ"#§'¢'Ó*¡'˜B—”¡'Ñ*Ð*ð *BÐ	$ùò &Cùâ*s   Á3CÃC"c                 óª   • [        U [        R                  5      =(       a3    [        U R                  [        [        [        5      [        S 5      45      $ ©N)r   r	   ÚConstantÚvalueÚboolÚtypeÚEllipsis©Únodes    r   Ú_is_singletonr!   )   s8   € ä�4œŸ™Ó&÷ 	CÜ�4—:‘:¤¤d¬8£n´d¸4³jÐAÓBðó    c                 ó|   • [        U [        R                  5      =(       a    [        S U R                   5       5      $ )Nc              3   ó6   #   • U H  n[        U5      v •  M     g 7fr   )Ú_is_constant©Ú.0Úelts     r   Ú	<genexpr>Ú%_is_tuple_constant.<locals>.<genexpr>3   s   é € Ð3© #ŒL˜×Ðªùó   ‚)r   r	   ÚTupleÚallÚeltsr   s    r   Ú_is_tuple_constantr/   0   s,   € ä�4œŸ™Ó#÷ 	4ÜÑ3¨¯ªÓ3Ó3ðr"   c                 óZ   • [        U [        R                  5      =(       d    [        U 5      $ r   )r   r	   r   r/   r   s    r   r%   r%   7   s   € Ü�dœCŸL™LÓ)×EÔ-?ÀÓ-EÐEr"   c                 óF   • [        U 5      =(       a    [        U 5      (       + $ r   )r%   r!   r   s    r   Ú_is_const_non_singletonr2   ;   s   € Ü˜Ó×9¤m°DÓ&9Ô"9Ð9r"   c                 óÐ   • [        U [        R                  5      =(       a    U R                  U:H  =(       d0    [        U [        R                  5      =(       a    U R
                  U:H  $ r   )r   r	   ÚNameÚidÚ	AttributeÚattr)r    Únames     r   Ú_is_name_or_attrr9   ?   sD   € ä	�Dœ#Ÿ(™(Ó	#×	7¨¯©°4©÷ 	@Ü	�Dœ#Ÿ-™-Ó	(×	>¨T¯Y©Y¸$Ñ->ðr"   z\(([^()]*)\)z[#0+ -]*z
(?:\*|\d*)z(?:\.(?:\*|\d*))?z[hlL]?zdiouxXeEfFgGcrsa%c                 ó2   • U R                  X5      nUc   eU$ r   )Úmatch)ÚregexÚstringÚposr;   s       r   Ú_must_matchr?   O   s!   € Ø�K‰K˜Ó$€EØÑÐÐØ€Lr"   c                 ó0   ^ • U 4S jn[        U" 5       5      $ )zyParses the string component of a `'...' % ...` format call

Copied from https://github.com/asottile/pyupgrade at v1.20.1
c               3   óˆ  >#   • Sn SnSnSnU[        T5      :  Gaa  U(       d   TR                  SU5      nUnUS-  nSnGO*[        R	                  TU5      nU(       a"  UR                  S5      nUR                  5       nOS n[        [        TU5      nUR                  5       =(       d    S nUR                  5       n[        [        TU5      nUR                  5       =(       d    S n	UR                  5       n[        [        TU5      n
U
R                  5       =(       d    S nU
R                  5       n[        [        TU5      R                  5       n TU   nUS-  nXWX›U4nTX U4v •  SnUn U[        T5      :  a  GMa  U(       a  [        S5      eg ! [         a    TU S  S 4v •   g f = f! [         a    [        S5      ef = f7f)Nr   FÚ%é   Tz"end-of-string while parsing format)ÚlenÚindexÚ
ValueErrorÚMAPPING_KEY_REr;   ÚgroupÚendr?   ÚCONVERSION_FLAG_REÚWIDTH_REÚPRECISION_REÚ	LENGTH_REÚ
IndexError)Ústring_startÚ
string_endÚin_fmtÚiÚ	key_matchÚkeyÚconversion_flag_matchÚconversion_flagÚwidth_matchÚwidthÚprecision_matchÚ	precisionÚ
conversionÚfmtÚss                 €r   Ú_parse_innerÚ*parse_percent_format.<locals>._parse_inner[   sÔ  øé € ØˆØˆ
ØˆàˆØ”#�a“&ŒjÞð"ØŸ™  Q›�Að
 "#�JØ˜‘F�AØ!’Fä*×0Ñ0°°AÓ6�	ÞØ#Ÿ/™/¨!Ó,�CØ!Ÿ™›‘Aà�Cä(3Ô4FÈÈ1Ó(MÐ%Ø"7×"=Ñ"=Ó"?×"GÀ4�Ø)×-Ñ-Ó/�ä)¬(°A°qÓ9�Ø#×)Ñ)Ó+×3¨t�Ø—O‘OÓ%�ä"-¬l¸A¸qÓ"A�Ø+×1Ñ1Ó3×;°t�	Ø#×'Ñ'Ó)�ô  ¤	¨1¨aÓ0×4Ñ4Ó6�ðKØ!" 1¡�Jð �Q‘�à¨U¸zÐJ�Ø˜Ð0°#Ð5Ò5à�Ø �ðY ”#�a“&Žjö\ ÜÐAÓBÐBð øôU "ó Ø˜L˜MÐ*¨DÐ0Ò0Ùðûô@ "ó KÜ$Ð%IÓJÐJðKüsF   ƒ G¤F ¶DGÅF) Å%GÅ=GÆF&Æ#GÆ%F&Æ&GÆ)F?Æ?G)Útuple)r]   r^   s   ` r   Úparse_percent_formatra   U   s   ø€ õ5Côn ‘“Ó Ð r"   c                   ó$   • \ rS rSrSrS rS rSrg)Ú_FieldsOrderé•   zFix order of AST node fields.c                 ó¤   • UR                   nSU;   a  SR                  nOSU;   a  SR                  nOSR                  n[        [        X#SS95      $ )NÚiterÚ
generatorsr   T)rT   Úreverse)Ú_fieldsÚfindr`   Úsorted)ÚselfÚ
node_classÚfieldsÚ	key_firsts       r   Ú_get_fieldsÚ_FieldsOrder._get_fields˜   sL   € à×#Ñ#ˆØ�VÓØŸ™‰IØ˜VÓ#Ø$×)Ñ)‰IàŸ™ˆIÜ”V˜F¸4Ñ@ÓAÐAr"   c                 ó0   • U R                  U5      =X'   nU$ r   )rp   )rl   rm   rn   s      r   Ú__missing__Ú_FieldsOrder.__missing__£   s   € Ø$(×$4Ñ$4°ZÓ$@Ð@ˆÑ˜6Øˆr"   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rp   rs   Ú__static_attributes__ru   r"   r   rc   rc   •   s   † Ù'ò	Bõr"   rc   c                 óJ   • 0 nU  H  nUR                  US5      S-   X'   M     U$ )zp
Simplest required implementation of collections.Counter. Required as 2.6
does not have Counter in collections.
r   rC   )Úget)ÚitemsÚresultsÚitems      r   Úcounterr�   ¨   s/   € ð
 €GÛˆØŸ™ D¨!Ó,¨qÑ0ˆ‹ñ à€Nr"   c              #   ó>  #   • X R                       H‡  nU(       a  X1;   a  M  [        XS5      n[        U[        R                  5      (       a  Uv •  MB  [        U[
        5      (       d  MY  U H(  n[        U[        R                  5      (       d  M$  Uv •  M*     M‰     g7f)a„  
Yield all direct child nodes of *node*, that is, all fields that
are nodes and all items of fields that are lists of nodes.

:param node:          AST node to be iterated upon
:param omit:          String or tuple of strings denoting the
                      attributes of the node to be omitted from
                      further parsing
:param _fields_order: Order of AST node fields
N)Ú	__class__Úgetattrr   r	   ÚASTÚlist)r    ÚomitÚ_fields_orderr8   Úfieldr€   s         r   Úiter_child_nodesrŠ   ³   sq   é € ð Ÿn™nÔ-ˆÞ�D“LÙÜ˜ DÓ)ˆÜ�eœSŸW™W×%Ñ%ØŒKÜ˜œt×$Ó$Û�Ü˜d¤C§G¡G×,Ó,Ø”Jó ò .ùs   ‚A$BÁ*"BÂBc                 ó2  • [        U [        R                  5      (       a  U R                  $ [        U [        R                  5      (       a  [        S U R                   5       5      $ [        U [        R                  5      (       a	  [        U S9$ [        5       $ )Nc              3   ó6   #   • U H  n[        U5      v •  M     g 7fr   )Úconvert_to_value)r'   rR   s     r   r)   Ú#convert_to_value.<locals>.<genexpr>Î   s   é € Ð<±)¨QÔ% a×(Ð(²)ùr+   ©r€   )
r   r	   r   r   r,   r`   r.   r4   ÚVariableKeyÚUnhandledKeyTyper�   s    r   r�   r�   Ê   sh   € Ü�$œŸ™×%Ñ%Ø�z‰zÐÜ	�Dœ#Ÿ)™)×	$Ñ	$ÜÑ<°$·)²)Ó<Ó<Ð<Ü	�Dœ#Ÿ(™(×	#Ñ	#Ü Ñ%Ð%äÓ!Ð!r"   c                 ó`   • [        U [        R                  5      =(       a    [        U 5      S:H  $ )NÚNotImplemented)r   r	   r4   ÚgetNodeNamer   s    r   Úis_notimplemented_name_noder•   Õ   s#   € Ü�dœCŸH™HÓ%×O¬+°dÓ*;Ð?OÑ*OÐOr"   c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚBindingéÙ   aV  
Represents the binding of a value to a name.

The checker uses this to keep track of which names have been bound and
which names have not. See L{Assignment} for a special type of binding that
is checked with stricter rules.

@ivar used: pair of (L{Scope}, node) indicating the scope and
            the node that this binding was last used.
c                 ó*   • Xl         X l        SU l        g ©NF©r8   ÚsourceÚused)rl   r8   rœ   s      r   Ú__init__ÚBinding.__init__å   s   € ØŒ	ØŒØˆ�	r"   c                 ó   • U R                   $ r   ©r8   ©rl   s    r   Ú__str__ÚBinding.__str__ê   s   € Ø�y‰yÐr"   c                 ó    • SR                  U R                  R                  U R                  U R                  R
                  [        U 5      5      $ )Nz)<{} object {!r} from line {!r} at 0x{:x}>)Úformatrƒ   rv   r8   rœ   Úlinenor5   r¢   s    r   Ú__repr__ÚBinding.__repr__í   s=   € Ø:×AÑAØ�N‰N×#Ñ#Ø�I‰IØ�K‰K×ÑÜˆt‹Hó	
ð 	
r"   c                 ób   • [        U[        5      =(       a    U R                  UR                  :H  $ r   )r   Ú
Definitionr8   ©rl   Úothers     r   Ú	redefinesÚBinding.redefinesõ   s!   € Ü˜%¤Ó,×H°·±¸e¿j¹jÑ1HÐHr"   r›   N)
rv   rw   rx   ry   rz   rž   r£   r¨   r®   r{   ru   r"   r   r—   r—   Ù   s   † ñ	òò
ò
õIr"   r—   c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )r«   éù   z/
A binding that defines a function or a class.
c                 ó�   >• [         TU ]  U5      =(       d0    [        U[        5      =(       a    U R                  UR                  :H  $ r   )Úsuperr®   r   Ú
Assignmentr8   ©rl   r­   rƒ   s     €r   r®   ÚDefinition.redefinesý   s7   ø€ ä‰GÑ˜eÓ$÷ HÜ˜œzÓ*×F¨t¯y©y¸E¿J¹JÑ/Fð	
r"   ru   )rv   rw   rx   ry   rz   r®   r{   Ú__classcell__©rƒ   s   @r   r«   r«   ù   s   ø† ñ÷
ó 
r"   r«   c                   ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )ÚBuiltini  z-A definition created for all Python builtins.c                 ó&   >• [         TU ]  US 5        g r   )r³   rž   )rl   r8   rƒ   s     €r   rž   ÚBuiltin.__init__  s   ø€ Ü‰Ñ˜˜tÕ$r"   c                 óv   • SR                  U R                  R                  U R                  [	        U 5      5      $ )Nz<{} object {!r} at 0x{:x}>)r¦   rƒ   rv   r8   r5   r¢   s    r   r¨   ÚBuiltin.__repr__
  s0   € Ø+×2Ñ2Ø�N‰N×#Ñ#Ø�I‰IÜˆt‹Hó
ð 	
r"   ru   )	rv   rw   rx   ry   rz   rž   r¨   r{   r·   r¸   s   @r   rº   rº     s   ø† Ù7õ%÷
ð 
r"   rº   c                   ó   • \ rS rSrSrSrg)r‘   i  zK
A dictionary key of a type that we cannot or do not check for duplicates.
ru   N©rv   rw   rx   ry   rz   r{   ru   r"   r   r‘   r‘     ó   † ôr"   r‘   c                   ó*   • \ rS rSrSrS rS rS rSrg)r�   i  zM
A dictionary key which is a variable.

@ivar item: The variable AST object.
c                 ó&   • UR                   U l        g r   )r5   r8   )rl   r€   s     r   rž   ÚVariableKey.__init__  s   € Ø—G‘Gˆ�	r"   c                 ót   • UR                   U R                   :H  =(       a    UR                  U R                  :H  $ r   )rƒ   r8   )rl   Úcompares     r   Ú__eq__ÚVariableKey.__eq__!  s.   € à×Ñ §¡Ñ/÷ &Ø�L‰L˜DŸI™IÑ%ð	
r"   c                 ó,   • [        U R                  5      $ r   )Úhashr8   r¢   s    r   Ú__hash__ÚVariableKey.__hash__'  s   € Ü�D—I‘I‹Ðr"   r¡   N)	rv   rw   rx   ry   rz   rž   rÇ   rË   r{   ru   r"   r   r�   r�     s   † ñò
ò
õr"   r�   c                   óR   ^ • \ rS rSrSrS	U 4S jjrS rS r\S 5       r	S r
SrU =r$ )
ÚImportationi+  z·
A binding created by an import statement.

@ivar fullName: The complete name given to the import statement,
    possibly including multiple dotted components.
@type fullName: C{str}
c                 óR   >• U=(       d    UU l         / U l        [        TU ]  X5        g r   )ÚfullNameÚ	redefinedr³   rž   )rl   r8   rœ   Ú	full_namerƒ   s       €r   rž   ÚImportation.__init__4  s#   ø€ Ø!×) TˆŒØˆŒÜ‰Ñ˜Õ&r"   c                 ó¾   • [        U[        5      (       a  U R                  UR                  :H  $ [        U[        5      =(       a    U R                  UR                  :H  $ r   )r   ÚSubmoduleImportationrÐ   r«   r8   r¬   s     r   r®   ÚImportation.redefines9  sB   € Ü�eÔ1×2Ñ2à—=‘= E§N¡NÑ2Ð2Ü˜%¤Ó,×H°·±¸e¿j¹jÑ1HÐHr"   c                 óZ   • U R                   R                  S5      S   U R                  :X  + $ )z.Return whether importation needs an as clause.Ú.éÿÿÿÿ)rÐ   Úsplitr8   r¢   s    r   Ú
_has_aliasÚImportation._has_alias?  s%   € à—=‘=×&Ñ& sÓ+¨BÑ/°4·9±9Ò<Ð<r"   c                 ó‚   • U R                  5       (       a  SU R                   SU R                   3$ SU R                  -  $ )z5Generate a source statement equivalent to the import.úimport ú as z	import %s©rÛ   rÐ   r8   r¢   s    r   Úsource_statementÚImportation.source_statementC  s;   € ð �?‰?×ÑØ˜TŸ]™]˜O¨4°·	±	¨{Ð;Ð;à §¡Ñ.Ð.r"   c                 ó|   • U R                  5       (       a  U R                  S-   U R                  -   $ U R                  $ ©z#Return import full name with alias.rß   rà   r¢   s    r   r£   ÚImportation.__str__K  s1   € à�?‰?×ÑØ—=‘= 6Ñ)¨D¯I©IÑ5Ð5à—=‘=Ð r"   )rÐ   rÑ   r   )rv   rw   rx   ry   rz   rž   r®   rÛ   Úpropertyrá   r£   r{   r·   r¸   s   @r   rÎ   rÎ   +  s6   ø† ñ÷'ò
Iò=ð ñ/ó ð/÷!ð !r"   rÎ   c                   óN   ^ • \ rS rSrSrU 4S jrU 4S jrS r\S 5       r	Sr
U =r$ )rÕ   iS  a]  
A binding created by a submodule import statement.

A submodule import is a special case where the root module is implicitly
imported, without an 'as' clause, and the submodule is also imported.
Python does not restrict which attributes of the root module may be used.

This class is only used when the submodule import is without an 'as' clause.

pyflakes handles this case by registering the root module name in the scope,
allowing any attribute of the root module to be accessed.

RedefinedWhileUnused is suppressed in `redefines` unless the submodule
name is also the same, to avoid false positives.
c                 ó´   >• SU;   a&  U(       a!  [        U[        R                  5      (       d   eUR                  S5      S   n[        TU ]  X25        Xl        g )NrØ   r   )r   r	   ÚImportrÚ   r³   rž   rÐ   )rl   r8   rœ   Úpackage_namerƒ   s       €r   rž   ÚSubmoduleImportation.__init__d  sF   ø€ à�d‹{¦F¬j¸ÄÇÁ×.LÑ.LÐMÐMØ—z‘z #“ qÑ)ˆÜ‰Ñ˜Ô.Ø�r"   c                 ó~   >• [        U[        5      (       a  U R                  UR                  :H  $ [        TU ]  U5      $ r   )r   rÎ   rÐ   r³   r®   rµ   s     €r   r®   ÚSubmoduleImportation.redefinesk  s3   ø€ Ü�eœ[×)Ñ)Ø—=‘= E§N¡NÑ2Ð2Ü‰wÑ  Ó'Ð'r"   c                 ó   • U R                   $ r   ©rÐ   r¢   s    r   r£   ÚSubmoduleImportation.__str__p  s   € Ø�}‰}Ðr"   c                 ó    • SU R                   -   $ )NrÞ   rï   r¢   s    r   rá   Ú%SubmoduleImportation.source_statements  s   € à˜4Ÿ=™=Ñ(Ð(r"   rï   )rv   rw   rx   ry   rz   rž   r®   r£   ræ   rá   r{   r·   r¸   s   @r   rÕ   rÕ   S  s+   ø† ñõ õ(ò
ð ñ)ó ö)r"   rÕ   c                   óB   ^ • \ rS rSrSU 4S jjrS r\S 5       rSrU =r	$ )ÚImportationFromix  c                 óÀ   >• X0l         U=(       d    UU l        UR                  S5      (       a  X0R                  -   nOUS-   U R                  -   n[        TU ]  XU5        g ©NrØ   )ÚmoduleÚ	real_nameÚendswithr³   rž   )rl   r8   rœ   r÷   rø   rÒ   rƒ   s         €r   rž   ÚImportationFrom.__init__z  sP   ø€ ØŒØ"×* dˆŒà�?‰?˜3×ÑØ§¡Ñ/‰Ià ™ t§~¡~Ñ5ˆIä‰Ñ˜ yÕ1r"   c                 ó†   • U R                   U R                  :w  a  U R                  S-   U R                  -   $ U R                  $ rä   )rø   r8   rÐ   r¢   s    r   r£   ÚImportationFrom.__str__…  s4   € à�>‰>˜TŸY™YÓ&Ø—=‘= 6Ñ)¨D¯I©IÑ5Ð5à—=‘=Ð r"   c                 óÀ   • U R                   U R                  :w  a)  SU R                   SU R                    SU R                   3$ SU R                   SU R                   3$ )Núfrom z import rß   )rø   r8   r÷   r¢   s    r   rá   Ú ImportationFrom.source_statementŒ  sS   € à�>‰>˜TŸY™YÓ&Ø˜4Ÿ;™;˜- x°·±Ð/?¸tÀDÇIÁIÀ;ÐOÐOà˜4Ÿ;™;˜- x°·	±	¨{Ð;Ð;r"   )r÷   rø   r   )
rv   rw   rx   ry   rž   r£   ræ   rá   r{   r·   r¸   s   @r   rô   rô   x  s!   ø† ÷	2ò!ð ñ<ó ö<r"   rô   c                   óB   ^ • \ rS rSrSrU 4S jr\S 5       rS rSr	U =r
$ )ÚStarImportationi”  z3A binding created by a 'from x import *' statement.c                 óF   >• [         TU ]  SU5        US-   U l        Xl        g )NÚ*z.*)r³   rž   r8   rÐ   )rl   r8   rœ   rƒ   s      €r   rž   ÚStarImportation.__init__—  s$   ø€ Ü‰Ñ˜˜fÔ%ð ˜4‘KˆŒ	Ø�r"   c                 ó&   • SU R                   -   S-   $ )Nrþ   z	 import *rï   r¢   s    r   rá   Ú StarImportation.source_statementž  s   € à˜Ÿ™Ñ&¨Ñ4Ð4r"   c                 ór   • U R                   R                  S5      (       a  U R                  $ U R                  $ rö   )rÐ   rù   rá   r8   r¢   s    r   r£   ÚStarImportation.__str__¢  s-   € à�=‰=×!Ñ! #×&Ñ&Ø×(Ñ(Ð(à—9‘9Ðr"   )rÐ   r8   )rv   rw   rx   ry   rz   rž   ræ   rá   r£   r{   r·   r¸   s   @r   r  r  ”  s)   ø† Ù=õð ñ5ó ð5÷ð r"   r  c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚFutureImportationiª  zg
A binding created by a from `__future__` import statement.

`__future__` imports are implicitly used.
c                 ó6   >• [         TU ]  XS5        X24U l        g )NÚ
__future__)r³   rž   r�   )rl   r8   rœ   Úscoperƒ   s       €r   rž   ÚFutureImportation.__init__±  s   ø€ Ü‰Ñ˜ |Ô4Ø�Oˆ�	r"   )r�   ©rv   rw   rx   ry   rz   rž   r{   r·   r¸   s   @r   r
  r
  ª  s   ø† ñ÷$ó $r"   r
  c                   ó   • \ rS rSrSrSrg)ÚArgumenti¶  z+
Represents binding a name as an argument.
ru   NrÀ   ru   r"   r   r  r  ¶  rÁ   r"   r  c                   ó   • \ rS rSrSrSrg)r´   i¼  a  
Represents binding a name with an explicit assignment.

The checker will raise warnings for any Assignment that isn't used. Also,
the checker does not consider assignments in tuple/list unpacking to be
Assignments, rather it treats them as simple Bindings.
ru   NrÀ   ru   r"   r   r´   r´   ¼  s   † ôr"   r´   c                   ó   • \ rS rSrSrSrg)ÚNamedExprAssignmentiÆ  z:
Represents binding a name with an assignment expression.
ru   NrÀ   ru   r"   r   r  r  Æ  rÁ   r"   r  c                   ó   • \ rS rSrSrS rSrg)Ú
AnnotationiÌ  zð
Represents binding a name to a type without an associated value.

As long as this name is not assigned a value in another binding, it is considered
undefined for most purposes. One notable exception is using the name as a type
annotation.
c                 ó   • g)zAAn Annotation doesn't define any name, so it cannot redefine one.Fru   r¬   s     r   r®   ÚAnnotation.redefinesÕ  s   € àr"   ru   N)rv   rw   rx   ry   rz   r®   r{   ru   r"   r   r  r  Ì  s   † ñõr"   r  c                   ó   • \ rS rSrSrg)ÚFunctionDefinitioniÚ  ru   N©rv   rw   rx   ry   r{   ru   r"   r   r  r  Ú  ó   † Úr"   r  c                   ó   • \ rS rSrSrg)ÚClassDefinitioniÞ  ru   Nr  ru   r"   r   r  r  Þ  r  r"   r  c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚExportBindingiâ  aÔ  
A binding created by an C{__all__} assignment.  If the names in the list
can be determined statically, they will be treated as names for export and
additional checking applied to them.

The only recognized C{__all__} assignment via list/tuple concatenation is in the
following format:

    __all__ = ['a'] + ['b'] + ['c']

Names which are imported and not otherwise used but appear in the value of
C{__all__} will not have an unused import warning reported for them.
c                 ó¨  >^ • SU;   a=  [        U[        R                  5      (       a  [        US   R                  5      T l        O/ T l        U 4S jn[        UR
                  [        R                  [        R                  45      (       a  U" UR
                  5        GO$[        UR
                  [        R                  5      (       aû  UR
                  n[        UR                  [        R                  [        R                  45      (       a¶  UR                  nUR                  nU" U5        [        U[        R                  5      (       a  UnO9[        U[        R                  [        R                  45      (       a	  U" U5        O<O;[        UR                  [        R                  [        R                  45      (       a  M¶  [        TT ]1  X5        g )NÚ__all__c                 óú   >• U R                    Hj  n[        U[        R                  5      (       d  M$  [        UR                  [
        5      (       d  ME  TR                  R                  UR                  5        Ml     g r   )r.   r   r	   r   r   ÚstrÚnamesÚappend)Ú	containerr    rl   s     €r   Ú_add_to_namesÚ-ExportBinding.__init__.<locals>._add_to_names÷  sH   ø€ Ø!Ÿœ�Ü˜d¤C§L¡L×1Ó1´jÀÇÁÌS×6QÓ6QØ—J‘J×%Ñ% d§j¡jÖ1ò 'r"   )r   r	   Ú	AugAssignr†   r%  r   ÚListr,   ÚBinOpÚrightÚleftr³   rž   )	rl   r8   rœ   r  r(  ÚcurrentValuer.  r-  rƒ   s	   `       €r   rž   ÚExportBinding.__init__ñ  s7  ù€ Ø˜Ó¤*¨V´S·]±]×"CÑ"CÜ˜e IÑ.×4Ñ4Ó5ˆD�JàˆDŒJõ	2ô
 �f—l‘l¤S§X¡X¬s¯y©yÐ$9×:Ñ:Ù˜&Ÿ,™,Ö'ä˜Ÿ™¤c§i¡i×0Ñ0Ø!Ÿ<™<ˆLÜ˜\×/Ñ/´#·(±(¼C¿I¹IÐ1F×GÑGØ#×(Ñ(�Ø$×*Ñ*�Ù˜eÔ$ä˜d¤C§I¡I×.Ñ.Ø#'‘Lä ¤s§x¡x´·±Ð&;×<Ñ<Ù! $Ô'àð ô ˜\×/Ñ/´#·(±(¼C¿I¹IÐ1F×GÓGô 	‰Ñ˜Õ&r"   )r%  r  r¸   s   @r   r   r   â  s   ø† ñ÷'ó 'r"   r   c                   ó   • \ rS rSrSrS rSrg)ÚScopei  Fc                 ó€   • U R                   R                  nSU S[        U 5      S S[        R	                  U 5       S3$ )NÚ<z at 0xÚxÚ Ú>)rƒ   rv   r5   Údictr¨   )rl   Ú	scope_clss     r   r¨   ÚScope.__repr__  s<   € Ø—N‘N×+Ñ+ˆ	Ø�9�+˜V¤B t£H¨Q <¨q´·±¸tÓ1DÐ0EÀQÐGÐGr"   ru   N)rv   rw   rx   ry   ÚimportStarredr¨   r{   ru   r"   r   r2  r2    s   † Ø€MõHr"   r2  c                   ó   • \ rS rSrSrg)Ú
ClassScopei  ru   Nr  ru   r"   r   r=  r=    r  r"   r=  c                   óD   ^ • \ rS rSrSrSr1 SkrU 4S jrS rS r	Sr
U =r$ )	ÚFunctionScopei  zd
I represent a name scope for a function.

@ivar globals: Names declared 'global' in this function.
F>   Ú__tracebackhide__Ú__traceback_info__Ú__traceback_supplement__c                 ón   >• [         TU ]  5         U R                  R                  5       U l        S U l        g r   )r³   rž   Ú
alwaysUsedÚcopyÚglobalsÚreturnValue)rl   rƒ   s    €r   rž   ÚFunctionScope.__init__)  s*   ø€ Ü‰ÑÔà—‘×+Ñ+Ó-ˆŒØˆÕr"   c              #   óô   #   • U R                  5        H`  u  pUR                  (       a  M  US:w  d  M   XR                  ;  d  M1  U R                  (       a  MD  [	        U[
        5      (       d  M[  X4v •  Mb     g7f)zB
Return a generator for the assignments which have not been used.
Ú_N)r~   r�   rF  Ú
usesLocalsr   r´   ©rl   r8   Úbindings      r   Úunused_assignmentsÚ FunctionScope.unused_assignments/  sQ   é € ð "ŸZ™Zž\‰MˆDØ—L—L‘LØ˜C•KØ§¡Õ,ØŸŸ™Ü˜w¬
×3Ó3Ø�mÔ#ò *ùs!   ‚%A8«A8³A8ÁA8ÁA8Á.
A8c              #   óœ   #   • U R                  5        H4  u  pUR                  (       a  M  [        U[        5      (       d  M/  X4v •  M6     g7f)zB
Return a generator for the annotations which have not been used.
N)r~   r�   r   r  rL  s      r   Úunused_annotationsÚ FunctionScope.unused_annotations;  s6   é € ð "ŸZ™Zž\‰MˆDØ—<—<‘<¤J¨w¼
×$CÓ$CØ�mÔ#ò *ùs   ‚%A«AÁ
A)rF  rG  )rv   rw   rx   ry   rz   rK  rD  rž   rN  rQ  r{   r·   r¸   s   @r   r?  r?    s*   ø† ñð
 €Jò.€Jõ ò
$÷$ð $r"   r?  c                   ó   • \ rS rSrSrg)Ú	TypeScopeiD  ru   Nr  ru   r"   r   rT  rT  D  r  r"   rT  c                   ó   • \ rS rSrSrg)ÚGeneratorScopeiH  ru   Nr  ru   r"   r   rV  rV  H  r  r"   rV  c                   ó    • \ rS rSrSrSrSrSrg)ÚModuleScopeiL  zScope for a module.TFru   N)rv   rw   rx   ry   rz   Ú_futures_allowedÚ_annotations_future_enabledr{   ru   r"   r   rX  rX  L  s   † ÙØÐØ"'Ór"   rX  c                   ó   • \ rS rSrSrSrg)ÚDoctestScopeiR  zScope for a doctest.ru   NrÀ   ru   r"   r   r\  r\  R  s   † Ür"   r\  c                   ó"   • \ rS rSr\" 5       rSrg)ÚDetectClassScopedMagiciV  ru   N)rv   rw   rx   ry   Údirr%  r{   ru   r"   r   r^  r^  V  s	   † Ù‹EƒEr"   r^  )Ú__file__Ú__builtins__Ú__annotations__ÚWindowsErrorc                 ó²   • [        U S5      (       a  U R                  $ [        U S5      (       a  U R                  $ [        U S5      (       a  U R                  $ g )Nr5   r8   Úrest)Úhasattrr5   r8   re  r   s    r   r”   r”   _  sK   € äˆt�T×ÑØ�w‰wˆÜˆt�V×ÑØ�y‰yÐÜˆt�V×ÑØ�y‰yÐð r"   )ÚtypingÚtyping_extensionsc                 ó–  ^^• UU4S jnU4S jn[        U [        R                  5      =(       a    U" U R                  5      =(       d�    [        U [        R                  5      =(       a`    [        U R
                  [        R                  5      =(       a5    U" U R
                  R                  5      =(       a    T" U R                  5      $ )a@  
Internal helper to determine whether or not something is a member of a
typing module. This is used as part of working out whether we are within a
type annotation context.

Note: you probably don't want to use this function directly. Instead see the
utils below which wrap it (`_is_typing` and `_is_any_typing_member`).
c                 óÊ   >• [        T5       HS  nX;   d  M
  [        X   [        5      =(       a0    X   R                  [        ;   =(       a    T" X   R
                  5      s  $    grš   )Úreversedr   rô   r÷   ÚTYPING_MODULESrø   )r8   r  Úis_name_match_fnÚscope_stacks     €€r   Ú_bare_name_is_attrÚ-_is_typing_helper.<locals>._bare_name_is_attrv  sW   ø€ Ü˜kÖ*ˆEØ�}ä˜u™{¬OÓ<÷ <Ø‘K×&Ñ&¬.Ñ8÷<á$ U¡[×%:Ñ%:Ó;òñ +ð r"   c                 ó”   >• [        T5       H8  nX;   d  M
  [        X   [        5      =(       a    X   R                  [        ;   s  $    grš   )rk  r   rÎ   rÐ   rl  )r8   r  rn  s     €r   Ú_module_scope_is_typingÚ2_is_typing_helper.<locals>._module_scope_is_typing�  sB   ø€ Ü˜kÖ*ˆEØ�}ä˜u™{¬KÓ8÷ ;Ø‘K×(Ñ(¬NÑ:òñ +ð r"   )r   r	   r4   r5   r6   r   r7   )r    rm  rn  ro  rr  s    ``  r   Ú_is_typing_helperrt  l  s‡   ù€ ö	õô �tœSŸX™XÓ&÷ (Ù˜tŸw™wÓ'÷	
ô �tœSŸ]™]Ó+÷ (Ü�t—z‘z¤3§8¡8Ó,÷(á# D§J¡J§M¡MÓ2÷(ñ ˜TŸY™YÓ'ð
r"   c                 ó&   ^• [        U U4S jU5      $ )zµ
Determine whether `node` represents the member of a typing module specified
by `typing_attr`.

This is used as part of working out whether we are within a type annotation
context.
c                 ó   >• U T:H  $ r   ru   )r5  Útyping_attrs    €r   Ú<lambda>Ú_is_typing.<locals>.<lambda>   s
   ø€ ¨Q°+Ò-=r"   ©rt  )r    rw  rn  s    ` r   Ú
_is_typingr{  ˜  s   ø€ ô ˜TÔ#=¸{ÓKÐKr"   c                 ó   • [        U S U5      $ )zš
Determine whether `node` represents any member of a typing module.

This is used as part of working out whether we are within a type annotation
context.
c                 ó   • g©NTru   )r5  s    r   rx  Ú'_is_any_typing_member.<locals>.<lambda>ª  s   € ¨Tr"   rz  )r    rn  s     r   Ú_is_any_typing_memberr€  £  s   € ô ˜T¡>°;Ó?Ð?r"   c                 óÌ   ^• [        U R                  [        R                  [        R                  45      =(       a)    [        U4S jU R                  R                   5       5      $ )Nc              3   ó<   >#   • U H  n[        US T5      v •  M     g7f)ÚoverloadN)r{  )r'   Údecrn  s     €r   r)   Ú%is_typing_overload.<locals>.<genexpr>°  s$   øé € ð 
á2�ô �s˜J¨×4Ð4Ú2ùs   ƒ)r   rœ   r	   ÚFunctionDefÚAsyncFunctionDefÚanyÚdecorator_list)r   rn  s    `r   Úis_typing_overloadrŠ  ­  sI   ø€ ä�5—<‘<¤#§/¡/´3×3GÑ3GÐ!HÓI÷ 	
Üô 
à—|‘|×2Ò2ó
ó 	
ðr"   c                   ó    • \ rS rSrSrSrSrSrg)ÚAnnotationStatei·  r   rC   é   ru   N)rv   rw   rx   ry   ÚNONEÚSTRINGÚBAREr{   ru   r"   r   rŒ  rŒ  ·  s   † Ø€DØ€FØƒDr"   rŒ  c                 óF   ^ • [         R                  " T 5      U 4S j5       nU$ )Nc                 ór   >• U R                  5          T" U /UQ70 UD6sS S S 5        $ ! , (       d  f       g = fr   )Ú_enter_annotation©rl   ÚargsÚkwargsÚfuncs      €r   Úin_annotation_funcÚ)in_annotation.<locals>.in_annotation_func¾  s-   ø€ à×#Ñ#Õ%Ù˜Ð.˜tÒ. vÑ.÷ &×%×%ús   ’(¨
6©Ú	functoolsÚwraps©r—  r˜  s   ` r   Úin_annotationrž  ½  ó&   ø€ Ü‡_‚_�TÓô/ó ð/ð Ðr"   c                 óF   ^ • [         R                  " T 5      U 4S j5       nU$ )Nc                 ó�   >• U R                  [        R                  5         T" U /UQ70 UD6sS S S 5        $ ! , (       d  f       g = fr   )r“  rŒ  r�  r”  s      €r   r˜  Ú0in_string_annotation.<locals>.in_annotation_funcÆ  s5   ø€ à×#Ñ#¤O×$:Ñ$:Õ;Ù˜Ð.˜tÒ. vÑ.÷ <×;×;ús	   ¡7·
Arš  r�  s   ` r   Úin_string_annotationr£  Å  rŸ  r"   c                   ó   • \ rS rSrSr\R                  \\R                  \	\R                  \\R                  \\R                  \\R                  \\R                   \\R"                  \\R$                  \0	rSrSr\R.                  r\" \5      R7                  \5      r\R>                  RA                  S5      r!\!(       a   \RE                  \!RG                  S5      5        C!SSS\R>                  ;   S	4S
 jr$S r%S r&S r'\(S 5       r)\)RT                  S 5       r)\(S 5       r+\+RT                  S 5       r+\(S 5       r,\-R\                  S 5       r/S r0S r1S r2S r3S r4S r5S r6S r7S r8S r9S r:S r;S  r<S! r=\-R\                  \R|                  4S" j5       r?\(S# 5       r@SRS$ jrAS% rBS& rCS' rDS( rE\FRŽ                  " 5       R�                  rIS) rJ\KS* 5       rLS+ rM\NS, 5       rOS- rP\A=rQ=rR=rS=rT=rU=rV=rW=rXrY\PrZ\A=r[=r\=r]=r^=r_=r`raS. rbS/ rcS0 rdS1 reS2 rfS3 rg\A=rh=rirj\P=rk=rl=rm=rn=rorp\P=rq=rr=rs=rt=ru=rv=rw=rx=ry=rz=r{=r|=r}=r~=r=r€=r�=r‚=rƒ=r„=r…=r†=r‡=rˆ=r‰=rŠ=r‹=rŒr�S4 rŽ\A=r�=r�r‘S5r’S6 r“S7 r”S8 r•\•r–S9 r—S: r˜\˜r™S; rš\š=r›=rœr�S< ržS= rŸ\Ÿr S> r¡S? r¢\¢=r£r¤S@ r¥\¥r¦SA r§SB r¨SC r©SD rªSE r«SF r¬\¬r­SG r®SH r¯SI r°\°r±SJ r²SK r³SL r´\A=rµ=r¶=r·=r¸r¹\A=rºr»SM r¼\¼=r½=r¾r¿\-R\                  SN 5       rÀSO rÁ\<=rÂrÃSP rÄSQrÅg)SÚCheckeriÍ  z2I check the cleanliness and sanity of Python code.r   NÚPYFLAKES_BUILTINSÚ,z(none)ÚPYFLAKES_DOCTESTru   c                 ó²  • 0 U l         [        R                  " 5       U l        / U l        / U l        X l        U(       a   U R                  R                  U5      U l        X@l	        S/U l
        Xl        / U l         [        R                  [        U5         nU R%                  U5         U R                   H  nU R'                  S [)        U5      5        M      U R+                  U5        U R-                  5         S S S 5        U R/                  5         U(       a  [0        R2                  " SSS9  g g ! [          a    [#        SU-  5      ef = f! , (       d  f       NX= f)Nru   z$No scope implemented for the node %rz1`file_tokens` will be removed in a future versionr�  )Ú
stacklevel)Ú_nodeHandlersÚcollectionsÚdequeÚ	_deferredÚ
deadScopesr   ÚfilenameÚbuiltInsÚunionÚwithDoctestÚexceptHandlersÚrootÚ
scopeStackr¥  Ú_ast_node_scoper   ÚKeyErrorÚRuntimeErrorÚin_scopeÚ
addBindingrº   ÚhandleChildrenÚ_run_deferredÚcheckDeadScopesÚwarningsÚwarn)rl   Útreer°  Úbuiltinsr³  Úfile_tokensÚscope_tpÚbuiltins           r   rž   ÚChecker.__init__æ  s  € àˆÔÜ$×*Ò*Ó,ˆŒØˆŒØˆŒØ ŒÞØ ŸM™M×/Ñ/°Ó9ˆDŒMØ&ÔØ!˜dˆÔØŒ	àˆŒð	NÜ×.Ñ.¬t°D«zÑ:ˆHð �]‰]˜8Õ$ØŸ=œ=�Ø—‘ ¤g¨gÓ&6Ö7ñ )à×Ñ Ô%Ø×ÑÔ ÷	 %ð 	×ÑÔæÜ�MŠMØCØóð øô ó 	NÜÐEÈÑLÓMÐMð	Nú÷ %Õ$ús   Á9D, Â&AEÄ,EÅ
Ec                 ól   • U R                   R                  XR                  SS U R                  45        g)aK  
Schedule a function handler to be called just before completion.

This is used for handling function bodies, which must be deferred
because code later in the file might modify the global scope. When
`callable` is called, the scope at the time this is called will be
restored, however it will contain any new bindings added to it.
N)r®  r&  r¶  Úoffset)rl   Úcallables     r   ÚdeferFunctionÚChecker.deferFunction  s(   € ð 	�‰×Ñ˜x¯©¹Ð);¸T¿[¹[ÐIÕJr"   c                 óþ   • U R                   U R                  4nU R                  (       aE  U R                  R                  5       u  p#nX4sU l         U l        U" 5         U R                  (       a  ME  Uu  U l         U l        g r   )r¶  rÈ  r®  Úpopleft)rl   ÚorigÚhandlerr  rÈ  s        r   r½  ÚChecker._run_deferred  s`   € Ø—‘ §¡Ð-ˆà�n�nØ%)§^¡^×%;Ñ%;Ó%=Ñ"ˆG˜FØ+0Ð(ˆDŒO˜Tœ[ÙŒIð �n�n‰nð
 (,Ñ$ˆŒ˜�r"   c                 óz   • [        U R                  5      S:¬  =(       a    [        U R                  S   [        5      $ )Nr�  rC   )rD   r¶  r   r\  r¢   s    r   Ú_in_doctestÚChecker._in_doctest  s0   € Ü�D—O‘OÓ$¨Ñ)÷ =Ü˜4Ÿ?™?¨1Ñ-¬|Ó<ð	>r"   c                 ór   • [        S U R                   5       5      (       d  gU R                  R                  $ )Nc              3   ó@   #   • U H  n[        U[        5      v •  M     g 7fr   )r   rX  )r'   r  s     r   r)   Ú)Checker.futuresAllowed.<locals>.<genexpr>"  s!   é € ð 1Ù /�uô ˜e¤[×1Ð1Ú /ùs   ‚F)r-   r¶  r  rY  r¢   s    r   ÚfuturesAllowedÚChecker.futuresAllowed   s3   € äñ 1Ø $§¢ó1÷ 1ñ 1àà�z‰z×*Ñ*Ð*r"   c                 ót   • USL d   e[        U R                  [        5      (       a  SU R                  l        g g rš   )r   r  rX  rY  ©rl   r   s     r   r×  rØ  (  s0   € à˜Š~Ðˆ~Ü�d—j‘j¤+×.Ñ.Ø*/ˆD�J‰JÕ'ð /r"   c                 ód   • U R                   S   n[        U[        5      (       d  gUR                  $ )Nr   F)r¶  r   rX  rZ  )rl   r  s     r   ÚannotationsFutureEnabledÚ Checker.annotationsFutureEnabled.  s,   € à—‘ Ñ"ˆÜ˜%¤×-Ñ-ØØ×0Ñ0Ð0r"   c                 óv   • USL d   e[        U R                  [        5      (       d   eSU R                  l        g r~  )r   r  rX  rZ  rÚ  s     r   rÜ  rÝ  5  s1   € à˜Š}Ðˆ}Ü˜$Ÿ*™*¤k×2Ñ2Ð2Ð2Ø15ˆ�
‰
Õ.r"   c                 ó    • U R                   S   $ )NrÙ   )r¶  r¢   s    r   r  ÚChecker.scope;  s   € à�‰˜rÑ"Ð"r"   c              #   ó,  #   • U R                   R                  U" 5       5         S v •  U R                  R                  U R                   R                  5       5        g ! U R                  R                  U R                   R                  5       5        f = f7fr   )r¶  r&  r¯  Úpop)rl   Úclss     r   rº  ÚChecker.in_scope?  s_   é € à�‰×Ñ™s›uÔ%ð	:Ûà�O‰O×"Ñ" 4§?¡?×#6Ñ#6Ó#8Õ9øˆD�O‰O×"Ñ" 4§?¡?×#6Ñ#6Ó#8Õ9üs   ‚!B¤A ¨4BÁ5BÂBc           	      ó  • U R                    GHo  n[        U[        5      (       a  M  [        U[        5      (       aˆ  UR	                  5        H0  u  p#U R                  [        R                  UR                  U5        M2     UR                  5        H0  u  p#U R                  [        R                  UR                  U5        M2     UR                  S5      nU(       a  [        U[        5      (       d  SnU(       a8  [        UR                  5      nUR                   Vs/ sH  nX!;  d  M
  UPM     nnO/ =pVU(       Ga(  UR                  (       dd  [         R"                  R%                  U R&                  5      S:w  a7  U H1  nU R                  [        R(                  US   R                  U5        M3     UR                  (       a¢  / nUR+                  5        H;  n[        U[,        5      (       d  M  XCl        UR1                  UR2                  5        M=     SR5                  [7        U5      5      nU H1  nU R                  [        R8                  US   R                  X'5        M3     UR+                  5        GH  n[        U[:        5      (       d  M  UR.                  =(       d    UR<                  U;   n	U	(       d5  [        R>                  n
U R                  X¨R                  [A        U5      5        URB                   Hx  n[        U RE                  U5      [F        5      (       a  [        RH                  n
OU	(       a  MA  [        RJ                  n
U R                  X«UR<                  UR                  5        Mz     GM     GMr     gs  snf )zh
Look at scopes which have been fully examined and report names in them
which were imported but unused.
r"  Nú__init__.pyú, )&r¯  r   r=  r?  rN  Úreportr   ÚUnusedVariablerœ   rQ  ÚUnusedAnnotationr}   r   Úsetr%  r;  ÚosÚpathÚbasenamer°  ÚUndefinedExportÚvaluesr  r�   r&  rÐ   Újoinrk   ÚImportStarUsagerÎ   r8   ÚUnusedImportr$  rÑ   Ú	getParentÚ	FOR_TYPESÚImportShadowedByLoopVarÚRedefinedWhileUnused)rl   r  r8   rM  Úall_bindingÚ	all_namesÚ	undefinedÚ	from_listr   r�   Úmessgr    s               r   r¾  ÚChecker.checkDeadScopesG  s–  € ð
 —_•_ˆEä˜%¤×,Ñ,Ùä˜%¤×/Ñ/Ø%*×%=Ñ%=Ö%?‘M�DØ—K‘K¤× 7Ñ 7¸¿¹ÈÖNñ &@à%*×%=Ñ%=Ö%?‘M�DØ—K‘K¤× 9Ñ 9¸7¿>¹>È4ÖPñ &@ð  Ÿ)™) IÓ.ˆKÞ¤:¨k¼=×#IÑ#IØ"�æÜ × 1Ñ 1Ó2�	à%0×%6Ò%6óÙ%6˜TØÑ(÷ Ñ%6ð ð �	ð
 )+Ð*�	çØ×*×*Ü—7‘7×#Ñ# D§M¡MÓ2°mÓCã )˜ØŸ™¤H×$<Ñ$<Ø$)¨)Ñ$4×$;Ñ$;¸TöCñ !*ð
 ×&×&Ø "�IØ#(§<¡<¦>˜Ü% g¬×?Ó?Ø+6œLØ%×,Ñ,¨W×-=Ñ-=Ö>ñ $2ð
 !%§	¡	¬&°Ó*;Ó <�IÛ )˜ØŸ™¤H×$<Ñ$<Ø$)¨)Ñ$4×$;Ñ$;¸TöNñ !*ð
 Ÿ™Ÿ�Ü˜e¤[×1Ó1Ø Ÿ:™:×@¨¯©°yÑ)@�DÞÜ (× 5Ñ 5˜ØŸ™ E¯<©<¼¸U»ÔDØ %§¤˜Ü% d§n¡n°TÓ&:¼I×FÑFÜ$,×$DÑ$D™EÞ!Ù$ä$,×$AÑ$A˜EØŸ™ E°·±¸U¿\¹\ÖJô !0ô (ò] %ùò"s   ÄNÄ*Nc                 ób   • U R                   R                  U" U R                  /UQ70 UD65        g r   )r   r&  r°  )rl   ÚmessageClassr•  r–  s       r   rè  ÚChecker.report‰  s'   € Ø�‰×Ñ™\¨$¯-©-ÐI¸$ÒIÀ&ÑIÕJr"   c                 óh   •  UR                   n[        US5      (       d  [        US5      (       d  U$ M2  )Nr.   Úctx)Ú_pyflakes_parentrf  ©rl   r    s     r   rô  ÚChecker.getParentŒ  s3   € àØ×(Ñ(ˆDÜ˜4 ×(Ñ(´¸¸u×1EÑ1EØ�ñ r"   c                 óˆ  • X1U4;   d"  [        US5      (       a  [        US5      (       d  g XL a  U$ UR                  UR                  :”  a  U R                  UR                  X#5      $ UR                  UR                  :  a  U R                  XR                  U5      $ U R                  UR                  UR                  U5      $ ©Nr  )rf  Ú_pyflakes_depthÚgetCommonAncestorr  )rl   ÚlnodeÚrnodeÚstops       r   r	  ÚChecker.getCommonAncestor“  s¹   € à ˜Ó&ä˜EÐ#5×6Ñ6Ü˜EÐ#5×6Ñ6ð ØŠ>ØˆLà×!Ñ! E×$9Ñ$9Ó9Ø×)Ñ)¨%×*@Ñ*@À%ÓNÐNØ×!Ñ! E×$9Ñ$9Ó9Ø×)Ñ)¨%×1GÑ1GÈÓNÐNØ×%Ñ%Ø×"Ñ"Ø×"Ñ"Øó
ð 	
r"   c                 óH   • U H  nU R                  XU5      (       d  M    g   g)NTF)r	  )rl   r    Ú	ancestorsr  Úas        r   ÚdescendantOfÚChecker.descendantOf©  s'   € ÛˆAØ×%Ñ% d¨t×4Ó4Ùñ ð r"   c                 óp   • Un X0R                   L a  g U R                  U5      n[        X25      (       a  U$ M4  r   )rµ  rô  r   )rl   r    Úancestor_typeÚparents       r   Ú_getAncestorÚChecker._getAncestor¯  s:   € ØˆØØŸ™Ò"ØØ—^‘^ FÓ+ˆFÜ˜&×0Ñ0Ø�ñ r"   c                 óp   • U R                  U[        [        R                  R	                  5       5      5      $ r   )r  r`   r¥  r·  Úkeysr  s     r   ÚgetScopeNodeÚChecker.getScopeNode¸  s)   € Ø× Ñ  ¤u¬W×-DÑ-D×-IÑ-IÓ-KÓ'LÓMÐMr"   c                 óÊ   • U R                  XU R                  5      n[        U5      nU(       a5  U H/  nU R                  XU5      U R                  X%U5      -  (       d  M/    g   g)zATrue, if lnode and rnode are located on different forks of IF/TRYTF)r	  rµ  r   r  )rl   r
  r  ÚancestorÚpartsr~   s         r   ÚdifferentForksÚChecker.differentForks»  sa   € à×)Ñ)¨%¸¿	¹	ÓBˆÜ Ó)ˆÞÛ�Ø×$Ñ$ U°8Ó<Ø×$Ñ$ U°8Ó<÷=ñ =áñ ð r"   c                 óì  • U R                   SSS2    H  nUR                  U;   d  M    O   WR                  UR                  5      nU(       Ga¢  [        U[        5      (       GdŒ  U R                  XR                  5      (       Gdk  U R                  UR                  5      n[        U[        5      (       aK  [        U[        5      (       a6  U R                  [        R                  XR                  UR                  5        OðX0R                  L aœ  UR                  (       dŠ  UR                  U5      (       at  UR                  S:w  d  [        U[        5      (       aO  [!        X@R                   5      (       d5  U R                  [        R"                  XR                  UR                  5        OF[        U[        5      (       a1  UR                  U5      (       a  UR$                  R'                  U5        UR                  U R                  ;   a(  U R                  UR                     R                  Ul        UR                  U R                  ;  d  [        U[(        5      (       d“  Sn[        U[*        5      (       a`  [        U R                   U   [,        5      (       a>  US-  n[        U[*        5      (       a$  [        U R                   U   [,        5      (       a  M>  X R                   U   UR                  '   gg)zˆ
Called when a binding is altered.

- `node` is the statement responsible for the change
- `value` is the new value, a Binding instance
NrÙ   rJ  rC   )r¶  r8   r}   r   rº   r  rœ   rô  rÎ   rõ  rè  r   rö  r  r�   r®   rŠ  r÷  rÑ   r&  r  r  rV  )rl   r    r   r  ÚexistingÚparent_stmtÚcur_scope_poss          r   r»  ÚChecker.addBindingÆ  s
  € ð —_‘_¡T r TÔ*ˆEØ�z‰z˜UÕ"Ùñ +ð —9‘9˜UŸZ™ZÓ(ˆçœZ¨´'×:Ò:Ø×'Ñ'¨¯o©o×>Ò>àŸ.™.¨¯©Ó6ˆKÜ˜(¤K×0Ñ0´ZÀÌY×5WÑ5WØ—‘œH×<Ñ<Ø §*¡*¨h¯o©oõ?ð Ÿ*™*Ò$à%Ÿ]Ÿ]¨u¯©¸x×/HÑ/HØŸ™ sÓ*¬j¸Ä;×.OÑ.OÜ.¨x¿¹×IÑIà—K‘K¤× =Ñ =Ø $§j¡j°(·/±/ôCøô ˜H¤k×2Ñ2°u·±Àx×7PÑ7PØ×"Ñ"×)Ñ)¨$Ô/à�:‰:˜Ÿ™Ó#àŸ™ E§J¡JÑ/×4Ñ4ˆEŒJð �:‰:˜TŸZ™ZÓ'¬z¸%Ä×/LÑ/LØˆMô ˜5Ô"5×6Ñ6Ü˜4Ÿ?™?¨=Ñ9¼>×JÑJà Ñ"�ô ˜5Ô"5×6Ñ6Ü˜4Ÿ?™?¨=Ñ9¼>×JÓJð :?�O‰O˜MÑ*¨5¯:©:Ò6ð 0Mr"   c                 óœ   • [         R                  R                  S5      (       a  [        S[	        U5       35      eU R                  U5        g )NÚPYFLAKES_ERROR_UNKNOWNzUnexpected type: )rì  Úenvironr}   ÚNotImplementedErrorr   r¼  r  s     r   Ú_unknown_handlerÚChecker._unknown_handler÷  s=   € ô �:‰:�>‰>Ð2×3Ñ3Ü%Ð(9¼$¸t»*¸Ð&FÓGÐGà×Ñ Õ%r"   c                 óÄ   •  U R                   U   $ ! [         a    UR                  R                  5       n Of = f[	        XU R
                  5      =U R                   U'   nU$ r   )r«  r¸  rv   Úupperr„   r*  )rl   rm   ÚnodeTyperÏ  s       r   ÚgetNodeHandlerÚChecker.getNodeHandler  si   € ð	3Ø×%Ñ% jÑ1Ð1øÜó 	3Ø!×*Ñ*×0Ñ0Ó2ŠHð	3úä3:Ø˜D×1Ñ1ó4
ð 	
ˆ×Ñ˜:Ñ&¨ð ˆs   ‚ ‘$8·8c                 ót  • [        U5      nU(       d  g S nS nU R                  SS S2    GH]  n[        U[        5      (       a  US:X  a    g USL a  M(  UR	                  US 5      n[        U[
        5      (       a(  U R                  (       d  U R                  U4Xc   l        Mw  US:X  a}  [        U[        5      (       ah  [        U[        R                  5      (       aI  [        UR                  [        R                  5      (       a   U R                  [        R                   U5         U R                  U4Xc   l        Xc   n[        U["        5      (       a5  UR%                  5       (       a    U R                  U4XhR&                     l          g    U(       a³  / n	U R                  SS S2    H_  nUR1                  5        HH  n[        U[2        5      (       d  M  U R                  U4Ul        U	R5                  UR&                  5        MJ     Ma     SR7                  [9        U	5      5      n	U R                  [        R:                  XU	5        g US:X  a.  [<        R>                  RA                  U RB                  5      S:X  a  g U[D        RF                  ;   a   [        U R                  [        5      (       a  g SU RH                  S   ;  a!  U R                  [        RJ                  X5        g g ! [(         a     GNhf = f! [(         a     Of = fU=(       d    UR*                  nUSLd  GM÷  [        U[,        [.        45      nGM  )	NrÙ   rƒ   FÚprintrç  Ú__path__ræ  Ú	NameError)&r”   r¶  r   r=  r}   r  Ú_in_postponed_annotationr  r�   rº   r	   r,  ÚopÚRShiftrè  r   ÚInvalidPrintSyntaxrÎ   rÛ   rÐ   r¸  r;  rT  rV  rð  r  r&  rñ  rk   rò  rì  rí  rî  r°  r^  r%  r´  ÚUndefinedName)
rl   r    r  r8   Úcan_access_class_varsr;  r  rM  r   rû  s
             r   ÚhandleNodeLoadÚChecker.handleNodeLoad  sŸ  € Ü˜4Ó ˆÞØð !%ÐØˆð —_‘_ R V¨ VÕ,ˆEÜ˜%¤×,Ñ,Ø˜;Ó&ÙØ*¨eÒ3ñ à—i‘i  dÓ+ˆGÜ˜'¤:×.Ñ.°t×7T×7TØ$(§J¡J°Ð#5�‘Ô Ùà�w‹¤:¨g´w×#?Ñ#?Ü˜v¤s§y¡y×1Ñ1Ü" 6§9¡9¬c¯j©j×9Ñ9Ø—K‘K¤× ;Ñ ;¸TÔBðØ$(§J¡J°Ð#5�‘Ô ð
 ‘K�Ü˜a¤×-Ñ-°!·,±,·.±.ðØ26·*±*¸dÐ1C˜Ÿj™jÑ)Ô.ñ ñG -öX ØˆIàŸ™¨¨¨R¨Ô0�Ø$Ÿ|™|ž~�GÜ! '¬?×;Ó;à(,¯
©
°DÐ'9˜œØ!×(Ñ(¨×)9Ñ)9Ö:ó	  .ñ 1ð Ÿ	™	¤&¨Ó"3Ó4ˆIØ�K‰Kœ×0Ñ0°$¸iÔHØà�:Ó¤"§'¡'×"2Ñ"2°4·=±=Ó"AÀ]Ó"RààÔ)×/Ñ/Ó/´J¸t¿z¹zÌ:×4VÑ4VØð ˜d×1Ñ1°"Ñ5Ó5Ø�K‰Kœ×.Ñ.°Õ;ð 6øôK $ó Úðûäó Ùðúð
 *×@¨U×-@Ñ-@ˆMà$¨EÕ1Ü(2ØœI¤~Ð6ó)Ó%s1   Ä%AK4Å)K#Ë#
K1Ë-K4Ë0K1Ë1K4Ë4
LÌ Lc                 óò  • [        U5      nU(       d  g [        U R                  [        5      (       aÐ  X R                  ;  aÁ  U R                  S S  H®  n[        U[        [
        45      (       d  M   X#;   =(       a    X2   R                  nU(       d  MB  US   U R                  L d  MV  X R                  R                  ;  d  Mq  U R                  [        R                  X2   R                  S   X#U   R                  5          O   U R                  U5      n[        U[        R                  5      (       a  UR                  c  [!        X!5      nGO[        U["        [        R$                  45      (       d%  XQR&                  :w  a"  U R)                  U5      (       d  [+        X!5      nOÄUS:X  aˆ  [        U R                  [
        5      (       ai  [        UR&                  [        R,                  [        R.                  [        R                  45      (       a!  [1        X!R&                  U R                  5      nO6[        U[        R2                  5      (       a  [5        X!5      nO[7        X!5      nU R9                  X5        g )NrÙ   r   rC   r"  )r”   r   r  r?  r¶  rX  r�   rF  rè  r   ÚUndefinedLocalrœ   rô  r	   Ú	AnnAssignr   r  rõ  Úcomprehensionr  ÚisLiteralTupleUnpackingr—   ÚAssignr*  r   Ú	NamedExprr  r´   r»  )rl   r    r8   r  r�   r#  rM  s          r   ÚhandleNodeStoreÚChecker.handleNodeStoree  sÆ  € Ü˜4Ó ˆÞØä�d—j‘j¤-×0Ñ0°TÇÁÓ5KàŸ™¨¨"Ó-�Ü! %¬-¼Ð)E×FÑFÙð ‘}×9¨©×)9Ñ)9�ß�4˜D ™G t§z¡zÔ1°dÇ*Á*×BTÑBTÕ6Tà—K‘K¤× 7Ñ 7Ø %¡× 0Ñ 0°Ñ 3°TÀ¹;×;MÑ;MôOáñ .ð —n‘n TÓ*ˆÜ�k¤3§=¡=×1Ñ1°k×6GÑ6GÑ6OÜ  Ó,ŠGÜ˜¤i´×1BÑ1BÐ%C×DÑDØ×4Ñ4Ó4Ø×0Ñ0°×=Ñ=Ü˜dÓ)‰Gà˜	Ó!Ü˜4Ÿ:™:¤{×3Ñ3ÜØ×)Ñ)Ü—Z‘Z¤§¡´·±Ð>÷ñ ô
 $ D×*?Ñ*?ÀÇÁÓL‰GÜ˜¤S§]¡]×3Ñ3Ü)¨$Ó5‰Gä  Ó,ˆGØ�‰˜Õ&r"   c                 óŒ  ^• U4S jn[        T5      nU(       d  g U" 5       (       a  g [        U R                  [        5      (       a?  X0R                  R                  ;   a&  U R                  R                  R                  U5        g  U R                  U	 g ! [         a$    U R                  [        R                  TU5         g f = f)Nc                  óØ   >• [        TSS5      n U (       aU  [        U [        R                  [        R                  [        R
                  45      (       a  g[        U SS5      n U (       a  MU  g)z6
Return `True` if node is part of a conditional body.
r  NTF)r„   r   r	   r
   ÚWhileÚIfExp)Úcurrentr    s    €r   Úon_conditional_branchÚ7Checker.handleNodeDelete.<locals>.on_conditional_branch‘  sU   ø€ ô ˜dÐ$6¸Ó=ˆGÞÜ˜g¬¯©´·	±	¼3¿9¹9Ð'E×FÑFØÜ! 'Ð+=¸tÓD�÷ �'ð r"   )
r”   r   r  r?  rF  Úremover¸  rè  r   r9  )rl   r    rK  r8   s    `  r   ÚhandleNodeDeleteÚChecker.handleNodeDelete�  s™   ø€ õ		ô ˜4Ó ˆÞØá ×"Ñ"ð ä�d—j‘j¤-×0Ñ0°T¿Z¹Z×=OÑ=OÓ5OØ�J‰J×Ñ×%Ñ% dÕ+ð@Ø—J‘J˜tÑ$øÜó @Ø—‘œH×2Ñ2°D¸$Ö?ð@ús   ÂB Â+CÃCc              #   ó^   #   • U R                   Uso l          S v •  X l         g ! X l         f = f7fr   )Ú_in_annotation)rl   Úann_typerÎ  s      r   r“  ÚChecker._enter_annotation­  s,   é € à$(×$7Ñ$7¸Ð!ˆÔ!ð	'Ûà"&Õø $Õüs   ‚-—" ›-¢*ª-c                 ób   • U R                   [        R                  :H  =(       d    U R                  $ r   )rQ  rŒ  r�  rÜ  r¢   s    r   r5  Ú Checker._in_postponed_annotationµ  s+   € ð ×Ñ¤?×#9Ñ#9Ñ9÷ *Ø×)Ñ)ð	
r"   c                 óF   • [        XS9 H  nU R                  X15        M     g )N©r‡   )rŠ   Ú
handleNode)rl   rÁ  r‡   r    s       r   r¼  ÚChecker.handleChildren¼  s   € Ü$ TÔ5ˆDØ�O‰O˜DÖ'ò 6r"   c                 ó¬   • [        U[        R                  5      (       a5  UR                  UR                  /-    H  n[        US5      (       a  M    g   gg )Nr.   FT)r   r	   rB  Útargetsr   rf  )rl   r    Úchilds      r   rA  ÚChecker.isLiteralTupleUnpackingÀ  sF   € Ü�dœCŸJ™J×'Ñ'ØŸ™¨¯©¨Ô4�Ü˜u f×-Ó-Ù ñ 5ð ð	 (r"   c                 óâ   • [        U[        R                  5      =(       aO    [        UR                  [        R                  5      =(       a$    [        UR                  R                  [
        5      $ )ze
Determine if the given node is a docstring, as long as it is at the
correct place in the node tree.
)r   r	   ÚExprr   r   r$  r  s     r   ÚisDocstringÚChecker.isDocstringÇ  sG   € ô �tœSŸX™XÓ&÷ .Ü�t—z‘z¤3§<¡<Ó0÷.ä�t—z‘z×'Ñ'¬Ó-ð	
r"   c                 ó0  • [        U[        R                  5      (       aw  [        UR                  [        R                  5      (       aN  [        UR                  R                  [
        5      (       a%  UR                  R                  UR                  S-
  4$ g)NrC   )NN)r   r	   r_  r   r   r$  r§   r  s     r   ÚgetDocstringÚChecker.getDocstringÒ  s_   € ä˜4¤§¡×*Ñ*Ü˜4Ÿ:™:¤s§|¡|×4Ñ4Ü˜4Ÿ:™:×+Ñ+¬S×1Ñ1à—:‘:×#Ñ# T§[¡[°1¡_Ð4Ð4àr"   c                 óŠ  • Uc  g U R                   (       aR  [        USS 5      bD  U=R                  U R                   S   -  sl        U=R                  U R                   S   -  sl        U R                  (       aL  U R
                  S:X  a<  [        U[        R                  5      (       d  U R                  U5      (       d  SU l        U =R
                  S-  sl        U R
                  Ul
        X!l         U R                  UR                  5      nU" U5        U =R
                  S-  sl        g ! U =R
                  S-  sl        f = f)Nr§   r   rC   F)rÈ  r„   r§   Ú
col_offsetr×  Ú	nodeDepthr   r	   Ú
ImportFromr`  r  r  r/  rƒ   )rl   r    r  rÏ  s       r   rX  ÚChecker.handleNodeÜ  sç   € Ø‰<ØØ�;�;œ7 4¨°4Ó8ÑDØ�KŠK˜4Ÿ;™; q™>Ñ)�KØ�OŠO˜tŸ{™{¨1™~Ñ-�Oà×#×#Ø—‘ !Ó#Ü˜t¤S§^¡^×4Ñ4Ø×$Ñ$ T×*Ñ*à"'ˆDÔØ�Š˜!Ñ�Ø#Ÿ~™~ˆÔØ &Ôð	 Ø×)Ñ)¨$¯.©.Ó9ˆGÙ�DŒMà�NŠN˜aÑŽNøˆD�NŠN˜aÑŽNús   Ã2#D+ Ä+Ec                 ó¼  •  U R                  UR                  S   5      u  p#U=(       a    U R                  U5      nU(       d  g U R
                  nU R
                  S   /U l        U R                  =(       d    SnU R                  [        5         SU R
                  S   ;  a  U R                  S [        S5      5        U Hk  n [        R                  " UR                  S5      nUS   U-   UR                  -   US   UR                  -   S-   4U l        U R!                  U5        X`l        Mm     S S S 5        XPl        g ! [        [        4 a     g f = f! ["         al  n	X7R                  -   U	R                  -   UR                  S-   U	R                  =(       d    S-   4n
U R%                  [&        R(                  X5         S n	A	GM  S n	A	ff = f! , (       d  f       N¤= f)Nr   )r   r   rJ  z	<doctest>rC   é   )rc  r   Ú_getDoctestExamplesrF   rN   r¶  rÈ  rº  r\  r»  rº   r	   Úparserœ   r§   Úindentr¼  ÚSyntaxErrorrè  r   ÚDoctestSyntaxError)rl   r    Ú	docstringÚnode_linenoÚexamplesÚsaved_stackÚnode_offsetÚexamplerÁ  ÚeÚpositions              r   ÚhandleDoctestsÚChecker.handleDoctestsô  s”  € ð	Ø'+×'8Ñ'8¸¿¹À1¹Ó'FÑ$ˆYØ ×H T×%=Ñ%=¸iÓ%HˆHö
 Øð —o‘oˆØŸ?™?¨1Ñ-Ð.ˆŒØ—k‘k×+ VˆØ�]‰]œ<Õ(Ø˜$Ÿ/™/¨!Ñ,Ó,Ø—‘ ¤g¨c£lÔ3Û#�ð
.ÜŸ9š9 W§^¡^°[ÓA�Dð $/¨q¡>°KÑ#?À'Ç.Á.Ñ#PØ#.¨q¡>°G·N±NÑ#BÀQÑ#Fð#H�D”Kà×'Ñ'¨Ô-Ø"-–Kñ $÷ )ð &�øô5 œJÐ'ó 	ñ ð	ûô" #ó MØ +¯n©nÑ <¸q¿x¹xÑ GØ '§¡°Ñ 2°a·h±h·mÀ!Ñ Dð F�Hà—K‘K¤× ;Ñ ;¸T×LÓLûðMú÷ )Õ(úsI   ‚:D> Â4GÃ!EÃ%A
GÄ>EÅEÅ
G
ÅA GÆ>GÇG
Ç
GÇ
Gc                 ó  •  [         R                  " U5      nUR                  n[        U5      S:w  d"  [        US   [         R                  5      (       d  U R                  XRU5        g UR                  S   R                  n[         R                  " U5       H3  n	SU	R                  ;   d  M  SU	R                  ;   d  M'  X9l        XIl        M5     U R                  X‚5        g ! [         a    U R                  XRU5         g f = f)NrC   r   r§   rf  )r	   rm  ro  rè  r   rD   r   r_  r   ÚwalkÚ_attributesr§   rf  rX  )
rl   r]   r    Ú
ref_linenoÚref_col_offsetÚerrrÁ  r   Úparsed_annotationÚ
descendants
             r   ÚhandleStringAnnotationÚChecker.handleStringAnnotation  sÐ   € ð	Ü—9’9˜Q“<ˆDð
 �y‰yˆÜˆt‹9˜‹>¤¨D°©G´S·X±X×!>Ñ!>Ø�K‰K˜ 1Ô%Øà ŸI™I a™L×.Ñ.ÐÜŸ(š(Ð#4Ö5ˆJà 
× 6Ñ 6Õ6Ø  J×$:Ñ$:Õ:à$.Ô!Ø(6Ö%ñ 6ð 	�‰Ð)Õ0øô% ó 	Ø�K‰K˜ 1Ô%Ùð	ús   ‚C  Ã C?Ã>C?c                 ón   ^ ^^^• [        [        R                  5      mT R                  UUUU 4S j5        g )Nc                  ó   >• T" TT T5      $ r   ru   )Ú
annotationÚfnr  rl   s   €€€€r   rx  Ú;Checker.handle_annotation_always_deferred.<locals>.<lambda>.  s   ø€ ¡2 d¨J¸Ô#?r"   )rž  r¥  rX  rÊ  )rl   r‡  r  rˆ  s   ```@r   Ú!handle_annotation_always_deferredÚ)Checker.handle_annotation_always_deferred,  s"   û€ Üœ7×-Ñ-Ó.ˆØ×Ñ×?Õ@r"   c           
      óª  • [        U[        R                  5      (       a€  [        UR                  [        5      (       aa  U R                  [        R                  " U R                  UR                  UUR                  UR                  [        R                  5      5        g U R                  (       a  U R                  X5        g U R                  X5        g r   )r   r	   r   r   r$  rÊ  r›  Úpartialrƒ  r§   rf  r   ÚForwardAnnotationSyntaxErrorrÜ  rŠ  rX  )rl   r‡  r    s      r   ÚhandleAnnotationÚChecker.handleAnnotation0  sš   € ô ˜:¤s§|¡|×4Ñ4Ü˜:×+Ñ+¬S×1Ñ1ð ×Ñœy×0Ò0Ø×+Ñ+Ø× Ñ ØØ×!Ñ!Ø×%Ñ%Ü×5Ñ5ó õ ð ×*×*Ø×2Ñ2°:ÕDà�O‰O˜JÕ-r"   c                 ó   • g r   ru   r  s     r   ÚignoreÚChecker.ignoreD  s   € Ør"   c                 ó$  • [        UR                  S5      (       a:  U R                  [        R                  5         U R                  U5        S S S 5        g [        UR                  S5      (       Ga‹  U R                  UR                  U5        [        UR                  [        R                  5      (       a  UR                  nOu[        UR                  [        R                  5      (       aJ  [        UR                  R                  [        R                  5      (       a  UR                  R                  nOS nUb  [        UR                  5      S:  a  U R                  UR                  U5        OnU R                  UR                  S   U5        U R                  [        R                  5         UR                  SS   H  nU R                  X15        M     S S S 5        U R                  UR                  U5        g [        UR                  U R                   5      (       a+  U R                  5          U R                  U5        S S S 5        g U R                  U5        g ! , (       d  f       g = f! , (       d  f       Nž= f! , (       d  f       g = f)NÚLiteralÚ	Annotatedr�  r   rC   )r9   r   r“  rŒ  rŽ  r¼  rX  r   Úslicer	   r,   ÚIndexrD   r.   r  r€  r¶  )rl   r    Úslice_tupleÚargs       r   Ú	SUBSCRIPTÚChecker.SUBSCRIPTQ  sÂ  € Ü˜DŸJ™J¨	×2Ñ2Ø×'Ñ'¬×(<Ñ(<Õ=Ø×#Ñ# DÔ)÷ >Ð=ä˜dŸj™j¨+×6Ò6Ø�O‰O˜DŸJ™J¨Ô-ô ˜$Ÿ*™*¤c§i¡i×0Ñ0Ø"Ÿj™j‘ô ˜tŸz™z¬3¯9©9×5Ñ5Ü˜tŸz™z×/Ñ/´·±×;Ñ;à"Ÿj™j×.Ñ.‘à"�ð Ñ"¤c¨+×*:Ñ*:Ó&;¸aÓ&?Ø—‘ §
¡
¨DÕ1ð —‘ × 0Ñ 0°Ñ 3°TÔ:à×+Ñ+¬O×,@Ñ,@ÕAØ*×/Ñ/°°Ó3˜ØŸ™¨Ö2ñ  4÷ Bð �O‰O˜DŸH™H dÕ+ä$ T§Z¡Z°·±×AÑAØ×+Ñ+Õ-Ø×'Ñ'¨Ô-÷ .Ð-ð ×#Ñ# DÕ)÷E >Õ=ú÷0 BÕAú÷ .Õ-ús#   »IÆ0(I0È2JÉ
I-É0
I>Ê
Jc           
      ó†  ^ ^^^^^•  [        [        TR                  R                  R                  5      5      nS mSm[        5       m[        5       mUUUUUU 4S jnU Hx  u  pVpuU" U5      (       a    g Uc  M   [        [        U5      5      nU HC  u  pYp¥U
b*  SU
;   a$  T R                  [        R                  TS5            g U" U	5      (       d  MB      g    Mz     [        S TR                   5       5      (       d!  [        S TR                   5       5      (       a  g [        [        [        TR                  5      5      5      nTR                   Vs1 sH  oÌR                  iM     nnUT-
  nUT-
  nTT-  X½-  -
  nU(       a@  T R                  [        R                  TSR!                  [#        S U 5       5      5      5        U(       a9  T R                  [        R$                  TSR!                  [#        U5      5      5        U(       aA  T R                  [        R&                  TSR!                  [#        S	 U 5       5      5      5        g g ! [         a+  nT R                  [        R                  TU5         S nAg S nAff = f! [         a,  nT R                  [        R                  TU5         S nA  g S nAff = fs  snf )
Nr   c                 óÆ  >• U c  gU R                  S5      u  n   nU R                  S5      u  n   n [        U 5      n TSL a!  TR                  [        R                  T5        gSm U S:X  a/  TSL a!  TR                  [        R                  T5        gSmTn TS-  m[        U [        5      (       a  TR                  U 5        gTR                  U 5        g! [
         a     Nzf = f)z9Returns True if there is an error which should early-exitFrØ   Ú[TÚ rC   )Ú	partitionÚintrè  r   ÚStringDotFormatMixingAutomaticrF   r   Úadd)ÚfmtkeyrJ  ÚautoÚ	next_autor    Úplaceholder_namedÚplaceholder_positionalrl   s     €€€€€€r   Ú_add_keyÚ3Checker._handle_string_dot_format.<locals>._add_key„  sí   ø€ ð ‰~Øð "×+Ñ+¨CÓ0‰LˆF�A�qØ!×+Ñ+¨CÓ0‰LˆF�A�qð	!Ü˜V›�ð ˜4’<Ø—K‘K¤× GÑ GÈÔNØà ‘Dà˜‹|Ø˜5’=Ø—K‘K¤× GÑ GÈÔNØà�Dà"�Ø˜Q‘�	ä˜&¤#×&Ñ&Ø&×*Ñ*¨6Ô2ð ð "×%Ñ% fÔ-àøô1 ó Ùðús   ±C Ã
C ÃC Ú{zMax string recursion exceededc              3   óT   #   • U H  n[        U[        R                  5      v •  M!     g 7fr   ©r   r	   ÚStarred)r'   rš  s     r   r)   Ú4Checker._handle_string_dot_format.<locals>.<genexpr>Æ  s   é € ÐF¹I°S”J˜s¤C§K¡K×0Ð0ºIùó   ‚&(c              3   ó:   #   • U H  oR                   S L v •  M     g 7fr   )rš  )r'   Úkwds     r   r)   r°  È  s   é € Ð=©}¨—G‘G˜t•Oª}ùs   ‚rç  c              3   ó6   #   • U H  n[        U5      v •  M     g 7fr   ©r$  ©r'   r5  s     r   r)   r°  Û  s   é € Ð BÑ1A¨A¤ Q§ Ò1Aùr+   c              3   ó6   #   • U H  n[        U5      v •  M     g 7fr   rµ  r¶  s     r   r)   r°  ç  s   é € Ð CÑ1B¨A¤ Q§ Ò1Bùr+   )r`   Úparse_format_stringr—  r   rF   rè  r   ÚStringDotFormatInvalidFormatrë  rˆ  r•  ÚkeywordsÚrangerD   rš  Ú'StringDotFormatExtraPositionalArgumentsrñ  rk   Ú"StringDotFormatExtraNamedArgumentsÚStringDotFormatMissingArgument)rl   r    Úplaceholdersrw  rª  rJ  r¥  ÚspecÚspec_placeholdersÚspec_fmtkeyÚ	spec_specÚsubstitution_positionalr³  Úsubstitution_namedÚextra_positionalÚextra_namedÚmissing_argumentsr¦  r§  r¨  r©  s   ``               @@@@r   Ú_handle_string_dot_formatÚ!Checker._handle_string_dot_formatw  se  ý€ ð	Ü Ô!4°T·Y±Y·_±_×5JÑ5JÓ!KÓLˆLð
 ˆØˆ	ä!$£ÐÜ›EÐ÷%	ò %	óN #/ÑˆA�tÙ˜×ÑÙð ÓðÜ(-Ô.AÀ$Ó.GÓ(HÐ%ó
 5FÑ0�A Ià Ñ,°¸	Ó1AØŸ™Ü$×AÑAØ Ø;ôò
 Ù ×,Ó,Úó 5Fñ #/ô6 ÑF¸D¿IºIÓF×FÑFäÑ=¨t¯}ª}Ó=×=Ñ=àä"%¤e¬C°·	±	«NÓ&;Ó"<ÐØ15·²Ó?±¨#Ÿgœg±ÐÐ?à2Ð5KÑKÐØ(Ð+<Ñ<ˆð $Ð&7Ñ7Ø$Ñ9ñ;ð 	ö
 Ø�K‰KÜ×@Ñ@ØØ—	‘	œ&Ñ BÑ1AÓ BÓBÓCôö
 Ø�K‰KÜ×;Ñ;ØØ—	‘	œ& Ó-Ó.ôö
 Ø�K‰KÜ×7Ñ7ØØ—	‘	œ&Ñ CÑ1BÓ CÓCÓDõð øôS ó 	Ø�K‰Kœ×=Ñ=¸tÀQÔGÜûð	ûôr "ó Ø—K‘K¤× EÑ EÀtÈQÔOÝûðüò4 @s5   ˆ2I Á:JÅJ>É
JÉ!I=É=JÊ
J;Ê!J6Ê6J;c                 óÖ  • [        UR                  [        R                  5      (       a‘  [        UR                  R                  [        R
                  5      (       a^  [        UR                  R                  R                  [        5      (       a+  UR                  R                  S:X  a  U R                  U5        / n/ n/ n[        UR                  SU R                  5      (       aS  [        UR                  5      S:¼  a:  U R                  5          U R                  UR                  S   U5        S S S 5        GO¢[        UR                  SU R                  5      (       aš  US/-  nX1R                  SS   Vs/ sH  oUPM     sn-  nUS/-  nX1R                   Vs/ sH   ofR                   S:X  d  M  UR                  PM"     sn-  nUUR                   Vs/ sH  nXfR                   S:X  a  S	/OS 4PM     sn-  nGOâ[        UR                  S
U R                  5      (       aë  [        UR                  5      S:”  aƒ  [        UR                  S   [        R"                  5      (       aW  US/-  nX1R                  S   R$                  -  nU['        UR                  5       VVs/ sH  u  puXWS:X  a  S/OS 4PM     snn-  nUS/-  nX1R                   Vs/ sH  ofR                  PM     sn-  nXAR                   Vs/ sH  ofS	/4PM	     sn-  nGOÑ[        UR                  SU R                  5      (       Gaª  [        UR                  5      S:”  GaC  [        UR                  S   [        R(                  [        R*                  45      (       Ga  [-        S UR                  S   R.                   5       5      (       aØ  US/-  nX1R                  S   R.                   Vs/ sH  oˆR.                  S   PM     sn-  nXAR                  S   R.                   Vs/ sH  oˆR.                  S   S 4PM     sn-  nU['        UR                  5       VVs/ sH  u  puXWS:X  a  S/OS 4PM     snn-  nXAR                  S   R.                   Vs/ sH  oˆS4PM     sn-  nUS/-  nX1R                   Vs/ sH  ofR                  PM     sn-  nXAR                   Vs/ sH  ofS	/4PM	     sn-  nU(       a…  U R                  [0        R2                  5         U H  u  pšU R5                  XšS9  M     U R5                  XS9  S S S 5        U R                  5          U H  nU R                  X±5        M     S S S 5        g U R5                  U5        g ! , (       d  f       N¬= fs  snf s  snf s  snf s  snnf s  snf s  snf s  snf s  snf s  snnf s  snf s  snf s  snf ! , (       d  f       N£= f! , (       d  f       g = f)Nr¦   ÚcastrC   r   ÚTypeVarr•  rº  Úboundr   Ú	TypedDictrð  Ú
NamedTuplec              3   ó²   #   • U HN  n[        U[        R                  [        R                  45      =(       a    [	        UR
                  5      S :H  v •  MP     g7f)r�  N)r   r	   r,   r+  rD   r.   r¶  s     r   r)   ÚChecker.CALL.<locals>.<genexpr>   sF   é € ð AÙ.?¨ô ˜q¤3§9¡9¬c¯h©hÐ"7Ó8÷ %Ü˜Ÿ™“K 1Ñ$ô%Ú.?ùs   ‚AAr.   rW  )r   r—  r	   r6   r   r   r$  r7   rÉ  r{  r¶  rD   r•  r“  rX  rº  rš  ÚDictrð  Ú	enumerater,   r+  r-   r.   rŒ  rŽ  r¼  )rl   r    r‡   Ú	annotatedÚnot_annotatedrš  ÚkrR   r(   Úna_nodeÚna_omitÚannotated_nodes               r   ÚCALLÚChecker.CALLê  sá  € ä˜4Ÿ9™9¤c§m¡m×4Ñ4Ü˜4Ÿ9™9Ÿ?™?¬C¯L©L×9Ñ9Ü˜4Ÿ9™9Ÿ?™?×0Ñ0´#×6Ñ6Ø—	‘	—‘ (Ó*à×*Ñ*¨4Ô0àˆØˆ	Øˆô �t—y‘y &¨$¯/©/×:Ñ:Ü�—	‘	‹N˜aÓà×'Ñ'Õ)Ø—‘ §	¡	¨!¡¨dÔ3÷ *Ñ)ô ˜Ÿ	™	 9¨d¯o©o×>Ñ>ð �V�HÑˆDØ¯©°1°2©Ó7© #š#©Ñ7Ñ7ˆIð �Z�LÑ ˆDØ¯=ª=ÓM©= a¿E¹EÀWÑ<L›'˜!Ÿ'œ'©=ÑMÑMˆIØàŸšóá&�Að §¡¨'Ó!1�W‘I°tÓ<Ù&ññ ŠMô
 ˜Ÿ	™	 ;°·±×@Ñ@ä�4—9‘9‹~ Ó!¤j°·±¸1±¼s¿x¹x×&HÑ&HØ˜˜Ñ �ØŸY™Y q™\×0Ñ0Ñ0�	Øä"+¨D¯I©IÔ"6ô"á"6™˜ð ¨Q«˜8™*°DÓ9Ù"6ò"ñ �ð �Z�LÑ ˆDØ¯=ª=Ó9©= aŸ'œ'©=Ñ9Ñ9ˆIØ·m²mÓD±m° 7 )›n±mÑDÑDŠMä˜Ÿ	™	 <°·±×AÒAô �D—I‘I“ Ô"Ü˜4Ÿ9™9 Q™<¬#¯)©)´S·X±XÐ)>×?Ò?Üñ AØ.2¯i©i¸©l×.?Ò.?óA÷ Añ Að ˜˜Ñ �Ø·Y±Y¸q±\×5FÒ5FÓGÑ5F¨cŸh™h qœkÑ5FÑGÑG�	ØÇÁÈ1Á×ARÒARÓ!SÑAR¸#§8¡8¨A¡;°Ó"5ÑARÑ!SÑS�Øä"+¨D¯I©IÔ"6ô"á"6™˜ð ¨1£f˜6™(°$Ó7Ù"6ò"ñ �ð ¿9¹9ÀQ¹<×;LÒ;LÓ!MÑ;L°C¨£-Ñ;LÑ!MÑM�ð �Z�LÑ ˆDØ¯=ª=Ó9©= aŸ'œ'©=Ñ9Ñ9ˆIØ·m²mÓD±m° 7 )›n±mÑDÑDˆMæØ×'Ñ'¬×(<Ñ(<Õ=Û(5Ñ$�GØ×'Ñ'¨Ð'Ó>ñ )6à×#Ñ# DÐ#Ñ4÷ >ð
 ×'Ñ'Õ)Û&/�NØ—O‘O NÖ9ñ '0÷ *Ð)ð ×Ñ Õ%÷A *Õ)üò 8ùò Nùòùó"ùò :ùÚDùò HùÚ!Sùó"ùò "Nùò :ùÚD÷ >Õ=ú÷
 *Õ)úsr   Ä U:Å7
VÆVÆ0VÇVÊVËV Ë7V%ÏV*ÐV/ÑV4Ñ>V:Ò#V?Ó
WÔ*W	ÕWÕ:
V×	
W×
W(c           	      ó>  •  [        UR                  R                  5      n[        5       nSnS nU GH  u  pgUc  M  Uu  p†pšnUS:X  a  M  U[        ;  a!  U R	                  [
        R                  UU5        Uc  U(       a  US L nXš4 H>  nUc  M  SU;   d  M  U(       d"  U R	                  [
        R                  U5        M9  US-  nM@     U(       a%  Ub"  U R	                  [
        R                  U5          g U(       d%  Uc"  U R	                  [
        R                  U5          g U(       a  US-  nMý  UR                  U5        GM     [        UR                  [        R                   [        R"                  45      (       a   [%        S UR                  R&                   5       5      (       du  [)        UR                  R&                  5      nU(       a(  XM:w  a#  U R	                  [
        R*                  UUU5        O'U(       d   U R	                  [
        R,                  U5        [        UR                  [        R.                  5      (       Ga!  [1        S UR                  R2                   5       5      (       aõ  U(       a'  US:”  a!  U R	                  [
        R4                  U5        g UR                  R2                   Vs1 sH  oîR                  iM     nnXó-
  nX?-
  nU(       d@  U(       a9  U R	                  [
        R6                  USR9                  [;        U5      5      5        U(       dB  U(       a:  U R	                  [
        R<                  USR9                  [;        U5      5      5        g g g g g ! [         a$    U R	                  [
        R                  US5         g f = fs  snf )	Nzincomplete formatr   rB   r  rC   c              3   óT   #   • U H  n[        U[        R                  5      v •  M!     g 7fr   r®  r&   s     r   r)   Ú1Checker._handle_percent_format.<locals>.<genexpr>|  s%   é € ð á.˜ô ˜s¤C§K¡K×0Ð0Ú.ùr±  c              3   ó–   #   • U H@  n[        U[        R                  5      =(       a    [        UR                  [        5      v •  MB     g 7fr   )r   r	   r   r   r$  )r'   r×  s     r   r)   rß  Ž  s5   é € ð á,˜ô ˜q¤#§,¡,Ó/×L´J¸q¿w¹wÌÓ4LÔLÚ,ùs   ‚AA	rç  )ra   r.  r   rF   rè  r   ÚPercentFormatInvalidFormatrë  ÚVALID_CONVERSIONSÚ'PercentFormatUnsupportedFormatCharacterÚ!PercentFormatStarRequiresSequenceÚ$PercentFormatMixedPositionalAndNamedr¤  r   r-  r	   r+  r,   rˆ  r.   rD   Ú$PercentFormatPositionalCountMismatchÚPercentFormatExpectedMappingrÓ  r-   r  ÚPercentFormatExpectedSequenceÚ PercentFormatExtraNamedArgumentsrñ  rk   ÚPercentFormatMissingArgument)rl   r    r¿  ÚnamedÚpositional_countÚ
positionalrJ  Úplaceholderr8   rX   rZ   r[   ÚpartÚsubstitution_countr×  Úsubstitution_keysÚ
extra_keysÚmissing_keyss                     r   Ú_handle_percent_formatÚChecker._handle_percent_format=  s  € ð	Ü/°·	±	·±Ó@ˆLô “ˆØÐØˆ
Ü*‰NˆAØÑ"ÙØ4?Ñ1ˆD�U zà˜SÓ ÙàÔ!2Ó2Ø—‘Ü×DÑDØØôð Ñ!¦jØ! T˜\�
àÓ*�ØÓ#¨¨t­Þ%ØŸ™Ü$×FÑFØ öð
 )¨AÑ-Ò(ñ +ö ˜dÑ.Ø—‘Ü×AÑAØôñ Þ D¡LØ—‘Ü×AÑAØôñ æØ  AÑ%Ò à—	‘	˜$—ñY +ô^ ˜4Ÿ:™:¬¯©´#·)±)Ð'<×=Ñ=äñ à#Ÿz™zŸšó÷ ñ ô
 "% T§Z¡Z§_¡_Ó!5ÐÞÐ.ÓDØ—‘Ü×AÑAØØ$Ø&õ	ö  Ø—‘œH×AÑAÀ4ÔHô ˜4Ÿ:™:¤s§x¡x×0Ò0Üñ à!ŸZ™ZŸ_š_ó÷ ñ ö
 Ð.°Ó2Ø—‘œH×BÑBÀDÔIØà26·*±*·/²/Ó B±/¨Q§¤±/ÐÐ BØ*Ñ2ˆJØ Ñ4ˆLÞ¦*Ø—‘Ü×=Ñ=ØØ—I‘Iœf ZÓ0Ó1ôö
 ¦,Ø—‘Ü×9Ñ9ØØ—I‘Iœf \Ó2Ó3õð #/�:ð%ð 1øô[ ó 	Ø�K‰KÜ×3Ñ3ØØ#ôñ
 ð	üòn !Cs   ‚M) Ê8NÍ)+NÎNc                 ó>  • [        UR                  [        R                  5      (       ac  [        UR                  [        R
                  5      (       a:  [        UR                  R                  [        5      (       a  U R                  U5        U R                  U5        g r   )
r   r6  r	   ÚModr.  r   r   r$  rô  r¼  r  s     r   ÚBINOPÚChecker.BINOP§  s]   € ä˜4Ÿ7™7¤C§G¡G×,Ñ,Ü˜4Ÿ9™9¤c§l¡l×3Ñ3Ü˜4Ÿ9™9Ÿ?™?¬C×0Ñ0à×'Ñ'¨Ô-Ø×Ñ˜DÕ!r"   c                 ó,  • [        UR                  [        5      (       au  U R                  (       ac  [        R
                  " U R                  UR                  UUR                  UR                  [        R                  5      nU R                  U5        g g g r   )r   r   r$  rQ  r›  r�  rƒ  r§   rf  r   rŽ  rÊ  )rl   r    rˆ  s      r   ÚCONSTANTÚChecker.CONSTANT°  sm   € Ü�d—j‘j¤#×&Ñ&¨4×+>×+>Ü×"Ò"Ø×+Ñ+Ø—
‘
ØØ—‘Ø—‘Ü×5Ñ5óˆBð ×Ñ˜rÕ"ð ,?Ð&r"   c                 óV  • U R                  U5        UR                  n[        U[        R                  5      (       a<  [        UR                  5      (       a!  U R                  [        R                  U5        g g [        U5      (       a!  U R                  [        R                  U5        g g r   )
r¼  Úexcr   r	   ÚCallr•   r—  rè  r   ÚRaiseNotImplemented)rl   r    rš  s      r   ÚRAISEÚChecker.RAISEÈ  sx   € Ø×Ñ˜DÔ!à�h‰hˆä�cœ3Ÿ8™8×$Ñ$Ü*¨3¯8©8×4Ñ4à—‘œH×8Ñ8¸$Õ?ð 5ô )¨×-Ñ-à�K‰Kœ×4Ñ4°dÕ;ð .r"   Fc                 ó  • U R                   (       dA  [        S UR                   5       5      (       d   U R                  [        R
                  U5        SU R                   sU l         n U R                  U5        X l         g ! X l         f = f)Nc              3   óT   #   • U H  n[        U[        R                  5      v •  M!     g 7fr   )r   r	   ÚFormattedValuer¶  s     r   r)   Ú$Checker.JOINEDSTR.<locals>.<genexpr>ß  s    é € ÐOÁ;¸aœ
 1¤c×&8Ñ&8×9Ð9Â;ùr±  T)Ú_in_fstringrˆ  rð  rè  r   ÚFStringMissingPlaceholdersr¼  )rl   r    rÎ  s      r   Ú	JOINEDSTRÚChecker.JOINEDSTRÚ  sk   € ð ×$×$ÜÑOÀ4Ç;Â;ÓO×OÑOà�K‰Kœ×;Ñ;¸TÔBà!% t×'7Ñ'7ÐˆÔ˜$ð	$Ø×Ñ Ô%à#Õø˜tÕús   Á(B  Â Bc                 óÈ  ^• TR                    Vs/ sH  n[        U5      PM     nn[        U5      nUR                  5        VVs/ sH  u  p%US:”  d  M  UPM     nnnU Hß  n[	        U5       VVs/ sH  u  pxX‚:X  d  M  UPM     n	nn[        U4S jU	 5       5      n
[        S U
R                  5        5       5      (       d  Md  U	 Hu  nTR                   U   n[        U[        5      (       a-  U R                  [        R                  UUR                  5        MT  U R                  [        R                  UU5        Mw     Má     U R                  T5        g s  snf s  snnf s  snnf )NrC   c              3   óR   >#   • U H  n[        TR                  U   5      v •  M     g 7fr   )r�   rð  )r'   rE   r    s     €r   r)   ÚChecker.DICT.<locals>.<genexpr>ú  s)   øé € ð á(�Eô ! §¡¨UÑ!3×4Ð4Ú(ùs   ƒ$'c              3   ó.   #   • U H  u  pUS :H  v •  M     g7f)rC   Nru   )r'   r   Úcounts      r   r)   r  þ  s   é € ÐA±.¡, %�5˜A–:².ùs   ‚)r  r�   r�   r~   rÔ  rˆ  r   r�   rè  r   ÚMultiValueRepeatedKeyVariabler8   ÚMultiValueRepeatedKeyLiteralr¼  )rl   r    rT   r  Ú
key_countsr  Úduplicate_keysrR   Úi_keyÚkey_indicesrð  Ú	key_indexÚkey_nodes    `           r   ÚDICTÚChecker.DICTé  sB  ø€ ð
 .2¯YªYó
Ù-6 cÔ˜SÖ!©Yð 	ð 
ô ˜T“]ˆ
à",×"2Ñ"2Ô"4ô
Ù"4‘J�CØ�q‰y÷ Ñ"4ð 	ñ 
ó
 "ˆCÜ-6°t¬_ÔM©_¡ ÀÁŸ1©_ˆKÑMäô á(óó ˆFô ÑA°&·,±,´.ÓA×AÓAÛ!,�IØ#Ÿy™y¨Ñ3�HÜ! #¤{×3Ñ3ØŸ™¤H×$JÑ$JØ$,Ø$'§H¡Hö.ð Ÿ™Ü$×AÑAØ$Øöó "-ñ "ð( 	×Ñ˜DÕ!ùò=
ùó

ùó Ns   �EÁEÁEÁ/
EÁ=Ec                 óì   • [        UR                  [        R                  5      (       a:  UR                  R                  / :w  a   U R                  [        R                  U5        U R                  U5        g r   )	r   Útestr	   r,   r.   rè  r   ÚIfTupler¼  r  s     r   ÚIFÚ
Checker.IF  sH   € Ü�d—i‘i¤§¡×+Ñ+°·	±	·±À"Ó0DØ�K‰Kœ×(Ñ(¨$Ô/Ø×Ñ˜DÕ!r"   c                 óì   • [        UR                  [        R                  5      (       a:  UR                  R                  / :w  a   U R                  [        R                  U5        U R                  U5        g r   )	r   r  r	   r,   r.   rè  r   ÚAssertTupler¼  r  s     r   ÚASSERTÚChecker.ASSERT  sH   € Ü�d—i‘i¤§¡×+Ñ+°·	±	·±À"Ó0DØ�K‰Kœ×,Ñ,¨dÔ3Ø×Ñ˜DÕ!r"   c                 óÐ  • U R                  5       (       a  SOSnU R                  U   nU R                  ULaª  UR                   H™  n[	        XA5      nU R
                   Vs/ sH9  n[        U[
        R                  5      (       a  UR                  S   U:w  d  M7  UPM;     snU l        UR                  XE5        X14Ul
        U R                  US-   S  H  nXWU'   M	     M›     ggs  snf )z%
Keep track of globals declarations.
rC   r   N)rÒ  r¶  r  r%  r´   r   r   r9  Úmessage_argsÚ
setdefaultr�   )rl   r    Úglobal_scope_indexÚglobal_scopeÚ	node_nameÚ
node_valueÚmr  s           r   ÚGLOBALÚChecker.GLOBAL  sä   € ð #'×"2Ñ"2×"4Ñ"4™Q¸!ÐØ—‘Ð'9Ñ:ˆð �:‰:˜\Ò)ð "ŸZœZ�	Ü'¨	Ó8�
ð  $Ÿ}š}ó!4Ù,˜!Ü˜q¤(×"8Ñ"8×9Ñ9Ø—N‘N 1Ñ%¨Ñ2÷ ™}ñ!4�”ð ×'Ñ'¨	Ô>ð $0Ð"6�
”Ø!Ÿ_™_Ð-?À!Ñ-CÐ-DÓE�EØ'1˜)Ó$ó Fò! (ð *ùò!4s   Á 5C#ÂC#c                 ó„   • U R                  [        5         U R                  U5        S S S 5        g ! , (       d  f       g = fr   )rº  rV  r¼  r  s     r   ÚGENERATOREXPÚChecker.GENERATOREXP9  s(   € Ø�]‰]œ>Õ*Ø×Ñ Ô%÷ +×*Ö*ús   –1±
?c                 óŒ  • [        UR                  [        R                  5      (       a�  U R	                  XR                  U5      5        UR                  S:X  a\  [        U R                  [        5      (       a<  [        UR                  [        R                  5      (       a  SU R                  l        gggg[        UR                  [        R                  5      (       a  U R                  U5        g[        UR                  [        R                  5      (       a  U R                  U5        g[!        SUR                  < 35      e)zF
Handle occurrence of Name (which can be a load/store/delete access.)
ÚlocalsTz#Got impossible expression context: N)r   r  r	   ÚLoadr;  rô  r5   r  r?  r  rÿ  rK  ÚStorerD  ÚDelrN  r¹  r  s     r   ÚNAMEÚChecker.NAME?  sß   € ô
 �d—h‘h¤§¡×)Ñ)Ø×Ñ §n¡n°TÓ&:Ô;Ø—‘˜8Ó#¬
°4·:±:¼}×(MÑ(MÜ˜t×4Ñ4´c·h±h×?Ñ?à(,�—
‘
Õ%ð @ð )NÐ#ô ˜Ÿ™¤#§)¡)×,Ñ,Ø× Ñ  Õ&Ü˜Ÿ™¤#§'¡'×*Ñ*Ø×!Ñ! $Õ'ô Ð!DÀTÇXÁXÁLÐQÓRÐRr"   c                 ó&  • Un[        US5      (       až  UR                  Up2[        U[        R                  [        R
                  [        R                  45      (       a  X2R                  ;  a  g [        U[        R                  [        R                  45      (       a  O[        US5      (       a  Mž  [        U[        R                  5      (       a!  U R                  [        R                  U5        g U R                  [        R                  U5        g r  )rf  r  r   r	   rH  ÚForÚAsyncForr   r†  ÚClassDefÚContinuerè  r   ÚContinueOutsideLoopÚBreakOutsideLoop)rl   r    r   Ún_childs       r   ÚCONTINUEÚChecker.CONTINUER  s¹   € ð ˆÜ�aÐ+×,Ñ,Ø×+Ñ+¨QˆwÜ˜!œcŸi™i¬¯©´#·,±,Ð?×@Ñ@à§(¡(Ó*ØÜ˜!œcŸo™o¬s¯|©|Ð<×=Ñ=Øô �aÐ+×,Ó,ô �dœCŸL™L×)Ñ)Ø�K‰Kœ×4Ñ4°dÕ;à�K‰Kœ×1Ñ1°4Õ8r"   c                 óŒ  • [        U R                  [        [        45      (       a!  U R	                  [
        R                  U5        g UR                  (       aQ  [        U R                  S5      (       a6  U R                  R                  (       d  UR                  U R                  l	        U R                  UR                  U5        g )NrG  )r   r  r=  rX  rè  r   ÚReturnOutsideFunctionr   rf  rG  rX  r  s     r   ÚRETURNÚChecker.RETURNf  sx   € Ü�d—j‘j¤:¬{Ð";×<Ñ<Ø�K‰Kœ×6Ñ6¸Ô=Øð �J�JÜ�D—J‘J ×.Ñ.Ø—
‘
×&×&à%)§Z¡ZˆD�J‰JÔ"Ø�‰˜Ÿ
™
 DÕ)r"   c                 óÈ   • [        U R                  [        [        45      (       a!  U R	                  [
        R                  U5        g U R                  UR                  U5        g r   )	r   r  r=  rX  rè  r   ÚYieldOutsideFunctionrX  r   r  s     r   ÚYIELDÚChecker.YIELDs  sA   € Ü�d—j‘j¤:¬{Ð";×<Ñ<Ø�K‰Kœ×5Ñ5°tÔ<Øà�‰˜Ÿ
™
 DÕ)r"   c                 óÒ  ^ ^• TR                    H  nT R                  UT5        M     T R                  T5         T R                  T5        S S S 5        T R	                  T[        TR                  T5      5        T R                  (       aM  T R                  5       (       d7  [        T R                  [        5      (       d  T R                  UU 4S j5        g g g g ! , (       d  f       N“= f)Nc                  ó&   >• TR                  T 5      $ r   ©ry  ©r    rl   s   €€r   rx  Ú%Checker.FUNCTIONDEF.<locals>.<lambda>‰  s   ø€  t×':Ñ':¸4Ô'@r"   )r‰  rX  Ú_type_param_scopeÚLAMBDAr»  r  r8   r³  rÒ  r   r  r?  rÊ  )rl   r    Údecos   `` r   ÚFUNCTIONDEFÚChecker.FUNCTIONDEF|  s°   ù€ Ø×'Ô'ˆDØ�O‰O˜D $Ö'ñ (ð ×#Ñ# DÕ)Ø�K‰K˜Ô÷ *ð 	�‰˜Ô0°·±¸DÓAÔBð ××Ø×$Ñ$×&Ñ&Ü˜tŸz™z¬=×9Ñ9Ø×ÑÕ@ÕAð :ð 'ð ÷ *Õ)ús   ¹CÃ
C&c                 ó�  ^ ^• / n/ nTR                   R                   H9  nUR                  UR                  5        UR                  UR                  5        M;     TR                   R                   TR                   R
                  -    H9  nUR                  UR                  5        UR                  UR                  5        M;     TR                   R                  TR                   R                  -   n[        T[        R                  5      (       + nS Ha  n[        TR                   U5      nU(       d  M"  UR                  UR                  5        U(       d  MF  UR                  UR                  5        Mc     U(       a  UR                  TR                  5        [        [        U5      5      [        U5      :  a?  [        U5       H0  u  p”XBS U	 ;   d  M  T R!                  ["        R$                  TU5        M2     U H  n
T R'                  U
T5        M     U H  nT R)                  UT5        M     UU 4S jnT R+                  U5        g )N)ÚvarargÚkwargc                  ó„   >• TR                  [        5         TR                  T SS9  S S S 5        g ! , (       d  f       g = f)N)r‰  ÚreturnsÚtype_paramsrW  )rº  r?  r¼  rL  s   €€r   ÚrunFunctionÚ#Checker.LAMBDA.<locals>.runFunction±  s4   ø€ Ø—‘œ}Õ-Ø×#Ñ#ØØEð $ñ ÷ .×-Ö-ús   —1±
?)r•  Úposonlyargsr&  rš  r‡  Ú
kwonlyargsÚdefaultsÚkw_defaultsr   r	   ÚLambdar„   rW  rD   rë  rÔ  rè  r   ÚDuplicateArgumentr�  rX  rÊ  )rl   r    r•  Úannotationsrš  r]  Úhas_annotationsÚarg_nameÚwildcardÚidxr‡  ÚdefaultrY  s   ``           r   rO  ÚChecker.LAMBDA�  s¬  ù€ ØˆØˆà—9‘9×(Ô(ˆCØ�K‰K˜Ÿ™Ô Ø×Ñ˜sŸ~™~Ö.ñ )ð —9‘9—>‘> D§I¡I×$8Ñ$8Ô8ˆCØ�K‰K˜Ÿ™Ô Ø×Ñ˜sŸ~™~Ö.ñ 9ð —9‘9×%Ñ%¨¯	©	×(=Ñ(=Ñ=ˆä(¨¬s¯z©zÓ:Ô:ˆã+ˆHÜ˜tŸy™y¨(Ó3ˆHÞÙØ�K‰K˜Ÿ™Ô%ßˆØ×"Ñ" 8×#6Ñ#6Ö7ñ ,ö Ø×Ñ˜tŸ|™|Ô,äŒs�4‹y‹>œC ›IÓ%Ü'¨žo‘
�Ø˜t ˜*Õ$Ø—K‘K¤× :Ñ :¸DÀ#ÖFñ .ó &ˆJØ×!Ñ! *¨dÖ3ñ &ó  ˆGØ�O‰O˜G TÖ*ñ  ö	ð 	×Ñ˜;Õ'r"   c                 ó$   • U R                  USS9  g )N)r]  r^  rW  )r¼  r  s     r   Ú	ARGUMENTSÚChecker.ARGUMENTSº  s   € Ø×Ñ˜DÐ'BÐÒCr"   c           	      ón   • U R                  U[        UR                  U R                  U5      5      5        g r   )r»  r  rš  r  r  s     r   ÚARGÚChecker.ARG½  s&   € Ø�‰˜œh t§x¡x°×1BÑ1BÀ4Ó1HÓIÕJr"   c                 óæ  ^ ^• TR                    H  nT R                  UT5        M     T R                  T5         TR                   H  nT R                  UT5        M     TR                   H  nT R                  UT5        M     T R                  [        5         T R                  (       aJ  T R                  5       (       d5  [        T R                  [        5      (       d  T R                  UU 4S j5        TR                   H  nT R                  UT5        M     SSS5        SSS5        T R                  T[        TR                   T5      5        g! , (       d  f       N== f! , (       d  f       NF= f)z£
Check names used in a class definition, including its decorators, base
classes, and the body of its definition.  Additionally, add its name to
the current scope.
c                  ó&   >• TR                  T 5      $ r   rK  rL  s   €€r   rx  Ú"Checker.CLASSDEF.<locals>.<lambda>Ô  s   ø€ ¨t×/BÑ/BÀ4Ô/Hr"   N)r‰  rX  rN  Úbasesrº  rº  r=  r³  rÒ  r   r  r?  rÊ  r   r»  r  r8   )rl   r    rP  ÚbaseNodeÚkeywordNodeÚstmts   ``    r   ÚCLASSDEFÚChecker.CLASSDEFÀ  s  ù€ ð ×'Ô'ˆDØ�O‰O˜D $Ö'ñ (ð ×#Ñ# DÕ)Ø ŸJœJ�Ø—‘ ¨$Ö/ñ 'à#Ÿ}œ}�Ø—‘ ¨TÖ2ñ  -à—‘œzÕ*ð ×$×$Ø ×,Ñ,×.Ñ.Ü& t§z¡z´=×AÑAØ×&Ñ&Õ'HÔIØ ŸIœI�DØ—O‘O D¨$Ö/ñ &÷ +÷ *ð 	�‰˜œo¨d¯i©i¸Ó>Õ?÷ +Õ*ú÷ *Õ)ús%   ¹A E"ÂBEÄE"Å
E	ÅE"Å"
E0c                 ó¬   • U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  U5        g r   )r;  ÚtargetrX  r   r  s     r   Ú	AUGASSIGNÚChecker.AUGASSIGNÚ  s:   € Ø×Ñ˜DŸK™K¨Ô.Ø�‰˜Ÿ
™
 DÔ)Ø�‰˜Ÿ™ TÕ*r"   c                 óâ  • [        UR                  [        R                  5      (       aµ  SnSn[	        UR
                  5       HS  u  pE[        U[        R                  5      (       d  M&  U(       a"  U R                  [        R                  U5          OSnUnMU     US:¼  d  [        UR
                  5      U-
  S-
  S:¼  a   U R                  [        R                  U5        U R                  U5        g )NFrÙ   Té   rC   i   )r   r  r	   r3  rÔ  r.   r¯  rè  r   ÚTwoStarredExpressionsrD   Ú%TooManyExpressionsInStarredAssignmentr¼  )rl   r    Úhas_starredÚstar_locrR   r   s         r   ÚTUPLEÚChecker.TUPLEß  s´   € Ü�d—h‘h¤§	¡	×*Ñ*ð  ˆKØˆHÜ! $§)¡)Ö,‘�Ü˜a¤§¡×-Ó-Þ"ØŸ™¤H×$BÑ$BÀDÔIñ Ø"&�KØ ’Hñ -ð ˜6Ó!¤S¨¯©£^°hÑ%>ÀÑ%BÀgÓ%MØ—‘œH×JÑJÈDÔQØ×Ñ˜DÕ!r"   c                 ó&  • UR                    H�  nSUR                  ;   a(  UR                  (       d  [        UR                  U5      nO5UR                  =(       d    UR                  n[	        XAUR                  5      nU R                  X5        Mƒ     g rö   )r%  r8   ÚasnamerÕ   rÎ   r»  )rl   r    ÚaliasÚimportationr8   s        r   ÚIMPORTÚChecker.IMPORTø  s`   € Ø—Z”ZˆEØ�e—j‘jÓ ¨¯¯Ü2°5·:±:¸tÓD‘à—|‘|×1 u§z¡z�Ü)¨$°e·j±jÓA�Ø�O‰O˜DÖ.ò  r"   c                 ó¾  • UR                   S:X  a2  U R                  (       d   U R                  [        R                  U5        OSU l        SUR
                  -  UR                   =(       d    S-   nUR                   GH^  nUR                  =(       d    UR                  nUR                   S:X  av  [        XAU R                  5      nUR                  [        R                  ;  a*  U R                  [        R                  XR                  5        UR                  S:X  a  SU l        O¤UR                  S:X  a~  [        U R                  [         5      (       d"  U R                  [        R"                  X5        Mú  SU R                  l        U R                  [        R&                  X5        [)        X!5      nO[+        XAX#R                  5      nU R-                  X5        GMa     g )Nr  FrØ   r   ra  Tr  )r÷   r×  rè  r   ÚLateFutureImportÚlevelr%  r„  r8   r
  r  r  Úall_feature_namesÚFutureFeatureNotDefinedrÜ  r   rX  ÚImportStarNotPermittedr;  ÚImportStarUsedr  rô   r»  )rl   r    r÷   r…  r8   r†  s         r   Ú
IMPORTFROMÚChecker.IMPORTFROM  sO  € Ø�;‰;˜,Ó&Ø×&×&Ø—‘œH×5Ñ5°tÔ<øà"'ˆDÔà˜Ÿ
™
Ñ" t§{¡{×'8°bÑ9ˆà—Z•ZˆEØ—<‘<×- 5§:¡:ˆDØ�{‰{˜lÓ*Ü/°¸D¿J¹JÓG�Ø—:‘:¤Z×%AÑ%AÓAØ—K‘K¤× @Ñ @Ø $§j¡jô2à—:‘: Ó.Ø48�DÔ1øØ—‘˜sÓ"Ü! $§*¡*¬k×:Ñ:Ø—K‘K¤× ?Ñ ?Ø $ô.áà+/�—
‘
Ô(Ø—‘œH×3Ñ3°TÔBÜ-¨fÓ;‘ä-¨dØ.4·j±jóB�à�O‰O˜D×.ò+  r"   c                 óÜ  • / n[        UR                  5       Hè  u  p4[        UR                  [        R
                  5      (       a8  UR                  R                   H  nUR                  [        U5      5        M     O5UR                  (       a$  UR                  [        UR                  5      5        UR                  b  Mª  U[        UR                  5      S-
  :  d  MÈ  U R                  [        R                  U5        Mê     U R                  R                  U5        UR                   H  nU R                  Xa5        M     U R                  R!                  5         U R#                  USS9  g )NrC   r   rW  )rÔ  r   r   r   r	   r,   r.   r&  r”   rD   rè  r   ÚDefaultExceptNotLastr´  r   rX  râ  r¼  )rl   r    Úhandler_namesrR   rÏ  Úexc_typer\  s          r   ÚTRYÚChecker.TRY!  sþ   € Øˆä# D§M¡MÖ2‰JˆAÜ˜'Ÿ,™,¬¯	©	×2Ñ2Ø '§¡× 1Ô 1�HØ!×(Ñ(¬°XÓ)>Ö?ò !2à——Ø×$Ñ$¤[°·±Ó%>Ô?à�|‰|Ó#¨¬C°·±Ó,>ÀÑ,BÕ(BØ—‘œH×9Ñ9¸7ÖCñ 3ð 	×Ñ×"Ñ" =Ô1Ø—Y”YˆEØ�O‰O˜EÖ(ñ à×Ñ×ÑÔ!à×Ñ˜D vÐÒ.r"   c                 ón  • UR                   c  U R                  U5        g UR                   U R                  ;   a  U R                  U5         U R                  R	                  UR                   5      nU R                  U5        U R                  U5         U R                  R	                  UR                   5      nUR                  (       d*  U R                  [        R                  XR                   5        U(       a  X R                  UR                   '   g g ! [
         a    S n N²f = f! [
         a     N?f = fr   )
r8   r¼  r  rD  râ  r¸  r�   rè  r   ré  )rl   r    Úprev_definitionrM  s       r   ÚEXCEPTHANDLERÚChecker.EXCEPTHANDLER7  sö   € Ø�9‰9ÑØ×Ñ Ô%Øð �9‰9˜Ÿ
™
Ó"Ø× Ñ  Ô&ð	#Ø"Ÿj™jŸn™n¨T¯Y©YÓ7ˆOð 	×Ñ˜TÔ"Ø×Ñ˜DÔ!ð	FØ—j‘j—n‘n T§Y¡YÓ/ˆGð —<—<Ø—‘œH×3Ñ3°T¿9¹9ÔEö Ø$3�J‰J�t—y‘yÒ!ð øô1 ó 	#Ø"ŠOð	#ûô" ó 	Ùð	ús$   Á%D Â%D' ÄD$Ä#D$Ä'
D4Ä3D4c                 óT  • U R                  UR                  U5        UR                  (       a_  [        UR                  SU R                  5      (       a  U R                  UR                  U5        OU R                  UR                  U5        U R                  UR                  U5        g )NÚ	TypeAlias)r�  r‡  r   r{  r¶  rX  rx  r  s     r   Ú	ANNASSIGNÚChecker.ANNASSIGNd  sl   € Ø×Ñ˜dŸo™o¨tÔ4à�:�:ä˜$Ÿ/™/¨;¸¿¹×HÑHØ×%Ñ% d§j¡j°$Õ7à—‘ §
¡
¨DÔ1Ø�‰˜Ÿ™ TÕ*r"   c                 ór  • UR                   n[        UR                  UR                  5       Hv  u  p4[	        U[
        R                  [
        R                  45      (       a@  [        U5      (       d  [        U5      (       a   U R                  [        R                  U5        UnMx     U R                  U5        g r   )r.  ÚzipÚopsÚcomparatorsr   r	   ÚIsÚIsNotr2   rè  r   Ú	IsLiteralr¼  )rl   r    r.  r6  r-  s        r   ÚCOMPAREÚChecker.COMPAREo  sƒ   € Ø�y‰yˆÜ˜TŸX™X t×'7Ñ'7Ö8‰IˆBä˜r¤C§F¡F¬C¯I©IÐ#6×7Ñ7Ü/°×5Ñ5Ü/°×6Ñ6ð —‘œH×.Ñ.°Ô5ØŠDñ 9ð 	×Ñ˜DÕ!r"   c                 óH   • U R                  U5        U R                  U5        g r   )rD  r¼  r  s     r   Ú_match_targetÚChecker._match_target€  s   € Ø×Ñ˜TÔ"Ø×Ñ˜DÕ!r"   c              #   ó*  #   • [         R                  " 5        n[        R                  S:¼  aH  UR	                  U R                  [        5      5        UR                   H  nU R                  X15        M     S v •  S S S 5        g ! , (       d  f       g = f7f)N)r   é   )	Ú
contextlibÚ	ExitStackr   r   Úenter_contextrº  rT  rX  rX  )rl   r    r  Úparams       r   rN  ÚChecker._type_param_scope†  sb   é € ä×!Ò!Ô# sÜ×Ñ 7Ó*Ø×!Ñ! $§-¡-´	Ó":Ô;Ø!×-Ô-�EØ—O‘O EÖ0ñ .ã÷ $×#Ö#üs   ‚B˜A!BÁ9	BÂ
BÂBc                 ó^   • U R                  U5        U R                  UR                  U5        g r   )rD  rŠ  rÎ  r  s     r   ÚTYPEVARÚChecker.TYPEVAR�  s$   € Ø×Ñ˜TÔ"Ø×.Ñ.¨t¯z©z¸4Õ@r"   c                 óÊ   • U R                  UR                  U5        U R                  U5         U R                  UR                  U5        S S S 5        g ! , (       d  f       g = fr   )rX  r8   rN  rŠ  r   r  s     r   Ú	TYPEALIASÚChecker.TYPEALIAS•  sB   € Ø�‰˜Ÿ	™	 4Ô(Ø×#Ñ# DÕ)Ø×2Ñ2°4·:±:¸tÔD÷ *×)Ö)ús   ®AÁ
A")r®  rQ  r  r«  rÜ  r±  r¯  r´  r°  r×  r   rÈ  rµ  r¶  r³  r   )Ærv   rw   rx   ry   rz   r	   ÚModulerX  r:  r=  r†  r?  r‡  r_  ÚListComprV  ÚSetCompÚGeneratorExpÚDictCompr·  rg  rÈ  rŒ  rŽ  rQ  rë  Úbuiltin_varsr²  Ú_MAGIC_GLOBALSr±  rì  r(  r}   Ú_customBuiltInsÚupdaterÚ   rž   rÊ  r½  rÒ  ræ   r×  ÚsetterrÜ  r  r®  Úcontextmanagerrº  r¾  rè  rô  r	  r  r  r  r  r»  r*  r/  r;  rD  rN  r�  r“  r5  r¼  rA  r`  rc  rX  ÚdoctestÚDocTestParserÚget_examplesrl  ry  r£  rƒ  rŠ  rž  r�  r’  ÚDELETEÚFORÚASYNCFORÚWHILEÚWITHÚWITHITEMÚ	ASYNCWITHÚEXPRÚASSIGNÚPASSÚBOOLOPÚUNARYOPÚSETÚ	ATTRIBUTEÚSTARREDÚNAMECONSTANTÚ	NAMEDEXPRr›  rÉ  rÛ  rô  rø  rû  ÚSLICEÚEXTSLICEÚINDEXÚLOADÚSTOREÚDELÚAUGLOADÚAUGSTOREÚPARAMÚANDÚORÚADDÚSUBÚMULTÚDIVÚMODÚPOWÚLSHIFTÚRSHIFTÚBITORÚBITXORÚBITANDÚFLOORDIVÚINVERTÚNOTÚUADDÚUSUBÚEQÚNOTEQÚLTÚLTEÚGTÚGTEÚISÚISNOTÚINÚNOTINÚMATMULTr  ÚCOMPREHENSIONÚKEYWORDÚFORMATTEDVALUEr  r	  r  r  ÚIFEXPr!  r+  ÚNONLOCALr.  ÚLISTCOMPÚDICTCOMPÚSETCOMPr5  r?  ÚBREAKrC  rG  ÚAWAITÚ	YIELDFROMrQ  ÚASYNCFUNCTIONDEFrO  ri  rl  ru  ry  r�  ÚLISTr‡  r�  r–  ÚTRYSTARrš  rž  r§  ÚMATCHÚ
MATCH_CASEÚ
MATCHCLASSÚMATCHORÚMATCHSEQUENCEÚMATCHSINGLETONÚ
MATCHVALUErª  ÚMATCHASÚMATCHMAPPINGÚ	MATCHSTARrN  r´  Ú	PARAMSPECÚTYPEVARTUPLEr·  r{   ru   r"   r   r¥  r¥  Í  sY  † Ù<ð 	�
‰
�KØ�‰�jØ�‰˜Ø×Ñ˜mØ�
‰
�MØ�‰�nØ�‰�^Ø×Ñ˜.Ø�‰�nð
€Oð €IØ€FØ$×)Ñ)€Ná�<Ó ×&Ñ& ~Ó6€HØ—j‘j—n‘nÐ%8Ó9€OÞØ�‰˜×-Ñ-¨cÓ2Ô3Øà&.¸Ø/°2·:±:Ñ=È2ôòB	Kò,ò>ð ñ+ó ð+ð ×Ññ0ó ð0ð
 ñ1ó ð1ð ×$Ñ$ñ6ó %ð6ð
 ñ#ó ð#ð ×Ññ:ó ð:ò@KòDKòò
ò,òòNò	ò/?òb&ò òR<òh('òT@ð< ×ÑØ)8×)=Ñ)=ó 'ó ð'ð ñ
ó ð
ô(òò	
òò ð, "×/Ò/Ó1×>Ñ>Ðò&ð@ ñ1ó ð1ò.Að ñ.ó ð.ò&ð
 'ð'€Fð 'ˆSð '�8ð '˜eð ' dð '¨Xð '¸	ð 'Øˆvà€Dð #ð#€Fð #ˆWð #�sð #˜Yð #¨ð #°<Øò$*òLqòfQ&òfhòT"ò
#ð  .Ð-€EÐ-ˆH�uð 7=Ð<€DÐ<ˆ5Ð<�3Ð<˜Ð< 8¨eð ð€Cð ˆ"ð ˆsð �Sð ˜4ð  #ð ¨ð ¨cð °Fð ¸Vð ØðØðØðØ"*ðØ-3ðØ69ðØ<@ðØCGðà
ðàðàðàðà "ðà%(ðà+-ðà05ðà8:ðà=BØò<ð 0>Ð=€MÐ=�G˜nà€Kò$ò""òH"ð
 €Eò"ò
2ð< €Hò&ð %1Ð0€HÐ0ˆx˜'òSò&9ð$ €Eò*ò*ð Ð€EˆIòBð #Ðò+(òZDòKò@ò4+ò
"ð. €Dò/ò/ò@/ð( €Gò+4òZ	+ò"ð AOÐN€EÐNˆJÐN˜ÐN g°Ø"0Ð0€N�Zò"ð *7Ð6€GÐ6ˆl˜Yà×Ññó ðòAð  /Ð.€I�õEr"   r¥  )Srz   r  rÂ  r	   r¬  r®  rÄ  r›  rì  Úrer=   r   r¿  Úpyflakesr   rf  ÚPYPYr_  r¾  Ú	Formatterrm  r¸  r   r8  r9  rõ  r!   r/   r%   r2   r9   ÚcompilerG   rJ   rK   rL   rM   Ú	frozensetrâ  r?   ra   r8  rc   r�   rŠ   r�   r•   r—   r«   rº   r‘   r�   rÎ   rÕ   rô   r  r
  r  r´   r  r  r  r  r   r2  r=  r?  rT  rV  rX  r\  r^  r¿  r”   rl  rt  r{  r€  rŠ  rŒ  rž  r£  r¥  ru   r"   r   Ú<module>r     sœ  ðñó Û Û 
Û Û Û Û Û 	Û 	Û Û 
Û å áˆsÐ'Ó(€á�8‹}€à×&Ò&Ó(×.Ñ.Ð ò+ð �W‰W�c—l‘lÐ#€	òòòFò:òð —’˜OÓ,€Ø—Z’Z 
Ó+Ð Ø�:Š:�mÓ$€Ø�zŠzÐ.Ó/€Ø�JŠJ�xÓ €	áÐ1Ó2Ð òò=!ô@�4ô ò&ð !%±L³Nô ò."òP÷Iñ Iô@
�ô 
ô
ˆjô 
÷ñ ÷ñ ô&%!�*ô %!ôP")˜;ô ")ôJ<�kô <ô8�kô ô,	$˜ô 	$ôˆwô ô�ô ô˜*ô ô�ô ô	˜ô 	ô	�jô 	ô.'�Gô .'ôbHˆDô Hô	�ô 	ô"$�Eô "$ôJ	�ô 	ô	�Uô 	ô(�%ô (ô�;ô ÷ñ ò Q€òñ Ð:Ó;€ò)òXLò@ò÷ñ òò÷KEò KEr"   