Ë
    pPêjÙr  ã                  ó  — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZe ddlfmgZg ddlhmiZimjZjmkZk dd	llmmZm dd
lnmoZo  G d„ deoe7   «      Zp G d„ deg«      Zqy)z{Base visitor that implements an identity AST transform.

Subclass TransformVisitor to perform non-trivial transformations.
é    )Úannotations)ÚIterable)Úcast)TÚGDEFÚREVEAL_TYPEÚArgumentÚ
AssertStmtÚAssertTypeExprÚAssignmentExprÚAssignmentStmtÚ	AwaitExprÚBlockÚ	BreakStmtÚ	BytesExprÚCallExprÚCastExprÚClassDefÚComparisonExprÚComplexExprÚConditionalExprÚContinueStmtÚ	DecoratorÚDelStmtÚDictExprÚDictionaryComprehensionÚEllipsisExprÚEnumCallExprÚ
ExpressionÚExpressionStmtÚ	FloatExprÚForStmtÚFuncDefÚFuncItemÚGeneratorExprÚ
GlobalDeclÚIfStmtÚImportÚ	ImportAllÚ
ImportFromÚ	IndexExprÚIntExprÚ
LambdaExprÚListComprehensionÚListExprÚ	MatchStmtÚ
MemberExprÚMypyFileÚNamedTupleExprÚNameExprÚNewTypeExprÚNodeÚNonlocalDeclÚOperatorAssignmentStmtÚOpExprÚOverloadedFuncDefÚOverloadPartÚParamSpecExprÚPassStmtÚPromoteExprÚ	RaiseStmtÚRefExprÚ
ReturnStmtÚ
RevealExprÚSetComprehensionÚSetExprÚ	SliceExprÚStarExprÚ	StatementÚStrExprÚ	SuperExprÚSymbolTableÚTemplateStrExprÚTempNodeÚTryStmtÚ	TupleExprÚTypeAliasExprÚTypeApplicationÚTypedDictExprÚTypeFormExprÚTypeVarExprÚTypeVarTupleExprÚ	UnaryExprÚVarÚ	WhileStmtÚWithStmtÚ	YieldExprÚYieldFromExpr)	Ú	AsPatternÚClassPatternÚConcretePatternÚMappingPatternÚ	OrPatternÚSequencePatternÚSingletonPatternÚStarredPatternÚValuePattern)ÚTraverserVisitor)ÚFunctionLikeÚ
ProperTypeÚType)Úreplace_object_state)ÚNodeVisitorc                  óx  — e Zd ZdZdmd„Zdnd„Zdod„Zdpd„Zdqd„Zdrd„Z	dsd„Z
dtd	„Zdud
„Zdvd„Zdwd„Zdxd„Zdyd„Zdzd„Zd{d„Zd|d„Zd}d„Zd~d„Zd~d„Z	 	 	 	 dd„Zd€d„Zd�d„Zd‚d„Zdƒd„Zd„d„Zd…d„Zd†d„Zd‡d„Zdˆd„Z d‰d„Z!dŠd „Z"d‹d!„Z#dŒd"„Z$d�d#„Z%dŽd$„Z&d�d%„Z'd�d&„Z(d‘d'„Z)d’d(„Z*d“d)„Z+d”d*„Z,d•d+„Z-d–d,„Z.d—d-„Z/d˜d.„Z0d™d/„Z1dšd0„Z2d›d1„Z3dœd2„Z4dœd3„Z5d�d4„Z6džd5„Z7dŸd6„Z8d d7„Z9d¡d8„Z:d¢d9„Z;d£d:„Z<d¤d;„Z=d¥d<„Z>d¦d=„Z?d§d>„Z@d¨d?„ZAd©d@„ZBdªdA„ZCd«dB„ZDd¬dC„ZEd­dD„ZFd®dE„ZGd¯dF„ZHd°dG„ZId±dH„ZJd²dI„ZKd³dJ„ZLd´dK„ZM	 	 	 	 dµdL„ZNd¶dM„ZOd¶dN„ZPd·dO„ZQd¸dP„ZRd¹dQ„ZSdºdR„ZTd»dS„ZUd¼dT„ZVd½dU„ZWd¾dV„ZXd¿dW„ZYdÀdX„ZZdÁdY„Z[dÂdZ„Z\dÃd[„Z]dnd\„Z^dÄd]„Z_dÅd^„Z`dÆd_„ZadÇd`„ZbdÈda„ZcdÉdb„ZddÊdc„ZedËdd„Zf	 	 	 	 dÌde„ZgdÍdf„ZhdÎdg„ZidÏdh„ZjdÐdi„ZkdÑdj„ZldÒdk„Zmyl)ÓÚTransformVisitoraò  Transform a semantically analyzed AST (or subtree) to an identical copy.

    Use the node() method to transform an AST node.

    Subclass to perform a non-identity transform.

    Notes:

     * This can only be used to transform functions or classes, not top-level
       statements, and/or modules as a whole.
     * Do not duplicate TypeInfo nodes. This would generally not be desirable.
     * Only update some name binding cross-references, but only those that
       refer to Var, Decorator or FuncDef nodes, not those targeting ClassDef or
       TypeInfo nodes.
     * Types are not transformed, but you can override type() to also perform
       type transformation.

    TODO nested classes and functions have not been tested well enough
    c                ó.   — d| _         i | _        i | _        y )NF)Ú	test_onlyÚvar_mapÚfunc_placeholder_map)Úselfs    úW/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/treetransform.pyÚ__init__zTransformVisitor.__init__‡   s   € ð ˆŒð (*ˆŒð
 =?ˆÕ!ó    c                ót  — | j                   sJ d«       ‚|j                  j                  «       D ��ci c]  \  }}||j                  «       “Œ }}}t	        | j                  |j                  «      g |j                  |¬«      }|j                  |_        |j                  |_	        t        «       |_        |S c c}}w )Nz0This visitor should not be used for whole files.)Úignored_lines)rl   rt   ÚitemsÚcopyr1   Ú
statementsÚdefsÚis_bomÚ	_fullnameÚpathrI   Únames)ro   ÚnodeÚlineÚcodesrt   Únews         rp   Úvisit_mypy_filez TransformVisitor.visit_mypy_file”   s‘   € Ø�~Š~ÐQÐQÓQˆ~à?C×?QÑ?Q×?WÑ?WÓ?Y×Z±°°e˜˜uŸz™z›|Ñ+ÐZˆÑZÜ�t—‘ t§y¡yÓ1°2°t·{±{ÐR_Ô`ˆØŸ™ˆŒØ—9‘9ˆŒÜ“MˆŒ	Øˆ
ùó [s   ±B4c                óH   — t        |j                  j                  «       «      S ©N)r'   Úidsrv   ©ro   r}   s     rp   Úvisit_importzTransformVisitor.visit_importž   s   € Ü�d—h‘h—m‘m“oÓ&Ð&rr   c                ót   — t        |j                  |j                  |j                  j	                  «       «      S rƒ   )r)   ÚidÚrelativer|   rv   r…   s     rp   Úvisit_import_fromz"TransformVisitor.visit_import_from¡   s$   € Ü˜$Ÿ'™' 4§=¡=°$·*±*·/±/Ó2CÓDÐDrr   c                óB   — t        |j                  |j                  «      S rƒ   )r(   rˆ   r‰   r…   s     rp   Úvisit_import_allz!TransformVisitor.visit_import_all¤   s   € Ü˜Ÿ™ $§-¡-Ó0Ð0rr   c                ó²   — t        | j                  |j                  «      |j                  |j                  |j
                  «      }|j                  |«       |S rƒ   )r   Ú	visit_varÚvariableÚtype_annotationÚinitializerÚkindÚset_line)ro   ÚargumentÚargs      rp   Úcopy_argumentzTransformVisitor.copy_argument§   sJ   € ÜØ�N‰N˜8×,Ñ,Ó-Ø×$Ñ$Ø× Ñ Ø�M‰Mó	
ˆð 	�‰�XÔàˆ
rr   c                ó.  — t        | «      }|j                  j                  D ]  }|j                  |«       Œ t        |j                  |j
                  D �cg c]  }| j                  |«      ‘Œ c}| j                  |j                  «      t        t        d z  | j                  |j                  «      «      «      }| j                  ||«       |j                  |_        |j                  |_        |j                  |_        |j                   |_        |j"                  |_        |j$                  |_        |j&                  |_        |j(                  |_        |j*                  |_        || j,                  v r| j,                  |   }t/        ||«       |S |S c c}w rƒ   )ÚFuncMapInitializerÚbodyÚacceptr"   ÚnameÚ	argumentsr–   Úblockr   rd   Úoptional_typeÚtypeÚcopy_function_attributesrz   Úis_decoratedÚis_conditionalÚabstract_statusÚ	is_staticÚis_classÚis_propertyÚis_finalÚoriginal_defrn   rg   )ro   r}   ÚinitÚstmtr•   r€   Úresults          rp   Úvisit_func_defzTransformVisitor.visit_func_def´   sL  € ô " $Ó'ˆØ—I‘I—N‘Nò 	ˆDØ�K‰K˜Õð	ô Ø�I‰IØ04·±Ö?¨ˆT×Ñ Õ$Ò?Ø�J‰J�t—y‘yÓ!Ü” Ñ$ d×&8Ñ&8¸¿¹Ó&CÓDó	
ˆð 	×%Ñ% c¨4Ô0àŸ™ˆŒØ×,Ñ,ˆÔØ!×0Ñ0ˆÔØ"×2Ñ2ˆÔØŸ™ˆŒØ—}‘}ˆŒØ×*Ñ*ˆŒØ—}‘}ˆŒØ×,Ñ,ˆÔà�4×,Ñ,Ñ,ð
 ×.Ñ.¨tÑ4ˆFÜ  ¨Ô-ØˆMàˆJùò5 @s   ÁF
c           
     ó"  — t        |j                  D �cg c]  }| j                  |«      ‘Œ c}| j                  |j                  «      t        t        d z  | j                  |j                  «      «      «      }| j                  ||«       |S c c}w rƒ   )
r,   rœ   r–   r�   r™   r   rd   rž   rŸ   r    )ro   r}   r•   r€   s       rp   Úvisit_lambda_exprz"TransformVisitor.visit_lambda_exprà   st   € ÜØ04·±Ö?¨ˆT×Ñ Õ$Ò?Ø�J‰J�t—y‘yÓ!Ü” Ñ$ d×&8Ñ&8¸¿¹Ó&CÓDó
ˆð
 	×%Ñ% c¨4Ô0Øˆ
ùò @s   ”Bc                ó6  — |j                   |_         |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j
                  |_        |j                  |_        |j                  |_        |j                  |_        y rƒ   )	ÚinfoÚmin_argsÚmax_posÚis_overloadÚis_generatorÚis_coroutineÚis_async_generatorÚis_awaitable_coroutiner~   )ro   r€   Úoriginals      rp   r    z)TransformVisitor.copy_function_attributesé   sw   € Ø—=‘=ˆŒØ×(Ñ(ˆŒØ×&Ñ&ˆŒØ"×.Ñ.ˆŒØ#×0Ñ0ˆÔØ#×0Ñ0ˆÔØ!)×!<Ñ!<ˆÔØ%-×%DÑ%DˆÔ"Ø—=‘=ˆ�rr   c           	     ó˜  — |j                   D �cg c]!  }t        t        |j                  | «      «      ‘Œ# }}t	        ||j                   «      D ]  \  }}|j
                  |_        Œ t        |«      }|j                  |_        | j                  |j                  «      }t        |t        «      sJ ‚||_	        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                   |_        |j"                  r.t        t        |j"                  j                  | «      «      |_        |S c c}w rƒ   )ru   r   r:   rš   Úzipr~   r9   rz   rž   rŸ   Ú
isinstancere   r°   r¤   r¥   r¦   r§   Úimpl)ro   r}   Úitemru   ÚnewitemÚolditemr€   Únew_types           rp   Úvisit_overloaded_func_defz*TransformVisitor.visit_overloaded_func_defô   sû   € ØCGÇ:Á:ÖN¸4””l D§K¡K°Ó$5Õ6ÐNˆÐNÜ # E¨4¯:©:Ó 6ò 	(ÑˆG�WØ"Ÿ<™<ˆG�Lð	(ä Ó&ˆØŸ™ˆŒØ×%Ñ% d§i¡iÓ0ˆÜ˜(¤JÔ/Ð/Ð/ØˆŒØ—9‘9ˆŒØŸ™ˆŒØ—}‘}ˆŒØ×*Ñ*ˆŒØ—}‘}ˆŒØ�9Š9ÜœL¨$¯)©)×*:Ñ*:¸4Ó*@ÓAˆCŒHØˆ
ùò Os   �&Ec           	     ó  — |j                   j                  «       D ��cg c]  \  }}|| j                  |«      f‘Œ }}}t        |j                  | j                  |j                  «      |j                  | j                  |j                  «      | j                  |j                  «      |«      }|j                  |_        |j                  |_        |j                  D �cg c]  }| j                  |«      ‘Œ c}|_        |S c c}}w c c}w rƒ   )Úkeywordsru   Úexprr   r›   r�   rx   Ú	type_varsÚexpressionsÚbase_type_exprsÚoptional_exprÚ	metaclassÚfullnamer°   Ú
decorators)ro   r}   ÚkeyÚvaluerÃ   r€   Ú	decorators          rp   Úvisit_class_defz TransformVisitor.visit_class_def  sÍ   € Ø>B¿m¹m×>QÑ>QÓ>S×T±
°°U�S˜$Ÿ)™) EÓ*Ò+ÐTˆÑTÜØ�I‰IØ�J‰J�t—y‘yÓ!Ø�N‰NØ×Ñ˜T×1Ñ1Ó2Ø×Ñ˜tŸ~™~Ó.Øó
ˆð —}‘}ˆŒØ—9‘9ˆŒØ@DÇÁÖP°9˜$Ÿ)™) IÕ.ÒPˆŒØˆ
ùó Uùò Qs   žC?ÃDc                óH   — t        |j                  j                  «       «      S rƒ   )r%   r|   rv   r…   s     rp   Úvisit_global_declz"TransformVisitor.visit_global_decl  s   € Ü˜$Ÿ*™*Ÿ/™/Ó+Ó,Ð,rr   c                óH   — t        |j                  j                  «       «      S rƒ   )r6   r|   rv   r…   s     rp   Úvisit_nonlocal_declz$TransformVisitor.visit_nonlocal_decl  s   € Ü˜DŸJ™JŸO™OÓ-Ó.Ð.rr   c                ób   — t        | j                  |j                  «      |j                  ¬«      S )N)Úis_unreachable)r   rw   r™   rÕ   r…   s     rp   Úvisit_blockzTransformVisitor.visit_block  s"   € Ü�T—_‘_ T§Y¡YÓ/À×@SÑ@SÔTÐTrr   c                ó  — | j                  |j                  «      }|j                  j                  |_        t        || j	                  |j
                  «      | j                  |j                  «      «      }|j                  |_        |S rƒ   )	r¬   Úfuncr~   r   rÆ   rË   rŽ   Úvarr³   )ro   r}   rØ   r€   s       rp   Úvisit_decoratorz TransformVisitor.visit_decorator  sd   € à×"Ñ" 4§9¡9Ó-ˆØ—I‘I—N‘NˆŒ	Ü˜˜d×.Ñ.¨t¯©Ó?ÀÇÁÐPT×PXÑPXÓAYÓZˆØ×*Ñ*ˆŒØˆ
rr   c                ó˜  — || j                   v r| j                   |   S t        |j                  | j                  |j                  «      «      }|j
                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  |_	        |j                  |_
        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                  |_        |j                   |_        |j"                  |_        |j%                  |«       || j                   |<   |S rƒ   )rm   rU   r›   rž   rŸ   r~   rz   r°   Úis_selfÚis_readyÚis_initialized_in_classÚis_staticmethodÚis_classmethodr¦   r§   Úfinal_valueÚfinal_unset_in_classÚfinal_set_in_initr“   ©ro   r}   r€   s      rp   rŽ   zTransformVisitor.visit_var&  sý   € à�4—<‘<ÑØ—<‘< Ñ%Ð%Ü�$—)‘)˜T×/Ñ/°·	±	Ó:Ó;ˆØ—9‘9ˆŒØŸ™ˆŒØ—9‘9ˆŒØ—l‘lˆŒØ—}‘}ˆŒØ&*×&BÑ&BˆÔ#Ø"×2Ñ2ˆÔØ!×0Ñ0ˆÔØ×*Ñ*ˆŒØ—}‘}ˆŒØ×*Ñ*ˆŒØ#'×#<Ñ#<ˆÔ Ø $× 6Ñ 6ˆÔØ�‰�TÔØ ˆ�‰�TÑØˆ
rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )r   rÄ   r…   s     rp   Úvisit_expression_stmtz&TransformVisitor.visit_expression_stmt<  s   € Ü˜dŸi™i¨¯	©	Ó2Ó3Ð3rr   c                ó$   — | j                  |«      S rƒ   )Úduplicate_assignmentr…   s     rp   Úvisit_assignment_stmtz&TransformVisitor.visit_assignment_stmt?  s   € Ø×(Ñ(¨Ó.Ð.rr   c                ó:  — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      }|j                  |_        |j                  |_        | j                  |j                  «      |_	        |S rƒ   )
r   rÆ   ÚlvaluesrÄ   Úrvaluerž   Úunanalyzed_typer~   Úis_final_defrŸ   rä   s      rp   rè   z%TransformVisitor.duplicate_assignmentB  sx   € ÜØ×Ñ˜TŸ\™\Ó*Ø�I‰I�d—k‘kÓ"Ø×Ñ˜t×3Ñ3Ó4ó
ˆð
 —9‘9ˆŒØ×,Ñ,ˆÔØ×%Ñ% d§i¡iÓ0ˆŒØˆ
rr   c                ó”   — t        |j                  | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r7   ÚoprÄ   Úlvaluerì   r…   s     rp   Úvisit_operator_assignment_stmtz/TransformVisitor.visit_operator_assignment_stmtM  s4   € ô & d§g¡g¨t¯y©y¸¿¹Ó/EÀtÇyÁyÐQU×Q\ÑQ\ÓG]Ó^Ð^rr   c                ó²   — t        | j                  |j                  «      | j                  |j                  «      | j	                  |j
                  «      «      S rƒ   )rV   rÄ   r�   r™   Úoptional_blockÚ	else_bodyr…   s     rp   Úvisit_while_stmtz!TransformVisitor.visit_while_stmtR  s?   € ÜØ�I‰I�d—i‘iÓ  $§*¡*¨T¯Y©YÓ"7¸×9LÑ9LÈTÏ^É^Ó9\ó
ð 	
rr   c           	     ó€  — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      }|j                  |_	        | j                  |j                  «      |_
        |S rƒ   )r!   rÄ   Úindexr�   r™   rô   rõ   rž   Úunanalyzed_index_typeÚis_asyncÚ
index_typerä   s      rp   Úvisit_for_stmtzTransformVisitor.visit_for_stmtW  sŠ   € ÜØ�I‰I�d—j‘jÓ!Ø�I‰I�d—i‘iÓ Ø�J‰J�t—y‘yÓ!Ø×Ñ §¡Ó/Ø×Ñ˜t×9Ñ9Ó:ó
ˆð —}‘}ˆŒØ×+Ñ+¨D¯O©OÓ<ˆŒØˆ
rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )r@   rÈ   rÄ   r…   s     rp   Úvisit_return_stmtz"TransformVisitor.visit_return_stmtc  s   € Ü˜$×,Ñ,¨T¯Y©YÓ7Ó8Ð8rr   c                ó~   — t        | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r	   rÄ   rÈ   Úmsgr…   s     rp   Úvisit_assert_stmtz"TransformVisitor.visit_assert_stmtf  s+   € Ü˜$Ÿ)™) D§I¡IÓ.°×0BÑ0BÀ4Ç8Á8Ó0LÓMÐMrr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )r   rÄ   r…   s     rp   Úvisit_del_stmtzTransformVisitor.visit_del_stmti  s   € Ü�t—y‘y §¡Ó+Ó,Ð,rr   c                ó²   — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r&   rÆ   rÄ   Úblocksr™   rô   rõ   r…   s     rp   Úvisit_if_stmtzTransformVisitor.visit_if_stmtl  sC   € ÜØ×Ñ˜TŸY™YÓ'Ø�K‰K˜Ÿ	™	Ó"Ø×Ñ §¡Ó/ó
ð 	
rr   c                ó   — t        «       S rƒ   )r   r…   s     rp   Úvisit_break_stmtz!TransformVisitor.visit_break_stmts  s
   € Ü‹{Ðrr   c                ó   — t        «       S rƒ   )r   r…   s     rp   Úvisit_continue_stmtz$TransformVisitor.visit_continue_stmtv  ó
   € Ü‹~Ðrr   c                ó   — t        «       S rƒ   )r<   r…   s     rp   Úvisit_pass_stmtz TransformVisitor.visit_pass_stmty  s
   € Ü‹zÐrr   c                ó~   — t        | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r>   rÈ   rÄ   Ú	from_exprr…   s     rp   Úvisit_raise_stmtz!TransformVisitor.visit_raise_stmt|  s-   € Ü˜×+Ñ+¨D¯I©IÓ6¸×8JÑ8JÈ4Ï>É>Ó8ZÓ[Ð[rr   c           
     ót  — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      }|j                  |_        |S rƒ   )rL   r�   r™   Úoptional_namesÚvarsÚoptional_expressionsÚtypesr  Úhandlersrô   rõ   Úfinally_bodyÚis_starrä   s      rp   Úvisit_try_stmtzTransformVisitor.visit_try_stmt  sˆ   € ÜØ�J‰J�t—y‘yÓ!Ø×Ñ §	¡	Ó*Ø×%Ñ% d§j¡jÓ1Ø�K‰K˜Ÿ™Ó&Ø×Ñ §¡Ó/Ø×Ñ × 1Ñ 1Ó2ó
ˆð —l‘lˆŒØˆ
rr   c                ór  — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      }|j                  |_	        |j                  D �cg c]  }| j                  |«      ‘Œ c}|_
        |S c c}w rƒ   )rW   rÆ   rÄ   r  Útargetr�   r™   rž   rí   rú   Úanalyzed_typesrŸ   )ro   r}   r€   Útyps       rp   Úvisit_with_stmtz TransformVisitor.visit_with_stmt‹  s�   € ÜØ×Ñ˜TŸY™YÓ'Ø×%Ñ% d§k¡kÓ2Ø�J‰J�t—y‘yÓ!Ø×Ñ˜t×3Ñ3Ó4ó	
ˆð —}‘}ˆŒØ8<×8KÑ8KÖL°˜dŸi™i¨�nÒLˆÔØˆ
ùò Ms   ÂB4c                óÂ   — t        |j                  �| j                  |j                  «      nd |j                  � | j                  |j                  «      ¬«      S d ¬«      S )N)Úpatternr›   )rZ   r   r›   Úduplicate_name©ro   Úps     rp   Úvisit_as_patternz!TransformVisitor.visit_as_pattern–  sR   € ÜØ/0¯y©yÐ/D�D—L‘L §¡Ô+È$Ø01·±Ð0B�×$Ñ$ Q§V¡VÓ,ô
ð 	
àHLô
ð 	
rr   c                óp   — t        |j                  D �cg c]  }| j                  |«      ‘Œ c}«      S c c}w rƒ   )r^   Úpatternsr   ©ro   r#  Úpats      rp   Úvisit_or_patternz!TransformVisitor.visit_or_patternœ  s(   € Ü°q·z±zÖB°˜$Ÿ,™, sÕ+ÒBÓCÐCùÒBó   ”3c                óJ   — t        | j                  |j                  «      «      S rƒ   )rb   rÄ   r"  s     rp   Úvisit_value_patternz$TransformVisitor.visit_value_patternŸ  s   € Ü˜DŸI™I a§f¡fÓ-Ó.Ð.rr   c                ó,   — t        |j                  «      S rƒ   )r`   rÍ   r"  s     rp   Úvisit_singleton_patternz(TransformVisitor.visit_singleton_pattern¢  s   € Ü §¡Ó(Ð(rr   c                óp   — t        |j                  D �cg c]  }| j                  |«      ‘Œ c}«      S c c}w rƒ   )r_   r&  r   r'  s      rp   Úvisit_sequence_patternz'TransformVisitor.visit_sequence_pattern¥  s(   € Ü¸Q¿Z¹ZÖH°c §¡¨SÕ 1ÒHÓIÐIùÒHr*  c                ón   — t        |j                  �| j                  |j                  «      «      S d «      S rƒ   )ra   Úcapturer!  r"  s     rp   Úvisit_starred_patternz&TransformVisitor.visit_starred_pattern¨  s.   € ÜÀÇ	Á	Ð@U˜d×1Ñ1°!·)±)Ó<Ó`Ð`Ð[_Ó`Ð`rr   c           	     ó&  — t        |j                  D �cg c]  }| j                  |«      ‘Œ c}|j                  D �cg c]  }| j	                  |«      ‘Œ c}|j
                  � | j                  |j
                  «      ¬«      S d ¬«      S c c}w c c}w )N)ÚkeysÚvaluesÚrest)r]   r5  rÄ   r6  r   r7  r!  )ro   r#  rÄ   r(  s       rp   Úvisit_mapping_patternz&TransformVisitor.visit_mapping_pattern«  sv   € ÜØ./¯f©fÖ5 d�$—)‘)˜D•/Ò5Ø12·±Ö:¨#�D—L‘L Õ%Ò:Ø01·±Ð0B�×$Ñ$ Q§V¡VÓ,ô
ð 	
ð IMô
ð 	
ùÚ5ùÚ:s
   ”B	¼B
c                óP  — |j                   j                  | «      }t        |t        «      sJ ‚t	        ||j
                  D �cg c]  }| j                  |«      ‘Œ c}t        |j                  «      |j                  D �cg c]  }| j                  |«      ‘Œ c}¬«      S c c}w c c}w )N)Ú	class_refÚpositionalsÚkeyword_keysÚkeyword_values)
r:  rš   r»   r?   r[   r;  r   Úlistr<  r=  )ro   r#  r:  r(  s       rp   Úvisit_class_patternz$TransformVisitor.visit_class_pattern²  s€   € Ø—K‘K×&Ñ& tÓ,ˆ	Ü˜)¤WÔ-Ð-Ð-ÜØØ67·m±mÖD¨s˜Ÿ™ cÕ*ÒDÜ˜aŸn™nÓ-Ø9:×9IÑ9IÖJ°#˜DŸL™L¨Õ-ÒJô	
ð 	
ùâDùâJs   ÁB
Á>B#c           	     ó  — t        | j                  |j                  «      |j                  D �cg c]  }| j	                  |«      ‘Œ c}| j                  |j                  «      | j                  |j                  «      ¬«      S c c}w )N)Úsubjectr&  ÚguardsÚbodies)	r/   rÄ   rA  r&  r   r  rB  r  rC  )ro   Úor#  s      rp   Úvisit_match_stmtz!TransformVisitor.visit_match_stmt¼  s^   € ÜØ—I‘I˜aŸi™iÓ(Ø/0¯z©zÖ:¨!�d—l‘l 1•oÒ:Ø×,Ñ,¨Q¯X©XÓ6Ø—;‘;˜qŸx™xÓ(ô	
ð 	
ùâ:s   ®B
c                ó,   — t        |j                  «      S rƒ   )rE   rÄ   r…   s     rp   Úvisit_star_exprz TransformVisitor.visit_star_exprÄ  s   € Ü˜Ÿ	™	Ó"Ð"rr   c                ó,   — t        |j                  «      S rƒ   )r+   rÍ   r…   s     rp   Úvisit_int_exprzTransformVisitor.visit_int_exprÇ  ó   € Ü�t—z‘zÓ"Ð"rr   c                ó,   — t        |j                  «      S rƒ   )rG   rÍ   r…   s     rp   Úvisit_str_exprzTransformVisitor.visit_str_exprÊ  rJ  rr   c                ó,   — t        |j                  «      S rƒ   )r   rÍ   r…   s     rp   Úvisit_bytes_exprz!TransformVisitor.visit_bytes_exprÍ  ó   € Ü˜Ÿ™Ó$Ð$rr   c                ó,   — t        |j                  «      S rƒ   )r    rÍ   r…   s     rp   Úvisit_float_exprz!TransformVisitor.visit_float_exprÐ  rO  rr   c                ó,   — t        |j                  «      S rƒ   )r   rÍ   r…   s     rp   Úvisit_complex_exprz#TransformVisitor.visit_complex_exprÓ  s   € Ü˜4Ÿ:™:Ó&Ð&rr   c                ó   — t        «       S rƒ   )r   r…   s     rp   Úvisit_ellipsiszTransformVisitor.visit_ellipsisÖ  r  rr   c                ó$   — | j                  |«      S rƒ   ©r!  r…   s     rp   Úvisit_name_exprz TransformVisitor.visit_name_exprÙ  s   € Ø×"Ñ" 4Ó(Ð(rr   c                óv   — t        |j                  «      }| j                  ||«       |j                  |_        |S rƒ   )r3   r›   Úcopy_refÚis_special_formrä   s      rp   r!  zTransformVisitor.duplicate_nameÜ  s3   € ô �t—y‘yÓ!ˆØ�‰�c˜4Ô Ø"×2Ñ2ˆÔØˆ
rr   c                óÂ   — t        | j                  |j                  «      |j                  «      }|j                  r|j                  |_        | j	                  ||«       |S rƒ   )r0   rÄ   r›   Údef_varrZ  )ro   r}   Úmembers      rp   Úvisit_member_exprz"TransformVisitor.visit_member_exprä  sF   € Ü˜DŸI™I d§i¡iÓ0°$·)±)Ó<ˆØ�<Š<ð "Ÿ\™\ˆFŒNØ�‰�f˜dÔ#Øˆrr   c                óÌ  — |j                   |_         |j                  |_        |j                  }t        |t        «      r%|j                   t
        k7  rj| j                  |«      }nXt        |t        «      r| j                  |j                  «      }n,t        |t        «      r| j                  j                  ||«      }||_        |j                  |_        |j                  |_        y rƒ   )r’   rÊ   r}   r»   rU   r   rŽ   r   rÙ   r"   rn   ÚgetÚ
is_new_defÚis_inferred_def)ro   r€   r¸   r  s       rp   rZ  zTransformVisitor.copy_refí  s©   € Ø—=‘=ˆŒØ×(Ñ(ˆŒØ—‘ˆÜ�fœcÔ"ð �}‰}¤Ò$ØŸ™¨Ó/‘Ü˜¤	Ô*Ø—^‘^ F§J¡JÓ/‰FÜ˜¤Ô(à×.Ñ.×2Ñ2°6¸6ÓBˆFØˆŒØ!×,Ñ,ˆŒØ&×6Ñ6ˆÕrr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )rY   rÄ   r…   s     rp   Úvisit_yield_from_exprz&TransformVisitor.visit_yield_from_exprÿ  s   € Ü˜TŸY™Y t§y¡yÓ1Ó2Ð2rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )rX   rÈ   rÄ   r…   s     rp   Úvisit_yield_exprz!TransformVisitor.visit_yield_expr  s   € Ü˜×+Ñ+¨D¯I©IÓ6Ó7Ð7rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )r   rÄ   r…   s     rp   Úvisit_await_exprz!TransformVisitor.visit_await_expr  s   € Ü˜Ÿ™ 4§9¡9Ó-Ó.Ð.rr   c           	     ó  — t        | j                  |j                  «      | j                  |j                  «      |j
                  j                  «       |j                  j                  «       | j                  |j                  «      «      S rƒ   )
r   rÄ   ÚcalleerÆ   ÚargsÚ	arg_kindsrv   Ú	arg_namesrÈ   Úanalyzedr…   s     rp   Úvisit_call_exprz TransformVisitor.visit_call_expr  sc   € ÜØ�I‰I�d—k‘kÓ"Ø×Ñ˜TŸY™YÓ'Ø�N‰N×ÑÓ!Ø�N‰N×ÑÓ!Ø×Ñ˜tŸ}™}Ó-ó
ð 	
rr   c                ó.  — t        |j                  | j                  |j                  «      | j                  |j                  «      t        t        d z  | j                  |j                  «      «      «      }| j                  |j                  «      |_
        |S rƒ   )r8   rð   rÄ   ÚleftÚrightr   rN   rÈ   ro  rž   Úmethod_typerä   s      rp   Úvisit_op_exprzTransformVisitor.visit_op_expr  sp   € ÜØ�G‰GØ�I‰I�d—i‘iÓ Ø�I‰I�d—j‘jÓ!Ü” Ñ% t×'9Ñ'9¸$¿-¹-Ó'HÓIó	
ˆð ×,Ñ,¨T×-=Ñ-=Ó>ˆŒØˆ
rr   c                óÊ   — t        |j                  | j                  |j                  «      «      }|j                  D �cg c]  }| j                  |«      ‘Œ c}|_        |S c c}w rƒ   )r   Ú	operatorsrÆ   ÚoperandsÚmethod_typesrž   )ro   r}   r€   Úts       rp   Úvisit_comparison_exprz&TransformVisitor.visit_comparison_expr  sP   € Ü˜TŸ^™^¨T×-=Ñ-=¸d¿m¹mÓ-LÓMˆØ;?×;LÑ;LÖM°a˜D×.Ñ.¨qÕ1ÒMˆÔØˆ
ùò Ns   ¾A c                ó~   — t        | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r   rÄ   rŸ   r…   s     rp   Úvisit_cast_exprz TransformVisitor.visit_cast_expr   s)   € Ü˜Ÿ	™	 $§)¡)Ó,¨d¯i©i¸¿	¹	Ó.BÓCÐCrr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )rQ   rŸ   r…   s     rp   Úvisit_type_form_exprz%TransformVisitor.visit_type_form_expr#  s   € Ü˜DŸI™I d§i¡iÓ0Ó1Ð1rr   c                ó~   — t        | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r
   rÄ   rŸ   r…   s     rp   Úvisit_assert_type_exprz'TransformVisitor.visit_assert_type_expr&  s)   € Ü˜dŸi™i¨¯	©	Ó2°D·I±I¸d¿i¹iÓ4HÓIÐIrr   c                óœ   — |j                   t        k(  r8|j                  €J ‚t        t        | j                  |j                  «      ¬«      S |S )N)r’   rÄ   )r’   r   rÄ   rA   r…   s     rp   Úvisit_reveal_exprz"TransformVisitor.visit_reveal_expr)  s?   € Ø�9‰9œÒ#Ø—9‘9Ð(Ð(Ð(Ü¤;°T·Y±Y¸t¿y¹yÓ5IÔJÐJð ˆKrr   c                ó®   — | j                  |j                  «      }t        |t        «      sJ ‚t	        |j
                  |«      }|j                  |_        |S rƒ   )rÄ   Úcallr»   r   rH   r›   r°   )ro   r}   r…  r€   s       rp   Úvisit_super_exprz!TransformVisitor.visit_super_expr1  sD   € Ø�y‰y˜Ÿ™Ó#ˆÜ˜$¤Ô)Ð)Ð)Ü˜Ÿ	™	 4Ó(ˆØ—9‘9ˆŒØˆ
rr   c                ó~   — t        | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r   r!  r  rÄ   rÍ   r…   s     rp   Úvisit_assignment_exprz&TransformVisitor.visit_assignment_expr8  s+   € Ü˜d×1Ñ1°$·+±+Ó>ÀÇ	Á	È$Ï*É*Ó@UÓVÐVrr   c                ó¤   — t        |j                  | j                  |j                  «      «      }| j                  |j                  «      |_        |S rƒ   )rT   rð   rÄ   rž   rt  rä   s      rp   Úvisit_unary_exprz!TransformVisitor.visit_unary_expr;  s<   € Ü˜Ÿ™ §¡¨4¯9©9Ó!5Ó6ˆØ×,Ñ,¨T×-=Ñ-=Ó>ˆŒØˆ
rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )r.   rÆ   ru   r…   s     rp   Úvisit_list_exprz TransformVisitor.visit_list_expr@  s   € Ü˜×(Ñ(¨¯©Ó4Ó5Ð5rr   c           
     ó¦   — t        |j                  D ��cg c]+  \  }}|r| j                  |«      nd | j                  |«      f‘Œ- c}}«      S c c}}w rƒ   )r   ru   rÄ   )ro   r}   rÌ   rÍ   s       rp   Úvisit_dict_exprz TransformVisitor.visit_dict_exprC  sD   € ÜØSW×S]ÑS]×^ÁZÀSÈ%¡ˆd�i‰i˜Œn¨¨t¯y©y¸Ó/?Ò@Ó^ó
ð 	
ùÛ^s   •0A
c           	     ó  — g }|j                   D ]m  }t        |t        «      r;|\  }}}}|j                  | j	                  |«      ||| j                  |«      f«       ŒN|j                  | j	                  |«      «       Œo t        |«      S rƒ   )ru   r»   ÚtupleÚappendrÄ   rÈ   rJ   )ro   r}   ru   r½   rÍ   ÚsourceÚ
conversionÚformat_specs           rp   Úvisit_template_str_exprz(TransformVisitor.visit_template_str_exprH  s�   € ØZ\ˆØ—J‘Jò 	.ˆDÜ˜$¤Ô&Ø9=Ñ6��v˜z¨;Ø—‘Ø—Y‘Y˜uÓ% v¨z¸4×;MÑ;MÈkÓ;ZÐ[õð —‘˜TŸY™Y t›_Õ-ð	.ô ˜uÓ%Ð%rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )rM   rÆ   ru   r…   s     rp   Úvisit_tuple_exprz!TransformVisitor.visit_tuple_exprT  s   € Ü˜×)Ñ)¨$¯*©*Ó5Ó6Ð6rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )rC   rÆ   ru   r…   s     rp   Úvisit_set_exprzTransformVisitor.visit_set_exprW  s   € Ü�t×'Ñ'¨¯
©
Ó3Ó4Ð4rr   c                óò  — t        | j                  |j                  «      | j                  |j                  «      «      }|j                  r | j                  |j                  «      |_        |j                  r€t        |j                  t        «      r!| j                  |j                  «      |_        n | j                  |j                  «      |_        |j                  j                  |j                  «       |S rƒ   )r*   rÄ   Úbaserø   rt  rŸ   ro  r»   rO   Úvisit_type_applicationÚvisit_type_alias_exprr“   rä   s      rp   Úvisit_index_exprz!TransformVisitor.visit_index_exprZ  s£   € Ü˜Ÿ	™	 $§)¡)Ó,¨d¯i©i¸¿
¹
Ó.CÓDˆØ×ÒØ"Ÿi™i¨×(8Ñ(8Ó9ˆCŒOØ�=Š=Ü˜$Ÿ-™-¬Ô9Ø#×:Ñ:¸4¿=¹=ÓI�•à#×9Ñ9¸$¿-¹-ÓH�”Ø�L‰L×!Ñ! $§-¡-Ô0Øˆ
rr   c                ó~   — t        | j                  |j                  «      | j                  |j                  «      «      S rƒ   )rO   rÄ   r  r…   s     rp   rœ  z'TransformVisitor.visit_type_applicationf  s)   € Ü˜tŸy™y¨¯©Ó3°T·Z±ZÀÇ
Á
Ó5KÓLÐLrr   c                ó„   — | j                  |j                  «      }|j                  |j                  «       t        |«      S rƒ   )Úduplicate_generatorÚ	generatorr“   r-   ©ro   r}   r¢  s      rp   Úvisit_list_comprehensionz)TransformVisitor.visit_list_comprehensioni  s3   € Ø×,Ñ,¨T¯^©^Ó<ˆ	Ø×Ñ˜4Ÿ>™>Ô*Ü  Ó+Ð+rr   c                ó„   — | j                  |j                  «      }|j                  |j                  «       t        |«      S rƒ   )r¡  r¢  r“   rB   r£  s      rp   Úvisit_set_comprehensionz(TransformVisitor.visit_set_comprehensionn  s3   € Ø×,Ñ,¨T¯^©^Ó<ˆ	Ø×Ñ˜4Ÿ>™>Ô*Ü 	Ó*Ð*rr   c                óÎ  — t        | j                  |j                  «      | j                  |j                  «      |j
                  D �cg c]  }| j                  |«      ‘Œ c}|j                  D �cg c]  }| j                  |«      ‘Œ c}|j                  D ��cg c]!  }|D �cg c]  }| j                  |«      ‘Œ c}‘Œ# c}}|j                  «      S c c}w c c}w c c}w c c}}w rƒ   )	r   rÈ   rÌ   rÄ   rÍ   ÚindicesÚ	sequencesÚ	condlistsrú   ©ro   r}   rø   ÚsÚ
conditionsÚconds         rp   Úvisit_dictionary_comprehensionz/TransformVisitor.visit_dictionary_comprehensions  s¢   € ô 'Ø×Ñ˜tŸx™xÓ(Ø�I‰I�d—j‘jÓ!Ø+/¯<©<Ö8 %ˆT�Y‰Y�uÕÒ8Ø#'§>¡>Ö2˜aˆT�Y‰Y�q�\Ò2ØHLÏÉ×W¸*¨*Ö5 $ˆd�i‰i˜�oÔ5ÓWØ�M‰Mó
ð 	
ùò 9ùÚ2ùÚ5ùÓWs$   ÁCÁ0CÂ	C!Â"CÂ:C!ÃC!c                ó$   — | j                  |«      S rƒ   )r¡  r…   s     rp   Úvisit_generator_exprz%TransformVisitor.visit_generator_expr  s   € Ø×'Ñ'¨Ó-Ð-rr   c                óš  — t        | j                  |j                  «      |j                  D �cg c]  }| j                  |«      ‘Œ c}|j                  D �cg c]  }| j                  |«      ‘Œ c}|j
                  D ��cg c]!  }|D �cg c]  }| j                  |«      ‘Œ c}‘Œ# c}}|j                  «      S c c}w c c}w c c}w c c}}w rƒ   )r$   rÄ   Ú	left_exprr¨  r©  rª  rú   r«  s         rp   r¡  z$TransformVisitor.duplicate_generator‚  sŒ   € ÜØ�I‰I�d—n‘nÓ%Ø+/¯<©<Ö8 %ˆT�Y‰Y�uÕÒ8Ø#'§>¡>Ö2˜aˆT�Y‰Y�q�\Ò2ØHLÏÉ×W¸*¨*Ö5 $ˆd�i‰i˜�oÔ5ÓWØ�M‰Mó
ð 	
ùâ8ùÚ2ùÚ5ùÓWs#   ®B8
ÁB=Á?	CÂCÂ CÃCc                ó²   — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      S rƒ   )rD   rÈ   Úbegin_indexÚ	end_indexÚstrider…   s     rp   Úvisit_slice_exprz!TransformVisitor.visit_slice_expr‹  sG   € ÜØ×Ñ˜t×/Ñ/Ó0Ø×Ñ˜tŸ~™~Ó.Ø×Ñ˜tŸ{™{Ó+ó
ð 	
rr   c                ó²   — t        | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      «      S rƒ   )r   rÄ   r®  Úif_exprÚ	else_exprr…   s     rp   Úvisit_conditional_exprz'TransformVisitor.visit_conditional_expr’  s=   € ÜØ�I‰I�d—i‘iÓ  $§)¡)¨D¯L©LÓ"9¸4¿9¹9ÀTÇ^Á^Ó;Tó
ð 	
rr   c           	     óö   — t        |j                  |j                  | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      |j                  ¬«      S ©N)Úvariance)	rR   r›   rÊ   r  r6  rŸ   Úupper_boundÚdefaultr¿  r…   s     rp   Úvisit_type_var_exprz$TransformVisitor.visit_type_var_expr—  sV   € ÜØ�I‰IØ�M‰MØ�J‰J�t—{‘{Ó#Ø�I‰I�d×&Ñ&Ó'Ø�I‰I�d—l‘lÓ#Ø—]‘]ô
ð 	
rr   c                óÂ   — t        |j                  |j                  | j                  |j                  «      | j                  |j
                  «      |j                  ¬«      S r¾  )r;   r›   rÊ   rŸ   rÀ  rÁ  r¿  r…   s     rp   Úvisit_paramspec_exprz%TransformVisitor.visit_paramspec_expr¡  sF   € ÜØ�I‰IØ�M‰MØ�I‰I�d×&Ñ&Ó'Ø�I‰I�d—l‘lÓ#Ø—]‘]ô
ð 	
rr   c           	     óØ   — t        |j                  |j                  | j                  |j                  «      |j
                  | j                  |j                  «      |j                  ¬«      S r¾  )rS   r›   rÊ   rŸ   rÀ  Útuple_fallbackrÁ  r¿  r…   s     rp   Úvisit_type_var_tuple_exprz*TransformVisitor.visit_type_var_tuple_exprª  sO   € ÜØ�I‰IØ�M‰MØ�I‰I�d×&Ñ&Ó'Ø×ÑØ�I‰I�d—l‘lÓ#Ø—]‘]ô
ð 	
rr   c                ó,   — t        |j                  «      S rƒ   )rN   r}   r…   s     rp   r�  z&TransformVisitor.visit_type_alias_expr´  ó   € Ü˜TŸY™YÓ'Ð'rr   c                ó–   — t        |j                  |j                  |j                  |j                  ¬«      }|j
                  |_        |S )N)r~   Úcolumn)r4   r›   Úold_typer~   rË  r°   )ro   r}   Úress      rp   Úvisit_newtype_exprz#TransformVisitor.visit_newtype_expr·  s2   € Ü˜$Ÿ)™) T§]¡]¸¿¹È4Ï;É;ÔWˆØ—9‘9ˆŒØˆ
rr   c                ó,   — t        |j                  «      S rƒ   )r2   r°   r…   s     rp   Úvisit_namedtuple_exprz&TransformVisitor.visit_namedtuple_expr¼  s   € Ü˜dŸi™iÓ(Ð(rr   c                óX   — t        |j                  |j                  |j                  «      S rƒ   )r   r°   ru   r6  r…   s     rp   Úvisit_enum_call_exprz%TransformVisitor.visit_enum_call_expr¿  s   € Ü˜DŸI™I t§z¡z°4·;±;Ó?Ð?rr   c                ó,   — t        |j                  «      S rƒ   )rP   r°   r…   s     rp   Úvisit_typeddict_exprz%TransformVisitor.visit_typeddict_exprÂ  rÉ  rr   c                ó,   — t        |j                  «      S rƒ   )r=   rŸ   r…   s     rp   Úvisit__promote_exprz$TransformVisitor.visit__promote_exprÅ  s   € Ü˜4Ÿ9™9Ó%Ð%rr   c                óJ   — t        | j                  |j                  «      «      S rƒ   )rK   rŸ   r…   s     rp   Úvisit_temp_nodez TransformVisitor.visit_temp_nodeÈ  s   € Ü˜Ÿ	™	 $§)¡)Ó,Ó-Ð-rr   c                óJ   — |j                  | «      }|j                  |«       |S rƒ   )rš   r“   rä   s      rp   r}   zTransformVisitor.nodeË  s!   € Ø�k‰k˜$ÓˆØ�‰�TÔØˆ
rr   c                ón   — |j                  | «      }t        |t        «      sJ ‚|j                  |«       |S rƒ   )rš   r»   r1   r“   rä   s      rp   ÚmypyfilezTransformVisitor.mypyfileÐ  s1   € Ø�k‰k˜$ÓˆÜ˜#œxÔ(Ð(Ð(Ø�‰�TÔØˆ
rr   c                ón   — |j                  | «      }t        |t        «      sJ ‚|j                  |«       |S rƒ   )rš   r»   r   r“   )ro   rÄ   r€   s      rp   rÄ   zTransformVisitor.exprÖ  s1   € Ø�k‰k˜$ÓˆÜ˜#œzÔ*Ð*Ð*Ø�‰�TÔØˆ
rr   c                ón   — |j                  | «      }t        |t        «      sJ ‚|j                  |«       |S rƒ   )rš   r»   rF   r“   )ro   rª   r€   s      rp   rª   zTransformVisitor.stmtÜ  s1   € Ø�k‰k˜$ÓˆÜ˜#œyÔ)Ð)Ð)Ø�‰�TÔØˆ
rr   c                ón   — |j                  | «      }t        |t        «      sJ ‚|j                  |«       |S rƒ   )rš   r»   r\   r“   )ro   r   r€   s      rp   r   zTransformVisitor.patternâ  s1   € Ø�n‰n˜TÓ"ˆÜ˜#œÔ/Ð/Ð/Ø�‰�WÔØˆ
rr   c                ó*   — |r| j                  |«      S y rƒ   ©rÄ   )ro   rÄ   s     rp   rÈ   zTransformVisitor.optional_exprì  ó   € ÙØ—9‘9˜T“?Ð"àrr   c                óJ   — | j                  |«      }|j                  |_        |S rƒ   )rÖ   r~   )ro   r�   r€   s      rp   r�   zTransformVisitor.blockò  s"   € Ø×Ñ˜uÓ%ˆØ—:‘:ˆŒØˆ
rr   c                ó*   — |r| j                  |«      S y rƒ   ©r�   )ro   r�   s     rp   rô   zTransformVisitor.optional_block÷  s   € ÙØ—:‘:˜eÓ$Ð$àrr   c                óJ   — |D �cg c]  }| j                  |«      ‘Œ c}S c c}w rƒ   )rª   )ro   rw   rª   s      rp   rw   zTransformVisitor.statementsý  s   € Ø,6Ö7 D�—	‘	˜$•Ò7Ð7ùÒ7ó   … c                óJ   — |D �cg c]  }| j                  |«      ‘Œ c}S c c}w rƒ   rà  ©ro   rÆ   rÄ   s      rp   rÆ   zTransformVisitor.expressions   s   € Ø,7Ö8 D�—	‘	˜$•Ò8Ð8ùÒ8ræ  c                óJ   — |D �cg c]  }| j                  |«      ‘Œ c}S c c}w rƒ   )rÈ   rè  s      rp   r  z%TransformVisitor.optional_expressions  s$   € ð 6AÖA¨T�×"Ñ" 4Õ(ÒAÐAùÒAræ  c                óJ   — |D �cg c]  }| j                  |«      ‘Œ c}S c c}w rƒ   rä  )ro   r  r�   s      rp   r  zTransformVisitor.blocks  s   € Ø/5Ö6 e�—
‘
˜5Õ!Ò6Ð6ùÒ6ræ  c                óJ   — |D �cg c]  }| j                  |«      ‘Œ c}S c c}w rƒ   rW  )ro   r|   r›   s      rp   r|   zTransformVisitor.names  s!   € Ø6;Ö<¨d�×#Ñ# DÕ)Ò<Ð<ùÒ<ræ  c                ó€   — g }|D ]6  }|r!|j                  | j                  |«      «       Œ&|j                  d «       Œ8 |S rƒ   )r‘  r!  )ro   r|   r«   r›   s       rp   r  zTransformVisitor.optional_names  sC   € Ø(*ˆØò 	$ˆDÙØ—‘˜d×1Ñ1°$Ó7Õ8à—‘˜dÕ#ð		$ð
 ˆrr   c                ó   — |S rƒ   © ©ro   rŸ   s     rp   rŸ   zTransformVisitor.type  s   € àˆrr   c                ó*   — |r| j                  |«      S y rƒ   ©rŸ   rï  s     rp   rž   zTransformVisitor.optional_type  rá  rr   c                óJ   — |D �cg c]  }| j                  |«      ‘Œ c}S c c}w rƒ   rñ  )ro   r  rŸ   s      rp   r  zTransformVisitor.types!  s   € Ø,1Ö2 D�—	‘	˜$•Ò2Ð2ùÒ2ræ  N)ÚreturnÚNone)r}   r1   ró  r1   )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}   r9   ró  r9   )r}   r   ró  r   )r}   r%   ró  r%   )r}   r6   ró  r6   )r}   r   ró  r   )r}   r   ró  r   )r}   rU   ró  rU   )r}   r   ró  r   )r}   r   ró  r   )r}   r7   ró  r7   )r}   rV   ró  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>   )r}   rL   ró  rL   )r}   rW   ró  rW   )r#  rZ   ró  rZ   )r#  r^   ró  r^   )r#  rb   ró  rb   )r#  r`   ró  r`   )r#  r_   ró  r_   )r#  ra   ró  ra   )r#  r]   ró  r]   )r#  r[   ró  r[   )rD  r/   ró  r/   )r}   rE   ró  rE   )r}   r+   ró  r+   )r}   rG   ró  rG   )r}   r   ró  r   )r}   r    ró  r    )r}   r   ró  r   )r}   r   ró  r   )r}   r3   ró  r3   )r}   r0   ró  r0   )r€   r?   r¸   r?   ró  rô  )r}   rY   ró  rY   )r}   rX   ró  rX   )r}   r   ró  r   )r}   r   ró  r   )r}   r8   ró  r8   )r}   r   ró  r   )r}   r   ró  r   )r}   rQ   ró  rQ   )r}   r
   ró  r
   )r}   rA   ró  rA   )r}   rH   ró  rH   )r}   r   ró  r   )r}   rT   ró  rT   )r}   r.   ró  r.   )r}   r   ró  r   )r}   rJ   ró  rJ   )r}   rM   ró  rM   )r}   rC   ró  rC   )r}   r*   ró  r*   )r}   rO   ró  rO   )r}   r-   ró  r-   )r}   rB   ró  rB   )r}   r   ró  r   )r}   r$   ró  r$   )r}   rD   ró  rD   )r}   r   ró  r   )r}   rR   ró  rR   )r}   r;   ró  r;   )r}   rS   ró  rS   )r}   rN   ró  rN   )r}   r4   ró  r4   )r}   r2   ró  r2   )r}   r   ró  r   )r}   rP   ró  r5   )r}   r=   ró  r=   )r}   rK   ró  rK   )r}   r5   ró  r5   )rÄ   r   ró  r   )rª   rF   ró  rF   )r   r\   ró  r\   )rÄ   úExpression | Noneró  rõ  )r�   r   ró  r   )r�   úBlock | Noneró  rö  )rw   úlist[Statement]ró  r÷  )rÆ   úlist[Expression]ró  rø  )rÆ   zIterable[Expression | None]ró  zlist[Expression | None])r  úlist[Block]ró  rù  )r|   úlist[NameExpr]ró  rú  )r|   zIterable[NameExpr | None]ró  zlist[NameExpr | None])rŸ   rf   ró  rf   )rŸ   úType | Noneró  rû  )r  ú
list[Type]ró  rü  )nÚ__name__Ú
__module__Ú__qualname__Ú__doc__rq   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.  r0  r3  r8  r?  rE  rG  rI  rL  rN  rQ  rS  rU  rX  r!  r_  rZ  re  rg  ri  rp  ru  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ª   r   rÈ   r�   rô   rw   rÆ   r  r  r|   r  rŸ   rž   r  rî  rr   rp   rj   rj   r   s\  „ ñó(?óó'óEó1óó*óXó	!óó$ó-ó/óUóóó,4ó/ó	ð_Ø*ð_à	ó_ó

ó

ó9óNó-ó
óóóó\ó
ó	ó
óDó/ó)óJóaó
ó
ó
ó#ó#ó#ó%ó%ó'óó)óóó7ó$3ó8ó/ó
óóó
Dó2óJóóóWóó
6ó
ó

&ó7ó5ó
óMó,ó
+ð


Ø+ð

à	 ó

ó.ó
ó
ó
ó

ó
ó
ó(óó
)ó@ó(ó&ó.óó
óóóóóó
ó8ó9ðBØ6ðBà	 óBó
7ó=óóóô3rr   rj   c                  ó,   ‡ — e Zd ZdZdd„Zdˆ fd„Zˆ xZS )r˜   z—This traverser creates mappings from nested FuncDefs to placeholder FuncDefs.

    The placeholders will later be replaced with transformed nodes.
    c                ó   — || _         y rƒ   )Útransformer)ro   r  s     rp   rq   zFuncMapInitializer.__init__+  s
   € Ø&ˆÕrr   c                óÚ   •— || j                   j                  vrCt        |j                  |j                  |j
                  d «      | j                   j                  |<   t        ‰| �  |«       y rƒ   )r  rn   r"   r›   rœ   r™   Úsuperr¬   )ro   r}   Ú	__class__s     €rp   r¬   z!FuncMapInitializer.visit_func_def.  sV   ø€ Ø�t×'Ñ'×<Ñ<Ñ<ä:AØ—	‘	˜4Ÿ>™>¨4¯9©9°dó;ˆD×Ñ×1Ñ1°$Ñ7ô 	‰Ñ˜tÕ$rr   )r  rj   ró  rô  )r}   r"   ró  rô  )rý  rþ  rÿ  r   rq   r¬   Ú__classcell__)r  s   @rp   r˜   r˜   %  s   ø„ ñó
'÷%ñ %rr   r˜   N)rr   Ú
__future__r   Úcollections.abcr   Útypingr   Ú
mypy.nodesr   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*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   Úmypy.patternsrZ   r[   r\   r]   r^   r_   r`   ra   rb   Úmypy.traverserrc   Ú
mypy.typesrd   re   rf   Ú	mypy.utilrg   Úmypy.visitorrh   rj   r˜   rî  rr   rp   ú<module>r     sÛ   ðñõ
 #å $Ý ÷U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ U÷ Uó U÷l
÷ 
õ 
õ ,ß 5Ñ 5Ý *Ý $ôp
3�{ 4Ñ(ô p
3ôf%Ð)õ %rr   