Ë
    \;j }  ã                   óÐ   — d Z ddlZddlZddlZddlZddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	eedfd
„Zej                   eeefd„Z e«       Z G d„ de«      Z G d„ de
«      Zy)aw  
Part of the astor library for Python AST manipulation.

License: 3-clause BSD

Copyright (c) 2008      Armin Ronacher
Copyright (c) 2012-2017 Patrick Maupin
Copyright (c) 2013-2017 Berker Peksag

This module converts an AST into Python source code.

Before being version-controlled as part of astor,
this code came from here (in 2012):

    https://gist.github.com/1250562

é    Né   )Úget_op_symbolÚget_op_precedenceÚ
Precedence)ÚExplicitNodeVisitor)Úpretty_string)Úpretty_sourcez    Fc                 ó€  — |€t         }n;t        j                  |«      st        d«      ‚t	        |t         «      st        d«      ‚ ||||«      }|j                  | «       |j                  j                  d«       t        |j                  d   «      t        d«      k(  rd|j                  d<    ||j                  «      S )aè  This function can convert a node tree back into python sourcecode.
    This is useful for debugging purposes, especially if you're dealing with
    custom asts not generated by python itself.

    It could be that the sourcecode is evaluable when the AST itself is not
    compilable / evaluable.  The reason for this is that the AST contains some
    more data than regular sourcecode does, which is dropped during
    conversion.

    Each level of indentation is replaced with `indent_with`.  Per default this
    parameter is equal to four spaces as suggested by PEP 8, but it might be
    adjusted to match the application's styleguide.

    If `add_line_information` is set to `True` comments for the line numbers
    of the nodes are added to the output.  This can be used to spot wrong line
    number information of statement nodes.

    `source_generator_class` defaults to `SourceGenerator`, and specifies the
    class that will be instantiated and used to generate the source code.

    z(source_generator_class should be a classz>source_generator_class should be a subclass of SourceGeneratorÚ
r   Ú )	ÚSourceGeneratorÚinspectÚisclassÚ	TypeErrorÚ
issubclassÚvisitÚresultÚappendÚset)ÚnodeÚindent_withÚadd_line_informationr   r	   Úsource_generator_classÚ	generators          úWG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\astor/code_gen.pyÚ	to_sourcer      s¯   € ð0 Ð%Ü!0ÑÜ�_‰_Ð3Ô4ÜÐBÓCÐCÜÐ.´Ô@ÜÐXÓYÐYÙ&ØÐ)¨=ó:€Ià‡O�O�DÔØ×Ñ×Ñ˜DÔ!Ü
ˆ9×Ñ˜AÑÓ¤3 t£9Ò,Ø ˆ	×Ñ˜ÑÙ˜×)Ñ)Ó*Ð*ó    c                 ó"   ‡ ‡‡‡‡— ˆ ˆˆˆˆfd„Š‰S )zž This only uses a closure for performance reasons,
        to reduce the number of attribute lookups.  (set_precedence
        is called a lot of times.)
    c                 ó�   •—  ‰| ‰«      r ‰| «      } |D ]/  } ‰|‰«      r| |_         Œ ‰|‰«      r
 ‰| g|¢­Ž  Œ'|€Œ*J |«       ‚ y)z>Set the precedence (of the parent) into the children.
        N)Ú_pp)ÚvalueÚnodesr   ÚASTr   Ú
isinstanceÚlistÚset_precedences      €€€€€r   r&   z)precedence_setter.<locals>.set_precedenceM   sZ   ø€ ñ �e˜SÔ!Ù% eÓ,ˆEÛˆDÙ˜$ Ô$Ø �•Ù˜D $Ô'Ù˜uÐ, tÔ,à‘|Ð) TÓ)�|ñ r   © )r#   r   r$   r%   r&   s   ````@r   Úprecedence_setterr(   F   s   ü€ ÷*ð *ð Ðr   c                   ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)ÚDelimitzêA context manager that can add enclosing
       delimiters around the output of a
       SourceGenerator method.  By default, the
       parentheses are added, but the enclosed code
       may set discard=True to get rid of them.
    Fc                 ó^  — d}d}d}|D ]&  }t        |t        j                  «      r|€|}Œ"|}Œ%|}Œ( |j                  |d   «       |j                  x}| _        t        |«      | _        |d   | _        |�9t        |xs |«      x| _	        }|j                  |«      x| _        }	||	k\  | _        yy)z� use write instead of using result directly
            for initial data, because it may flush
            preceding data into result.
        z()Nr   r   )r$   Úastr#   Úwriter   ÚlenÚindexÚclosingr   ÚpÚget__ppÚppÚdiscard)
ÚselfÚtreeÚargsÚ
delimitersr   ÚopÚargr   r1   r3   s
             r   Ú__init__zDelimit.__init__j   s·   € ð
 ˆ
ØˆØˆÛˆCÜ˜#œsŸw™wÔ'Ø�<Ø‘Dà‘Bà ‘
ð ð 	�
‰
�:˜a‘=Ô!Ø#Ÿ{™{Ð*ˆ�”Ü˜“[ˆŒ
Ø! !‘}ˆŒØÐÜ*¨2ª:°Ó6Ð6ˆDŒF�QØŸ<™<¨Ó-Ð-ˆDŒG�bØ ™7ˆD�Lð r   c                 ó   — | S ©Nr'   )r5   s    r   Ú	__enter__zDelimit.__enter__ƒ   s   € Øˆr   c                 ó”   — | j                   }| j                  dz
  }| j                  rd||<   y |j                  | j                  «       y )Nr   r   )r   r/   r4   r   r0   )r5   Úexc_infor   Ústarts       r   Ú__exit__zDelimit.__exit__†   s8   € Ø—‘ˆØ—
‘
˜Q‘ˆØ�<Š<ØˆF�5ŠMà�M‰M˜$Ÿ,™,Õ'r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r;   r>   rB   r'   r   r   r*   r*   `   s   „ ñð €Gò#ò2ó(r   r*   c                   ó†  — e Zd ZdZdZdeeeefd„Z	 e
dej                  ¬«      j                  fd„Zd„ Zd„ Zd[d
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd\d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd\d„Zd„ Z d„ Z!d„ Z"d\d„Z#d„ Z$d„ Z%d\d„Z&d „ Z'd!„ Z(d"„ Z)d#„ Z*d$„ Z+d%„ Z,d&„ Z-d'„ Z.d(„ Z/d)„ Z0d*„ Z1d+„ Z2d,„ Z3d-„ Z4d.„ Z5d/„ Z6d0„ Z7d1„ Z8d2„ Z9efd3„Z:d4„ Z;d5„ Z<d6„ Z=d\d7„Z>d8„ Z?d9„ Z@d:„ ZAeBj†                  d;k\  fd<„ZDd=„ ZEd>„ ZFd?„ ZGd@„ ZHdA„ ZIdB„ ZJdC„ ZKdD„ ZLdE„ ZMdF„ ZNdG„ ZOdH„ ZPdI„ ZQdJ„ ZRdK„ ZSdL„ ZTdM„ ZUdN„ ZVdO„ ZWdP„ ZXdQ„ ZYdR„ ZZdS„ Z[dT„ Z\dU„ Z]dV„ Z^e^Z_dW„ Z`dX„ ZadY„ ZbdZ„ Zcy	)]r   z¶This visitor is able to transform a well formed syntax tree into Python
    sourcecode.

    For more details have a look at the docstring of the `node_to_source`
    function.

    Fc                 ó  ‡ ‡‡‡‡‡	‡
‡— g ‰ _         |‰ _        |‰ _        d‰ _        d‰ _        d‰ _        |‰ _        t        j                  Š‰ j                  Š‰ j                   Š
‰
j                  Š	ˆˆ	ˆˆˆˆ
ˆ ˆfd„}|‰ _        y )Nr   )r   r   c                  ó  •— | D ]…  } ‰|‰«      r	 ‰	|«       Œ ‰|«      r |«        Œ%‰j                   rJ ‰d‰j                   z  «        ‰‰«      df‰_         ‰‰j                  ‰j                  z  «       d‰_         |sŒ~ ‰|«       Œ‡ y)zr self.write is a closure for performance (to reduce the number
                of attribute lookups).
            r   r   N)Ú	new_linesÚcolinfor   Úindentation)
ÚparamsÚitemr#   r   Úcallabler$   r.   r   r5   r   s
     €€€€€€€€r   r-   z'SourceGenerator.__init__.<locals>.write¬   s}   ø€ ó �Ù˜d CÔ(Ù˜$•KÙ˜d”^Ù•Fà—~’~Ù˜t d§n¡nÑ4Ô5Ù'*¨6£{°A ~˜œÙ˜t×/Ñ/°$×2BÑ2BÑBÔCØ)*˜œÚÙ˜t�ñ r   )r   r   r   rL   rJ   rK   r   r,   r#   r   r   r-   )r5   r   r   r   r.   r$   rO   r-   r#   r   r   r   s   `   ``` @@@@r   r;   zSourceGenerator.__init__š   sq   ÿ€ ð ˆŒØ&ˆÔØ$8ˆÔ!ØˆÔØˆŒØˆŒà*ˆÔÜ�g‰gˆà—
‘
ˆØ—‘ˆØ—‘ˆ÷	%ó 	%ð$ ˆ�
r   r'   )Úkeywordsr    c                 óˆ   ‡‡‡— |j                  d«      st        ‚t        Š|dd Š |‰«      Šˆˆˆfd„}t        | ||«       |S )za Get an attribute of the node.
            like dict.get (returns None if doesn't exist)
        Úget_é   Nc                 ó   •—  ‰| ‰‰«      S r=   r'   )r   ÚdefaultÚgetaÚ	shortnames    €€€r   Úgetterz+SourceGenerator.__getattr__.<locals>.getterË   s   ø€ Ù˜˜i¨Ó1Ð1r   )Ú
startswithÚAttributeErrorÚgetattrÚsetattr)r5   ÚnameÚdefaultsrX   rU   rV   rW   s       @@@r   Ú__getattr__zSourceGenerator.__getattr__À   sI   ú€ ð
 �‰˜vÔ&Ü Ð ÜˆØ˜˜�Hˆ	Ù˜9Ó%ˆö	2ô 	��d˜FÔ#Øˆr   c                 ó   — t        | g|¢­Ž S r=   )r*   )r5   r7   s     r   ÚdelimitzSourceGenerator.delimitÑ   s   € Ü�tÐ#˜dÒ#Ð#r   c                 ó.   — |d   � | j                   |Ž  yy )NéÿÿÿÿT©r-   )r5   Ústuffs     r   Úconditional_writez!SourceGenerator.conditional_writeÔ   s"   € Ø�‰9Ð ØˆD�J‰J˜Ñàð !r   Nc                 óª   — t        | j                  d|z   «      | _        |�3| j                  r&| j                  d|j                  z  «       d| _        y y y )Nr   z
# line: %s)ÚmaxrJ   r   r-   Úlineno)r5   r   Úextras      r   ÚnewlinezSourceGenerator.newlineÚ   sJ   € Ü˜TŸ^™^¨Q°©YÓ7ˆŒØÐ × 9Ò 9Ø�J‰J�| d§k¡kÑ1Ô2ØˆD�Nð !:Ðr   c                 óv   — | xj                   dz  c_          | j                  |Ž  | xj                   dz  c_         y ©Nr   )rL   r-   )r5   Ú
statementss     r   ÚbodyzSourceGenerator.bodyà   s2   € Ø×Ò˜AÑÕØˆ�
‰
�JÑØ×Ò˜AÑÖr   c                 ód   — |r.| j                  | j                  d«       | j                  |«       y y )Nzelse:)r-   rk   ro   )r5   Úelsewhats     r   Ú	else_bodyzSourceGenerator.else_bodyå   s(   € ÙØ�J‰J�t—|‘| WÔ-Ø�I‰I�hÕð r   c                 óp   — | j                  |j                   «       | j                  |j                  «       y r=   )ro   rr   Úorelse©r5   r   s     r   Úbody_or_elsezSourceGenerator.body_or_elseê   s"   € Ø�	‰	�$—)‘)ÔØ�‰�t—{‘{Õ#r   c                 ó0  ‡ ‡‡— g Šˆ ˆfd„Šˆ ˆfd„}t        |dg «      }d}|rV|t        |j                  «      t        |j                  «      z
  z  } |||j                  d | «       ‰ j	                  ‰d«        ||j                  |j                  |d  «       ‰ j                  ‰d|j                  «       ‰ j                  |«      }|r1|j                  €‰ j	                  ‰d«        |||j                  «       ‰ j                  ‰d|j                  «       y )Nc                  óP   •— ‰r‰ j                  d«       y ‰j                  d«       y ©Nú, T©r-   r   )r5   Ú
want_commas   €€r   Úwrite_commaz4SourceGenerator.visit_arguments.<locals>.write_commañ   s    ø€ ÙØ—
‘
˜4Õ à×!Ñ! $Õ'r   c                 óæ   •— t        t        j                  |«       d gt        | «      t        |«      z
  z  }t	        | ||z   «      D ])  \  }}‰j                  ‰|«       ‰j                  d|«       Œ+ y )NÚ=)r&   r   ÚCommar.   Úzipr-   rf   )r7   r^   Úpaddingr:   rU   r5   r}   s        €€r   Ú	loop_argsz2SourceGenerator.visit_arguments.<locals>.loop_args÷   sd   ø€ Üœ:×+Ñ+¨XÔ6Ø�f¤ D£	¬C°«MÑ 9Ñ:ˆGÜ # D¨'°HÑ*<Ö =‘��WØ—
‘
˜;¨Ô,Ø×&Ñ& s¨GÕ4ñ !>r   Úposonlyargsr   Ú/Ú*ú**)
r[   r.   r^   r7   r-   rf   ÚvarargÚget_kwonlyargsÚkw_defaultsÚkwarg)r5   r   rƒ   r„   ÚoffsetÚ
kwonlyargsr|   r}   s   `     @@r   Úvisit_argumentszSourceGenerator.visit_argumentsî   sí   ú€ Øˆ
õ	(õ	5ô ˜d M°2Ó6ˆØˆÙØ”c˜$Ÿ-™-Ó(¬3¨t¯y©y«>Ñ9Ñ9ˆFÙ�k 4§=¡=°°&Ð#9Ô:Ø�J‰J�{ CÔ(á�$—)‘)˜TŸ]™]¨6¨7Ð3Ô4Ø×Ñ˜{¨C°·±Ô=à×(Ñ(¨Ó.ˆ
ÙØ�{‰{Ð"Ø—
‘
˜;¨Ô,Ù�j $×"2Ñ"2Ô3Ø×Ñ˜{¨D°$·*±*Õ=r   c                 óD   — | j                  |«        | j                  |Ž  y r=   )rk   r-   )r5   r   rM   Úkws       r   Ú	statementzSourceGenerator.statement  s   € Ø�‰�TÔØˆ�
‰
�FÒr   c                 óp   — | j                  |¬«       |j                  D ]  }| j                  |d|«       Œ y )N©rj   Ú@)rk   Údecorator_listr‘   )r5   r   rj   Ú	decorators       r   Ú
decoratorszSourceGenerator.decorators  s0   € Ø�‰˜5ˆÔ!Ø×,Ô,ˆIØ�N‰N˜9 c¨9Õ5ñ -r   c                 ó¾   — t        t        j                  g|¢­Ž  t        |«      D ]  \  }}| j	                  |rdnd|«       Œ | j	                  |rd«       y d«       y )Nrz   r   Ú,)r&   r   r€   Ú	enumerater-   )r5   ÚitemsÚtrailingÚidxrN   s        r   Ú
comma_listzSourceGenerator.comma_list  sM   € Ü”z×'Ñ'Ð0¨%Ó0Ü" 5Ö)‰IˆC�Ø�J‰J™s‘t¨¨DÕ1ð *à�
‰
™(�3Õ+¨Õ+r   c                 óä   — t        ||j                  g|j                  ¢­Ž  | j                  |«       |j                  D ]  }| j	                  |d«       Œ | j                  |j                  «       y )Nú = )r&   r!   Útargetsrk   r-   r   )r5   r   Útargets      r   Úvisit_AssignzSourceGenerator.visit_Assign   sQ   € Ü�t˜TŸZ™ZÐ7¨$¯,©,Ó7Ø�‰�TÔØ—l”lˆFØ�J‰J�v˜uÕ%ð #à�
‰
�4—:‘:Õr   c                 ó¾   — t        ||j                  |j                  «       | j                  ||j                  t	        |j
                  d«      |j                  «       y )Nz %s= )r&   r!   r¢   r‘   r   r9   ru   s     r   Úvisit_AugAssignzSourceGenerator.visit_AugAssign'  s>   € Ü�t˜TŸZ™Z¨¯©Ô5Ø�‰�t˜TŸ[™[¬-¸¿¹ÀÓ*IØ—z‘zõ	#r   c                 ó˜  — t        ||j                  |j                  «       t        t        j                  |j
                  «       t        |j                  t        j                  «      xr |j                   }|rdnd}|rdnd}| j                  |||j                  |d|j                  «       | j                  d|j
                  «       y )NÚ(r   Ú)ú: r    )r&   r¢   Ú
annotationr   r€   r!   r$   r,   ÚNameÚsimpler‘   rf   )r5   r   Úneed_parensÚbeginÚends        r   Úvisit_AnnAssignzSourceGenerator.visit_AnnAssign,  s�   € Ü�t˜TŸ[™[¨$¯/©/Ô:Ü”z×'Ñ'¨¯©Ô4Ü  §¡¬c¯h©hÓ7ÒKÀÇÁ¸OˆÙ"‘¨ˆÙ ‰c bˆØ�‰�t˜U D§K¡K°°d¸D¿O¹OÔLØ×Ñ˜u d§j¡jÕ1r   c                 óô   — | j                  |d|j                  dz  |j                  xs dd«       | j                  |j                  «       |j                  dk(  rdd„ |j                  D «       v rd| _        y y y )	Nzfrom Ú.r   z import Ú
__future__Úunicode_literalsc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr=   )r]   ©Ú.0Úxs     r   Ú	<genexpr>z3SourceGenerator.visit_ImportFrom.<locals>.<genexpr>:  s   è ø€ ð B,Ù *˜1�—•¡
ùó   ‚T)r‘   ÚlevelÚmodulerž   ÚnamesÚusing_unicode_literalsru   s     r   Úvisit_ImportFromz SourceGenerator.visit_ImportFrom5  sr   € Ø�‰�t˜W d§j¡j°3Ñ&6Ø—{‘{Ò( b¨*ô	6à�‰˜Ÿ
™
Ô#à�;‰;˜,Ò&Ð+=ñ B,Ø $§
¢
óB,ñ ,,à*.ˆDÕ'ð,,Ð&r   c                 ó^   — | j                  |d«       | j                  |j                  «       y )Nzimport )r‘   rž   r½   ru   s     r   Úvisit_ImportzSourceGenerator.visit_Import>  s    € Ø�‰�t˜YÔ'Ø�‰˜Ÿ
™
Õ#r   c                 ót   — t        ||j                  «       | j                  |«       | j                  |«       y r=   )r&   r!   r‘   Úgeneric_visitru   s     r   Ú
visit_ExprzSourceGenerator.visit_ExprB  s*   € Ü�t˜TŸZ™ZÔ(Ø�‰�tÔØ×Ñ˜4Õ r   c                 óÄ  — |rdnd}| j                  || j                  rdnd«       | j                  ||›d|j                  ›�d«       | j	                  |j
                  «       | j                  d«       | j                  d| j                  |«      «       | j                  d	«       | j                  |j                  «       | j                  s| j                  d¬
«       y y )Núasync r   r   é   zdef r§   r¨   z ->Ú:r“   )r—   rL   r‘   r]   rŽ   r7   r-   rf   Úget_returnsro   rk   ©r5   r   Úis_asyncÚprefixs       r   Úvisit_FunctionDefz!SourceGenerator.visit_FunctionDefG  s«   € Ù%‘¨2ˆØ�‰˜ 4×#3Ò#3™a¸Ô;Ø�‰�tª6°4·9²9Ð=¸sÔCØ×Ñ˜TŸY™YÔ'Ø�
‰
�3ŒØ×Ñ˜u d×&6Ñ&6°tÓ&<Ô=Ø�
‰
�3ŒØ�	‰	�$—)‘)ÔØ×ÒØ�L‰L˜qˆLÕ!ð  r   c                 ó*   — | j                  |d¬«       y ©NT)rË   )rÍ   ru   s     r   Úvisit_AsyncFunctionDefz&SourceGenerator.visit_AsyncFunctionDefT  s   € Ø×Ñ˜t¨dÐÕ3r   c                 óŽ  ‡ ‡— g Šˆˆ fd„}‰ j                  |d«       ‰ j                  |d|j                  z  «       |j                  D ]  }‰ j	                  ||«       Œ ‰ j                  |«      D ]<  }‰ j	                  ||j                  xs d|j                  rdnd|j                  «       Œ> ‰ j                  |d‰ j                  |«      «       ‰ j                  |d‰ j                  |«      «       ‰ j	                  ‰xr dxs d	«       ‰ j                  |j                  «       ‰ j                  s‰ j                  d¬
«       y y )Nc                  ór   •— ‰ r‰j                  d«       y ‰ j                  d«       ‰j                  d«       y )Nrz   Tr§   r{   )Ú	have_argsr5   s   €€r   Úparen_or_commaz6SourceGenerator.visit_ClassDef.<locals>.paren_or_commaZ  s+   ø€ ÙØ—
‘
˜4Õ à× Ñ  Ô&Ø—
‘
˜3•r   rÇ   zclass %sr   r   r‡   r†   z):rÈ   r“   )r—   r‘   r]   Úbasesr-   Úget_keywordsr:   r!   rf   Úget_starargsÚ
get_kwargsro   rL   rk   )r5   r   rÔ   ÚbaseÚkeywordrÓ   s   `    @r   Úvisit_ClassDefzSourceGenerator.visit_ClassDefW  s  ù€ Øˆ	õ	 ð 	�‰˜˜aÔ Ø�‰�t˜Z¨$¯)©)Ñ3Ô4Ø—J”JˆDØ�J‰J�~ tÕ,ð ð ×(Ñ(¨Ö.ˆGØ�J‰J�~ w§{¡{Ò'8°bØ%Ÿkšk‘s¨t°W·]±]õDð /ð 	×Ñ˜~¨s°D×4EÑ4EÀdÓ4KÔLØ×Ñ˜~¨t°T·_±_ÀTÓ5JÔKØ�
‰
�9Ò% Ò,¨Ô-Ø�	‰	�$—)‘)ÔØ×ÒØ�L‰L˜qˆLÕ!ð  r   c                 óô  — t        ||j                  «       | j                  |d|j                  d«       | j                  |j                  «       	 |j                  }t        |«      dk(  r|t        |d   t        j                  «      r_|d   }t        ||j                  «       | j                  | j                  d|j                  d«       | j                  |j                  «       n| j                  |«       y Œ©)Nzif rÈ   r   r   zelif )r&   Útestr‘   ro   rt   r.   r$   r,   ÚIfr-   rk   rr   )r5   r   Úelse_s      r   Úvisit_IfzSourceGenerator.visit_Ifp  s³   € Ü�t˜TŸY™YÔ'Ø�‰�t˜U D§I¡I¨sÔ3Ø�	‰	�$—)‘)ÔØØ—K‘KˆEÜ�5‹z˜QŠ¤:¨e°A©h¼¿¹Ô#?Ø˜Q‘x�Ü˜t T§Y¡YÔ/Ø—
‘
˜4Ÿ<™<¨°$·)±)¸SÔAØ—	‘	˜$Ÿ)™)Õ$à—‘˜uÔ%Øð r   c                 ó¸   — t        ||j                  «       |rdnd}| j                  |d|z  |j                  d|j                  d«       | j	                  |«       y )NrÆ   r   z%sfor ú in rÈ   )r&   r¢   r‘   Úiterrv   rÊ   s       r   Ú	visit_ForzSourceGenerator.visit_For  sM   € Ü�t˜TŸ[™[Ô)Ù%‘¨2ˆØ�‰�t˜X¨Ñ.Ø—{‘{ F¨D¯I©I°sô	<à×Ñ˜$Õr   c                 ó*   — | j                  |d¬«       y rÏ   )rä   ru   s     r   Úvisit_AsyncForzSourceGenerator.visit_AsyncFor‡  s   € Ø�‰�t dˆÕ+r   c                 óŽ   — t        ||j                  «       | j                  |d|j                  d«       | j                  |«       y )Nzwhile rÈ   )r&   rÝ   r‘   rv   ru   s     r   Úvisit_WhilezSourceGenerator.visit_WhileŠ  s4   € Ü�t˜TŸY™YÔ'Ø�‰�t˜X t§y¡y°#Ô6Ø×Ñ˜$Õr   c                 ó  — |rdnd}| j                  |d|z  «       t        |d«      r| j                  |«       n| j                  |j                  «       | j                  d«       | j                  |j                  «       y )NrÆ   r   z%swith Úcontext_exprrÈ   )r‘   ÚhasattrÚvisit_withitemrž   r›   r-   ro   rÊ   s       r   Ú
visit_WithzSourceGenerator.visit_With�  sa   € Ù%‘¨2ˆØ�‰�t˜Y¨Ñ/Ô0Ü�4˜Ô(Ø×Ñ Õ%à�O‰O˜DŸJ™JÔ'Ø�
‰
�3ŒØ�	‰	�$—)‘)Õr   c                 ó*   — | j                  |d¬«       y rÏ   )rí   ru   s     r   Úvisit_AsyncWithzSourceGenerator.visit_AsyncWithš  s   € Ø�‰˜ tˆÕ,r   c                 ór   — | j                  |j                  «       | j                  d|j                  «       y ©Nú as )r-   rê   rf   Úoptional_varsru   s     r   rì   zSourceGenerator.visit_withitemž  s*   € Ø�
‰
�4×$Ñ$Ô%Ø×Ñ˜v t×'9Ñ'9Õ:r   c                 óL   — | j                  t        |j                  «      «       y r=   )r-   Úreprr!   ru   s     r   Úvisit_NameConstantz"SourceGenerator.visit_NameConstant£  s   € Ø�
‰
”4˜Ÿ
™
Ó#Õ$r   c                 ó(   — | j                  |d«       y )NÚpass©r‘   ru   s     r   Ú
visit_PasszSourceGenerator.visit_Pass¦  s   € Ø�‰�t˜VÕ$r   c                 óè   — | j                  |d«       |j                  }|j                  �+| j                  d«       |j                  g|j                  z   }| j	                  ||j
                   «       y )Nzprint z >> )r‘   ÚvaluesÚdestr-   rž   Únl)r5   r   rü   s      r   Úvisit_PrintzSourceGenerator.visit_Print©  sW   € à�‰�t˜XÔ&Ø—‘ˆØ�9‰9Ð Ø�J‰J�vÔØ—i‘i�[ 4§;¡;Ñ.ˆFØ�‰˜ D§G¡G Õ,r   c                 ó^   — | j                  |d«       | j                  |j                  «       y )Nzdel )r‘   rž   r¡   ru   s     r   Úvisit_DeletezSourceGenerator.visit_Delete²  s    € Ø�‰�t˜VÔ$Ø�‰˜Ÿ™Õ%r   c                 óÆ   — | j                  |d«       | j                  |j                  «        | j                  |j                  Ž  | j	                  |j
                  «       y )Nútry:)r‘   ro   r-   Úhandlersrr   rt   ru   s     r   Úvisit_TryExceptzSourceGenerator.visit_TryExcept¶  sB   € Ø�‰�t˜VÔ$Ø�	‰	�$—)‘)ÔØˆ�
‰
�D—M‘MÑ"Ø�‰�t—{‘{Õ#r   c                 ó:  — | j                  |d«       | j                  |j                  «        | j                  |j                  Ž  | j	                  |j
                  «       |j                  r.| j                  |d«       | j                  |j                  «       y y ©Nr  zfinally:)r‘   ro   r-   r  rr   rt   Ú	finalbodyru   s     r   Ú	visit_TryzSourceGenerator.visit_Try½  sl   € Ø�‰�t˜VÔ$Ø�	‰	�$—)‘)ÔØˆ�
‰
�D—M‘MÑ"Ø�‰�t—{‘{Ô#Ø�>Š>Ø�N‰N˜4 Ô,Ø�I‰I�d—n‘nÕ%ð r   c                 óð   — | j                  |d«       | j                  d|j                  «      r| j                  d|j                  «       | j	                  d«       | j                  |j
                  «       y )NÚexceptÚ rò   rÈ   )r‘   rf   Útyper]   r-   ro   ru   s     r   Úvisit_ExceptHandlerz#SourceGenerator.visit_ExceptHandlerÆ  sS   € Ø�‰�t˜XÔ&Ø×!Ñ! # t§y¡yÔ1Ø×"Ñ" 6¨4¯9©9Ô5Ø�
‰
�3ŒØ�	‰	�$—)‘)Õr   c                 ó¸   — | j                  |d«       | j                  |j                  «       | j                  |d«       | j                  |j                  «       y r  )r‘   ro   r  ru   s     r   Úvisit_TryFinallyz SourceGenerator.visit_TryFinallyÍ  s>   € Ø�‰�t˜VÔ$Ø�	‰	�$—)‘)ÔØ�‰�t˜ZÔ(Ø�	‰	�$—.‘.Õ!r   c                 óà   — |j                   |j                  f}|d   €|d d d…   n|}| j                  |d|j                  «       | j	                  d|d   «       | j	                  d|d   «       y )Nr   rc   zexec râ   rz   r   )ÚglobalsÚlocalsr‘   ro   rf   )r5   r   Údictss      r   Ú
visit_ExeczSourceGenerator.visit_ExecÓ  sh   € Ø—‘˜dŸk™kÐ)ˆØ$ Q™xÐ/�‘d˜�d’°UˆØ�‰�t˜W d§i¡iÔ0Ø×Ñ˜v u¨Q¡xÔ0Ø×Ñ˜t U¨1¡XÕ.r   c                 ó¸   — t        ||j                  |j                  «       | j                  |d|j                  «       | j	                  d|j                  «       y )Nzassert rz   )r&   rÝ   Úmsgr‘   rf   ru   s     r   Úvisit_AssertzSourceGenerator.visit_AssertÚ  s>   € Ü�t˜TŸY™Y¨¯©Ô1Ø�‰�t˜Y¨¯	©	Ô2Ø×Ñ˜t T§X¡XÕ.r   c                 ó\   — | j                  |ddj                  |j                  «      «       y )Nzglobal rz   ©r‘   Újoinr½   ru   s     r   Úvisit_GlobalzSourceGenerator.visit_Globalß  s   € Ø�‰�t˜Y¨¯	©	°$·*±*Ó(=Õ>r   c                 ó\   — | j                  |ddj                  |j                  «      «       y )Nz	nonlocal rz   r  ru   s     r   Úvisit_NonlocalzSourceGenerator.visit_Nonlocalâ  s   € Ø�‰�t˜[¨$¯)©)°D·J±JÓ*?Õ@r   c                 óŒ   — t        ||j                  «       | j                  |d«       | j                  d|j                  «       y )NÚreturnr  )r&   r!   r‘   rf   ru   s     r   Úvisit_ReturnzSourceGenerator.visit_Returnå  s2   € Ü�t˜TŸZ™ZÔ(Ø�‰�t˜XÔ&Ø×Ñ˜s D§J¡JÕ/r   c                 ó(   — | j                  |d«       y )NÚbreakrù   ru   s     r   Úvisit_BreakzSourceGenerator.visit_Breakê  s   € Ø�‰�t˜WÕ%r   c                 ó(   — | j                  |d«       y )NÚcontinuerù   ru   s     r   Úvisit_ContinuezSourceGenerator.visit_Continueí  s   € Ø�‰�t˜ZÕ(r   c                 ó„  — | j                  |d«       | j                  d| j                  |«      «      r| j                  d|j                  «       y | j                  d| j	                  |«      «      rOt        ||j                  «       | j                  d|j                  «       | j                  d|j                  «       y y )NÚraiser  z from rz   )r‘   rf   Úget_excÚcauseÚget_typer&   ÚinstÚtbackru   s     r   Úvisit_RaisezSourceGenerator.visit_Raiseð  s‘   € à�‰�t˜WÔ%Ø×!Ñ! # t§|¡|°DÓ'9Ô:Ø×"Ñ" 8¨T¯Z©ZÕ8Ø×#Ñ# C¨¯©°tÓ)<Ô=Ü˜4 §¡Ô+Ø×"Ñ" 4¨¯©Ô3Ø×"Ñ" 4¨¯©Õ4ð >r   c                 óR   — | j                  |j                  d|j                  «       y )Nr²   )r-   r!   Úattrru   s     r   Úvisit_AttributezSourceGenerator.visit_Attributeü  s   € Ø�
‰
�4—:‘:˜s D§I¡IÕ.r   c                 ó¨  ‡‡— | j                   Šg Šˆˆfd„}|j                  }|j                  }| j                  |«      }| j	                  |«      } ||«       ||«      z   }||d uz  }||d uz  }|dkD  rt
        j                  nt
        j                  }	t        |	g|¢­Ž  | j                  |j                  «        ‰d«       |D ]  }
 ‰||
«       Œ t        t
        j                  gd„ |D «       ¢­Ž  |D ]+  }|j                  xs d}
 ‰||
|
rdnd|j                  «       Œ- | j                  |d|«       | j                  |d|«        ‰d	«       y )
Nc                  ó>   •— ‰ r	 ‰d«       y ‰ j                  d«       y ry   )r   )r|   r-   s   €€r   r}   z/SourceGenerator.visit_Call.<locals>.write_comma  s   ø€ ÙÙ�d•à×!Ñ! $Õ'r   r   r§   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr=   )r!   r¶   s     r   r¹   z-SourceGenerator.visit_Call.<locals>.<genexpr>  s   è ø€ Ð*E¹H°q¨1¯7­7¹Hùrº   r   r   r‡   r†   r¨   )r-   r7   rP   r×   rØ   r   r€   Úcall_one_argr&   r   Úfuncr:   r!   rf   )r5   r   r.   r}   r7   rP   ÚstarargsÚkwargsÚnumargsr1   r:   rÚ   r|   r-   s               @@r   Ú
visit_CallzSourceGenerator.visit_Callÿ  sA  ù€ Ø—
‘
ˆØˆ
õ	(ð �y‰yˆØ—=‘=ˆØ×$Ñ$ TÓ*ˆØ—‘ Ó&ˆÙ�d“)™c (›mÑ+ˆØ�8 4Ð'Ñ'ˆØ�6 Ð%Ñ%ˆØ '¨!¢ŒJ×Ò´×1HÑ1HˆÜ�qÐ ˜4Ó Ø�
‰
�4—9‘9ÔÙˆcŒ
ÛˆCÙ�+˜sÕ#ð ô 	”z×'Ñ'ÐFÑ*E¹HÓ*EÓFÛˆGð —+‘+Ò# ˆCÙ�+˜s©3¡C°D¸'¿-¹-ÕHð	  ð 	×Ñ˜{¨C°Ô:Ø×Ñ˜{¨D°&Ô9Ùˆc�
r   c                 ó:   — | j                  |j                  «       y r=   )r-   Úidru   s     r   Ú
visit_NamezSourceGenerator.visit_Name"  s   € Ø�
‰
�4—7‘7Õr   c                 ó„  — |j                   }t        |t        t        t        f«      r,| j                  |«      5  | j                  |«       d d d «       y t        |t        «      r| j                  ||j                   «       y |t        u r| j                  d«       y | j                  t        |«      «       y # 1 sw Y   y xY w©Nz...)r!   r$   ÚintÚfloatÚcomplexra   Ú_handle_numeric_constantÚstrÚ_handle_string_constantÚEllipsisr-   rõ   )r5   r   r!   s      r   Úvisit_ConstantzSourceGenerator.visit_Constant'  s‰   € Ø—
‘
ˆä�eœc¤5¬'Ð2Ô3Ø—‘˜dÕ#Ø×-Ñ-¨eÔ4÷ $Ð#ä˜œsÔ#Ø×(Ñ(¨¨t¯z©zÕ:Ø”hÑØ�J‰J�uÕà�J‰J”t˜E“{Õ#÷ $Ð#ús   ¹B6Â6B?c                 ó,   — | j                  |d d¬«       y )NT)Ú	is_joined)rF  ru   s     r   Úvisit_JoinedStrzSourceGenerator.visit_JoinedStr4  s   € Ø×$Ñ$ T¨4¸4Ð$Õ@r   c                 ó  ‡ ‡‡— ‰ j                  |«      }|t        j                  kD  |t        j                  k\  z   }‰ j	                  d«       ‰ j
                  }‰ j                  \  }}‰ j
                  |d  }	|r|	d   |d  |	d<   dj                  |	«      }	t        j                  dk\  Š|rPˆˆˆ fd„Št        |«      }
 ‰|«       ‰ j	                  d«       dj                  ||
d  «      }||
d …= ||f‰ _        d}n|€J d«       ‚|}‰ j                  }‰ j                  |||	|«      }|rd|z   }nt        |dd«      r|j                  |z   }‰ j	                  |«       |j                  d	«      d
z   }|rt        |«      d
z
  |f‰ _        y y )Nr   r   )é   é   c                 óˆ  •— | j                   D �]¤  }t        |t        j                  «      r<‰j	                  |j
                  j                  dd«      j                  dd«      «       ŒZt        |t        j                  «      rÛ‰j                  d«      5  t        |dd «      r‰j	                  |j                  «       n1t        ||j                  «       ‰j                  |j                  «       |j                  dk7  r'‰j	                  dt        |j                  «      z  «       |j                   �#‰j	                  d	«        ‰|j                   «       d d d «       �ŒO‰r7t        |t        j"                  «      r‰j	                  |j                  «       �Œˆt%        |«      j&                  }J d
|z  «       ‚ y # 1 sw Y   �Œ³xY w)NÚ{z{{Ú}z}}ú{}Ú	expr_textrc   z!%srÈ   z Invalid node %s inside JoinedStr)rü   r$   r,   ÚStrr-   ÚsÚreplaceÚFormattedValuera   r[   rS  r&   r!   r   Ú
conversionÚchrÚformat_specÚConstantr  rC   )r   r!   ÚkindÚhas_ast_constantÚrecurser5   s      €€€r   r^  z8SourceGenerator._handle_string_constant.<locals>.recurseU  s>  ø€ Ø!Ÿ[�[�EÜ! %¬¯©Ô1àŸ
™
 5§7¡7§?¡?°3¸Ó#=×#EÑ#EÀcÈ4Ó#PÕQÜ# E¬3×+=Ñ+=Ô>Ø!Ÿ\™\¨$Õ/ä& u¨k¸4Ô@Ø $§
¡
¨5¯?©?Õ ;ä .¨u°e·k±kÔ BØ $§
¡
¨5¯;©;Ô 7Ø$×/Ñ/°2Ò5Ø $§
¡
¨5´3°u×7GÑ7GÓ3HÑ+HÔ IØ$×0Ñ0Ð<Ø $§
¡
¨3¤Ù '¨×(9Ñ(9Ô :÷ 0Ñ/ñ *¬j¸ÄÇÁÔ.MØŸ
™
 5§;¡;Ö/ä# E›{×3Ñ3˜ØOÐ&HÈ4Ñ&OÓO˜uñ+ )÷
 0Ñ/ús   ÂC F7Æ7G	FzNode value cannot be NoneÚfr\  r   r   )r2   r   ÚExprÚAssignr-   r   rK   r  ÚsysÚversion_infor.   r¾   r   r[   r\  Úrfind)r5   r   r!   rJ  Ú
precedenceÚembeddedr   Ú	res_indexÚ	str_indexÚcurrent_liner/   ÚmystrÚuni_litÚlfr]  r^  s   `             @@r   rF  z'SourceGenerator._handle_string_constant7  s‘  ú€ ð —\‘\ $Ó'ˆ
Ø¤*§/¡/Ñ1Ø¤:×#4Ñ#4Ñ4ñ6ˆð
 	�
‰
�2ŒØ—‘ˆð  $Ÿ|™|Ñˆ	�9Ø—{‘{ 9 :Ð.ˆÙØ*¨1™o¨i¨jÐ9ˆL˜‰OØ—w‘w˜|Ó,ˆä×+Ñ+¨vÑ5Ðáö
Pô0 ˜“KˆEÙ�DŒMð �J‰J�rŒNØ—G‘G˜F 5 6˜NÓ+ˆEØ�u‘v�Ø$ iÐ/ˆDŒLØ‰Gð Ð$ÐAÐ&AÓAÐ$ØˆEØ×1Ñ1ˆGà×"Ñ" 5¨(°LÀ'ÓJˆáØ˜%‘K‰EÜ�T˜6 5Ô)à—I‘I Ñ%ˆEà�
‰
�5Ôà�[‰[˜Ó Ñ"ˆÙÜ˜v›;¨™?¨BÐ.ˆD�Lð r   c                 ó<   — | j                  ||j                  «       y r=   )rF  rU  ru   s     r   Ú	visit_StrzSourceGenerator.visit_Str‹  s   € Ø×$Ñ$ T¨4¯6©6Õ2r   c                 óL   — | j                  t        |j                  «      «       y r=   )r-   rõ   rU  ru   s     r   Úvisit_ByteszSourceGenerator.visit_Bytes�  s   € Ø�
‰
”4˜Ÿ™“<Õ r   c                 óT  — |}d„ } |t        |t        «      r|j                  n|d¬«      }t        |t        «      rZ ||j                  d¬«      }|j                  dk(  r|}n6|j                  dk(  rd|z  }n!d|›dd	g|j	                  d
«         ›|›d�}n|}| j                  |«       y )Nc                 óÐ   — |rdnd}	 t        j                  | «      r| dk  rd|z   S d|z   S t        j                  | «      r	d|›d|›d�S 	 t	        | «      |z   S # t        $ r Y Œw xY w)NÚjr   r   z-1e1000Ú1e1000z(1e1000r¨   )ÚmathÚisinfÚisnanÚOverflowErrorrõ   )r1   Ú	imaginaryrU  s      r   Úpartz6SourceGenerator._handle_numeric_constant.<locals>.part•  sw   € á ‘ bˆAð
Ü—:‘:˜a”=Ø˜1’uØ(¨1™}Ð,Ø# a™<Ð'Ü—:‘:˜a•=Ú45²qÐ9Ð9ð !ô ˜“7˜Q‘;Ðøô	 !ò ñ ðús   ˆA §A ¬A Á	A%Á$A%F)ry  Tr   z(%s+0j)r§   Ú+r   Ú-r¨   )r$   rC  ÚrealÚimagrY   r-   )r5   r!   r¸   rz  r}  r~  rU  s          r   rD  z(SourceGenerator._handle_numeric_constant’  s�   € Øˆò	ñ  œj¨¬GÔ4�A—F’F¸!ÀuÔMˆÜ�aœÔ!Ù˜Ÿ™¨$Ô/ˆDØ�v‰v˜Š{Ø‘Ø—‘˜1’Ø Ñ$‘ð ñ #'¨¨b¨	°$·/±/À#Ó2FÒ(GÊÐN‘àˆAØ�
‰
�1�r   )rM  r   c                 ó¦  — | j                  |«      5 }| j                  |j                  «       |sŽ|j                  r‚t	        |j                  t
        «      s7|j                  dk  r(t        j                  dz   }|j                  |k7  |_        n1| j                  |«      }t	        |t        j                  «       |_        d d d «       y # 1 sw Y   y xY w)Nr   r   )ra   rD  Únr4   r$   rC  r   ÚPowr3   Ú	get__p_opr,   ÚUSub)r5   r   Únewr8   Úpow_lhsr9   s         r   Ú	visit_NumzSourceGenerator.visit_Num³  s˜   € ð �\‰\˜$Ô :Ø×)Ñ)¨$¯&©&Ô1ñ ˜:×-Ò-Ü! $§&¡&¬'Ô2°t·v±vÀ²zÜ(Ÿn™n¨qÑ0�GØ)3¯©¸'Ñ)A�JÕ&àŸ™¨Ó-�BÜ-7¸¼C¿H¹HÓ-EÐ)E�JÔ&÷!  ×Ñús   ’B,CÃCc                 óÎ   — | j                  |«      5 }|j                  }|j                  xr ||_        | j                  |t	        |«      dk(  «       d d d «       y # 1 sw Y   y xY wrm   )ra   Úeltsr4   rž   r.   )r5   r   r8   rˆ  s       r   Úvisit_TuplezSourceGenerator.visit_TupleÈ  sP   € Ø�\‰\˜$Ô :ð —9‘9ˆDØ!+×!3Ñ!3Ò!<¸ˆJÔØ�O‰O˜D¤# d£)¨q¡.Ô1÷  ×Ñús   ’A AÁA$c                 ó†   — | j                  d«      5  | j                  |j                  «       d d d «       y # 1 sw Y   y xY w©Nz[])ra   rž   rˆ  ru   s     r   Ú
visit_ListzSourceGenerator.visit_ListÑ  s*   € Ø�\‰\˜$ÕØ�O‰O˜DŸI™IÔ&÷  ×Ñúó	   ’7·A c                 óÂ   — |j                   r6| j                  d«      5  | j                  |j                   «       d d d «       y | j                  d«       y # 1 sw Y   y xY w)NrR  z{1}.__class__())rˆ  ra   rž   r-   ru   s     r   Ú	visit_SetzSourceGenerator.visit_SetÕ  sE   € Ø�9Š9Ø—‘˜dÕ#Ø—‘ §	¡	Ô*÷ $Ð#ð �J‰JÐ(Õ)÷ $Ð#ús   žAÁAc                 óB  — t        t        j                  g|j                  ¢­Ž  | j	                  d«      5  t        t        |j                  |j                  «      «      D ](  \  }\  }}| j                  |rdnd|r|nd|rdnd|«       Œ* 	 d d d «       y # 1 sw Y   y xY w)NrR  rz   r   r©   r‡   )	r&   r   r€   rü   ra   rš   r�   Úkeysr-   )r5   r   r�   Úkeyr!   s        r   Ú
visit_DictzSourceGenerator.visit_Dictß  s{   € Ü”z×'Ñ'Ð6¨$¯+©+Ó6Ø�\‰\˜$ÕÜ%.¬s°4·9±9¸d¿k¹kÓ/JÖ%KÑ!�‘\�c˜5Ø—
‘
¡3™4¨BÙ"%™3¨2Ù#&™4¨D°%õ9ñ &L÷  ×Ñús   ¶ABÂBc                 ó¤  — |j                   |j                  |j                  }}}| j                  ||«      5 }t	        |t
        j                  «      }|j                  }t        |rt        j                  dz   n||«       t        |rt        j                  n|dz   |«       | j                  |t        |d«      |«       d d d «       y # 1 sw Y   y xY w)Nr   ú %s )r9   ÚleftÚrightra   r$   r,   r�  r1   r&   r   ÚPowRHSr-   r   )r5   r   r9   r–  r—  r8   Úispowr1   s           r   Úvisit_BinOpzSourceGenerator.visit_BinOpç  s–   € ØŸ'™' 4§9¡9¨d¯j©j�%ˆDˆØ�\‰\˜$ Ô# zÜ˜r¤3§7¡7Ó+ˆEØ—‘ˆAÜ±5œJŸN™N¨QÒ.¸aÀÔFÜ±œ:×,Ò,¸AÀ¹EÀEÔJØ�J‰J�tœ]¨2¨vÓ6¸Ô>÷ $×#Ñ#ús   ·BCÃCc                 óH  — | j                  ||j                  «      5 }t        |j                  d«      }t        |j                  dz   g|j
                  ¢­Ž  t        |j
                  «      D ]  \  }}| j                  |xr |xs d|«       Œ! 	 d d d «       y # 1 sw Y   y xY w)Nr•  r   r   )ra   r9   r   r&   r1   rü   rš   r-   )r5   r   r8   r9   r�   r!   s         r   Úvisit_BoolOpzSourceGenerator.visit_BoolOpð  sz   € Ø�\‰\˜$ §¡Ô(¨JÜ˜tŸw™w¨Ó/ˆBÜ˜:Ÿ<™<¨!Ñ+Ð:¨d¯k©kÓ:Ü'¨¯©Ö4‘
��UØ—
‘
˜3š: 2Ò+¨¨UÕ3ñ 5÷ )×(Ñ(ús   �A1BÂB!c                 óˆ  — | j                  ||j                  d   «      5 }t        |j                  dz   |j                  g|j
                  ¢­Ž  | j                  |j                  «       t        |j                  |j
                  «      D ]!  \  }}| j                  t        |d«      |«       Œ# 	 d d d «       y # 1 sw Y   y xY w)Nr   r   r•  )
ra   Úopsr&   r1   r–  Úcomparatorsr   r�   r-   r   )r5   r   r8   r9   r—  s        r   Úvisit_ComparezSourceGenerator.visit_Compare÷  sŒ   € Ø�\‰\˜$ §¡¨¡Ô,°
Ü˜:Ÿ<™<¨!Ñ+¨T¯Y©YÐJ¸×9IÑ9IÓJØ�J‰J�t—y‘yÔ!Ü  §¡¨4×+;Ñ+;Ö<‘	��EØ—
‘
œ=¨¨VÓ4°eÕ<ñ =÷ -×,Ñ,ús    BB8Â8Cc                 ó"  — | j                  |«      5 }|j                  }t        ||j                  «       t        |dz   |j                  «       d|_        | j                  |j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)Nr   Fz := )ra   r1   r&   r¢   r!   r4   r-   )r5   r   r8   r1   s       r   Úvisit_NamedExprzSourceGenerator.visit_NamedExprÿ  sg   € Ø�\‰\˜$Ô :Ø—‘ˆAÜ˜1˜dŸk™kÔ*Ü˜1˜q™5 $§*¡*Ô-ð "'ˆJÔØ�J‰J�t—{‘{ F¨D¯J©JÔ7÷  ×Ñús   ’A*BÂBc                 ód  — | j                  ||j                  «      5 }t        |j                  |j                  «       |j                  |j                  _        t        |j                  «      }| j                  ||j                  «       rdnd|j                  «       d d d «       y # 1 sw Y   y xY w)Nr  r   )	ra   r9   r&   r1   ÚoperandÚ_p_opr   r-   Úisalpha)r5   r   r8   Úsyms       r   Úvisit_UnaryOpzSourceGenerator.visit_UnaryOp  sr   € Ø�\‰\˜$ §¡Ô(¨JÜ˜:Ÿ<™<¨¯©Ô6ð
 "&§¡ˆD�L‰LÔÜ §¡Ó(ˆCØ�J‰J�s 3§;¡;¤=™C°b¸$¿,¹,ÔG÷ )×(Ñ(ús   �B B&Â&B/c                 ó€   — t        ||j                  «       | j                  |j                  d|j                  d«       y )NÚ[Ú])r&   Úslicer-   r!   ru   s     r   Úvisit_SubscriptzSourceGenerator.visit_Subscript  s*   € Ü�t˜TŸZ™ZÔ(Ø�
‰
�4—:‘:˜s D§J¡J°Õ4r   c                 óØ  — t        ||j                  |j                  |j                  «       | j	                  |j                  «       | j                  d«       | j	                  |j                  «       |j                  �k| j                  d«       t        |j                  t        j                  «      r|j                  j                  dk(  s| j                  |j                  «       y y y )NrÈ   ÚNone)r&   ÚlowerÚupperÚsteprf   r-   r$   r,   r«   r=  r   ru   s     r   Úvisit_SlicezSourceGenerator.visit_Slice  sœ   € Ü�t˜TŸZ™Z¨¯©°T·Y±YÔ?Ø×Ñ˜tŸz™zÔ*Ø�
‰
�3ŒØ×Ñ˜tŸz™zÔ*Ø�9‰9Ð Ø�J‰J�sŒOÜ˜tŸy™y¬#¯(©(Ô3Ø—I‘I—L‘L FÒ*Ø—
‘
˜4Ÿ9™9Õ%ð +ð !r   c                 óÆ   — | j                  |«      5 }t        |j                  |j                  «       | j	                  |j                  «       d d d «       y # 1 sw Y   y xY wr=   )ra   r&   r1   r!   r   ©r5   r   r8   s      r   Úvisit_IndexzSourceGenerator.visit_Index(  s>   € Ø�\‰\˜$Ô :Ü˜:Ÿ<™<¨¯©Ô4Ø�J‰J�t—z‘zÔ"÷  ×Ñús   ’<AÁA c                 óp   — |j                   }t        |g|¢­Ž  | j                  |t        |«      dk(  «       y rm   )Údimsr&   rž   r.   )r5   r   r¸  s      r   Úvisit_ExtSlicezSourceGenerator.visit_ExtSlice-  s.   € Ø�y‰yˆÜ�tÐ#˜dÓ#Ø�‰˜œc $›i¨1™nÕ-r   c                 óî   — | j                  |«      5  t        t        |«      dz   |j                  «       | j	                  d«       | j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)Nr   Úyieldr  )ra   r&   r   r!   r-   rf   ru   s     r   Úvisit_YieldzSourceGenerator.visit_Yield2  sS   € Ø�\‰\˜$ÕÜÔ,¨TÓ2°QÑ6¸¿
¹
ÔCØ�J‰J�wÔØ×"Ñ" 3¨¯
©
Ô3÷  ×Ñús   ’AA+Á+A4c                 óˆ   — | j                  |«      5  | j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)Nzyield from ©ra   r-   r!   ru   s     r   Úvisit_YieldFromzSourceGenerator.visit_YieldFrom9  s,   € Ø�\‰\˜$ÕØ�J‰J�} d§j¡jÔ1÷  ×Ñúó	   ’8¸Ac                 óˆ   — | j                  |«      5  | j                  d|j                  «       d d d «       y # 1 sw Y   y xY w)Nzawait r¾  ru   s     r   Úvisit_AwaitzSourceGenerator.visit_Await>  s,   € Ø�\‰\˜$ÕØ�J‰J�x §¡Ô,÷  ×ÑúrÀ  c                 ó   — | j                  |«      5 }t        |j                  |j                  «       | j	                  d«       | j                  |j                  «       | j	                  d|j                  «       d d d «       y # 1 sw Y   y xY w)Nzlambda r©   )ra   r&   r1   ro   r-   rŽ   r7   rµ  s      r   Úvisit_LambdazSourceGenerator.visit_LambdaB  s^   € Ø�\‰\˜$Ô :Ü˜:Ÿ<™<¨¯©Ô3Ø�J‰J�yÔ!Ø× Ñ  §¡Ô+Ø�J‰J�t˜TŸY™YÔ'÷	  ×Ñús   ’A)BÂBc                 ó&   — | j                  d«       y r@  rd   ru   s     r   Úvisit_EllipsiszSourceGenerator.visit_EllipsisI  s   € Ø�
‰
�5Õr   c                 óž   — | j                  d«      5   | j                  |j                  g|j                  ¢­Ž  d d d «       y # 1 sw Y   y xY wr‹  ©ra   r-   ÚeltÚ
generatorsru   s     r   Úvisit_ListCompzSourceGenerator.visit_ListCompL  ó5   € Ø�\‰\˜$ÕØˆD�J‰J�t—x‘xÐ2 $§/¡/Ó2÷  ×Ñúó   ’(AÁAc                 ó.  — | j                  |«      5 }|j                  t        j                  k(  rd|_        t        t        j                  |j                  «        | j                  |j                  g|j                  ¢­Ž  d d d «       y # 1 sw Y   y xY w)NT)
ra   r3   r   r6  r4   r&   r€   rÉ  r-   rÊ  rµ  s      r   Úvisit_GeneratorExpz"SourceGenerator.visit_GeneratorExpP  se   € Ø�\‰\˜$Ô :Ø�}‰}¤
× 7Ñ 7Ò7Ø%)�
Ô"Üœ:×+Ñ+¨T¯X©XÔ6ØˆD�J‰J�t—x‘xÐ2 $§/¡/Ó2÷	  ×Ñús   ’A0BÂBc                 óž   — | j                  d«      5   | j                  |j                  g|j                  ¢­Ž  d d d «       y # 1 sw Y   y xY w)NrR  rÈ  ru   s     r   Úvisit_SetCompzSourceGenerator.visit_SetCompW  rÌ  rÍ  c                 ó¶   — | j                  d«      5   | j                  |j                  d|j                  g|j                  ¢­Ž  d d d «       y # 1 sw Y   y xY w)NrR  r©   )ra   r-   r’  r!   rÊ  ru   s     r   Úvisit_DictCompzSourceGenerator.visit_DictComp[  s=   € Ø�\‰\˜$ÕØˆD�J‰J�t—x‘x  t§z¡zÐD°D·O±OÓD÷  ×Ñús   ’4AÁAc                 óR  — | j                  |«      5 }t        |j                  dz   |j                  |j                  «       t        |j                  |j
                  «       | j                  |j                  d|j                  d|j
                  «       d d d «       y # 1 sw Y   y xY w)Nr   ú if z else )ra   r&   r1   ro   rÝ   rt   r-   rµ  s      r   Úvisit_IfExpzSourceGenerator.visit_IfExp_  sk   € Ø�\‰\˜$Ô :Ü˜:Ÿ<™<¨!Ñ+¨T¯Y©Y¸¿	¹	ÔBÜ˜:Ÿ<™<¨¯©Ô5Ø�J‰J�t—y‘y &¨$¯)©)°X¸t¿{¹{ÔK÷  ×Ñús   ’BBÂB&c                 ó<   — | j                  d|j                  «       y )Nr†   )r-   r!   ru   s     r   Úvisit_StarredzSourceGenerator.visit_Starrede  s   € Ø�
‰
�3˜Ÿ
™
Õ#r   c                 ó†   — | j                  d«      5  | j                  |j                  «       d d d «       y # 1 sw Y   y xY w)Nz``)ra   r   r!   ru   s     r   Ú
visit_ReprzSourceGenerator.visit_Reprh  s*   € à�\‰\˜$ÕØ�J‰J�t—z‘zÔ"÷  ×Ñúr�  c                 ó6   —  | j                   |j                  Ž  y r=   )r-   ro   ru   s     r   Úvisit_ModulezSourceGenerator.visit_Modulem  s   € Øˆ�
‰
�D—I‘IÒr   c                 ó:   — | j                  |j                  «       y r=   )r   ro   ru   s     r   Úvisit_Expressionz SourceGenerator.visit_Expressionr  s   € Ø�
‰
�4—9‘9Õr   c                 ór   — | j                  |j                  «       | j                  d|j                  «       y )Nr©   )r-   r:   rf   rª   ru   s     r   Ú	visit_argzSourceGenerator.visit_argw  s&   € Ø�
‰
�4—8‘8ÔØ×Ñ˜t T§_¡_Õ5r   c                 ór   — | j                  |j                  «       | j                  d|j                  «       y rñ   )r-   r]   rf   Úasnameru   s     r   Úvisit_aliaszSourceGenerator.visit_alias{  s&   € Ø�
‰
�4—9‘9ÔØ×Ñ˜v t§{¡{Õ3r   c                 óN  — t        ||j                  g|j                  ¢­Ž  t        t        j                  |j
                  «       | j                  |«      rdnd}| j                  ||j
                  d|j                  «       |j                  D ]  }| j                  d|«       Œ y )Nz async for z for râ   rÕ  )r&   rã   Úifsr   Úcomprehension_targetr¢   Úget_is_asyncr-   )r5   r   ÚstmtÚif_s       r   Úvisit_comprehensionz#SourceGenerator.visit_comprehension  sw   € Ü�t˜TŸY™YÐ2¨¯©Ó2Ü”z×6Ñ6¸¿¹ÔDØ $× 1Ñ 1°$Ô 7‰}¸WˆØ�
‰
�4˜Ÿ™ f¨d¯i©iÔ8Ø—8”8ˆCØ�J‰J�v˜sÕ#ñ r   )Nr   )F)drC   rD   rE   rF   r¾   r   r.   r$   rO   r;   Údictr   ÚhighestÚgetr_   ra   rf   rk   ro   rr   rv   rŽ   r‘   r—   rž   r£   r¥   r°   r¿   rÁ   rÄ   rÍ   rÐ   rÛ   rà   rä   ræ   rè   rí   rï   rì   rö   rú   rÿ   r  r  r	  r  r  r  r  r  r  r!  r$  r'  r/  r2  r;  r>  rH  rK  rF  rn  rp  rD  rb  rc  r†  r‰  rŒ  r�  r“  rš  rœ  r   r¢  r¨  r­  r³  r¶  r¹  r¼  r¿  rÂ  rÄ  rÆ  rË  rÏ  rÑ  rÓ  rÖ  rØ  rÚ  rÜ  Úvisit_InteractiverÞ  rà  rã  rê  r'   r   r   r   r   �   s  „ ñð #Ðà9>Ø,à Z¸(ó$ñL *.°rØ"×*Ñ*ô*,ß,/©Cóò"$òóòò
 ò
$ò>òBò6ó
,òò#ò
2ò/ò$ò!ó

"ò4ò"ò2ó ò,ò ó
ò-ò;ò
%ò%ò-ò&ò$ò&òò"ò/ò/ò
?òAò0ò
&ò)ò5ò/ð $'ó !òFò
$òAóQ/òh3ò!òðF ×&Ñ&¨&Ñ0óFò*2ò'ò*ò9ò?ò4ò=ò8ò	Hò5ò	&ò#ò
.ò
4ò2ò
-ò(òò3ò3ò3òEòLò$ò#ò
ð %Ðòò
6ò4ó$r   r   )rF   r,   r   ru  rb  Úop_utilr   r   r   Ú	node_utilr   Ústring_reprr   Úsource_reprr	   r   r#   r$   r%   r(   r&   Úobjectr*   r   r'   r   r   Ú<module>rô     sx   ðñó$ Û Û Û 
ç AÑ AÝ *Ý &Ý &ð !(¸eØ)¸Ø%)ó$+ðN Ÿ'™'Ð5FØ!+°$óñ. #Ó$€ô,(ˆfô ,(ô^v$Ð)õ v$r   