Ë
    pPêj\Ü  ã                  óÚ  — U d Z ddlmZ ddlZddlmZmZ ddlm	Z	 ddl
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- ddl.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZH dd	lImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZS dd
lTmUZUmVZV ddlWmXZXmYZYmZZZm[Z[m\Z\ ddl]m^Z^ ddl_m`Z` ddlambZbmcZcmdZd ddlemfZf ddlgmhZhmiZimjZjmkZkmlZl ddlmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZw ddlxmyZymzZz ddl{m|Z|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ˆ ddl‰mŠZŠ eg df   Z‹eg eHf   ZŒdOd„Z�dPd„ZŽdQd„Z�dRd„Z�dRd„Z‘dSd„Z’dTd„Z“dUd„Z”dVd„Z•	 	 	 	 	 	 dWd „Z–	 	 	 	 	 	 dXd!„Z—	 	 	 	 	 	 dXd"„Z˜dYd#„Z™dZšd$e›d%<   dZœd$e›d&<   d'Z�d$e›d(<    G d)„ d*«      ZždZd+„ZŸ	 	 	 	 	 	 	 	 	 	 	 	 d[d,„Z 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d\d-„Z¡d]d.„Z¢d^d/„Z£d_d0„Z¤d`d1„Z¥dad2„Z¦dbd3„Z§dcd4„Z¨	 	 	 	 	 	 	 	 	 	 	 	 ddd5„Z©ded6„Zª	 	 	 	 	 	 	 	 	 	 	 	 dfd7„Z«	 	 	 	 	 	 	 	 	 	 	 	 	 	 dgd8„Z¬	 	 	 	 	 	 	 	 	 	 dhd9„Z­	 	 	 	 	 	 	 	 	 	 	 	 did:„Z®	 dj	 	 	 	 	 	 	 	 	 dkd;„Z¯	 dj	 	 	 	 	 	 	 	 	 dkd<„Z° G d=„ d>e�jb                  �jd                  «      Z³ded?„Z´dld@„Zµ	 	 	 	 	 	 	 	 	 	 	 	 	 	 dmdA„Z¶	 	 	 	 	 	 	 	 	 	 	 	 dndB„Z·dodC„Z¸dpdD„Z¹dqdE„ZºdrdF„Z»dsdG„Z¼	 	 	 	 	 	 	 	 	 	 dtdH„Z½dsdI„Z¾dudJ„Z¿dvdK„ZÀdwdL„ZÁdxdM„ZÂdydN„ZÃy)za  Transform mypy statement ASTs to mypyc IR (Intermediate Representation).

The top-level AST transformation logic is implemented in mypyc.irbuild.visitor
and mypyc.irbuild.builder.

A few statements are transformed in mypyc.irbuild.function (yield, for example).
é    )ÚannotationsN)ÚCallableÚSequence)ÚFinal)"Ú	ARG_NAMEDÚARG_POSÚ
AssertStmtÚAssignmentStmtÚ	AwaitExprÚBlockÚ	BreakStmtÚContinueStmtÚDelStmtÚ
ExpressionÚExpressionStmtÚForStmtÚIfStmtÚImportÚ	ImportAllÚ
ImportFromÚ	IndexExprÚListExprÚLvalueÚ	MatchStmtÚNameExprÚOperatorAssignmentStmtÚ	RaiseStmtÚ
ReturnStmtÚStarExprÚStrExprÚTempNodeÚTryStmtÚ	TupleExprÚTypeAliasStmtÚ	WhileStmtÚWithStmtÚ	YieldExprÚYieldFromExpr)ÚGENERATOR_HELPER_NAMEÚKEEP_ALIVE_SHORT_LIVEDÚKEEP_ALIVE_WHOLE_EXPRESSIONÚ$source_name_from_generator_attribute)Ú	ERR_NEVERÚNAMESPACE_MODULEÚNO_TRACEBACK_LINE_NOÚAssignÚ
BasicBlockÚBranchÚCallÚIntegerÚLoadAddressÚLoadErrorValueÚLoadLiteralÚ
LoadStaticÚ
MethodCallÚPrimitiveDescriptionÚRaiseStandardErrorÚRegisterÚReturnÚTupleGetÚUnborrowÚUnreachableÚValue)
Ú	RInstanceÚRTupleÚc_pointer_rprimitiveÚc_pyssize_t_rprimitiveÚ
exc_rtupleÚ	is_taggedÚlock_rprimitiveÚnone_rprimitiveÚobject_pointer_rprimitiveÚobject_rprimitive)Úis_borrow_friendly_exprÚprocess_conditional)Ú	IRBuilderÚcreate_type_paramsÚexpr_has_suspendÚfind_walrus_targetsÚint_borrow_friendly_op)Úfor_loop_helper)Ú-add_raise_exception_blocks_to_generator_class)ÚExceptNonlocalControlÚFinallyNonlocalControlÚTryFinallyNonlocalControl)Úapply_dunder_specialization)ÚAssignmentTargetÚAssignmentTargetAttrÚAssignmentTargetIndexÚAssignmentTargetRegisterÚAssignmentTargetTuple)
Úerror_catch_opÚexc_matches_opÚget_exc_info_opÚget_exc_value_opÚkeep_propagating_opÚno_err_occurred_opÚpropagate_if_error_opÚraise_exception_opÚreraise_exception_opÚrestore_exc_info_op)Úiter_opÚpy_delattr_op)Úlock_acquire_opÚlock_release_op)
Úcoro_opÚget_native_attrs_opÚ"import_cache_replace_for_import_opÚimport_from_many_opÚimport_many_opÚ	import_opÚsend_opÚ"set_type_alias_compute_function_opÚtype_opÚyield_from_except_opé   )ÚMatchVisitorc                ó¢  — |j                   si| j                  j                  d«       |j                  D ]$  }| j	                  |«       | j                  d   rŒ$ n | j                  j                  «        y |j                  rN| j                  t        t        j                  d|j                  «      «       | j                  t        «       «       y y )NTéÿÿÿÿz#Reached allegedly unreachable code!)Úis_unreachableÚblock_reachable_stackÚappendÚbodyÚacceptÚpopÚaddr;   ÚRUNTIME_ERRORÚliner@   )ÚbuilderÚblockÚstmts      ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/irbuild/statement.pyÚtransform_blockr‡   •   sª   € Ø×ÒØ×%Ñ%×,Ñ,¨TÔ2Ø—J‘Jò 	ˆDØ�N‰N˜4Ô Ø×0Ñ0°Ó4áð		ð
 	×%Ñ%×)Ñ)Õ+ð 
�ŠØ�‰ÜÜ"×0Ñ0Ð2WÐY^×YcÑYcóô	
ð
 	�‰”K“MÕ"ð 
ó    c                óð  — t        |j                  t        «      ry | xj                  dz  c_        t	        |j                  «      | _        t        |j                  «      | _        |j                  j                  | j                  «       | xj                  dz  c_        t        «       | _        d| _        | j                  |j                  t        ¬«       | j                  |j                  t        ¬«       y )Nrv   F)Úscope)Ú
isinstanceÚexprr    Úexpression_depthrQ   Úreassigned_in_exprrP   r~   ÚvisitorÚsetÚflush_keep_alivesr‚   r*   r+   )rƒ   r…   s     r†   Útransform_expression_stmtr’   ª   s±   € Ü�$—)‘)œWÔ%àð ×Ò Ñ!ÕÜ!4°T·Y±YÓ!?€GÔÜ/°·	±	Ó:€GÔØ‡I�I×Ñ�W—_‘_Ô%Ø×Ò Ñ!ÕÜ!$£€GÔØ$€GÔØ×Ñ˜dŸi™iÔ/EÐÔFØ×Ñ˜dŸi™iÔ/JÐÕKrˆ   c                ó0  — |j                   r| j                  |j                   «      }n| j                  j                  «       }| j	                  || j
                  d   |j                  «      }| j                  d   j                  | ||j                  «       y ©Nry   )	rŒ   r~   rƒ   ÚnoneÚcoerceÚ	ret_typesr‚   Únonlocal_controlÚ
gen_return)rƒ   r…   Úretvals      r†   Útransform_return_stmtr›   »   so   € Ø‡y‚yØ—‘ §	¡	Ó*‰à—‘×%Ñ%Ó'ˆØ�^‰^˜F G×$5Ñ$5°bÑ$9¸4¿9¹9ÓE€FØ×Ñ˜RÑ ×+Ñ+¨G°V¸T¿Y¹YÕGrˆ   c                ó¦  ‡— | j                   }|j                  j                  }|j                  dk7  st	        |«      dk(  ry | j                  «       }|�|j                  s|j                  sy |d   }dˆfd„Š ‰|j                  «      }|D ]C  }t        |t        «      sŒ|j                  |k(  sŒ$| j                  d|› d�|j                  «       ŒE y )NÚ__new__r   c                ó”   •— g }| D ]?  }t        |t        t        f«      r| ‰|j                  «      z  }Œ/|j	                  |«       ŒA |S ©N)r‹   r#   r   Úitemsr|   )ÚlvaluesÚflatÚlvalueÚflattens      €r†   r¤   z1check_unsupported_cls_assignment.<locals>.flattenÐ   sL   ø€ ØˆØò 	$ˆFÜ˜&¤9¬hÐ"7Ô8Ø™ §¡Ó-Ñ-‘à—‘˜FÕ#ð		$ð
 ˆrˆ   zAssignment to argument "z!" in "__new__" method unsupported)r¡   úlist[Expression]Úreturnr¥   )Úfn_infoÚfitemÚ	arg_namesÚnameÚlenÚget_current_class_irÚinherits_pythonÚis_ext_classr¡   r‹   r   Úerrorr‚   )	rƒ   r…   ÚfnÚmethod_argsÚirÚcls_argr¡   r£   r¤   s	           @r†   Ú check_unsupported_cls_assignmentr´   Ä   sÀ   ø€ Ø	�‰€BØ—(‘(×$Ñ$€KØ	‡w�w�)Òœs ;Ó/°1Ò4Øà	×	%Ñ	%Ó	'€BØ	€z�R×'Ò'¨r¯ªØà˜!‰n€Gõñ �d—l‘lÓ#€Gàò ˆÜ�fœhÕ'¨F¯K©K¸7Ó,Bð �M‰MØ*¨7¨)Ð3TÐUÐW[×W`ÑW`õñ	rˆ   c           
     óø  — |j                   }|sJ ‚| j                  ||j                  «       t        | |«       |d   }|j                  r7t        |j                  t        «      r| j                  ||j                  «       y t        |t        t        f«      �rZt        |j                  t        t        f«      �r9t        |j                  «      t        |j                  j                  «      k(  �rt        d„ |j                  D «       «      rçt        |«      dk(  rÙg }|j                  j                  D ]V  }| j                  |«      }t        |j                  «      }| j!                  |||j                  «       |j#                  |«       ŒX t%        |j                  |«      D ]3  \  }}| j                  |«      }	| j!                  |	||j                  «       Œ5 | j'                  |j                  «       y |j                  j                  }
| j                  |j                  «      }| j)                  «       r|j*                  r| j-                  ||«       t        |t        t        f«      �rut        |j                  t.        «      �rZt        |j                  j0                  «      t        |j                  «      k(  �r$t        |«      dk(  �rt        d„ |j                  D «       «      rùt3        d„ |j                  j0                  D «       «      rÓt        |j                  «      }t5        |«      D �cg c]  }| j7                  t9        ||d¬«      «      ‘Œ! }}| j:                  j=                  |g|
d¬«       t%        |j                  |«      D ]A  \  }}| j7                  t?        |«      «      }| j!                  | j                  |«      ||
«       ŒC | j'                  |
«       y |D ]”  }t        |t@        «      rMtC        | |jD                  |jF                  |j                  gd	|«      }|�| j'                  |j                  «       Œ`| j                  |«      }| j!                  |||
«       | j'                  |
«       Œ– y c c}w )
Nr   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrŸ   ©Úis_simple_lvalue©Ú.0Úitems     r†   ú	<genexpr>z,transform_assignment_stmt.<locals>.<genexpr>ö   ó   è ø€ ÒF¨4Ô  ×&ÑFùó   ‚rv   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrŸ   r·   r¹   s     r†   r¼   z,transform_assignment_stmt.<locals>.<genexpr>  r½   r¾   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrŸ   )Úis_refcounted)rº   Úts     r†   r¼   z,transform_assignment_stmt.<locals>.<genexpr>  s   è ø€ Ò? A�—•Ñ?ùs   ‚T)Úborrow)ÚstealÚ__setitem__)$r¡   Údisallow_class_assignmentsr‚   r´   Útyper‹   Úrvaluer!   Úget_assignment_targetr#   r   r«   r    Úallr~   r<   Úassignr|   Úzipr‘   Únon_function_scopeÚis_final_defÚinit_final_staticrC   ÚtypesÚanyÚranger€   r>   rƒ   Ú
keep_aliver?   r   rX   ÚbaseÚindex)rƒ   r…   r¡   Úfirst_lvalueÚtempsÚrightÚ
rvalue_regÚtempÚleftÚassignment_targetr‚   ÚnÚiÚborrowsÚlvalue_itemÚrvalue_itemr£   ÚspecializedÚtargets                      r†   Útransform_assignment_stmträ   ä   sŽ  € Ø�l‰l€GÙ€Nˆ7Ø×&Ñ& w°·	±	Ô:Ü$ W¨dÔ3Ø˜1‘:€LØ‡y‚y”Z §¡¬XÔ6ð 	×%Ñ% l°D·I±IÔ>Øô 	�<¤)¬XÐ!6Õ7Ü�t—{‘{¤Y´Ð$9Õ:Ü�×"Ñ"Ó#¤s¨4¯;©;×+<Ñ+<Ó'=Ó=ÜÑF°<×3EÑ3EÔFÔFÜ�‹L˜AÒàˆØ—[‘[×&Ñ&ò 	ˆEØ Ÿ™¨Ó.ˆJÜ˜JŸO™OÓ,ˆDØ�N‰N˜4 ¨T¯Y©YÔ7Ø�L‰L˜Õð		ô
 ˜l×0Ñ0°%Ó8ò 	?‰JˆD�$Ø '× =Ñ =¸dÓ CÐØ�N‰NÐ,¨d°D·I±IÕ>ð	?ð 	×!Ñ! $§)¡)Ô,Øà�;‰;×Ñ€DØ—‘ §¡Ó,€Jà×!Ñ!Ô#¨×(9Ò(9Ø×!Ñ! ,°
Ô;ô 	�<¤)¬XÐ!6Õ7Ü�z—‘¬Õ/Ü�
—‘×%Ñ%Ó&¬#¨l×.@Ñ.@Ó*AÓAÜ�‹L˜AÓÜÑF°<×3EÑ3EÔFÔFÜÑ?¨¯©×)>Ñ)>Ô?Ô?ä�×"Ñ"Ó#ˆÜNSÐTUËhÖWÈ�7—;‘;œx¨
°A¸dÔCÕDÐWˆÐWØ�‰×"Ñ" J <°¸TÐ"ÔBÜ(+¨L×,>Ñ,>ÀÓ(Hò 	ZÑ$ˆK˜Ø!Ÿ+™+¤h¨{Ó&;Ó<ˆKØ�N‰N˜7×8Ñ8¸ÓEÀ{ÐTXÕYð	Zð 	×!Ñ! $Ô'Øàò (ˆä�fœiÔ(Ü5Ø˜Ÿ™ v§|¡|°T·[±[Ð&AÀ=ÐRXóˆKð Ð&Ø×)Ñ)¨&¯+©+Ô6Øà×.Ñ.¨vÓ6ˆØ�‰�v˜z¨4Ô0Ø×!Ñ! $Õ'ñ(ùò Xs   Ì,$Q7c                ó:   — t        | t        t        t        f«       S rŸ   )r‹   r   r   r#   )rŒ   s    r†   r¸   r¸   ,  s   € Ü˜$¤¬8´YÐ ?Ó@Ð@Ð@rˆ   c                óÞ  — | j                  |j                  g|j                  «       t        | j	                  |j                  «      «      ret        | j	                  |j
                  «      «      rA|j                  t        v r/t        | |j
                  «      xr t        | |j                  «      }nd}| j                  |j                  «      }| j                  ||j                  |¬«      }| j                  |j
                  |¬«      }|j                  dz   }| j                  ||||j                  «      }| j                  |||j                  «       | j                  |j                  «       y)z,Operator assignment statement such as x += 1F)Ú
can_borrowú=N)rÆ   r£   r‚   rG   Ú	node_typerÈ   ÚoprR   rL   rÉ   Úreadr~   Ú	binary_oprË   r‘   )rƒ   r…   rç   rã   Útarget_valueÚrregrê   Úress           r†   Ú"transform_operator_assignment_stmtrð   0  s  € à×&Ñ&¨¯© }°d·i±iÔ@ä�'×#Ñ# D§K¡KÓ0Ô1Ü�g×'Ñ'¨¯©Ó4Ô5Ø�G‰GÔ-Ñ-ä,¨W°d·k±kÓBò 
ÔG^Ø�T—[‘[óH
‰
ð ˆ
Ø×*Ñ*¨4¯;©;Ó7€FØ—<‘< ¨¯	©	¸j�<ÓI€LØ�>‰>˜$Ÿ+™+°*ˆ>Ó=€Dà	�‰�3‰€BØ
×
Ñ
˜L¨$°°D·I±IÓ
>€Cð ‡N�N�6˜3 §¡Ô)Ø×Ñ˜cŸh™hÕ'rˆ   c                óJ   — |r| }|}||fS | j                  d«      d   x}}||fS )a¿  Compute names for updating the globals dict with the appropriate module.

    * For 'import foo.bar as baz' we add 'foo.bar' with the name 'baz'
    * For 'import foo.bar' we add 'foo' with the name 'foo'

    Typically we then ignore these entries and access things directly
    via the module static, but we will use the globals version for
    modules that mypy couldn't find, since it doesn't analyze module
    references from those properly.ú.r   )Úsplit)Ú	module_idÚas_nameÚ
globals_idÚglobals_names       r†   Úimport_globals_id_and_namerø   I  sC   € ñ Øˆ
Øˆð �|Ð#Ð#ð %.§O¡O°CÓ$8¸Ñ$;Ð;ˆ
�\à�|Ð#Ð#rˆ   c                óP  — |j                   ry |j                  s8|j                  D ��cg c]  \  }}|||j                  f‘Œ }}}t	        | |«       y || j
                  vry | j
                  |   }t        | |«      }|D ]   \  }}|rt	        | |«       Œt        | |«       Œ" y c c}}w rŸ   )Úis_mypy_onlyÚis_top_levelÚidsr‚   Ú"transform_imports_without_groupingÚmodule_import_groupsÚ'split_import_group_to_python_and_nativeÚ!transform_non_native_import_group)	rƒ   ÚnodeÚmod_idÚas_idÚgroupÚgroup_nodesÚ	subgroupsÚsubgroupÚ	is_natives	            r†   Útransform_importr	  \  s°   € Ø×ÒØð* ×Òð BFÇÁ×J±°¸�&˜% §¡Ò+ÐJˆÑJÜ*¨7°EÔ:Øà�7×/Ñ/Ñ/Øà×.Ñ.¨tÑ4€KÜ7¸ÀÓM€IØ(ò AÑˆ�)ÙÜ.¨w¸ÕAä-¨g°xÕ@ñ	Aùó Ks   ©B"c           
     óê  — g }|D ]W  }|j                   D ]F  \  }}|j                  |||j                  | j                  |«      xr | j	                  |«      f«       ŒH ŒY g }d}|t        |«      k  r}|}||   d   }	|dz  }|t        |«      k  r*||   d   |	k(  r|dz  }|t        |«      k  r||   d   |	k(  rŒ|j                  ||| D �
cg c]  }
|
dd ‘Œ	 c}
|	f«       |t        |«      k  rŒ}|S c c}
w )zPSplit imports into consecutive runs of native same-group and non-native imports.r   é   rv   N)rü   r|   r‚   Úis_native_moduleÚis_same_group_moduler«   )rƒ   r  Ú	flat_listÚimpr  rõ   ÚresultrÞ   Úi0r  rÂ   s              r†   rÿ   rÿ   †  s$  € ð €IØò 	ˆØ"Ÿw™wò 	‰OˆF�GØ×ÑàØØ—H‘HØ×,Ñ,¨VÓ4Ò]¸×9UÑ9UÐV\Ó9]ð	õñ	ð	ð €FØ	€AØ
Œc�)‹nÒ
ØˆØ˜a‘L ‘Oˆ	Ø	ˆQ‰ˆØ”#�i“.Ò  Y¨q¡\°!¡_¸	Ò%AØ�‰FˆAð ”#�i“.Ò  Y¨q¡\°!¡_¸	Ó%Aà�‰ y°°A Ö7 !˜˜"˜1šÒ7¸ÐCÔDð Œc�)‹nÓ
ð €Mùò 8s   Ã
C0c                ó  — | j                  «       }|D ]k  \  }}}| j                  ||«      }t        ||«      \  }}| j                  |«      }	|�||k(  r|n| j	                  ||«      }
| j                  |d|	|
gd |¬«       Œm y )NrÅ   ©Úresult_typer‚   )Úload_globals_dictÚ
gen_importrø   Úload_strÚ
get_moduleÚgen_method_call)rƒ   r  Úglobalsr  rõ   r‚   Úimportedrö   r÷   Úglobals_name_valueÚmodules              r†   rý   rý   ¡  s¬   € ð ×'Ñ'Ó)€GØ!&ò 
Ñˆ�˜Ø×%Ñ% f¨dÓ3ˆÜ#=¸fÀgÓ#NÑ ˆ
�LØ$×-Ñ-¨lÓ;Ðð Ð#¨
°fÒ(<ñ à×#Ñ# J°Ó5ð 	ð
 	×ÑØ�]Ð%7¸Ð$@ÈdÐY]ð 	 õ 	
ñ
rˆ   c           
     ó  — g }g }g }|r|d   d   nt         }|D ]—  \  }}}d| j                  |<   |j                  |gt        ||«      ¢­«       t	        t
        |t        ¬«      }	|j                  | j                  t        t        |	«      «      «       |j                  t        |t        «      «       Œ™ | j                  j                  t        ||«      }
| j                  j                  t        ||«      }| j                  t        | j                  t!        t#        |«      t
        «      «      |
| j%                  «       | j'                  | j(                  «      | j'                  | j*                  j,                  «      |gt         «       y)zFTransform a group of import statements that target non-native modules.r   é   N©Ú	namespace)r/   Úimportsr|   rø   r8   rK   r.   r€   r5   rD   r4   rE   rƒ   Úsetup_rarrayÚcall_crp   r7   Útupler  r  Úmodule_pathr§   rª   )rƒ   r  ÚmodulesÚstatic_ptrsÚ	mod_linesÚ
first_liner  rõ   r‚   Ú
mod_staticÚstatic_array_ptrÚimport_line_ptrs               r†   r   r   ³  sT  € ð €GØ€Kð €IÙ %��q‘˜!’Ô+?€JØ!&ò @Ñˆ�˜Ø"&ˆ�‰˜ÑØ�‰˜ÐMÔ!;¸FÀGÓ!LÑMÔNÜÔ 1°6ÔEUÔVˆ
Ø×Ñ˜7Ÿ;™;¤{Ô3GÈÓ'TÓUÔVØ×Ñœ Ô'=Ó>Õ?ð@ð —‘×3Ñ3Ô4HÈ+ÐWaÓbÐØ—o‘o×2Ñ2Ô3IÈ9ÐV`Óa€OØ‡N�NÜà�K‰Kœ¤E¨'£NÔ4EÓFÓGØØ×%Ñ%Ó'Ø×Ñ˜W×0Ñ0Ó1Ø×Ñ˜WŸ_™_×1Ñ1Ó2Øð	
ô 	õrˆ   c                óš  — |j                   ry | j                  | j                     }| j                  j	                  d«      r| j                  }n*|j
                  �|j
                  r|j
                  d   }nd}t        j                  j                  d|j                  z  |j                  z   |«      }d | j                  |<   |j                  D ��cg c]  \  }}|‘Œ	 }}}|j                  D ��cg c]  \  }}|xs |‘Œ }	}}| j                  |«      xr | j                  |«      }
t        | |||	|j                   |
«       y c c}}w c c}}w )Nz__init__.pyr   Ú rò   )rú   ÚgraphÚmodule_namer&  ÚendswithÚ	ancestorsÚ	importlibÚutilÚresolve_nameÚrelativeÚidr"  Únamesr  r  Útransform_import_from_bucketsr‚   )rƒ   r  Úmodule_stateÚmodule_packager8  rª   Ú_r9  rõ   Úas_namesÚparent_is_natives              r†   Útransform_import_fromr@  Õ  s  € Ø×ÒØà—=‘= ×!4Ñ!4Ñ5€LØ×Ñ×#Ñ# MÔ2Ø ×,Ñ,‰Ø	×	Ñ	Ð	+°×0FÒ0FØ%×/Ñ/°Ñ2‰àˆä	�‰×	$Ñ	$ S¨4¯=©=Ñ%8¸4¿7¹7Ñ%BÀNÓ	S€BØ€G‡O�O�BÑà!%§¡×,‘g�d˜AŠTÐ,€EÑ,Ø59·Z±Z×@¡M D¨'�’˜4‘Ð@€HÑ@à×/Ñ/°Ó3ÒX¸×8TÑ8TÐUWÓ8XÐÜ! '¨2¨u°hÀÇ	Á	ÐK[Õ\ùó	 -ùÛ@s   ÃEÃ/Er   ÚIMPORT_NATIVE_SUBMODULEÚIMPORT_NATIVE_ATTRr  ÚIMPORT_NON_NATIVEc                  ó   — e Zd Zdd„Zy)ÚImportFromBucketc                ó.   — || _         || _        || _        y rŸ   )Úkindr9  r>  )ÚselfrG  r9  r>  s       r†   Ú__init__zImportFromBucket.__init__ò  s   € ØˆŒ	ØˆŒ
Ø ˆ�rˆ   N)rG  Úintr9  ú	list[str]r>  rK  r¦   ÚNone)Ú__name__Ú
__module__Ú__qualname__rI  © rˆ   r†   rE  rE  ñ  s   „ ô!rˆ   rE  c                ór  — g }d}|t        | «      k  rš| |   d   }|}|dz  }|t        | «      k  r*| |   d   |k(  r|dz  }|t        | «      k  r| |   d   |k(  rŒ|j                  t        || || D �cg c]  }|d   ‘Œ	 c}| || D �cg c]  }|d   ‘Œ	 c}«      «       |t        | «      k  rŒš|S c c}w c c}w )z}Group consecutive items by kind (first element) into ImportFromBuckets.

    Each item is a (kind, name, as_name) tuple.
    r   rv   r  )r«   r|   rE  )r    r  rÞ   rG  r  rÂ   s         r†   Úgroup_consecutiverR  ø  sÓ   € ð
 &(€FØ	€AØ
Œc�%‹jŠ.Ø�Q‰x˜‰{ˆØˆØ	ˆQ‰ˆØ”#�e“*Šn  q¡¨!¡°Ò!4Ø�‰FˆAð ”#�e“*Šn  q¡¨!¡°Ó!4à�‰Ü˜T°%¸¸1°+Ö#>¨Q A a£DÒ#>ÈuÐUWÐXYÈ{Ö@[È!ÀÀ1ÃÒ@[Ó\ô	
ð Œc�%‹j‹.ð €Mùò $?ùÒ@[s   Á2B/ÂB4c                ó  — g }t        ||«      D ]f  \  }}|› d|› �}| j                  |«      r| j                  |«      rt        }	n|r|| j                  vrt
        }	nt        }	|j                  |	||f«       Œh t        |«      S )zOClassify each imported name and group consecutive same-kind names into buckets.rò   )	rÌ   r  r  rA  r0  rB  rC  r|   rR  )
rƒ   rô   r9  r>  r?  r  rª   rõ   Úsubmodule_idrG  s
             r†   Úclassify_import_fromrU    sŽ   € ð €IÜ˜U HÓ-ò 0‰ˆˆgØ#˜ A d VÐ,ˆØ×#Ñ# LÔ1°g×6RÑ6RÐS_Ô6`Ü*‰DÙ ,°g·m±mÑ"CÜ%‰Dä$ˆDØ×Ñ˜$  gÐ.Õ/ð0ô ˜YÓ'Ð'rˆ   c           	     óÜ  — t        | ||||«      }d}|D �]þ  }|j                  t        k(  rGt        |j                  |j
                  «      D �	�
cg c]  \  }	}
|› d|	› �|
|f‘Œ }}	}
t        | |«       Œ^|j                  t        k(  rÁ| j                  ||«      }|€J ‚| j                  t        t        |j                  «      t        «      «      }|j
                  |j                  k(  r|}n2| j                  t        t        |j
                  «      t        «      «      }| j                  t        |||| j                  «       g|«       �Œ2|j                  t         k(  sJ ‚| j                  t        t        |j                  «      t        «      «      }|j
                  |j                  k(  r|}n2| j                  t        t        |j
                  «      t        «      «      }| j                  t"        | j%                  |«      ||| j                  «       g|«      }�Œ |�Ot'        t        |t(        ¬«      }| j                  t+        t,        |«      «      }| j                  t.        ||g|«       yyc c}
}	w )zVHandle 'from module_id import names' by dispatching each bucket to the right strategy.Nrò   r   )rU  rG  rA  rÌ   r9  r>  rý   rB  r  r€   r7   r%  rK   r$  rm   r  rC  ro   r  r8   r.   r5   rD   rn   )rƒ   rô   r9  r>  r‚   r?  Úbucketsr  Úbucketrª   rõ   r  Únative_moduleÚnames_literalÚas_names_literalr+  Úmodule_caches                    r†   r:  r:     s3  € ô # 7¨I°u¸hÐHXÓY€GØ€FØó +ˆØ�;‰;Ô1Ò1ô &)¨¯©°v·±Ó%G÷8á!�D˜'ð �;˜a ˜vÐ&¨°Ò6ð8ˆEñ 8ô /¨w¸Õ>Ø�[‰[Ô.Ò.Ø#×.Ñ.¨y¸$Ó?ˆMØ Ð,Ð,Ð,Ø#ŸK™K¬´E¸&¿,¹,Ó4GÔIZÓ([Ó\ˆMØ�‰ &§,¡,Ò.Ø#0Ñ à#*§;¡;Ü¤ f§o¡oÓ 6Ô8IÓJó$Ð ð �N‰NÜ#Ø Ð/?À×AZÑAZÓA\Ð]Øöð —;‘;Ô"3Ò3Ð3Ð3ð $ŸK™K¬´E¸&¿,¹,Ó4GÔIZÓ([Ó\ˆMØ�‰ &§,¡,Ò.Ø#0Ñ à#*§;¡;Ü¤ f§o¡oÓ 6Ô8IÓJó$Ð ð —^‘^Ü#à×$Ñ$ YÓ/Ø!Ø$Ø×-Ñ-Ó/ð	ð ó	ŠFðE+ðX ÐÜÔ 1°9ÔHXÔYˆ
Ø—{‘{¤;Ô/CÀZÓ#PÓQˆØ�‰Ô9¸LÈ&Ð;QÐSWÕXð ùóU8s   ÁI(c                ój   — |j                   ry | j                  |j                  |j                  «       y rŸ   )rú   r  r8  r‚   ©rƒ   r  s     r†   Útransform_import_allr_  ]  s&   € Ø×ÒØØ×Ñ�t—w‘w §	¡	Õ*rˆ   c                óú  — t        «       t        «       }}|j                  r
t        «       n|}t        |j                  «      dk(  sJ ‚t	        | |j                  d   ||«       | j                  |«       | j                  |j                  d   «       | j                  |«       |j                  r=| j                  |«       | j                  |j                  «       | j                  |«       | j                  |«       y )Nrv   r   )	r1   Ú	else_bodyr«   rŒ   rM   Úactivate_blockr~   r}   Úgoto)rƒ   r…   Úif_bodyÚnextra  s        r†   Útransform_if_stmtrf  c  s¹   € Ü“L¤*£,ˆT€GØ $§¢”
”°D€Iô ˆt�y‰y‹>˜QÒÐÐä˜ §¡¨1¡¨w¸	ÔBØ×Ñ˜7Ô#Ø‡N�N�4—9‘9˜Q‘<Ô Ø‡L�L�ÔØ‡~‚~Ø×Ñ˜yÔ)Ø�‰�t—~‘~Ô&Ø�‰�TÔØ×Ñ˜4Õ rˆ   c                ó>  — t        «       t        «       t        «       t        «       f\  }}}}|j                  �|n|}| j                  ||«       | j                  |«       t	        | |j
                  ||«       | j                  |«       | j                  |j                  «       | j                  |«       | j                  «        |j                  �=| j                  |«       | j                  |j                  «       | j                  |«       | j                  |«       y rŸ   )r1   ra  Úpush_loop_stackÚgoto_and_activaterM   rŒ   rb  r~   r}   rc  Úpop_loop_stack)rƒ   Úsr}   re  ÚtopÚ
else_blockÚnormal_loop_exits          r†   Útransform_while_stmtro  u  sÝ   € Ü",£,´
³¼j»lÌJËLÐ"XÑ€Dˆ$��ZØ%&§[¡[Ð%<‘zÀ$Ðà×Ñ˜C Ô&ð ×Ñ˜cÔ"Ü˜ §¡¨Ð/?Ô@à×Ñ˜4Ô Ø‡N�N�1—6‘6Ôà‡L�L�Ôà×ÑÔà‡{�{ÐØ×Ñ˜zÔ*Ø�‰�q—{‘{Ô#Ø�‰�TÔà×Ñ˜4Õ rˆ   c           	     ó²   ‡ ‡— dˆ ˆfd„}dˆ ˆfd„}t        ‰ ‰j                  ‰j                  |‰j                  r|nd ‰j                  ‰j
                  «       y )Nc                 ó<   •— ‰ j                  ‰j                  «       y rŸ   ©r~   r}   ©rƒ   rk  s   €€r†   r}   z transform_for_stmt.<locals>.body�  ó   ø€ Ø�‰�q—v‘vÕrˆ   c                 óX   •— ‰j                   €J ‚‰ j                  ‰j                   «       y rŸ   )ra  r~   rs  s   €€r†   rm  z&transform_for_stmt.<locals>.else_block’  s#   ø€ Ø�{‰{Ð&Ð&Ð&Ø�‰�q—{‘{Õ#rˆ   ©r¦   rL  )rS   rÕ   rŒ   ra  Úis_asyncr‚   )rƒ   rk  r}   rm  s   ``  r†   Útransform_for_stmtrx  Ž  sA   ù€ öö$ô Ø�—‘˜!Ÿ&™& $°a·k²k©
ÀtÈQÏZÉZÐYZ×Y_ÑY_õrˆ   c                óV   — | j                   d   j                  | |j                  «       y r”   )r˜   Ú	gen_breakr‚   r^  s     r†   Útransform_break_stmtr{  ›  s!   € Ø×Ñ˜RÑ ×*Ñ*¨7°D·I±IÕ>rˆ   c                óV   — | j                   d   j                  | |j                  «       y r”   )r˜   Úgen_continuer‚   r^  s     r†   Útransform_continue_stmtr~  Ÿ  s!   € Ø×Ñ˜RÑ ×-Ñ-¨g°t·y±yÕArˆ   c                ó2  — |j                   €5| j                  t        g t        «       | j	                  t        «       «       y | j                  |j                   «      }| j                  t        |g|j                  «       | j	                  t        «       «       y rŸ   )	rŒ   r$  rf   r/   r€   r@   r~   re   r‚   )rƒ   rk  Úexcs      r†   Útransform_raise_stmtr�  £  se   € Ø‡v�v€~Ø�‰Ô+¨RÔ1EÔFØ�‰”K“MÔ"Øà
�.‰.˜Ÿ™Ó
 €CØ‡N�NÔ%¨ u¨a¯f©fÔ5Ø‡K�K”“Õrˆ   c           
     ó:  — |sJ d«       ‚t        «       t        «       t        «       }}}t        «       }|r
t        «       n|}	| j                  j                  |«       | j                  t        «       «        |«        | j	                  |	«       | j                  j                  «        | j                  j                  |«       | j                  |«       | j                  t        g |«      }
| j                  j                  r| j                  |
«      }
| j                  j                  t        | j                  d   |
«      «       |D ]ø  \  }}}d}|rs|\  }}t        «       t        «       }}| j                  t         |«       g|«      }| j!                  t#        |||t"        j$                  |«      «       | j                  |«       |rM| j'                  |«      }| j)                  || j                  t*        g |j,                  «      |j,                  «        |«        | j	                  |«       |sŒè| j                  |«       Œú r4| j                  t.        g t0        «       | j!                  t3        «       «       | j                  j5                  «        | j                  j                  «        | j                  |«       | j                  t6        | j9                  |
|«      g|«       | j	                  |«       | j                  |«       | j                  t6        | j9                  |
|«      g|«       | j                  t:        g t0        «       | j!                  t3        «       «       |r)| j                  |	«        |«        | j	                  |«       | j                  |«       y)z‡Generalized try/except/else handling that takes functions to gen the bodies.

    The point of this is to also be able to support with.ztry needs exceptry   N)r1   rƒ   Úpush_error_handlerri  rc  Úpop_error_handlerrb  r$  r^   r§   Úis_generatorÚensure_registerr˜   r|   rU   r_   r€   r2   ÚBOOLrÉ   rË   ra   r‚   rf   r/   r@   r   rg   rë   rb   )rƒ   r}   Úhandlersra  r‚   Úexcept_entryÚ
exit_blockÚcleanup_blockÚdouble_except_blockrm  Úold_excrÇ   ÚvarÚhandler_bodyÚ
next_blockÚtype_fÚ	type_lineÚ
body_blockÚmatchesrã   s                       r†   Útransform_try_exceptr•  ®  sÒ  € ñ Ð'Ð'Ó'ˆ8ä.8«l¼J»LÌ*Ë,˜m�*€LÜ$›,Ðá!*””°
€Jð ‡O�O×&Ñ& |Ô4Ø×Ñœj›lÔ+Ù„FØ‡L�L�ÔØ‡O�O×%Ñ%Ô'ð ‡O�O×&Ñ&Ð':Ô;Ø×Ñ˜<Ô(Ø�n‰nœ^¨R°Ó6€GØ‡�×#Ò#à×)Ñ)¨'Ó2ˆà×Ñ×#Ñ#Ô$9¸'×:RÑ:RÐSUÑ:VÐX_Ó$`Ôað $,ò /Ñˆˆc�<Øˆ
ÙØ $ÑˆF�IÜ%/£\´:³<˜
ˆJØ—n‘n¤^±f³h°ZÀÓKˆGØ�K‰Kœ˜w¨
°JÄÇÁÈYÓWÔXØ×"Ñ" :Ô.ÙØ×2Ñ2°3Ó7ˆFØ�N‰N˜6 7§>¡>Ô2BÀBÈÏÉÓ#QÐSV×S[ÑS[Ô\ÙŒØ�‰�]Ô#ÚØ×"Ñ" :Õ.ð/ñ" Ø�‰Ô+¨RÔ1EÔFØ�‰”K“MÔ"à×Ñ× Ñ Ô"Ø‡O�O×%Ñ%Ô'ð
 ×Ñ˜=Ô)Ø‡N�NÔ&¨¯©°g¸tÓ)DÐ(EÀtÔLØ‡L�L�Ôð
 ×ÑÐ.Ô/Ø‡N�NÔ&¨¯©°g¸tÓ)DÐ(EÀtÔLØ‡N�NÔ&¨Ô,@ÔAØ‡K�K”“Ôñ Ø×Ñ˜zÔ*ÙŒØ�‰�ZÔ à×Ñ˜:Õ&rˆ   c           
     óB  ‡ ‡‡	— dˆ ˆfd„}dˆ fd„}dˆ fd„}t        ‰j                  ‰j                  ‰j                  «      D ���cg c]  \  }}}|r ||«      nd | ||«      f‘Œ }}}}‰j                  Š	‰	rˆ	ˆ fd„nd }t        ‰ ||‰j                  «       y c c}}}w )Nc                 ó<   •— ‰ j                  ‰j                  «       y rŸ   rr  ©rƒ   rÂ   s   €€r†   r}   z'transform_try_except_stmt.<locals>.body  rt  rˆ   c                ó   •‡ — ˆ ˆfd„S )Nc                 ó&   •— ‰j                  ‰ «      S rŸ   ©r~   ©r}   rƒ   s   €€r†   ú<lambda>zAtransform_try_except_stmt.<locals>.make_handler.<locals>.<lambda>  s   ø€ �w—~‘~ dÓ+€ rˆ   rP  rœ  s   `€r†   Úmake_handlerz/transform_try_except_stmt.<locals>.make_handler  s	   ù€ Ü+Ð+rˆ   c                ó*   •‡ — ˆˆ fd„‰ j                   fS )Nc                 ó&   •— ‰ j                  ‰«      S rŸ   r›  )rƒ   rÇ   s   €€r†   r�  z?transform_try_except_stmt.<locals>.make_entry.<locals>.<lambda>  s   ø€ ˜Ÿ™ tÓ,€ rˆ   ©r‚   )rÇ   rƒ   s   `€r†   Ú
make_entryz-transform_try_except_stmt.<locals>.make_entry  s   ù€ Ü,¨d¯i©iÐ8Ð8rˆ   c                 ó&   •— ‰j                  ‰ «      S rŸ   r›  )Ú
_else_bodyrƒ   s   €€r†   r�  z+transform_try_except_stmt.<locals>.<lambda>  s   ø€ ˜Ÿ™¨
Ó3€ rˆ   rv  )r}   r   r¦   ÚGenFunc)rÇ   r   r¦   ztuple[ValueGenFunc, int])rÌ   rÐ   Úvarsrˆ  ra  r•  r‚   )
rƒ   rÂ   r}   rž  r¢  rÇ   rŽ  rˆ  ra  r¤  s
   ``       @r†   Útransform_try_except_stmtr§    s”   ú€ öõ,õ9ô
  # 1§7¡7¨A¯F©F°A·J±JÓ?÷ð áˆD�#�tñ "‰�DÔ	 t¨S±,¸tÓ2DÒEð€Hò ð
 —‘€JÙ8BÕ3È€IÜ˜ $¨°)¸Q¿V¹VÕDùôs   Á Bc                óf  — t        |«      }| j                  j                  |«       | j                  j	                  |«       | j                  t        «       «        |«        | j                  |«       | j                  j                  «        | j                  j                  «        |j                  S rŸ   )rW   rƒ   rƒ  r˜   r|   ri  r1   rc  r   r„  Úret_reg)rƒ   Úerr_handlerÚreturn_entryÚ
main_entryÚtry_bodyÚcontrols         r†   Útry_finally_tryr¯    s�   € ô (¨Ó5€GØ‡O�O×&Ñ& {Ô3à×Ñ×#Ñ# GÔ,Ø×Ñœj›lÔ+Ù„JØ‡L�L�ÔØ×Ñ× Ñ Ô"Ø‡O�O×%Ñ%Ô'à�?‰?Ðrˆ   c                óô  — | j                   j                  j                  }t        t        |¬«      }| j                  |«       |r9| j                  || j                  t        | j                  d   |«      «      |«       | j                  |«       | j                  |«       | j                  t        || j                  t        t        |«      «      |«      «       | j                  |«       | j                  |«       |r9| j                  || j                  t        | j                  d   |«      «      |«       | j                  t        || j                  t        g |«      |«      «       | j                  |«       |S )Nr¡  ry   )r§   r¨   r‚   r<   rF   rb  rË   r€   r6   r—   rc  r0   r$  r^   )rƒ   rª  r«  r¬  Úfinally_blockr©  r‚   r�  s           r†   Útry_finally_entry_blocksr²  0  s#  € ð �?‰?× Ñ ×%Ñ%€DÜ”z¨Ô-€Gð ×Ñ˜:Ô&ÙØ�‰�w §¡¬N¸7×;LÑ;LÈRÑ;PÐRVÓ,WÓ XÐZ^Ô_Ø‡L�L�Ôà×Ñ˜<Ô(Ø‡K�K”�w §¡¬N¼:ÀtÓ,LÓ MÈtÓTÔUØ‡L�L�Ôð ×Ñ˜;Ô'ÙØ�‰�w §¡¬N¸7×;LÑ;LÈRÑ;PÐRVÓ,WÓ XÐZ^Ô_Ø‡K�K”�w §¡¬~¸rÀ4Ó HÈ$ÓOÔPØ‡L�L�Ôà€Nrˆ   c                ó   — t        «       }| j                  j                  |«       t        | j                  d   |«      }| j                  j                  |«       | j                  |«        |«        | j                  j                  «        ||fS r”   )r1   rƒ   rƒ  rV   r˜   r|   rb  r   )rƒ   r±  Úfinally_bodyr�  r‹  Úfinally_controls         r†   Útry_finally_bodyr¶  O  sx   € ô “L€Mà‡O�O×&Ñ& }Ô5Ü,¨W×-EÑ-EÀbÑ-IÈ7ÓS€OØ×Ñ×#Ñ# OÔ4Ø×Ñ˜=Ô)Ù„NØ×Ñ× Ñ Ô"à˜/Ð)Ð)rˆ   c           	     ó”  — | j                   j                  j                  }t        «       t        «       }}| j	                  t        |||t
        j                  |«      «       | j                  |«       | j                  t        g t        «       | j	                  t        |«      «       | j                  j                  «        |r‚| j                  |«       t        «       t        «       }}| j	                  t        |||t
        j                  |«      «       | j                  |«       | j                  d   j                  | ||«       | j                  |«       t        «       }	| j!                  |	«       | j                  |«       |j#                  | |«       | j                  t$        g t        «       | j	                  t        «       «       |	S )z°Resolve the control flow out of a finally block.

    This means returning if there was a return, propagating
    exceptions, break/continue (soon), or just continuing on.
    ry   )r§   r¨   r‚   r1   r€   r2   ÚIS_ERRORrb  r$  rf   r/   r@   rƒ   r„  r˜   r™   rc  Úgen_cleanuprb   )
rƒ   r‹  rµ  r�  r©  r‚   ÚreraiseÚrestÚreturn_blockÚ	out_blocks
             r†   Útry_finally_resolve_controlr¾  ^  sW  € ð �?‰?× Ñ ×%Ñ%€DÜ“L¤*£,ˆT€GØ‡K�K”�w  g¬v¯©ÀÓEÔFð ×Ñ˜7Ô#Ø‡N�NÔ'¨Ô-AÔBØ‡K�K”˜DÓ!Ô"Ø‡O�O×%Ñ%Ô'ñ Ø×Ñ˜tÔ$Ü'›\¬:«<�dˆØ�‰”F˜7 D¨,¼¿¹ÈÓNÔOà×Ñ˜|Ô,Ø× Ñ  Ñ$×/Ñ/°¸À$ÔGð ×Ñ˜4Ô Ü“€IØ‡L�L�Ôð ×Ñ˜=Ô)Ø×Ñ ¨Ô.Ø‡N�NÔ&¨Ô,@ÔAØ‡K�K”“ÔàÐrˆ   c                óú   — t        «       t        «       t        «       t        «       f\  }}}}t        | ||||«      }t        | |||||«      }	t        | |||	«      \  }
}t	        | |
||	|«      }| j                  |«       y)zƒGeneralized try/finally handling that takes functions to gen the bodies.

    The point of this is to also be able to support with.N)r1   r¯  r²  r¶  r¾  rb  )rƒ   r­  r´  r‚   rª  r¬  r«  r±  r©  r�  r‹  rµ  r½  s                r†   Útransform_try_finally_stmtrÀ  ‹  s–   € ô 	‹Ü‹Ü‹Ü‹ð	<Ñ8€K�˜\¨=ô ˜g {°LÀ*ÈhÓW€Gô 'Ø�˜l¨J¸Àwó€Gô
 &6Ø� ¨gó&Ñ"€M�?ô
 ,Ø� °¸'ó€Ið ×Ñ˜9Õ%rˆ   c           	     ób  — t        «       t        «       t        «       t        «       f\  }}}}t        |«      }| j                  j                  |«       | j                  j                  |«       | j                  t        «       «        |«        | j                  |«       | j                  j                  «        | j                  j                  «        |j                  }	| j                  |«       | j                  |«       | j                  |«       | j                  |«       | j                  |«       | j                  t        g |«       | j                  |«       | j                  |«        |«        | j                  t        g |«      }
t        «       }t        «       }| j                  t!        |
||t         j"                  «      «       | j                  |«       | j                  t$        g t&        «       | j                  t)        «       «       | j                  |«       |	r£t        «       t        «       }}| j                  t!        | j+                  |	|d¬«      ||t         j,                  «      «       | j                  |«       | j                  d   j/                  | | j+                  |	|«      |«       | j                  |«       | j                  t0        g |«      }| j                  t3        |d|«      «      }| j5                  «       }| j7                  ||d|«      }t        «       t        «       }}| j                  t!        |||t         j"                  «      «       | j                  |«       | j                  t8        g t&        «       | j                  t)        «       «       | j                  |«       y)z”Async-aware try/finally handling for when finally contains await.

    This version uses a modified approach that preserves exceptions across await.T)Úallow_error_valuery   r   zis notN)r1   rW   rƒ   rƒ  r˜   r|   ri  rc  r   r„  r©  rb  r$  r^   rc   r€   r2   r‡  rb   r/   r@   rë   r¸  r™   r`   r>   Únone_objectrì   rf   )rƒ   r­  r´  r‚   rª  r¬  r«  Úfinally_entryr®  r©  Úno_current_excÚfinally_raisedÚcheck_originalr¼  Úcheck_old_excÚexc_infoÚexc_typeÚnone_objÚhas_excÚreraise_blockrŠ  s                        r†   Ú transform_try_finally_stmt_asyncrÎ  °  sæ  € ô 	‹Ü‹Ü‹Ü‹ð	<Ñ8€K�˜\¨=ô (¨Ó5€GØ‡O�O×&Ñ& {Ô3Ø×Ñ×#Ñ# GÔ,Ø×Ñœj›lÔ+Ù„JØ‡L�L�ÔØ×Ñ× Ñ Ô"Ø‡O�O×%Ñ%Ô'Ø�o‰o€Gð ×Ñ˜:Ô&Ø‡L�L�Ôð ×Ñ˜<Ô(Ø‡L�L�Ôð ×Ñ˜;Ô'à‡N�N”> 2 tÔ,ð ‡L�L�Ôð ×Ñ˜=Ô)ñ „Nð —^‘^Ô$6¸¸DÓA€NÜ“\€NÜ“\€NØ‡K�K”�~ ~°~ÄvÇ{Á{ÓSÔTð ×Ñ˜>Ô*Ø‡N�NÔ&¨Ô,@ÔAØ‡K�K”“Ôð ×Ñ˜>Ô*ñ Ü&0£l´J³L�mˆØ�‰ÜØ—‘˜W d¸d�ÓCØØÜ—‘ó	ô	
ð 	×Ñ˜|Ô,Ø× Ñ  Ñ$×/Ñ/°¸¿¹ÀgÈtÓ9TÐVZÔ[à×Ñ˜}Ô-ð �~‰~œo¨r°4Ó8€HØ�{‰{œ8 H¨a°Ó6Ó7€Hð ×"Ñ"Ó$€HØ×Ñ ¨(°H¸dÓC€Gä *£¬j«l�:€MØ‡K�K”�w ¨z¼6¿;¹;ÓGÔHð ×Ñ˜=Ô)Ø‡N�NÔ'¨Ô-AÔBØ‡K�K”“Ôð ×Ñ˜:Õ&rˆ   c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚAwaitDetectorc                ó0   •— t         ‰| �  «        d| _        y )NF)ÚsuperrI  Ú	has_await)rH  Ú	__class__s    €r†   rI  zAwaitDetector.__init__  s   ø€ Ü‰ÑÔØˆ�rˆ   c                ó2   •— d| _         t        ‰| �	  |«       y )NT)rÓ  rÒ  Úvisit_await_expr)rH  ÚorÔ  s     €r†   rÖ  zAwaitDetector.visit_await_expr"  s   ø€ ØˆŒÜ‰Ñ  Õ#rˆ   rv  )r×  zmypy.nodes.AwaitExprr¦   rL  )rM  rN  rO  rI  rÖ  Ú__classcell__)rÔ  s   @r†   rÐ  rÐ    s   ø„ õ÷$ñ $rˆ   rÐ  c                óÖ  ‡ ‡‡— ‰j                   r‰ j                  d‰j                  «       d}‰j                  rI‰ j                  j
                  r3t        «       }‰j                  j                  |«       |j                  rd}‰j                  rOdˆ ˆfd„}‰j                  Š|rt        ‰ |ˆˆ fd„‰j                  «       y t        ‰ |ˆˆ fd„‰j                  «       y t        ‰ ‰«       y )Nz3Exception groups and except* cannot be compiled yetFTc                 ón   •— ‰j                   rt        ‰ ‰«       y ‰ j                  ‰j                  «       y rŸ   )rˆ  r§  r~   r}   r˜  s   €€r†   Útransform_try_bodyz.transform_try_stmt.<locals>.transform_try_body<  s$   ø€ Ø�zŠzÜ)¨'°1Õ5à—‘˜qŸv™vÕ&rˆ   c                 ó&   •— ‰j                  ‰ «      S rŸ   r›  rœ  s   €€r†   r�  z$transform_try_stmt.<locals>.<lambda>F  ó   ø€ °W·^±^ÀDÓ5I€ rˆ   c                 ó&   •— ‰j                  ‰ «      S rŸ   r›  rœ  s   €€r†   r�  z$transform_try_stmt.<locals>.<lambda>J  rÝ  rˆ   rv  )Úis_starr¯   r‚   r´  r§   Úis_coroutinerÐ  r~   rÓ  rÎ  rÀ  r§  )rƒ   rÂ   Úuse_async_versionÚdetectorrÛ  r}   s   ``   @r†   Útransform_try_stmtrã  '  s¸   ú€ ð 	‡y‚yØ�‰ÐKÈQÏVÉVÔTð ÐØ‡~‚~˜'Ÿ/™/×6Ò6Ü “?ˆØ	�‰×Ñ˜hÔ'à×Òà $Ðà‡~‚~ö	'ð �~‰~ˆáÜ,ØÐ+Ô-IÈ1Ï6É6õô 'ØÐ+Ô-IÈ1Ï6É6õô 	" '¨1Õ-rˆ   c           
     óà   — | j                   j                  j                  }| j                  t        g |«      }t        d«      D �cg c]  }| j                  t        |||«      «      ‘Œ  c}S c c}w )Nr  )r§   r¨   r‚   r$  r`   rÒ   r€   r>   )rƒ   r‚   rÉ  rÞ   s       r†   Úget_sys_exc_inforå  P  sS   € Ø�?‰?× Ñ ×%Ñ%€DØ�~‰~œo¨r°4Ó8€HÜ>CÀA»hÖG¸ˆG�K‰Kœ ¨1¨dÓ3Õ4ÒGÐGùÒGs   Á#A+c           	     ó¦  ‡ ‡‡‡‡‡‡	‡
‡‡‡‡‡‡‡— ‰rdndŠ‰ j                  |«      Š‰s#‰j                  t        k(  rt        ‰ ‰‰‰‰«       y t	        ‰j                  t
        «      Š‰r%‰ j                  t        ‰d‰› d�g ‰¬«      «      Šd ŠnX‰ j                  t        ‰g‰«      }‰ j                  |d‰› d�‰«      Š‰ j                  ‰ j                  |d‰› d�‰«      ‰g‰«      Š‰Š‰ j                  ‰ j                  «       «      Š	‰rt        ‰ ‰‰«      Šdˆˆ ˆˆˆˆˆˆfd„Šdˆˆ ˆˆˆfd„Šdˆ ˆ	ˆˆfd	„Š
dˆ ˆ	ˆˆfd
„}t        ‰ ˆ ˆ
ˆˆfd„|‰«       y )NÚar/  Ú__Úenter__)Úargsr‚   Úexit__c                óš  •— | rt        ‰«      }n‰j                  «       }|||g}‰rZt        ‰j                  t        «      sJ ‰j                  «       ‚‰j                  ‰j                  ‰
‰	«      d‰› d�|‰	t        ¬«      }n;‰€J ‚‰j                  ‰j                  ‰‰	«      ‰j                  ‰
‰	«      g|z   ‰	«      }‰rt        ‰|‰	«      S |S )Nrè  rë  )Ú
arg_valuesr‚   r  )
rå  rÃ  r‹   rÇ   rB   r  rë   rI   Úpy_callÚ
emit_await)rÉ  rê  r•   Úexit_valÚalrƒ   Úexit_rw  r  r‚   ÚmgrÚmgr_vs       €€€€€€€€r†   Úmaybe_natively_call_exitz0transform_with.<locals>.maybe_natively_call_exitx  sÛ   ø€ ÙÜ# GÓ,‰Dà×&Ñ&Ó(ˆDØ˜$ Ð%ˆDáÜ˜eŸj™j¬)Ô4Ð@°e·j±jÓ@Ð4Ø×.Ñ.Ø—‘˜S $Ó'Ø�R�D˜�ØØÜ+ð /ó ‰Hð Ð$Ð$Ð$Ø—‘Ø—‘˜U DÓ)¨G¯L©L¸¸dÓ,CÐ+DÀtÑ+KÈTóˆHñ Ü˜g x°Ó6Ð6àˆOrˆ   c                 ó\   •— ‰r"‰j                  ‰j                  ‰«      ‰‰«        ‰ «        y rŸ   ©rË   rÉ   ©r}   rƒ   r‚   rã   Úvalues   €€€€€r†   r­  z transform_with.<locals>.try_body“  ó&   ø€ ÙØ�N‰N˜7×8Ñ8¸Ó@À%ÈÔNÙ�rˆ   c                 óP  •— ‰j                  ‰‰j                  «       ‰«       t        «       t        «       }} ‰j                   ‰d¬«      | |«       ‰j	                  |«       ‰j                  t        g t        «       ‰j                  t        «       «       ‰j	                  | «       y )NT©rÉ  )
rË   Úfalser1   Úadd_bool_branchrb  r$  rf   r/   r€   r@   )r½  rÍ  rƒ   r€  r‚   rõ  s     €€€€r†   Úexcept_bodyz#transform_with.<locals>.except_body˜  s{   ø€ Ø�‰�s˜GŸM™M›O¨TÔ2Ü#-£<´³�=ˆ	Ø×ÑÑ 8À$Ô GÈÐTaÔbØ×Ñ˜}Ô-Ø�‰Ô+¨RÔ1EÔFØ�‰”K“MÔ"Ø×Ñ˜yÕ)rˆ   c                 óú   •— t        «       t        «       }} ‰j                  t        ‰j                  ‰‰«      || t        j                  «      «       ‰j                  |«        ‰d¬«       ‰j                  | «       y )NFrü  )r1   r€   r2   rë   r‡  rb  ri  )r½  rŠ  rƒ   r€  r‚   rõ  s     €€€€r†   r´  z$transform_with.<locals>.finally_body¡  sZ   ø€ Ü *£¬j«l�:ˆ	Ø�‰”F˜7Ÿ<™<¨¨TÓ2°JÀ	Ì6Ï;É;ÓWÔXØ×Ñ˜zÔ*á ¨%Õ0Ø×!Ñ! )Õ,rˆ   c                 ó*   •— t        ‰ ‰d d ‰fgd ‰«      S rŸ   )r•  )rƒ   rÿ  r‚   r­  s   €€€€r†   r�  z transform_with.<locals>.<lambda>«  s!   ø€ Ô$ W¨h¸$ÀÀkÐ9RÐ8SÐUYÐ[_Ó`€ rˆ   )rÉ  Úboolr¦   rA   rv  )r~   rÇ   rH   Útransform_with_lockr‹   rB   r€   r9   Úprimitive_oprt   Úpy_get_attrrî  r†  Útruerï  rÀ  )rƒ   rŒ   rã   r}   rw  r‚   Útypr´  rñ  r€  rÿ  rò  r  rõ  ró  rô  r­  rù  s   ` ````  @@@@@@@@@@r†   Útransform_withr  V  sC  ÿþ€ ñ ‰˜b€Bà�N‰N˜4Ó €Eá˜Ÿ
™
¤oÒ5Ü˜G U¨F°D¸$Ô?ØÜ˜5Ÿ:™:¤yÓ1€IÙØ—‘œJ u°°2°$°gÐ.>ÀRÈdÔSÓTˆØ‰à×"Ñ"¤7¨U¨G°TÓ:ˆØ×#Ñ# C¨2¨b¨T°¨¸$Ó?ˆØ—‘ × 3Ñ 3°C¸2¸b¸TÀÐ9IÈ4Ó PÐSXÐRYÐ[_Ó`ˆà
€CØ
×
!Ñ
! '§,¡,£.Ó
1€CÙÜ˜7 E¨4Ó0ˆ÷ô ÷6ñ ÷
*ð *÷-ð -ô ØÞ`ØØõ	rˆ   c                ó„   ‡ ‡‡‡‡‡— ‰ j                  t        |g‰«      Š|Šdˆˆ ˆˆˆfd„}dˆ ˆˆfd„}t        ‰ ||‰«       y)zèOptimized 'with' for librt.threading.Lock.

    Generate a simple try/finally with direct acquire/release calls.
    Lock.__exit__ never suppresses exceptions, so we don't need the
    full PEP 343 try/except/finally machinery.
    c                 ó\   •— ‰r"‰j                  ‰j                  ‰«      ‰‰«        ‰ «        y rŸ   r÷  rø  s   €€€€€r†   r­  z%transform_with_lock.<locals>.try_body¿  rú  rˆ   c                 óV   •— ‰ j                  t        ‰ j                  ‰‰«      g‰«       y rŸ   )r  rk   rë   )rƒ   r‚   ró  s   €€€r†   r´  z)transform_with_lock.<locals>.finally_bodyÄ  s#   ø€ à×Ñœ_¨w¯|©|¸CÀÓ/FÐ.GÈÕNrˆ   Nrv  )r  rj   rÀ  )	rƒ   rô  rã   r}   r‚   r­  r´  ró  rù  s	   ` ```  @@r†   r  r  ±  s@   ý€ ð × Ñ ¤°5°'¸4Ó@€Eà
€C÷ñ ÷
Oô ˜w¨°,ÀÕErˆ   c                ó*   ‡ ‡‡— dˆ ˆˆfd„Š ‰d«       y )Nc                óô   •‡ — ‰ t        ‰j                  «      k\  r‰j                  ‰j                  «       y t	        ‰‰j                  ‰    ‰j
                  ‰    ˆˆ fd„‰j                  ‰j                  «       y )Nc                 ó   •—  ‰ ‰dz   «      S )Nrv   rP  )ÚgeneraterÞ   s   €€r†   r�  z7transform_with_stmt.<locals>.generate.<locals>.<lambda>Ò  s   ø€ ¹À!ÀaÁ%»€ rˆ   )r«   rŒ   r~   r}   r  rã   rw  r‚   )rÞ   rƒ   r  r×  s   `€€€r†   r  z%transform_with_stmt.<locals>.generateÍ  sT   ù€ Ø”�A—F‘F“ÒØ�N‰N˜1Ÿ6™6Õ"äØ˜Ÿ™ ™ A§H¡H¨Q¡KÔ1HÈ!Ï*É*ÐVW×V\ÑV\õrˆ   r   )rÞ   rJ  r¦   rL  rP  )rƒ   r×  r  s   ``@r†   Útransform_with_stmtr  Ë  s   ú€ ÷ñ ˆQ…Krˆ   c                ób  — | j                   j                  ry | j                  |j                  «      }t	        «       t	        «       }}| j                  |||«       | j                  |«       |j                  €5| j                  t        t        j                  d |j                  «      «       nÚt        |j                  t        «      rI| j                  t        t        j                  |j                  j                  |j                  «      «       nw| j                  |j                  «      }| j                  d|j                  «      }| j!                  ||g|j                  «      }| j#                  t$        |g|j                  «       | j                  t'        «       «       | j                  |«       y )Nzbuiltins.AssertionError)ÚoptionsÚstrip_assertsr~   rŒ   r1   rþ  rb  Úmsgr€   r;   ÚASSERTION_ERRORr‚   r‹   r    rù  Úload_module_attr_by_fullnamerî  r$  re   r@   )rƒ   rç  ÚcondÚok_blockÚerror_blockÚmessagerÊ  r€  s           r†   Útransform_assert_stmtr  Ø  s1  € Ø‡�×$Ò$ØØ�>‰>˜!Ÿ&™&Ó!€DÜ&›L¬*«,ˆk€HØ×Ñ˜D (¨KÔ8Ø×Ñ˜;Ô'Ø‡u�u€}à�‰Ô&Ô'9×'IÑ'IÈ4ÐQR×QWÑQWÓXÕYÜ	�A—E‘Eœ7Ô	#à�‰Ô&Ô'9×'IÑ'IÈ1Ï5É5Ï;É;ÐXY×X^ÑX^Ó_Õ`ð —.‘. §¡Ó'ˆØ×7Ñ7Ð8QÐST×SYÑSYÓZˆØ�o‰o˜h¨¨	°1·6±6Ó:ˆØ�‰Ô)¨C¨5°!·&±&Ô9Ø‡K�K”“ÔØ×Ñ˜8Õ$rˆ   c                ód   — t        | | j                  |j                  «      |j                  «       y rŸ   )Útransform_del_itemrÉ   rŒ   r‚   ©rƒ   r×  s     r†   Útransform_del_stmtr  ï  s!   € Ü�w × =Ñ =¸a¿f¹fÓ EÀqÇvÁvÕNrˆ   c                ó�  — t        |t        «      r,| j                  |j                  d|j                  gd |¬«       y t        |t
        «      rðt        |j                  t        «      r—|j                  j                  }|j                  |j                  «      sf|j                  |j                  «      \  }}t        |j                  |j                  «      }| j                  d|› d�|«       | j                  d|«       | j!                  |j                  «      }| j#                  t$        |j&                  |g|«       y t        |t(        «      rK| j+                  t-        |j.                  | j+                  t1        |j2                  d¬«      «      |«      «       y t        |t4        «      r|j6                  D ]  }t9        | ||«       Œ y y )NÚ__delitem__r  ú"z" cannot be deletedzMUsing "__deletable__ = ['<attr>']" in the class body enables "del obj.<attr>"T©Ú	undefines)r‹   r[   r  rÔ   rÕ   rZ   Úobj_typerB   Úclass_irÚis_deletableÚattrÚattr_detailsr,   Úfullnamer¯   Únoter  r  ri   Úobjr\   r€   r0   Úregisterr6   rÇ   r]   r    r  )	rƒ   rã   r‚   Úclr=  Údecl_clrª   ÚkeyÚ	subtargets	            r†   r  r  ó  si  € Ü�&Ô/Ô0Ø×ÑØ�K‰K˜¨¯©¨ÀDÈtð 	 õ 	
ô 
�FÔ0Ô	1Ü�f—o‘o¤yÔ1Ø—‘×)Ñ)ˆBØ—?‘? 6§;¡;Ô/ØŸ_™_¨V¯[©[Ó9‘
��7Ü;¸F¿K¹KÈ×IYÑIYÓZ�Ø—‘  $ Ð':Ð;¸TÔBØ—‘ðQàôð
 ×Ñ˜vŸ{™{Ó+ˆØ×Ñœ]¨V¯Z©Z¸Ð,=¸tÕDÜ	�FÔ4Ô	5ð 	�‰Ü�6—?‘? G§K¡K´¸v¿{¹{ÐVZÔ0[Ó$\Ð^bÓcõ	
ô 
�FÔ1Ô	2ØŸ™ò 	9ˆIÜ˜w¨	°4Õ8ñ	9ð 
3rˆ   c                óÖ  — | j                  || j                  d   |«      }| j                  j                  }t	        «       }t        |j                  «      }|j                  j                  |«       | j                  |j                  t        |«      |«       | j                  t        |||¬«      «       | j                  |«       t        | |«       |j                  €J ‚|j                  S )Nry   )Úyield_target)r–   r—   r§   Úgenerator_classr1   r«   Úcontinuation_blocksr|   rË   Únext_label_targetr4   r€   r=   rb  rT   Úsend_arg_reg)rƒ   Úvalr‚   rš   Úclsr�  Ú
next_labels          r†   Ú
emit_yieldr;    sÁ   € Ø�^‰^˜C ×!2Ñ!2°2Ñ!6¸Ó=€Fà
�/‰/×
)Ñ
)€Cô “€JÜ�S×,Ñ,Ó-€JØ×Ñ×"Ñ" :Ô.Ø‡N�N�3×(Ñ(¬'°*Ó*=¸tÔDØ‡K�K”�v˜t°*Ô=Ô>Ø×Ñ˜:Ô&ä1°'¸4Ô@à×ÑÐ'Ð'Ð'Ø×ÑÐrˆ   c               ój  ‡ ‡‡‡‡‡‡‡‡‡‡— t        t        ‰¬«      Št        t        ‰¬«      Št        t        ‰¬«      Št        Št        |t        t
        f«      rBt        |j                  t        «      r(|j                  j                  j                  ‰«      r|}nG|rt        nt        }t        |t        «      r‰ j                  ||g‰«      }n‰ j                  ||g‰«      }‰ j                  |«      Št!        «       t!        «       t!        «       }}}t        ‰j                  t        «      xr% ‰j                  j                  j                  ‰«      Št        t        «      Šdˆ ˆˆfd„Šdˆ ˆˆˆˆfd„Š‰r ‰‰ j#                  «       «      }	n? ‰«       }
‰ j                  t$        ‰ j'                  ‰‰«      ‰ j#                  «       |
g‰«      }	‰ j)                  t+        |	||t*        j,                  «      «       ‰ j/                  |«       ‰ j                  t0        ‰g‰«       ‰ j3                  ‰‰‰«       ‰ j)                  t5        ‰j                  «      «      }‰ j3                  ‰|‰«       ‰ j7                  |«       ‰ j/                  |«       ‰ j3                  ‰|	‰«       t!        «       }‰ j9                  |«       d	ˆ ˆˆˆfd„}d	ˆ ˆˆˆˆfd„}d	ˆ ˆˆˆˆˆˆˆˆˆf
d„}‰ j;                  ||«       t=        ‰ |d d |fg|‰«       ‰ j?                  «        ‰ j9                  |«       ‰ j'                  ‰‰«      S )
Nr¡  c                 ó¨   •— ‰j                  t        t        d¬«      «      } ‰j                  ‰| ‰«       ‰j                  t	        t
        ‰«      «      S )z:Reset the stop iteration value and return a pointer to it.Tr#  )r€   r6   rK   rË   r5   rJ   )Úerrrƒ   r‚   Ústop_iter_vals    €€€r†   Úclear_stop_iter_valz5emit_yield_from_or_await.<locals>.clear_stop_iter_valT  s@   ø€ à�k‰kœ.Ô):ÀdÔKÓLˆØ�‰�} c¨4Ô0Ø�{‰{œ;Ô'@À-ÓPÓQÐQrˆ   c           	     ó´   •— ‰j                  ‰‰	«      }‰j                  «       } ‰«       }t        |‰|||| |g‰	«      }t        |_        ‰j                  |«      S )aH  Advance a native generator/coroutine child by calling its helper directly.

        Returns the value yielded by the child, or NULL if the child completed or
        raised. On normal completion the return value is stored in stop_iter_val,
        which is set to the error value if a real exception was raised instead.
        )rë   rÃ  r9   r-   Ú
error_kindr€   )
Úsentr,  ÚnnÚptrÚmrƒ   r@  Úhelper_methodÚiter_regr‚   s
        €€€€€r†   Únative_stepz-emit_yield_from_or_await.<locals>.native_stepZ  s[   ø€ ð �l‰l˜8 TÓ*ˆØ× Ñ Ó"ˆÙ!Ó#ˆÜ�s˜M¨B°°B¸¸cÐ+BÀDÓIˆä ˆŒØ�{‰{˜1‹~Ðrˆ   c            
     ób   •— ‰ j                  ‰t        ‰ ‰ j                  ‰‰«      ‰«      ‰«       y rŸ   )rË   r;  rë   )rƒ   r‚   Úreceived_regÚto_yield_regs   €€€€r†   r­  z*emit_yield_from_or_await.<locals>.try_bodyŠ  s,   ø€ Ø�‰Øœ* W¨g¯l©l¸<ÈÓ.NÐPTÓUÐW[õ	
rˆ   c                 ó>  •— t        t        «      } ‰j                  t        t        | «      «      }‰j                  t        ‰j                  ‰‰«      |g‰«      }t        «       t        «       }}‰j                  t        |||t        j                  «      «       ‰j                  |«       ‰j                  ‰	| ‰«       ‰j                  d   j                  ‰‰«       ‰j                  |«       ‰j                  ‰| ‰«       ‰j                  d   j                  ‰‰«       y r”   )r<   rK   r€   r5   rJ   r$  ru   rë   r1   r2   r‡  rb  rË   r˜   r}  rz  )
r8  Úval_addressÚto_stopÚokÚstoprƒ   rH  r‚   r  rL  s
        €€€€€r†   rÿ  z-emit_yield_from_or_await.<locals>.except_body�  së   ø€ ô Ô(Ó)ˆØ—k‘k¤+Ô.GÈÓ"MÓNˆØ—.‘.Ü  7§<¡<°¸$Ó#?ÀÐ"MÈtó
ˆô “<¤£ˆDˆØ�‰”F˜7 D¨"¬f¯k©kÓ:Ô;ð 	×Ñ˜rÔ"Ø�‰�| S¨$Ô/Ø× Ñ  Ñ$×1Ñ1°'¸4Ô@ð 	×Ñ˜tÔ$Ø�‰�v˜s DÔ)Ø× Ñ  Ñ$×.Ñ.¨w¸Õ=rˆ   c                 óx  •
— ‰r ‰	‰j                  ‰
‰«      «      } nA ‰«       }‰j                  t        ‰j                  ‰‰«      ‰j                  ‰
‰«      |g‰«      } t        «       t        «       }}‰j	                  t        | ||t
        j                  «      «       ‰j                  |«       ‰j                  ‰| ‰«       ‰j                  d   j                  ‰‰«       ‰j                  |«       ‰j                  t        ‰g‰«       ‰j                  ‰‰‰«       ‰j                  d   j                  ‰‰«       y r”   )rë   r$  rr   r1   r€   r2   r¸  rb  rË   r˜   r}  r  rd   rz  )Ú_yrE  rP  rQ  rƒ   r@  Ú	fast_pathrH  r‚   rI  rK  r  r?  rL  s       €€€€€€€€€€r†   ra  z+emit_yield_from_or_await.<locals>.else_body¦  s  ø€ ñ ñ ˜WŸ\™\¨,¸Ó=Ó>‰Bñ &Ó'ˆCØ—‘ÜØ—‘˜h¨Ó-¨w¯|©|¸LÈ$Ó/OÐQTÐUØóˆBô
 “<¤£ˆDˆØ�‰”F˜2˜t R¬¯©Ó9Ô:ð 	×Ñ˜rÔ"Ø�‰�| R¨Ô.Ø× Ñ  Ñ$×1Ñ1°'¸4Ô@ð
 	×Ñ˜tÔ$Ø×ÑÔ2°]°OÀTÔJØ�‰�v˜}¨dÔ3Ø× Ñ  Ñ$×.Ñ.¨w¸Õ=rˆ   )r¦   rA   )rC  rA   r¦   rA   rv  ) r<   rK   r)   r‹   r3   r9   rÇ   rB   r&  Ú
has_methodrl   rh   r:   r  r$  r†  r1   rÃ  rr   rë   r€   r2   r¸  rb  rd   rË   r6   rc  ri  rh  r•  rj  )rƒ   r8  r‚   Úis_awaitÚiter_valÚget_opÚ
stop_blockÚ
main_blockÚ
done_blockÚ_y_initrE  r>  Ú
loop_blockr­  rÿ  ra  r@  rT  rG  rH  rI  rK  r  r?  rL  s   ` `             @@@@@@@@@r†   Úemit_yield_from_or_awaitr^  *  s¡  ÿú€ ô Ô'¨dÔ3€FÜÔ-°DÔ9€LÜÔ-°DÔ9€Lä)€Mä�3œœzÐ*Ô+Ü�s—x‘x¤Ô+Ø�H‰H×Ñ×(Ñ(¨Ô7ð ‰á$•¬'ˆÜ�fÔ2Ô3Ø×+Ñ+¨F°S°E¸4Ó@‰Hà—~‘~ f¨s¨e°TÓ:ˆHà×&Ñ& xÓ0€Hä)3«´z³|ÄZÃ\˜J�
€Jä˜8Ÿ=™=¬)Ó4ò ¸¿¹×9OÑ9O×9ZÑ9ZØó:€Iô Ô.Ó/€M÷R÷ñ ñ ñ
 ˜g×1Ñ1Ó3Ó4‰ñ
 "Ó#ˆØ—.‘.Ü�g—l‘l 8¨TÓ2°G×4GÑ4GÓ4IÈ3ÐOÐQUó
ˆð ‡K�K”�w 
¨J¼¿¹ÓHÔIà×Ñ˜:Ô&Ø×ÑÔ.°°ÀÔFØ‡N�N�6˜=¨$Ô/ð �+‰+”n X§]¡]Ó3Ó
4€CØ‡N�N�8˜S $Ô'Ø‡L�L�Ôà×Ñ˜:Ô&Ø‡N�N�< ¨$Ô/ô “€JØ×Ñ˜jÔ)÷
ð 
÷
>ñ >÷.>ö >ð@ ×Ñ˜J¨
Ô3Ü˜ (¨d°D¸+Ð-FÐ,GÈÐTXÔYØ×ÑÔà×Ñ˜jÔ)Ø�<‰<˜ Ó%Ð%rˆ   c                ó    — t        | ||d¬«      S ©NT©rV  )r^  )rƒ   r8  r‚   s      r†   rï  rï  Î  s   € Ü# G¨S°$ÀÔFÐFrˆ   c                ó  — | j                   j                  r| j                  d|j                  «       |j                  r| j                  |j                  «      }n| j                  j                  «       }t        | ||j                  «      S )Nz"async generators are unimplemented)	r§   rà  r¯   r‚   rŒ   r~   rƒ   r•   r;  )rƒ   rŒ   rš   s      r†   Útransform_yield_exprrc  Ò  s`   € Ø‡�×#Ò#Ø�‰Ð:¸D¿I¹IÔFà‡y‚yØ—‘ §	¡	Ó*‰à—‘×%Ñ%Ó'ˆÜ�g˜v t§y¡yÓ1Ð1rˆ   c                óf   — t        | | j                  |j                  «      |j                  d¬«      S )NFra  ©r^  r~   rŒ   r‚   r  s     r†   Útransform_yield_from_exprrf  Ý  s%   € Ü# G¨W¯^©^¸A¿F¹FÓ-CÀQÇVÁVÐV[Ô\Ð\rˆ   c                óf   — t        | | j                  |j                  «      |j                  d¬«      S r`  re  r  s     r†   Útransform_await_exprrh  á  s%   € Ü# G¨W¯^©^¸A¿F¹FÓ-CÀQÇVÁVÐVZÔ[Ð[rˆ   c                ó:   — |j                  t        | |«      «       y rŸ   )r~   rw   )rƒ   rF  s     r†   Útransform_match_stmtrj  å  s   € Ø‡H�HŒ\˜' 1Ó%Õ&rˆ   c                ó  — |j                   }| j                  t        | j                  d«      g|«      }t	        | ||j
                  |j                   «      }| j                  |d|«      }| j                  |j                  j                  «      | j                  «       g}d d g}t        t        g}|j
                  rG|j                  | j                  ||«      «       |j                  d«       |j                  t        «       | j                  |||||¬«      }	|j                  j                  | j                   «      }
| j"                  j%                  t&        |	|
g|«       | j)                  |j                  «      }| j+                  ||	|«       y )NÚ_typingÚTypeAliasTypeÚtype_params)r©   Ú	arg_kinds)r‚   r$  rq   r  rO   Ú	type_argsr  rª   r•   r   r|   Ú	new_tupler   rî  rù  r~   r�   rƒ   r  rs   rÉ   rË   )rƒ   rk  r‚   Úmodrn  Útype_alias_typerê  r©   ro  ÚaliasÚ
compute_fnrã   s               r†   Útransform_type_alias_stmtrv  é  s=  € Ø�6‰6€Dð �.‰.œ W×%5Ñ%5°iÓ%@Ð$AÀ4Ó
H€CÜ$ W¨c°1·;±;ÀÇÁÓG€Kà×)Ñ)¨#¨ÀÓE€OØ×Ñ˜QŸV™VŸ[™[Ó)¨7¯<©<«>Ð:€DØ#'¨ ,€IÜœ'Ð"€IØ‡{‚{Ø�‰�G×%Ñ% k°4Ó8Ô9Ø×Ñ˜Ô'Ø×ÑœÔ#Ø�O‰O˜O¨T°4À9ÐXaˆOÓb€Eð
 —‘—‘ §¡Ó0€JØ‡O�O× Ñ Ô!CÀeÈZÐEXÐZ^Ô_à×*Ñ*¨1¯6©6Ó2€FØ‡N�N�6˜5 $Õ'rˆ   )rƒ   rN   r„   r   r¦   rL  )rƒ   rN   r…   r   r¦   rL  )rƒ   rN   r…   r   r¦   rL  )rƒ   rN   r…   r
   r¦   rL  )rŒ   r   r¦   r  )rƒ   rN   r…   r   r¦   rL  )rô   Ústrrõ   z
str | Noner¦   ztuple[str, str])rƒ   rN   r  r   r¦   rL  )rƒ   rN   r  zlist[Import]r¦   z4list[tuple[list[tuple[str, str | None, int]], bool]])rƒ   rN   r  z!list[tuple[str, str | None, int]]r¦   rL  )rƒ   rN   r  r   r¦   rL  )r    zlist[tuple[int, str, str]]r¦   úlist[ImportFromBucket])rƒ   rN   rô   rw  r9  rK  r>  rK  r?  r  r¦   rx  )rƒ   rN   rô   rw  r9  rK  r>  rK  r‚   rJ  r?  r  r¦   rL  )rƒ   rN   r  r   r¦   rL  )rƒ   rN   r…   r   r¦   rL  )rƒ   rN   rk  r%   r¦   rL  )rƒ   rN   rk  r   r¦   rL  )rƒ   rN   r  r   r¦   rL  )rƒ   rN   r  r   r¦   rL  )rƒ   rN   rk  r   r¦   rL  )rƒ   rN   r}   r¥  rˆ  zLSequence[tuple[tuple[ValueGenFunc, int] | None, Expression | None, GenFunc]]ra  zGenFunc | Noner‚   rJ  r¦   rL  )rƒ   rN   rÂ   r"   r¦   rL  )rƒ   rN   rª  r1   r«  r1   r¬  r1   r­  r¥  r¦   úRegister | None)rƒ   rN   rª  r1   r«  r1   r¬  r1   r±  r1   r©  ry  r¦   rA   )
rƒ   rN   r±  r1   r´  r¥  r�  rA   r¦   z)tuple[BasicBlock, FinallyNonlocalControl])rƒ   rN   r‹  r1   rµ  rV   r�  rA   r©  ry  r¦   r1   )ry   )
rƒ   rN   r­  r¥  r´  r¥  r‚   rJ  r¦   rL  )rƒ   rN   r¦   zlist[Value])rƒ   rN   rŒ   r   rã   úLvalue | Noner}   r¥  rw  r  r‚   rJ  r¦   rL  )rƒ   rN   rô  rA   rã   rz  r}   r¥  r‚   rJ  r¦   rL  )rƒ   rN   r×  r&   r¦   rL  )rƒ   rN   rç  r	   r¦   rL  )rƒ   rN   r×  r   r¦   rL  )rƒ   rN   rã   rY   r‚   rJ  r¦   rL  )rƒ   rN   r8  rA   r‚   rJ  r¦   rA   )
rƒ   rN   r8  rA   r‚   rJ  rV  r  r¦   rA   )rƒ   rN   rŒ   r'   r¦   rA   )rƒ   rN   r×  r(   r¦   rA   )rƒ   rN   r×  r   r¦   rA   )rƒ   rN   rF  r   r¦   rL  )rƒ   rN   rk  r$   r¦   rL  )ÄÚ__doc__Ú
__future__r   Úimportlib.utilr4  Úcollections.abcr   r   Útypingr   Ú
mypy.nodesÚmypyr   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(   Úmypyc.commonr)   r*   r+   r,   Úmypyc.ir.opsr-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   Úmypyc.ir.rtypesrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   Úmypyc.irbuild.ast_helpersrL   rM   Úmypyc.irbuild.builderrN   rO   rP   rQ   rR   Úmypyc.irbuild.for_helpersrS   Úmypyc.irbuild.generatorrT   Úmypyc.irbuild.nonlocalcontrolrU   rV   rW   Úmypyc.irbuild.specializerX   Úmypyc.irbuild.targetsrY   rZ   r[   r\   r]   Úmypyc.primitives.exc_opsr^   r_   r`   ra   rb   rc   rd   re   rf   rg   Úmypyc.primitives.generic_opsrh   ri   Ú$mypyc.primitives.librt_threading_opsrj   rk   Úmypyc.primitives.misc_opsrl   rm   rn   ro   rp   rq   rr   rs   rt   ru   Úmatchrw   r¥  ÚValueGenFuncr‡   r’   r›   r´   rä   r¸   rð   rø   r	  rÿ   rý   r   r@  rA  Ú__annotations__rB  rC  rE  rR  rU  r:  r_  rf  ro  rx  r{  r~  r�  r•  r§  r¯  r²  r¶  r¾  rÀ  rÎ  Ú	traverserÚTraverserVisitorrÐ  rã  rå  r  r  r  r  r  r  r;  r^  rï  rc  rf  rh  rj  rv  rP  rˆ   r†   ú<module>r•     s9  ðòõ #ã ß .Ý ã ÷#÷ #÷ #÷ #÷ #÷ #÷ #÷ #÷ #÷Hó ÷÷ ÷ ÷ ÷ õ ÷.÷ ÷ ÷ S÷õ õ 6Ý Q÷ñ õ
 A÷õ ÷÷ ÷ ÷ @ß Q÷÷ ÷ õ  à
�2�t�8Ñ
€Ø˜˜E˜	Ñ"€ó#ó*Ló"Hóó@E(óPAó(ó2$ó&'AðTØðØ+ðà9óð6
Øð
Ø@ð
à	ó
ð$ØðØ@ðà	óóD]ð. "#Ð ˜Ó "ØÐ �EÓ ØÐ �5Ó ÷!ñ !óð&(Øð(àð(ð ð(ð ð	(ð
 ð(ð ó(ð*:YØð:Yàð:Yð ð:Yð ð	:Yð
 ð:Yð ð:Yð 
ó:Yóz+ó!ó$!ó2
ó?óBóðU'ØðU'à
ðU'ð [ðU'ð ð	U'ð
 ðU'ð 
óU'ópEð*Øðàðð ðð ð	ð
 ðð óð*Øðàðð ðð ð	ð
 ðð ðð óð>*Øð*Ø'1ð*ØAHð*ØSXð*à.ó*ð*Øð*àð*ð ,ð*ð ð	*ð
 ð*ð ó*ð\ OQð"&Øð"&Ø")ð"&Ø9@ð"&ØHKð"&à	ó"&ðL OQði'Øði'Ø")ði'Ø9@ði'ØHKði'à	ói'ôZ$�D—N’N×3Ò3ô $ó&.óRHðXØðXà
ðXð ðXð ð	Xð
 ðXð ðXð 
óXðvFØðFØ$ðFØ.;ðFØCJðFØRUðFà	óFó4
ó%ó.Oó9óFð(a&Øða&Ø"ða&Ø*-ða&Ø<@ða&à
óa&óHGó2ó]ó\ó'ô(rˆ   