+
    –°³j
€  ã                  ó¼  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHtHtH	t	 ^RI
HtHtHtHtHtHtHtHtHtHtHtHt ^RIHt ]	'       d   ^ RIt^ RIHtHt ^ RIHt ^RIH t  ^t!^t"^t#^t$^t%^ t&^@t'^€t(R	t)R
t*Rt+Rt,R R lt-RR R llt.R R lt/]P`                  ! RR7       ! R R4      4       t1]P`                   ! R R4      4       t2R R lt3R R lt4 ! R R4      t5R# ) aÐ  
This module provides functionality for resuming Python execution at specific points in code,
primarily used by PyTorch Dynamo for control flow handling and optimization. It implements
bytecode transformation and execution state management to enable:

- Resuming execution at arbitrary points in Python bytecode
- Managing context managers and their state across execution boundaries
- Transforming and generating new code objects with preserved execution state
- Supporting Python 3.11+ exception handling and block management
- Restoring torch function mode stacks and other execution context

The module is critical for PyTorch Dynamo's ability to optimize code while preserving
Python semantics and execution state.
)ÚannotationsN)ÚAnyÚcastÚTYPE_CHECKING)Úadd_push_nullÚbytecode_from_templateÚcreate_binary_subscrÚcreate_call_functionÚcreate_call_function_exÚcreate_instructionÚcreate_jump_absoluteÚcreate_load_constÚInstructionÚoverwrite_instructionÚtransform_code_objectÚ	unique_id)ÚExactWeakKeyDictionary)ÚCallableÚIterable)ÚAbstractContextManager)ÚCodeOptionsé   i   Útorch_dynamo_resume_inÚ__is_tracing_resume_prologuec               ó    € V ^8„  d   QhRRRR/# )é   Úinstsúlist[Instruction]ÚreturnÚNone© )Úformats   "Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/resume_execution.pyÚ__annotate__r#   B   s   € ÷ <ñ <Ð/ð <°Dñ <ó    c                óÎ   € \         P                  R8¼  dP   V P                  \        R4      4       \         P                  R8  d   V P                  \        R^R7      4       R# R# R# )é   Ú	PUSH_NULLÚSWAP©ÚargN©r&   é   )r&   é   )ÚsysÚversion_infoÚappendr   )r   s   &r"   Ú_initial_push_nullr1   B   sN   € Ü
×Ñ˜7Ô"Ø�‰Ô'¨Ó4Ô5Ü×Ñ˜gÔ%Ø�L‰LÔ+¨F¸Ô:Ö;ñ &ñ #r$   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚtemplatezCallable[..., Any]Ústack_indexÚintÚvarname_mapzdict[str, Any] | Noner   z+tuple[list[Instruction], list[Instruction]]r    )r!   s   "r"   r#   r#   J   s6   € ÷ &Jñ &JØ ð&Jàð&Jð 'ð&Jð 1ñ	&Jr$   c                ól  € \        WR 7      pVP                  \        R4      4       V F:  pVP                  '       g   K  VP                  ;P                  V,          un        K<  	  \        R \        V4       4       R4      w  rVVf   \        R4      hVf   \        R4      h\        V\        R4      .4       W5^,           ,          P                  R8w  d&   \        RW5^,           ,          P                   24      h\        W5^,           ,          \        R4      .4       VRV^,            W5^,           R 3# )	©r6   ÚPOP_TOPc              3  óx   "  € T F0  w  rVP                   R9   g   K  VP                  R8X  g   K+  W3x € K2  	  R# 5i)Ú	LOAD_FASTÚdummyN©r;   ÚLOAD_FAST_BORROW©ÚopnameÚargval)Ú.0ÚiÚinsts   &  r"   Ú	<genexpr>Ú5_bytecode_from_template_with_split.<locals>.<genexpr>Y   s=   é € ð 	
á3‘�Ø�{‰{Ð?Ñ?ô ð —‘˜wÑ&ô ˆQ�IÛ3ùs   ‚:œ:¯:Nz6LOAD_FAST dummy instruction not found in template codez,LOAD_FAST dummy instruction instance is NoneÚNOPz,Expected POP_TOP after LOAD_FAST dummy, got )NN)
r   r0   r   Úexn_tab_entryÚdepthÚnextÚ	enumerateÚAssertionErrorr   r@   )r3   r4   r6   Útemplate_coderD   Ú	dummy_idxÚ
dummy_insts   &&&    r"   Ú"_bytecode_from_template_with_splitrP   J   s*  € ô
 +¨8ÔM€MØ×ÑÔ+¨IÓ6Ô7ó ˆØ××ÒØ×Ñ×$Ò$¨Õ3×$ñ ô
 !ñ	
ä$ ]Ô3ó	
ð 	óÑ€Ið ÒÜÐUÓVÐVØÒÜÐKÓLÐLô ˜*Ô'9¸%Ó'@Ð&AÔBð  •]Õ#×*Ñ*¨iÔ7ÜØ:¸=ÐUVÍÕ;W×;^Ñ;^Ð:_Ð`ó
ð 	
ô ˜-°A­Õ6Ô9KÈEÓ9RÐ8SÔTà˜˜9 q�=Ð)¨=ÀQ½¸Ð+IÐIÐIr$   c               ó    € V ^8„  d   QhRRRR/# )r   r<   r   r   r   r    )r!   s   "r"   r#   r#   s   s   € ÷ 	ñ 	¨ð 	°ñ 	r$   c                ó@   €  V  R #    \         P                  4        h ; i©N)Ú$__import_torch_dot__dynamo_dot_utilsÚ_pop_torch_function_stack)r<   s   &r"   Ú_try_except_tf_mode_templaterV   s   s    € ð
ÛøðÜ,×FÑFÔHØús   ‚ †T)Úfrozenc                  óT   € ] tR t^t$ R]R&   RtR]R&   R R ltR R	 ltR
 R ltRt	R# )ÚReenterWithr5   r4   Nztuple[Any, ...] | NoneÚtarget_valuesc               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úcode_optionsr   Úcleanupr   r   r    )r!   s   "r"   r#   ÚReenterWith.__annotate__„   s$   € ÷  ñ  Ø'ð Ø2Cð à	ñ r$   c                óT   € \        \        V P                  4      w  r4WB,           VR&   V# )z|
Codegen based off of:
try:
    (rest)
except:
    (pop the torch function mode that was pushed for this context)
    raise
ºNNN)rP   rV   r4   )Úselfr]   r^   Úsetup_try_exceptÚepilogues   &&&  r"   Útry_except_torch_function_modeÚ*ReenterWith.try_except_torch_function_mode„   s3   € ô &HÜ(Ø×Ñó&
Ñ"Ðð Õ'ˆ�‰
àÐr$   c               ó$   € V ^8„  d   QhRRRRRR/# r\   r    )r!   s   "r"   r#   r_   ™   s$   € ÷ -.ñ -.Ø'ð-.Ø2Cð-.à	ñ-.r$   c                ó:  € . pV P                   '       d%   V P                    Uu. uF  p\        V4      NK  	  pp\        RV P                   24      pWQR,          9  d   VR;;,          V3,          uu&   R F(  pWaR,          9  g   K  VR;;,          V3,          uu&   K*  	  . p\	        V4       VP                  . VO\        \        V4      R4      O\        RVR7      N4       R R lp\        W€P                  R	V/R
7      w  ršW¢,           VR&   Wy,           # u upi )zY
Codegen based off of:
load args
enter context
try:
    (rest)
finally:
    exit context
Ú___context_manager_Úco_varnamesÚco_namesFÚ
STORE_FAST©rA   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   ÚctxzAbstractContextManager[Any]r<   r   r   r   r    )r!   s   "r"   r#   Ú-ReenterWith.try_finally.<locals>.__annotate__»   s"   € ÷ 	/ñ 	/Ð6ð 	/¸sð 	/Àtñ 	/r$   c                ó‚   € V P                  4         V V P                  R R R 4       R #   T P                  R R R 4       i ; irS   ©Ú	__enter__Ú__exit__©rp   r<   s   &&r"   Ú	_templateÚ*ReenterWith.try_finally.<locals>._template»   s4   € Ø�M‰MŒOð/Ùà—‘˜T 4¨Ö.ø�—‘˜T 4¨Õ.ús   ’) ©>rp   r8   ra   rs   )
rZ   r   r   r4   r1   Úextendr	   Úlenr   rP   )rb   r]   r^   Ú	load_argsÚvalÚctx_nameÚnameÚ
create_ctxrw   Úsetup_try_finallyrd   s   &&&        r"   Útry_finallyÚReenterWith.try_finally™   s%  € ð ˆ	Ø××ÐØ;?×;MÒ;MÓNÑ;M°CÔ*¨3Ö/Ñ;MˆIÐNÜÐ2°4×3CÑ3CÐ2DÐEÓFˆØ¨Õ6Ô6Ø˜×'¨H¨;Õ6Ó'Û-ˆDØ¨
Õ3Ö3Ø˜Z×(¨T¨GÕ3Õ(ñ .ð )+ˆ
Ü˜:Ô&Ø×ÑðØðä%¤c¨)£n°eÓ<ðô # <¸ÔAðô	
õ	/ô 'IØ×'Ñ'°e¸XÐ5Fô'
Ñ#Ðð Õ'ˆ�‰
ØÕ-Ð-ùò; Os   £Dc               ó$   € V ^8„  d   QhRRRRRR/# )r   r]   údict[str, Any]r^   r   r   z,tuple[list[Instruction], Instruction | None]r    )r!   s   "r"   r#   r_   È   s$   € ÷ 9;ñ 9;Ø*ð9;Ø5Fð9;à	5ñ9;r$   c                ó@  € . pV P                   '       d%   V P                    Uu. uF  p\        V4      NK  	  pp. p\        P                  R8  d   \	        V4       VP                  . VO\        \        V4      R4      O4       R R lp\        W`P                  4      w  rxW‚,           VR&   \        R V 4       R4      p	V	f   \        R4      h\        V	\        R4      .4       R	 V 4       p
\        V
R4      p\        V
R4      e   \        R
4      hWW,           V3# u upi )z2
Codegen based off of:
with ctx(args):
    (rest)
Fc               ó$   € V ^8„  d   QhRRRRRR/# ro   r    )r!   s   "r"   r#   Ú*ReenterWith.__call__.<locals>.__annotate__á   s"   € ÷ 	ñ 	Ð6ð 	¸sð 	Àtñ 	r$   c                óX   € V ;_uu_ 4        V R R R 4       R #   + '       g   i     R # ; irS   r    rv   s   &&r"   rw   Ú'ReenterWith.__call__.<locals>._templateá   s   € ß’Ù÷ ——’ús   ‹˜)	ra   c              3  ór   "  € T F-  pVP                   R9   g   K  VP                  R8X  g   K)  Vx € K/  	  R# 5i)r;   rp   Nr=   r?   ©rB   rD   s   & r"   rE   Ú'ReenterWith.__call__.<locals>.<genexpr>ë   s9   é € ð á&�DØ—;‘;Ð"CÑCô ð —K‘K 5Ñ(÷ ’Û&ùs   ‚7š7­
7Nz1LOAD_FAST ctx instruction not found in setup_withrG   c              3  óJ   "  € T F  qP                   R 8X  g   K  Vx € K  	  R# 5i)ÚPUSH_EXC_INFON)r@   r‹   s   & r"   rE   rŒ   ù   s   é € ð 
Ù%�T¯©¸Ñ)G�DŠD›Xùs   ‚#™
#z)Expected only 1 PUSH_EXC_INFO in epilogue)r&   é   )rZ   r   r.   r/   r1   ry   r	   rz   rP   r4   rJ   rL   r   r   )rb   r]   r^   r{   r|   r   rw   Ú
setup_withrd   Úload_fast_ctx_instÚpush_exc_info_genÚpush_exc_info_insts   &&&         r"   Ú__call__ÚReenterWith.__call__È   sA  € ð ˆ	Ø××ÐØ;?×;MÒ;MÓNÑ;M°CÔ*¨3Ö/Ñ;MˆIÐNà(*ˆ
ä×Ñ˜gÔ%Ü˜zÔ*Ø×ÑðØðä%¤c¨)£n°eÓ<ðô	
õ	ô  BØ×'Ñ'ó 
Ñˆ
ð Õ'ˆ�‰
ä!ñá&óð ó
Ðð Ò%Ü Ð!TÓUÐUäÐ0Ô3EÀeÓ3LÐ2MÔNñ
Ù%ó
Ðô "Ð"3°TÓ:ÐäÐ! 4Ó(Ò4Ü Ð!LÓMÐMàÕ&Ð(:Ð:Ð:ùò[ Os   £Dr    )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__rZ   re   r�   r”   Ú__static_attributes__r    r$   r"   rY   rY      s(   ‡ àÓØ,0€MÐ)Ó0õ õ*-.÷^9;ñ 9;r$   rY   c                  ó²   € ] tR tRt$ R]R&   ]P                  ! ]R7      tR]R&   ]P                  ! ]R7      t	R]R&   ]P                  ! ]
R7      tR	]R
&   RtR# )ÚResumeFunctionMetadatai  útypes.CodeTypeÚcode)Údefault_factoryr   Úinstructionsz	list[int]Ú prefix_block_target_offset_remapz%dict[tuple[int, int], dict[int, int]]Úblock_target_offset_remapr    N)r–   r—   r˜   r™   rš   ÚdataclassesÚfieldÚlistr¡   r¢   Údictr£   r›   r    r$   r"   r�   r�     sX   ‡ à
ÓØ&1×&7Ò&7ÈÔ&M€LÐ#ÓMð 3>×2CÒ2CØô3Ð$ ió ð
 	×Ò¨$Ô/ð ÐD÷ r$   r�   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úl1zIterable[Any]Úl2ÚcondzCallable[[Any, Any], bool]r   z	list[Any]r    )r!   s   "r"   r#   r#     s0   € ÷ ñ Øðàðð %ðð ñ	r$   c                óÆ   € \        V4      p. p \        V4      pV  F/  pV! We4      '       g   K  VP                  V4       \        V4      pK1  	  V#   \         d     T# i ; i)zž
Two-pointer conditional filter.
e.g. _filter_iter(insts, sorted_offsets, lambda i, o: i.offset == o)
returns the instructions with offsets in sorted_offsets
)ÚiterrJ   r0   ÚStopIteration)r©   rª   r«   ÚitÚresÚcurr|   s   &&&    r"   Ú_filter_iterr²     sg   € ô 
ˆb‹€BØ€CðÜ�2‹hˆÛˆCÙ�C�~Œ~Ø—
‘
˜3”Ü˜2“h’ñ ð €Jøô ô ØØ€Jðús   �A ¯ A ÁA ÁA c               ó    € V ^8„  d   QhRRRR/# )r   Útupztuple[Any, ...]r   r   r    )r!   s   "r"   r#   r#   -  s   € ÷ ñ ˜oð Ð2Cñ r$   c                ó˜   € . p\        V4       VP                  R  V  4       4       VP                  \        \        V 4      R4      4       V# )c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irS   )r   )rB   r|   s   & r"   rE   Ú'_load_tuple_and_call.<locals>.<genexpr>0  s   é € Ð7±3¨CÔ" 3×'Ð'³3ùs   ‚F)r1   ry   r	   rz   )r´   r   s   & r"   Ú_load_tuple_and_callr¸   -  s>   € Ø!€EÜ�uÔØ	‡L�LÑ7±3Ó7Ô7Ø	‡L�LÔ%¤c¨#£h°Ó6Ô7Ø€Lr$   c                  óŠ   € ] tR tRt]! 4       t]! 4       t]R R l4       t]R R l4       t	]
R R l4       t]R R	 l4       tR
tR# )ÚContinueExecutionCachei5  c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   rŸ   rž   Úlinenor5   Úinit_offsetÚkeyr   r   r    )r!   s   "r"   r#   Ú#ContinueExecutionCache.__annotate__:  s4   € ÷ $ñ $Ø!ð$Ø+.ð$Ø=@ð$ØHKð$à	ñ$r$   c                	ó
  € WP                   9  d   / V P                   V&   \        V4      pW@P                   V,          9  d*   V P                  ! WV.VO5!  V P                   V,          V&   V P                   V,          V,          # rS   )ÚcacheÚtupleÚgenerate)ÚclsrŸ   r¼   r½   r¾   s   &&&&*r"   ÚlookupÚContinueExecutionCache.lookup9  sg   € ð —y‘yÔ Ø ˆC�I‰I�d‰OÜ�C‹jˆØ—i‘i •oÔ%Ø#&§<¢<°¸kÐ#PÈCÓ#PˆC�I‰I�d�O˜CÑ Ø�y‰y˜�˜sÕ#Ð#r$   c                óX   € V ^8„  d   Qh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¼   r5   r½   Úresume_offsetÚsetup_fn_target_offsetsútuple[int, ...]ÚnstackÚargnamesztuple[str, ...]Úargnames_nullÚ	setup_fnsztuple[ReenterWith, ...]Úhandle_inactive_ctxÚboolÚstack_ctx_varsz'tuple[tuple[int, tuple[Any, ...]], ...]Úargnames_ctx_varsz'tuple[tuple[str, tuple[Any, ...]], ...]Ú
null_idxesÚnested_code_objsztuple[types.CodeType]Úpop_nested_resume_resultr   r    )r!   s   "r"   r#   r¿   E  s¾   € ÷ eñ eàðeð ðeð ð	eð
 ðeð "1ðeð ðeð "ðeð 'ðeð +ðeð "ðeð @ðeð Cðeð $ðeð" 0ð#eð* #'ð+eð, 
ñ-er$   c                	ó>  a aaaaaaa	a
aaaaaaa€ Sf   \        R4      hVP                  \        \        ,          \        ,          \
        ,          ,          '       d   \        R4      hVP                  \        ,          '       g   \        R4      hV\        P                  9   d    S P                  VSVSSSSSS	S
SSSSS4      # \        P                  R8¬  o\        V4      oR VVVV V
VVVVVVVVVV	V3R llp\        VV4      w  ppS\        P                  V&   V# )Nzresume_offset must not be NonezLCannot generate resume function for generator, coroutine, or async generatorz+Code object must have CO_OPTIMIZED flag setc               ó$   € V ^8„  d   QhRRRRRR/# ©r   r¡   r   r]   r„   r   r   r    )r!   s   "r"   r#   Ú5ContinueExecutionCache.generate.<locals>.__annotate__|  s)   € ÷ j	4ñ j	4Ø+ðj	4Ø;Iðj	4àñj	4r$   c                óH  <a€ \         P                  ! V 4      S#n        R R.oS\        S%4       Uu. uF  pRV 2NK
  	  up,          oSP	                  V3R lS 4       4       \        VR,          ;'       g    . 4      \        VR,          ;'       g    . 4      ,           p\        \        V4      4      p\         RVR,           RS" 2VR&   S!'       dw   VR	,          P                  R
^R7      p\        V4      ^8X  d   VR,          VR	&   M?\        V4      ^8w  d   \        R\        V4       24      hVw  rVV R
\         RV RS" 2VR	&   S"VR&   R*VR&   W1R&   \        S4      VR&   ^ VR&   ^ VR&   \        SS Uu. uF  qwS9  g   K  VNK  	  up,           VR,           Uu. uF  qwS9  g   K  VNK  	  up,           \        .,           4      VR&   VR,          \        \        ,          ( ,          VR&   \        V(3R lV  4       4      p. p	S!'       dJ   V'       d&   V	P                  \!        R\        V4      R7      4       V	P                  \!        R^ R7      4       V	P	                  \!        RRR7      \!        R\        R7      .4       . p
S* Uu/ uF  q»P"                  VbK  	  pp\%        S*4       UUu/ uF  w  r+VP"                  S)V,          bK  	  pppV  Uu/ uF  qîP&                  VbK  	  pp/ p^ p^ p\)        S+4      p\        S%\        S&4      ,           4       EF  pV\        S&4      8  d3   S&V,          V8X  d%   V	P                  \!        R4      4       V^,          pMXV	P                  \!        RRV 2R7      4       S '       d)   VV9   d"   V	P	                  \+        VV,          4      4       V^,          pW,9   g   K¦  VP-                  V4      pV! W4      w  ppV	P	                  V4       S!'       g   KÝ  VP-                  V4      pVV,          pS#P.                  P                  V4       VVV&   EK  	  S!'       d$   \1        \3        S#P.                  4      4      S#n        V'       d   \        RV 24      hS '       d_   S FX  w  ppV	P                  \!        RVR7      4       V	P	                  \+        V4      4       V	P                  \!        RVR7      4       KZ  	  S'       dy   \4        P6                  R+8  d   \        R\4        P6                   24      hS FA  pVS9   d   \        RV: R 24      hV	P	                  \!        R4      \!        RVR7      .4       KC  	  S$'       EdG   V	P	                  . \9        \!        RR R7      \!        RR,R7      \;        4       .4      O\!        RR R7      N\!        RR,R7      N\!        R!4      N\!        RR R7      N\!        RRR7      N\!        R"^R7      N\!        RRR7      N\!        RR,R7      N\;        4       N\!        R#^R7      N\!        RRR7      N\!        RR,R7      N\!        R!4      N\!        R$R R7      N\!        R$RR7      N\!        RR%R7      N\!        R\        R7      N\=        R%R%4      O4       S''       d   V	P                  \!        R&4      4       M-V	P	                  \!        RR%R7      \!        R\        R7      .4       V	P                  \?        V4      4       V  FE  pVP&                  VP&                  8X  d    M)R'Vn         \4        P6                  R-8¼  g   K>  R'Vn!        KG  	  V
'       d2   V	P	                  V
4       V	P	                  SPE                  V4      4       V'       dz   S!'       g   \        R(4      hV  F`  pVPF                  '       g   K  VPF                  PH                  V9   g   K4  VVPF                  PH                  ,          VPF                  n$        Kb  	  W�,           V R)&   R'# u upi u upi u upi u upi u uppi u upi ).Ú__nested_resume_fnsÚ__nested_frame_valuesÚ___stackc              3  ó8   <"  € T F  qS9  g   K  Vx € K  	  R # 5irS   r    )rB   ÚvÚargss   & €r"   rE   ÚBContinueExecutionCache.generate.<locals>.update.<locals>.<genexpr>ƒ  s   øé € Ð=¡8˜a¸©}Ÿš£8ùó   ƒ�
Úco_cellvarsÚco_freevarsÚ_Úco_nameÚ_at_Úco_qualnameÚ.)Úmaxsplitz-Expected qualified path to have 2 parts, got Úco_firstlinenoÚco_argcountÚco_posonlyargcountÚco_kwonlyargcountrj   Úco_flagsc              3  óL   <"  € T F  qP                   S8X  g   K  Vx € K  	  R # 5irS   ©Úoffset)rB   rC   rÈ   s   & €r"   rE   rá   §  s   øé € ÐO¡\ ·X±XÀÑ5NŸ!š!£\ùó   ƒ$š
$ÚCOPY_FREE_VARSr)   ÚRESUMEÚ
LOAD_CONSTTrm   rl   r'   r;   zUnprocessed hooks remaining: z)argnames_null requires Python 3.12+, got zargnames_null variable z should not be in argsÚDELETE_SUBSCRÚ
BUILD_LISTÚLIST_EXTENDÚDELETE_FASTFr9   Nz+old_hook_target_remap requires Python 3.11+ra   r    )r&   é   éÿÿÿÿr+   )%ÚcopyÚdeepcopyr¡   Úrangery   rÂ   ÚsortedÚTORCH_DYNAMO_RESUME_IN_PREFIXÚrsplitrz   rL   Ú"IS_TRACING_RESUME_PROLOGUE_VARNAMEÚ
CO_VARARGSÚCO_VARKEYWORDSrJ   r0   r   r4   rK   rò   r§   r¸   Úpopr¢   r¦   Úreversedr.   r/   r   r   r
   r   Ústarts_lineÚ	positionsÚunreachable_codesrH   Útarget),r¡   r]   rC   ÚfreevarsÚqualified_pathÚmodule_nameræ   rß   r  Úprefixr^   ÚfnÚhooksÚhook_target_offsetsrD   Úoffset_to_instÚold_hook_target_remapÚstack_iÚnull_iÚstack_ctx_vars_dÚhookÚ
hook_instsÚ
exn_targetÚhook_target_offsetÚold_hook_targetr~   Úvalsrà   rÌ   rÒ   rÍ   rÄ   rÏ   Úis_py311_plusr¼   ÚmetarÔ   rË   rÓ   rÕ   rÈ   rÉ   rÎ   rÑ   s,   &&                         @€€€€€€€€€€€€€€€€r"   ÚupdateÚ/ContinueExecutionCache.generate.<locals>.update|  s  ù€ ô !%§¢¨lÓ ;ˆDÔà)Ð+BÐCˆDØ¬U°6¬]Ó;©]¨�x ˜s“^©]Ñ;Õ;ˆDØ�K‰KÔ=¡8Ó=Ô=Ü˜\¨-Õ8×>Ð>¸BÓ?Ä%Ø˜]Õ+×1Ð1¨róCõ ˆHô œV HÓ-Ó.ˆHä0Ð1°°<À	Õ3JÐ2KÈ4ÐPVÈxÐXð ˜Ñ#÷ Ø!-¨mÕ!<×!CÑ!CÀCÐRSÐ!CÓ!T�Ü�~Ó&¨!Ô+Ø2>¸yÕ2I�L Ò/ä˜>Ó*¨aÔ/Ü,ØKÌCÐP^ÓL_ÐK`Ðaóð ð ,:Ñ(�Kà&˜- qÔ)FÐ(GÀqÈÈ	ÐQUÐV\ÐU]Ð^ð ! Ñ/ð .4ˆLÐ)Ñ*Ø*,ˆL˜Ñ'Ø*2˜Ñ'Ü*-¨d«)ˆL˜Ñ'Ø12ˆLÐ-Ñ.Ø01ˆLÐ,Ñ-Ü*/ØÙ+Ó=™m˜¸©}—1�1™mÑ=õ>à*¨=Ö9ÓKÑ9˜Àd¹]—1�1Ñ9ÑKõLô 6Ð6õ7ó+ˆL˜Ñ'ð (4°JÕ'?Üœ^Õ+ðCõ (ˆL˜Ñ$ô ÔO¡\ÓOÓOˆFàˆFßßØ—M‘MÜ*Ð+;ÄÀXÃÔOôð —‘Ô0°¸qÔAÔBð
 �M‰Mä& |¸DÔAÜ&Ø$Ô-Oôðôð *,ˆGÙ2;Ó<±)¨B—^‘^ RÒ'±)ˆEÐ<ô ' yÔ1ô#á1‘E�Að —‘Ð 7¸Õ :Ò:Ù1ð  ñ #ñ =IÓI¹L°DŸk™k¨4Ò/¹LˆNÐIð %'Ð!ØˆGØˆFÜ# NÓ3ÐÜ˜6¤C¨
£OÕ3×4�ØœC 
›OÔ+°
¸6Õ0BÀaÔ0GØ—M‘MÔ"4°[Ó"AÔBØ˜a•K‘Fà—M‘MÜ*¨;ÀÈ'ÈÐ?SÔTô÷ +¨wÐ:JÔ/Jð Ÿ™Ô&:Ð;KÈGÕ;TÓ&UÔVØ˜q•L�Gà–:Ø Ÿ9™9 Q›<�DÙ-1°,Ó-HÑ*�J 
Ø—M‘M *Ô-ß$‘}Ø-@×-DÑ-DÀQÓ-GÐ*Ø*8Ð9KÕ*L˜Ø×=Ñ=×DÑDÐEWÔXØAKÐ-¨oÔ>ñ- 5÷0 ô 9=Ü˜T×BÑBÓCó9�Ô5÷ Ü$Ð'DÀUÀGÐ%LÓMÐM÷ #Û"3‘J�D˜$Ø—M‘MÔ"4°[ÈÔ"NÔOØ—M‘MÔ"6°tÓ"<Ô=Ø—M‘MÔ"4°\È$Ô"OÖPñ #4÷ Ü×#Ñ# gÔ-Ü(ØCÄC×DTÑDTÐCUÐVóð ó '�AØ˜D”yÜ,Ø5°a±UÐ:PÐQóð ð —M‘Mä.¨{Ó;Ü.¨|ÀAÔFðöñ '÷  ÐØ—‘ð.ä&ä 2Ø$/Ð8Mô!"ô !3°<ÈÔ KÜ 4Ó 6ðóð.ô +¨;Ð?TÔUð.ô +¨<ÀÔCð.ô +¨?Ó;ð.ô  +¨;Ð?TÔUð!.ô" +¨;Ð?VÔWð#.ô$ +¨<¸QÔ?ð%.ô( +¨;Ð?VÔWð).ô* +¨<ÀÔCð+.ô, -Ó.ð-.ô8 +¨=¸aÔ@ð9.ô< +¨;Ð?VÔWð=.ô> +¨<ÀÔCð?.ô@ +¨?Ó;ðA.ôD +¨=ÐAVÔWðE.ôF +Ø)Ð2IôðG.ôP +¨<ÀÔFðQ.ôR +Ø(Ô1SôðS.ôZ 1°¸Ó>ð[.ô0÷b ,à—M‘MÔ"4°YÓ"?Ô@øð —‘ä*¨<ÀÔFÜ*Ø(Ô1Sôðôð �M‰MÔ.¨vÓ6Ô7ó
 %�Ø—;‘; &§-¡-Ô/ÙØ#'�Ô Ü×#Ñ# wÖ.Ø%)�D–Nñ %÷ Ø—‘˜gÔ&Ø—‘˜c×3Ñ3°LÓAÔB÷ %ç$Ü(Ð)VÓWÐWÛ(�Dà×*×*Ò*Ø ×.Ñ.×5Ñ5Ð9NÖNà4IØ ×.Ñ.×5Ñ5õ5˜×*Ñ*Ö1ñ )ð %Õ3ˆL˜‹OùòI <ùò< >ùÚKùò: =ùó#ùò Js/   °`Å9`

Æ`

Æ`
Æ,`
Ê`Ê1`Ë`r+   )rL   rï   ÚCO_GENERATORÚCO_COROUTINEÚCO_ITERABLE_COROUTINEÚCO_ASYNC_GENERATORÚCO_OPTIMIZEDrº   Úgenerated_code_metadataÚ&generate_based_on_original_code_objectr.   r/   r�   r   )rÄ   rŸ   r¼   r½   rÈ   rÉ   rË   rÌ   rÍ   rÎ   rÏ   rÑ   rÒ   rÓ   rÔ   rÕ   r   Únew_coderå   r  r  s   f&f&ffffffffffff   @@r"   rÃ   ÚContinueExecutionCache.generateD  s  ÿÿ€ ð0 Ò Ü Ð!AÓBÐBØ�=‰=Üœ<Õ'Ô*?Õ?ÔBTÕT÷
ô 
ô !Ø^óð ð —‘¤×,Ô,Ü Ð!NÓOÐOØÔ)×AÑAÔAØ×=Ñ=ØØØØØ'ØØØØØ#ØØ!ØØ Ø(óð ô$ ×(Ñ(¨GÑ3ˆÜ% dÓ+ˆ÷j	4÷ j	4÷ j	4ôX ,¨D°&Ó9‰ˆ�!ØCGÔ×6Ñ6°xÑ@Øˆr$   c               ó    € V ^8„  d   QhRRRR/# )r   r]   r„   r   r   r    )r!   s   "r"   r#   r¿   m  s   € ÷ 
ñ 
¨ð 
Ð;Lñ 
r$   c                ó2   € \        R4      \        R^R7      .# )zACodegen a `raise None` to make analysis work for unreachable codeNÚRAISE_VARARGSr)   )r   r   )r]   s   &r"   r
  Ú(ContinueExecutionCache.unreachable_codesl  s    € ô ˜dÓ#Ü˜°AÔ6ð
ð 	
r$   c               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR/# )r   rŸ   rž   r¼   r5   r½   rÈ   rÉ   rÊ   rà   r   r   r    )r!   s   "r"   r#   r¿   u  sY   € ÷ [
ñ [
àð[
ð ð[
ð ð	[
ð
 ð[
ð "1ð[
ð ð[
ð 
ñ[
r$   c                óè  aaaaa€ \         P                  S,          oR VV3R llpV! V4      pV! V4      p	V	R8:  d   \        R4      h\        P                  R8¼  dq   W‰3oSSP
                  9  d)   / ;oSP
                  S&   R VVV3R llp
\        SV
4       \        ;QJ d    . VV3R lS 4       F  NK  	  5M! VV3R lS 4       4      o\         P                  ! SP                  VVV	S.VO5!  # )	a  
This handles the case of generating a resume into code generated
to resume something else.  We want to always generate starting
from the original code object so that if control flow paths
converge we only generated 1 resume function (rather than 2^n
resume functions).
c               ó    € V ^8„  d   QhRRRR/# )r   Ú
cur_offsetr5   r   r    )r!   s   "r"   r#   ÚSContinueExecutionCache.generate_based_on_original_code_object.<locals>.__annotate__Š  s   € ÷ '	ñ '	¨ð '	°ñ '	r$   c                ó>   <a a€ RoR V VV3R llp\        SV4       S# )é   c               ó$   € V ^8„  d   QhRRRRRR/# rØ   r    )r!   s   "r"   r#   ÚmContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_orig_offset.<locals>.__annotate__�  s$   € ÷ !0ñ !0Ø/ð!0Ø?Mð!0àñ!0r$   c           	     ó`  <a€ V3R  lV  4       w  o\         ;QJ d=    . V3R l\        \        V 4      \        SP                  4      4       4       F  NK  	  5M6! V3R l\        \        V 4      \        SP                  4      4       4       4      pV'       g   R# \	        V4      ^8w  d   \        R\	        V4       24      hV^ ,          pSP                  VP                  8w  d&   \        RSP                   RVP                   24      hVP                  f   \        R4      hVP                  oR# )c              3  óL   <"  € T F  qP                   S8X  g   K  Vx € K  	  R # 5irS   rñ   )rB   rC   r2  s   & €r"   rE   ÚŽContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_orig_offset.<locals>.find_orig_offset_transform.<locals>.<genexpr>‘  s   øé € ÐO© 1¿¹ÀJÑ8NŸQšQ«ùró   c              3  ó<   <"  € T F  w  rVSJ g   K  Vx € K  	  R # 5irS   r    )rB   Úi1Úi2r  s   &  €r"   rE   r:  “  s)   øé € ð )ñ#™˜ð ˜V�|÷	 ’Bó#ùs   ƒ
’
Nz(Expected exactly 1 matching target, got zOpcode mismatch: target has z, new_target has z"new_target.offset must not be None)rÂ   Úzipr  r¡   rz   rL   Úopcoderò   )r¡   r]   Únew_target_tupleÚ
new_targetr  r2  r  Úorig_offsets   &&  @€€€r"   Úfind_orig_offset_transformÚ{ContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_orig_offset.<locals>.find_orig_offset_transform�  s  ù€ ô P©ÓO‘	�ç#(¤5ô )ä"%Ü  Ó.´¸×9JÑ9JÓ0Kô#ó)§5¡5ô )ä"%Ü  Ó.´¸×9JÑ9JÓ0Kô#ó)ó $Ð ÷ (ñ äÐ'Ó(¨AÔ-Ü(ØBÄ3ÐGWÓCXÐBYÐZóð ð .¨aÕ0�
à—=‘= J×$5Ñ$5Ô5Ü(Ø6°v·}±}°oð F*Ø*4×*;Ñ*;Ð)<ð>óð ð ×$Ñ$Ò,Ü(Ð)MÓNÐNØ(×/Ñ/’r$   rü   )r   )r2  rC  rB  rŸ   r  s   f @€€r"   Úfind_orig_offsetÚWContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_orig_offsetŠ  s&   ú€ ØˆK÷!0ò !0ôF " $Ð(BÔCØÐr$   z>resume instruction not found in original code - this is a bug.c               ó$   € V ^8„  d   QhRRRRRR/# rØ   r    )r!   s   "r"   r#   r3  Î  s)   € ÷ 1Oñ 1OØ"3ð1OØCQð1Oàñ1Or$   c           
     ó¸  <a
€ . pV  FL  p\        V4      \        SP                  4      8X  d    M(VP                  R 8X  g   K;  VP                  V4       KN  	  \	        VSP                  4       F"  w  r4VS\        \        VP                  4      &   K$  	  V'       d"   \        \        VR,          P                  4      MRo
\        V
3R lS 4       4      p\        WR 4      p\        \        \	        \        V 4      \        SP                  4      4      \        V4      R 4      4      p\	        Wv4       F%  w  r‰V^,          P                  SV	P                  &   K'  	  R# )rŽ   c              3  ó8   <"  € T F  qS8”  g   K  Vx € K  	  R # 5irS   r    )rB   ÚnÚcur_start_offsets   & €r"   rE   ÚmContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<genexpr>î  s   øé € ð .Ù#:˜aÐBRÑ>RŸšÓ#:ùrâ   c                ó    € V P                   V8H  # rS   rñ   )rD   Úos   &&r"   Ú<lambda>ÚlContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<lambda>ò  s   € ÈÏÉÐWXÒHXr$   c                ó   € V ^ ,          VJ # )é    r    )Úv1Úv2s   &&r"   rO  rP  û  s   € ¨2¨a­5°B©;r$   Nrü   )rz   r¢   r@   r0   r>  r   r5   rò   r   r²   r  r¡   )r¡   r]   Úprefix_blocksrD   rN  Úcur_inst_offsetsÚtargetsÚorig_targetsÚorigr±   rK  r£   r  rÉ   s   &&        @€€€r"   Úremap_block_offsetsÚZContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsetsÎ  s=  ù€ ð 8:�MÛ ,˜ô
 ˜}Ó-´Ø ×AÑAó2ô ñ "ØŸ;™;¨/Ö9Ø)×0Ñ0°Ö6ñ !-ô $'Ø% t×'LÑ'Lö$™˜ð MNÐ1´$´s¸D¿K¹KÓ2HÓIñ$÷ @MœœS -°Õ"3×":Ñ":Ô;ÐRTð %ô (.ô .Ù#:ó.ó (Ð$ô +Ø$Ñ8Xó�Gô $,Ü$Ü¤¨Ó 6¼À×ARÑARÓ8SÓTÜ$ WÓ-Ù6óó$�Lô &)¨Ö%?™	˜Ø@DÀQÅÇÁÐ1°#·*±*Ó=ó &@r$   c              3  óX   <"  € T F  pSP                   S,          V,          x € K!  	  R # 5irS   )r£   )rB   rJ  r  Ú
offset_keys   & €€r"   rE   ÚPContinueExecutionCache.generate_based_on_original_code_object.<locals>.<genexpr>  s+   øé € ð ,á0�Að ×.Ñ.¨zÕ:¸1×=Ò=Û0ùs   ƒ'*rü   r+   )
rº   r'  rL   r.   r/   r£   r   rÂ   rÅ   rŸ   )rÄ   rŸ   r¼   r½   rÈ   rÉ   rà   rE  Úorig_init_offsetÚorig_resume_offsetrZ  r£   r  r]  s   &f&&&f*    @@@r"   r(  Ú=ContinueExecutionCache.generate_based_on_original_code_objectt  s  ü€ ô$ (>×'UÑ'UØõ(
ˆ÷'	ñ '	ñR ,¨KÓ8Ðñ .¨mÓ<ÐØ Ô#Ü ØPóð ô ×Ñ˜wÔ&ð
 +Ð?ˆJð  ×!?Ñ!?Ô?ð ðÐ)¨D×,JÑ,JØñ-÷
1Oò 1Oôf & dÐ,?Ô@÷ ',¤eõ ,á0ó,§e¡eõ ,á0ó,ó 'Ð#ô &×,Ò,Ø�I‰IØØØØ#ð
ð ó
ð 	
r$   r    N)r–   r—   r˜   r™   r   rÁ   r'  ÚclassmethodrÅ   rÃ   Ústaticmethodr
  r(  r›   r    r$   r"   rº   rº   5  sf   † Ù"Ó$€EÙ4Ó6Ðàô$ó ð$ð ôeó ðeðN	 ô
ó ð
ð ô[
ó ô[
r$   rº   rS   )6Ú__doc__Ú
__future__r   rý   r¤   r.   Útypingr   r   r   Úbytecode_transformationr   r   r   r	   r
   r   r   r   r   r   r   r   Úutilsr   ÚtypesÚcollections.abcr   r   Ú
contextlibr   Úoutput_graphr   r&  ÚCO_NEWLOCALSr  r  Ú	CO_NESTEDr"  Ú	CO_NOFREEr#  r$  r%  r  r  r1   rP   rV   Ú	dataclassrY   r�   r²   r¸   rº   r    r$   r"   Ú<module>rq     sú   ðñõ #ã Û Û 
ß +Ñ +÷÷ ÷ ó õ *÷ Ûß2Ý1å)ð €Ø€Ø€
Ø€Ø€	Ø€Ø€	Ø€ØÐ ØÐ ð !9Ð Ø%CÐ "õ<÷&JõR	ð ×Ò˜dÔ#÷A;ð A;ó $ðA;ðH ×Ñ÷ð ó ðõ"õ.÷[
ó [
r$   