Ë
    ÃÓ^jL ã                  ó�  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZ ddlmZmZmZmZmZm Z  ddl!m"Z" ddl#Z#ddl$Z#ddl%m&Z&m'Z' ddl(m)Z)m*Z* dd	l+m,Z,m-Z-m.Z. dd
l/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8mZ9m:Z:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ ddlRmRZR ddlSmTZT ddlUmVZV ddl7mWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZa ddlbmcZc ddldmeZemfZf ddlgmhZhmiZimjZjmkZk ddllmmZmmnZnmoZompZp ddlqmrZrmsZs ddltmuZumvZvmwZw ddlxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€ 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�m�Z�m‘Z‘m’Z’ ddl“m”Z”m•Z•m–Z– dd l—m˜Z˜m™Z™ dd!lšm›Z› dd"lœm�Z�mžZžmŸZŸm Z  dd#l¡m¢Z¢ dd$l£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZªm«Z« dd%l¬m­Z­m®Z® dd&l¯m°Z° dd'l±m²Z²m³Z³m´Z´mµZµm¶Z¶ dd(l·m¸Z¸m¹Z¹mºZºm»Z»m¼Z¼m½Z½ dd)l¾m¿Z¿mÀZÀ dd*lÁmÂZÂmÃZÃmÄZÄmÅZÅ dd+lÆmÇZÇ dd,lÈmÉZÉ dd-lÊmËZËmÌZÌmÍZÍ dd.lÎmÏZÏmÐZÐ dd/lÑmÒZÒmÓZÓmÔZÔmÕZÕmÖZÖ erdd0lm×Z×mØZØ dd1lÙmÚZÚ dd2lÛmÜZÜ  e�jº                  eÞ«      Zße#�jÀ                  �jÃ                  eÞd3«      Zâe#�jÀ                  �jÃ                  eÞd4«      Zãe#�jÀ                  �jÃ                  eÞd5«      Zäe#�jÀ                  �jÃ                  eÞd6«      Zå e�jÌ                  «       Zç eË�jÐ                  «       D � �ci c]  \  } }|  e˜|«      �jÒ                  “Œ c}} Zêd7eëd8<    e˜e�jØ                  «      �jÒ                  Zí e˜e�jÜ                  «      �jÒ                  Zïd9„ eêd:<   d;„ eêd<<   e;�jr                  eÔz  eÕz  Zðd=eëd><   e
�jâ                  drd?„«       Zòe�jæ                   G d@„ dA«      «       Zôe�jæ                   G dB„ dC«      «       Zõe�jæ                   G dD„ dE«      «       Zöe�jæ                   G dF„ dG«      «       Z÷ G dH„ dI«      Zøe
�jâ                  dsdJ„«       Zùe�jô                  	 	 	 	 dtdL„«       Zûe�jô                  	 	 	 	 dtdM„«       Züe�jæ                   G dN„ dO«      «       Zý G dP„ dQeþ«      Zÿ G dR„ dS�e «      �Z G dT„ dU�e «      �ZdudV„�ZdvdW„�Ze
�jâ                  dwdX„«       �Z	 	 	 	 	 	 	 	 dxdY„�ZdZ�Zdyd[„�Zdzd{d\„�Z		 	 	 	 	 	 d|d]„�Z
	 	 	 	 	 	 	 	 d}d^„�Zd~d_„�Z	 	 	 	 	 	 dd`„�Z G da„ db�e«      �Ze�jæ                   G dc„ dd«      «       �Z G de„ dK�e¬f«      �Z G dg„ dh�e«      �Ze�j&                  dik\  r9e	�j(                  D ��cg c]  \  }} �e�edj|v r|dkd ndl|dkd › �«      ‘Œ! c}}�Ze�jô                  	 	 	 	 	 	 	 	 d€dm„«       �Z G dn„ do�e«      �Z G dp„ dq�e«      �Zyc c}} w c c}}w )�a  
Core module responsible for converting Python bytecode into TorchDynamo's symbolic execution format.

This module implements the bytecode-level tracing system that allows TorchDynamo to analyze
and transform Python code. It converts Python bytecode instructions into a symbolic format
that tracks the flow of tensors and other values through the program.

Key components:
- InstructionTranslatorBase: Base class for converting bytecode to symbolic execution
- InstructionTranslator: Main translator for function bytecode
- InliningInstructionTranslator: Handles inlining of called functions
- SpeculationLog: Manages state for speculative execution and rollback

The symbolic conversion process handles:
- Control flow (loops, conditionals, etc.)
- Function inlining and call stack management
- Tracking of program values and side effects
- Graph breaks and resumption points
- Exception handling and stack frame management

This is a core part of TorchDynamo's tracing system that enables ahead-of-time
optimization of PyTorch programs.
é    )ÚannotationsN)ÚdefaultdictÚdeque)ÚAnyÚcastÚNoReturnÚTYPE_CHECKINGÚ	TypeAliasÚTypeVar)ÚTypeIs)ÚDynamoProfilerStateÚFunctionTraceTiming)ÚObservedExceptionÚTensorifyScalarRestartAnalysis)ÚInlinedCodeCacheÚtracingÚTracingContext)Ú	dump_file)Ú
guard_bool)Úcache_methodé   )ÚconfigÚexcÚgraph_break_hintsÚloggingÚtrace_rulesÚ	variables)Úget_indexofÚJUMP_OPNAMESÚlivevars_analysisÚpropagate_line_nums)Úcleaned_instructionsÚcreate_binary_sliceÚcreate_call_functionÚcreate_call_function_exÚcreate_copyÚcreate_dup_topÚcreate_instructionÚcreate_jump_absoluteÚcreate_rot_nÚcreate_swapÚget_call_callable_depthÚget_code_keysÚInstructionÚis_generatorÚis_jump_absoluteÚ	unique_id)Úcode_context)Ú	PyCodegen)Ú%maybe_setup_comprehension_speculation)Ú!augment_exc_message_with_hop_nameÚBackendCompilerFailedÚcollapse_resume_framesÚformat_frame_infoÚget_stack_above_dynamoÚraise_value_errorÚResumePrologueTracingErrorÚStepUnsupportedÚunimplementedÚUnsupportedÚ	UserError)Úget_funcname)ÚGuardBuilderÚinstall_guard)ÚCodeOptionsÚGraphCompileReasonÚOutputGraphÚStackLocalsMetadata)Úimpl_IS_MAPPINGÚimpl_MATCH_CLASSÚimpl_MATCH_KEYSÚimpl_MATCH_SEQUENCE)ÚDummyModuleÚExecutionRecorder)ÚContinueExecutionCacheÚ"IS_TRACING_RESUME_PROLOGUE_VARNAMEÚReenterWith)Ú
AttrSourceÚDictGetItemSourceÚGlobalSourceÚGlobalWeakRefSourceÚLocalCellSourceÚLocalSourceÚSkipGuardSourceÚSource)Úis_builtin_constantÚis_forbidden)
Ú_get_error_on_graph_breakÚcountersÚget_fake_valueÚget_instruction_source_311Úget_metrics_contextÚgraph_break_dup_warning_checkerÚistypeÚ
LazyStringÚproxy_args_kwargsÚunpack_iterable)ÚSourceLocationÚtypestrÚValueMutationNewÚVariableTracker)ÚFrameStateSizeEntryÚVariableBuilderÚwrap_fx_proxy)ÚBuiltinVariableÚDictBuiltinVariable)ÚConstantVariable)ÚContextWrappingVariableÚGenericContextWrappingVariableÚWithEnterFunctionVariableÚWithExitFunctionVariable©ÚConstDictVariable)ÚBaseUserFunctionVariableÚ
CO_VARARGSÚCO_VARKEYWORDSÚLocalGeneratorFunctionVariableÚLocalGeneratorObjectVariableÚNestedUserFunctionVariableÚSkipFunctionVariableÚUserFunctionVariable)ÚIteratorVariableÚMAX_ITERATOR_LIMIT)ÚLazyVariableTracker)ÚBaseListVariableÚListIteratorVariableÚListVariableÚSliceVariableÚTupleVariable)ÚCellVariableÚExceptionVariableÚNullVariableÚPythonModuleVariableÚTracebackVariableÚUnknownVariable)ÚNNModuleVariableÚUnspecializedNNModuleVariable)Úgeneric_boolÚgeneric_containsÚgeneric_getiterÚvirtual_iterator_next)ÚSetVariable)ÚSymbolicStreamState)Úsupported_comparison_opsÚSymNodeVariableÚTensorVariable)ÚSymbolicTorchFunctionStateÚTorchFunctionModeVariable)ÚRemovableHandleVariableÚUserDefinedClassVariableÚ!UserDefinedExceptionClassVariableÚ"UserDefinedExceptionObjectVariableÚUserDefinedObjectVariable)ÚCallableÚ	Generator)ÚFakeTensorMode)ÚCompilePackageÚgraph_breaksÚ
trace_callÚtrace_sourceÚtrace_bytecodeúdict[str, Any]Úcompare_op_handlersc                ó2   — t        | g t        |«      ¢i «      S ©N)Úhandle_containsÚreversed©ÚtxÚargsÚ_s      úi/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/symbolic_convert.pyú<lambda>r¯   è   s   € ´ØÐŒ(�4‹.Ð˜2ó1€ ó    Úinc           
     óJ   — t        | t        | g t        |«      ¢i «      gi «      S r§   )Ú
handle_notr¨   r©   rª   s      r®   r¯   r¯   ë   s(   € ´JØŒ˜Ð.œx¨›~Ð.°Ó	3Ð4°bó5€ r°   znot inr
   ÚExceptionValsc                ó,   — t        j                  | «      S )z´
    Import the named module and cache the result. importlib.import_module()
    seems to do some filesystem checking to validate the name so not caching
    this can be slow.
    )Ú	importlibÚimport_module)Únames    r®   Ú_import_moduler¹   ö   s   € ô ×"Ñ" 4Ó(Ð(r°   c                  óp   — e Zd ZU ded<   ded<   ded<   ded<   dZd	ed
<   dZded<   dZded<   dd„Zdd„Zy)ÚSpeculationEntryÚstrÚfilenameÚintÚlinenoÚinstruction_pointerr.   ÚinstFÚboolÚ_failedNzbool | NoneÚerror_on_graph_breakzGraphCompileReason | NoneÚreasonc                ó”   — d| _         || _        | j                  �| j                  j                  }nd}t        j                  |¬«      ‚)z\
        Start tracing of the current frame over again, and don't take this branch.
        Tz!Unknown fail_and_restart_analysis)Úrestart_reason)rÃ   rÄ   rÅ   r   ÚSpeculationRestartAnalysis)ÚselfrÄ   rÇ   s      r®   Úfail_and_restart_analysisz*SpeculationEntry.fail_and_restart_analysis  sB   € ð ˆŒØ$8ˆÔ!Ø�;‰;Ð"Ø!Ÿ[™[×/Ñ/‰Nà@ˆNÜ×,Ñ,¸NÔKÐKr°   c                ón   — | j                   r)| j                  €t        d«      ‚| j                  |_        yy)Nz9expected self.error_on_graph_break is not None to be trueTF)rÃ   rÄ   ÚAssertionError)rÉ   r«   s     r®   ÚfailedzSpeculationEntry.failed  s;   € Ø�<Š<Ø×(Ñ(Ð0Ü$ØOóð ð '+×&?Ñ&?ˆBÔ#ØØr°   )rÄ   rÂ   ÚreturnÚNone)r«   ÚInstructionTranslatorBaserÎ   rÂ   )	Ú__name__Ú
__module__Ú__qualname__Ú__annotations__rÃ   rÄ   rÅ   rÊ   rÍ   © r°   r®   r»   r»      sC   … àƒMØƒKØÓØ
ÓØ€GˆTÓà(,Ð˜+Ó,Ø(,€FÐ%Ó,ó
Lôr°   r»   c                  óÈ   — e Zd ZU dZ ej
                  e¬«      Zded<   dZ	ded<   dZ
d	ed
<    ej
                  e¬«      Zded<   dZd	ed<   dd„Zdd„Z	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚSpeculationLoga3  
    SpeculationLog replaces the prior copy_graphstate/restore_graphstate
    checkpointing.  Rather than saving/restoring state, we restart the
    dynamo conversion process over from the beginning -- but when we
    hit the start of the speculation that failed, we instead generate
    a graph break.
    ©Údefault_factoryzlist[SpeculationEntry]Úentriesr   r¾   ÚindexFrÂ   Úgraph_break_on_autograd_gradú	list[str]Úautograd_grad_leaked_tensorsÚgraph_break_on_requires_grad_c                ó   — d| _         y ©Nr   )rÛ   ©rÉ   s    r®   ÚrestartzSpeculationLog.restart8  s	   € Øˆ�
r°   c                óF   — | j                   j                  «        d| _        y rá   )rÚ   ÚclearrÛ   râ   s    r®   rå   zSpeculationLog.clear;  s   € Ø�‰×ÑÔØˆ�
r°   c                ó6  — t        | j                  «      | j                  k(  r'| j                  j                  t	        ||||«      «       | j                  | j                     }d}| j                  dk7  r]| j                  | j                  dz
     }d|j
                  › d|j                  › d|j                  j                  › d|j                  › d�	}|j                  |k(  r|j
                  |k(  r|j                  |k(  s†t        d	| j                  › d
t        | j                  «      › d|j
                  › d|j                  › d|j                  j                  › d|j                  › d|› d|› d|j                  › d|› d|› d�«      ‚| xj                  dz  c_        |S )z’
        Lookup or create a SpeculationEntry() that is shared across
        RestartAnalysis calls.  Args are used only for debug checks.
        Ú r   r   zPrevious instruction: ú:ú(z @ z)
z"
SpeculationLog diverged at index z
 (log had z entries):
- Expected: ú (z at ip=z)
- Actual: a“  
There are two usual reasons why this may have occurred:
- When Dynamo analysis restarted, the second run took a different path than
  the first.  If this occurred, the previous instruction is the critical instruction that
  behaved differently.
- Speculation entries are only added under certain conditions (as seen in
  step()), e.g., there must exist operators in the graph; those conditions may
  have changed on restart.

If this divergence was intentional, clear the speculation log before restarting (do NOT
do this for graph breaks, you will infinite loop).

Otherwise, please submit a bug report, ideally including the contents of TORCH_LOGS=+dynamo
)ÚlenrÚ   rÛ   Úappendr»   r½   r¿   rÁ   ÚopnamerÀ   ÚSpeculationLogDivergence)rÉ   r½   r¿   rÀ   rÁ   ÚentryÚprev_entry_msgÚ
prev_entrys           r®   ÚnextzSpeculationLog.next?  s”  € ô ˆt�|‰|Ó §
¡
Ò*Ø�L‰L×ÑÜ  ¨6Ð3FÈÓMôð —‘˜TŸZ™ZÑ(ˆØˆØ�:‰:˜Š?ØŸ™ d§j¡j°1¡nÑ5ˆJà(¨×)<Ñ)<Ð(=¸Q¸z×?PÑ?PÐ>QØ�J—O‘O×*Ñ*Ð+¨3¨z×/MÑ/MÐ.NÈcðSð ð
 ×%Ñ%Ð)<Ò<Ø—‘ (Ò*Ø—‘ Ò&ä*ð"Ø"&§*¡* ¨Z¼¸D¿L¹LÓ8IÐ7Jð KØ�^‰^Ð˜A˜eŸl™l˜^¨2¨e¯j©j×.?Ñ.?Ð-@ÀÈ×HaÑHaÐGbð cØˆ*�A�f�X˜R §¡˜}¨GÐ4GÐ3Hð IØÐ ð ð	óð ð( 	�
Š
�a‰�
Øˆr°   N©rÎ   rÏ   )
r½   r¼   r¿   r¾   rÀ   r¾   rÁ   r.   rÎ   r»   )rÑ   rÒ   rÓ   Ú__doc__ÚdataclassesÚfieldÚlistrÚ   rÔ   rÛ   rÜ   rÞ   rß   rã   rå   rò   rÕ   r°   r®   r×   r×   "  s”   … ñð '8 k×&7Ñ&7ÈÔ&M€GÐ#ÓMØ€Eˆ3ƒNð */Ð  $Ó.à.?¨k×.?Ñ.?ÐPTÔ.UÐ  )ÓUð +0Ð! 4Ó/óóð-Øð-Ø%(ð-Ø?Bð-ØJUð-à	ô-r°   r×   c                  óF   — e Zd ZU  ej                  e¬«      Zded<   dd„Zy)Ú
LocalStaterØ   zdict[str, FrameStateSizeEntry]Úautomatic_dynamicc                ób   — dj                  d„ | j                  j                  «       D «       «      S )Nú
c              3  óL   K  — | ]  \  }}|› d |j                  «       › �–— Œ y­w)ú: N)Úrender)Ú.0ÚkÚvs      r®   ú	<genexpr>z$LocalState.render.<locals>.<genexpr>v  s*   è ø€ ò 
Ù%) Q¨ˆqˆc��A—H‘H“J�<Ô ñ
ùs   ‚"$)Újoinrú   Úitemsrâ   s    r®   rÿ   zLocalState.renderu  s/   € Ø�y‰yñ 
Ø-1×-CÑ-C×-IÑ-IÓ-Kô
ó 
ð 	
r°   N©rÎ   r¼   )	rÑ   rÒ   rÓ   rõ   rö   Údictrú   rÔ   rÿ   rÕ   r°   r®   rù   rù   o  s%   … à8I¸×8IÑ8IØô9ÐÐ5ó ô
r°   rù   c                  ó0   — e Zd ZU ded<   ded<   dZded<   y)ÚDistributedStater   Ú
compile_pgrù   Úlocal_stateNzlist[LocalState] | NoneÚ
all_states)rÑ   rÒ   rÓ   rÔ   r  rÕ   r°   r®   r	  r	  |  s   … àƒOØÓØ*.€JÐ'Ô.r°   r	  c                  ón   — e Zd ZU  e«       Zded<   edd„«       Zed	d„«       Zed
d„«       Z	edd„«       Z
y)ÚTensorifyStatezset[str]Úforce_specializationsc                ó:   — | j                   j                  |«       y r§   )r  Úadd©ÚclsrÛ   s     r®   Ú
specializezTensorifyState.specialize‰  s   € à×!Ñ!×%Ñ% eÕ,r°   c                ó   — || j                   v S r§   )r  r  s     r®   Úshould_specializez TensorifyState.should_specialize�  s   € à˜×1Ñ1Ð1Ð1r°   c                ó8   — | j                   j                  «        y r§   )r  rå   ©r  s    r®   rå   zTensorifyState.clear‘  s   € à×!Ñ!×'Ñ'Õ)r°   c                ó2   — t        | j                  «      dk(  S rá   )rë   r  r  s    r®   ÚemptyzTensorifyState.empty•  s   € ä�3×,Ñ,Ó-°Ñ2Ð2r°   N)rÛ   r¼   rÎ   rÏ   )rÛ   r¼   rÎ   rÂ   ró   ©rÎ   rÂ   )rÑ   rÒ   rÓ   Úsetr  rÔ   Úclassmethodr  r  rå   r  rÕ   r°   r®   r  r  ƒ  s_   … ñ '*£eÐ˜8Ó+àò-ó ð-ð ò2ó ð2ð ò*ó ð*ð ò3ó ñ3r°   r  c                 ó4   — t        j                  t        «      S r§   )Útorchdynamo_loggingÚget_step_loggerÚlogrÕ   r°   r®   Ú_step_loggerr"  š  s   € ä×.Ñ.¬sÓ3Ð3r°   rÐ   c              #  óD  K  — | j                   j                  }| j                   j                  }	 g | j                   _        d| j                   _        d –— || j                   _        || j                   _        y # || j                   _        || j                   _        w xY w­wrá   )Úspeculation_logrÚ   rÛ   )r«   rÚ   rÛ   s      r®   Ú save_and_restart_speculation_logr%  Ÿ  s‰   è ø€ ð × Ñ ×(Ñ(€GØ×Ñ×$Ñ$€Eð)Ø%'ˆ×ÑÔ"Ø#$ˆ×ÑÔ Ûà%,ˆ×ÑÔ"Ø#(ˆ×ÑÕ øð &-ˆ×ÑÔ"Ø#(ˆ×ÑÕ üs   ‚-B °&A9 Á#B Á9$BÂB c              #  ó²   K  — 	 | j                   j                  }d| j                   _        d –— || j                   _        y # | j                   _        w xY w­w©NF)ÚoutputÚshould_exit)r«   Útmps     r®   Ú(temporarely_allow_writes_to_output_graphr+  ³  sA   è ø€ ð$Ø�i‰i×#Ñ#ˆØ %ˆ�	‰	ÔÛà #ˆ�	‰	Õø ˆ�	‰	Õüs   ‚A„+A ¯AÁAÁAc                  ó^   — e Zd ZU ded<   ded<   ded<   dZded	<   dd
„Zdd„Z	 	 	 	 	 	 dd„Zy)ÚBlockStackEntryr.   rÁ   zInstruction | NoneÚtargetr¾   Ústack_indexNz?ContextWrappingVariable | GenericContextWrappingVariable | NoneÚwith_contextc                ó   — | j                   d uS r§   )r0  râ   s    r®   Úcan_restorezBlockStackEntry.can_restoreÇ  s   € Ø× Ñ ¨Ð,Ð,r°   c                ó<  — | j                   €t        d«      ‚| j                  rbt        | j                  d«      rL| j                  j                  r6t        | j                   dz
  t        | j                  j                  «      «      S t        | j                   dz
  «      S )Nz0expected self.stack_index is not None to be trueÚtarget_valuesr   )r/  rÌ   r0  Úhasattrr4  rO   Útuplerâ   s    r®   Ú	resume_fnzBlockStackEntry.resume_fnÊ  sˆ   € Ø×ÑÐ#Ü Ð!SÓTÐTà×ÒÜ˜×)Ñ)¨?Ô;Ø×!Ñ!×/Ò/äØ× Ñ  1Ñ$¤e¨D×,=Ñ,=×,KÑ,KÓ&Lóð ô ˜t×/Ñ/°!Ñ3Ó4Ð4r°   c                ó¤   — | j                   €t        d«      ‚|r| j                   j                  «       s|s| j                   j                  |«      S y )Nz1expected self.with_context is not None to be true)r0  rÌ   Úexit_on_graph_breakÚexit)rÉ   r«   Úis_graph_breaks      r®   r:  zBlockStackEntry.exitØ  sM   € ð ×ÑÐ$Ü Ð!TÓUÐUá˜t×0Ñ0×DÑDÔFÙØ×$Ñ$×)Ñ)¨"Ó-Ð-Ør°   r  )rÎ   rO   )r«   rÐ   r;  rÂ   rÎ   úVariableTracker | None)rÑ   rÒ   rÓ   rÔ   r0  r2  r7  r:  rÕ   r°   r®   r-  r-  ¿  sH   … ð ÓØÓØÓØTX€LÐQÓXó-ó5ð	Ø+ð	Ø=Að	à	ô	r°   r-  c                  ó   — e Zd Zy)rî   N©rÑ   rÒ   rÓ   rÕ   r°   r®   rî   rî   ä  ó   „ Ør°   rî   c                  ó   — e Zd Zy)ÚReturnValueOpNr>  rÕ   r°   r®   rA  rA  è  r?  r°   rA  c                  ó   — e Zd ZdZy)ÚYieldValueOpzY
    Signal to the symbolic tracer to stop and return control flow to the
    caller
    N)rÑ   rÒ   rÓ   rô   rÕ   r°   r®   rC  rC  ì  s   „ òr°   rC  c                ó®   ‡‡— t        t        j                  | «      j                  «      Št	        | «      Št        j                  | «      dˆˆfd„«       }|S )Nc                óh   •— | j                  ‰j                  | | j                  ‰«      i «      «       y r§   )ÚpushÚcall_functionÚpopn)rÉ   rÁ   Úfn_varÚnargss     €€r®   Úimplzstack_op.<locals>.impl÷  s'   ø€ à�	‰	�&×&Ñ& t¨T¯Y©Y°uÓ-=¸rÓBÕCr°   )rÉ   ÚInstructionTranslatorrÁ   r.   rÎ   rÏ   )rë   ÚinspectÚ	signatureÚ
parametersrk   Ú	functoolsÚwraps)ÚfnrK  rI  rJ  s     @@r®   Ústack_oprS  ó  sL   ù€ Ü”×!Ñ! "Ó%×0Ñ0Ó1€EÜ˜RÓ €Fä‡_�_�RÓõDó ðDð €Kr°   c                ó”   — t        | t        j                  «      sy| j                  j	                  d«      d   t
        j                  v S )NFú.r   )Ú
isinstanceÚtypesÚ
ModuleTyperÑ   ÚsplitÚsysÚstdlib_module_names)Úmods    r®   Ú	is_stdlibr]  þ  s:   € Ü�cœ5×+Ñ+Ô,ØØ�<‰<×Ñ˜cÓ" 1Ñ%¬×)@Ñ)@Ð@Ð@r°   c                óè   — | rdd„}ndd„}t        j                  |«      D �cg c]  }|j                  ‘Œ }}t        d„ t	        |«      D «       «      }|j                  d«      }||dz   |dz    S c c}w )Nc                ó   — | sJ d«       ‚y )NÚmsgrÕ   ©Úxs    r®   rR  z(get_assert_bytecode_sequence.<locals>.fn  s   € ÙˆO�e‹O‘1r°   c                ó   — | sJ ‚y r§   rÕ   ra  s    r®   rR  z(get_assert_bytecode_sequence.<locals>.fn  s	   € ÙˆH‘1r°   c              3  óJ   K  — | ]  \  }}|j                  d «      sŒ|–— Œ y­w)ÚPOP_JUMPN)Ú
startswith)r   ÚirÁ   s      r®   r  z/get_assert_bytecode_sequence.<locals>.<genexpr>  s   è ø€ ÒV™7˜1˜d¸$¿/¹/È*Õ:U”QÑVùs   ‚#œ#ÚRAISE_VARARGSr   )rb  r   rÎ   rÏ   )ÚdisÚget_instructionsrí   rò   Ú	enumeraterÛ   )Úwith_msgrR  rÁ   ÚinstsÚ	begin_idxÚend_idxs         r®   Úget_assert_bytecode_sequencerp    sr   € áô	ó	ô &)×%9Ñ%9¸"Ó%=Ö>˜TˆT�[‹[Ð>€EÐ>ô ÑV¤i°Ó&6ÔVÓV€IØ�k‰k˜/Ó*€Gà�˜Q‘ ¨1¡Ð-Ð-ùò ?s   £A/c                óâ  — |t         j                  us|ryt        | j                  t        «      st        d«      ‚| j                  }dD ]Ÿ  }t        |«      }| j                  ||t        |«      z    }|D �cg c]  }|j                  ‘Œ }}||k(  sŒH|r.|j                  d«      }| j                  ||z      j                  }	nd}	| j                  t        j                  | |	«      «        y yc c}w )NFú=expected isinstance(self.instruction_pointer, int) to be true)FTÚ
LOAD_CONSTzassertion errorT)ÚoperatorÚtruthrV  rÀ   r¾   rÌ   rp  Úinstructionsrë   rí   rÛ   ÚargvalrF  rg   Úbuild)
rÉ   Útruth_fnrF  Úcurrent_instruction_pointerrl  Úassert_instsÚ	cur_instsrÁ   Úload_const_idxÚ	error_msgs
             r®   Ú&_detect_and_normalize_assert_statementr    s   € ð 	œŸ™Ñ&©4Øä�d×.Ñ.´Ô4ÜØKó
ð 	
ð #'×":Ñ":Ðà!ò ˆÜ3°HÓ=ˆØ×%Ñ%Ø'Ð*EÜ�,Óñ+ ð
ˆ	ð .7Ö7 T�T—[“[Ð7ˆ	Ð7Ø˜Ó$ÙØ!-×!3Ñ!3°LÓ!A�Ø ×-Ñ-Ø/°.Ñ@ñç‘&ñ ð .�	Ø�I‰I”o×+Ñ+¨D°)Ó<Ô=Ùð!ð$ ùò 8s   Á6C,Fc                ó¬  — | j                   j                  dd«      xs t        | dd«      }|sy|j                  «       j	                  d«      }d}t        |«      D ]'  \  }}|j                  «       j                  d«      sŒ&|}Œ) |dk  ry||   j                  «       }d}|dz   t        |«      k  r||dz      j                  «       }|› |rd|› �z   S dz   S )	zIExtract the innermost user source location from an FX node's stack trace.Ústack_tracerç   rü   éÿÿÿÿzFile r   r   z, code: )ÚmetaÚgetÚgetattrÚstriprY  rk  rf  rë   )ÚnÚstÚtrace_linesÚlast_file_idxrg  ÚlineÚ	file_lineÚcodes           r®   Úget_node_source_inforŽ  f  sã   € à	
�‰�‰�M 2Ó	&Ò	G¬'°!°]ÀBÓ*G€BÙØØ—(‘(“*×"Ñ" 4Ó(€KØ€MÜ˜[Ó)ò ‰ˆˆ4Ø�:‰:‹<×"Ñ" 7Õ+Ø‰Mðð �qÒØØ˜MÑ*×0Ñ0Ó2€IØ€DØ�qÑœ3˜{Ó+Ò+Ø˜=¨1Ñ,Ñ-×3Ñ3Ó5ˆØˆ[±$˜x¨ vÐ.Ñ?Ð?¸BÑ?Ð?r°   c                ó´  ‡‡‡‡‡‡	— t        | t        «      sy	 | j                  j                  }g Šg Št	        «       Šd
d„Šdˆˆˆˆˆˆ	fd„Š	 ‰	|«       ‰s‰syg }‰t        t        ‰«      «      z   D ]$  }|j                  |«       |j                  d«       Œ& ddj                  d„ |D «       «      z   S # t        $ r t        j                  dd¬	«       Y yw xY w)zóWalk the FX graph backwards from a TensorVariable to show how it was
    computed, with user source locations. Graph inputs (placeholders) are always
    shown first, followed by operations in dataflow order ending at the branch
    condition.rç   c                óx   — t        | t        j                  j                  «      r| j                  S t        | «      S r§   )rV  ÚtorchÚfxÚNoder¸   Úrepr)Úas    r®   Úfmt_argz0format_tensor_computation_trace.<locals>.fmt_arg‰  s&   € Ü'¨¬5¯8©8¯=©=Ô9�1—6‘6ÐF¼tÀA»wÐFr°   c                ó(  •— | j                   ‰
v ry ‰
j                  | j                   «       t        | «      }| j                  dk(  rUg }|r|j	                  d|› �«       |j	                  | j                   › d| j
                  › d�«       ‰	j	                  |«       y | j                  dk(  rét        ‰«      ‰k  rÚt        | j
                  dt        | j
                  «      «      }dj                  ˆfd„| j                  D «       «      }g }|r|j	                  d|› �«       |j	                  | j                   › d	|› d
|› d�«       ‰j	                  |«       | j                  D ]/  }t        |t        j                  j                  «      sŒ( ‰|«       Œ1 y y y )NÚplaceholderz# z: graph input (ú)rG  rÑ   z, c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr§   rÕ   )r   r•  r–  s     €r®   r  z@format_tensor_computation_trace.<locals>.walk.<locals>.<genexpr>œ  s   øè ø€ Ò$@°A¡W¨Q§ZÑ$@ùs   ƒz = ré   )r¸   r  rŽ  Úoprì   r.  rë   r…  r¼   r  r¬   rV  r‘  r’  r“  )r‡  ÚsourceÚblockÚtarget_nameÚargs_strr•  r–  Ú	max_linesÚ	op_blocksÚplaceholder_blocksÚvisitedÚwalks         €€€€€€r®   r¤  z-format_tensor_computation_trace.<locals>.walkŒ  sM  ø€ Ø�v‰v˜Ñ ØØ�K‰K˜Ÿ™ÔÜ)¨!Ó,ˆFà�t‰t�}Ò$Ø�ÙØ—L‘L 2 f X Ô/Ø—‘ §¡˜x °q·x±x°jÀÐBÔCØ"×)Ñ)¨%Ô0Øà�t‰t�Ò&¬3¨y«>¸IÒ+EÜ% a§h¡h°
¼CÀÇÁ»MÓJ�ØŸ9™9Ó$@¸¿¹Ô$@Ó@�Ø�ÙØ—L‘L 2 f X Ô/Ø—‘ §¡˜x s¨;¨-°q¸¸
À!ÐDÔEØ× Ñ  Ô'àŸ™ò  �AÜ! !¤U§X¡X§]¡]Õ3Ù˜Q�ñ ð ,FÐ&r°   z@

  The branch condition involves a tensor computed as follows:
rü   c              3  ó&   K  — | ]	  }d |› �–— Œ y­w)ú    NrÕ   )r   r‹  s     r®   r  z2format_tensor_computation_trace.<locals>.<genexpr>µ  s   è ø€ Ò<¨$˜$˜t˜fœÑ<ùs   ‚z&format_tensor_computation_trace failedT)Úexc_info)r•  ÚobjectrÎ   r¼   )r‡  útorch.fx.NoderÎ   rÏ   )rV  r”   ÚproxyÚnoder  r÷   r©   Úextendrì   r  Ú	Exceptionr!  Údebug)
Úvaluer   r«  Ú	all_linesr�  r–  r¡  r¢  r£  r¤  s
    `   @@@@@r®   Úformat_tensor_computation_tracer±  y  sä   ý€ ô
 �eœ^Ô,Øð9Ø�{‰{×Ñˆð &(ˆ	Ø.0ÐÜ›Eˆó	G÷	 ò 	 ñ6 	ˆTŒ
áÑ!3Øð  "ˆ	Ø'¬$¬x¸	Ó/BÓ*CÑCò 	!ˆEØ×Ñ˜UÔ#Ø×Ñ˜RÕ ð	!ð
 RØ�i‰iÑ<°)Ô<Ó<ñ=ð	
øô ò Ü�	‰	Ð:ÀTˆ	ÔJÙðús   ™?B4 ÁAB4 Â4 CÃCc                óL   ‡ ‡‡‡— dd„Š	 d	 	 	 	 	 	 	 	 	 dˆˆfd„Šdˆˆˆˆ fd„}|S )Nc                ó"  — t        | «      }g }t        | t        «      �r	 | j                  j                  }|j
                  j                  d«      }|�P|j                  «       dk(  r=|j                  t        j                  t        j                  fv r|j                  d«       |�A|j                  «       dk(  r.|j                  t        j                  k(  r|j                  d«       t        |j                  dd «      xs( t        |j                  t         «      r|j                  nd }|dv r|j                  d«       |j%                  t&        j(                  «       |j                  d«       t+        d	d
| › �d|z   |¬«       y # t"        $ r Y ŒQw xY w)NÚexample_valuer   zîThe branch condition uses a scalar integer tensor. Consider rewriting the computation to use plain Python ints (e.g. use int attributes instead of tensor buffers) so the condition becomes a shape guard instead of data-dependent branching.a,  For the common pattern `if tensor_cond: x = transform(x)` (e.g. clamping inf/nan values), consider making the code branchless by always applying the transform. Operations like torch.clamp, torch.nan_to_num, and torch.where are typically no-ops on well-behaved inputs and compile without graph breaks.rÑ   )ÚanyÚallÚbitwise_andÚ
bitwise_orzÎNote: Python `or`/`and` between tensor expressions (e.g. `tensor.any() or other_tensor.any()`) triggers implicit bool conversion. Use `torch.logical_or`/`torch.logical_and` or the `|`/`&` operators instead.z1Use `torch.cond` to express dynamic control flow.zData-dependent branchingzattempted to jump with zyDetected data-dependent branching (e.g. `if my_tensor.sum() > 0:`). Dynamo does not support tracing dynamic control flow.©Úgb_typeÚcontextÚexplanationÚhints)r±  rV  r”   rª  r«  rƒ  r„  ÚdimÚdtyper‘  Úint32Úint64rì   rÂ   r…  r.  r¼   r­  r¬  r   ÚFUNDAMENTALr=   )r¯  Ú
trace_infor½  r«  Úexamplerž  s         r®   Úraise_jump_graph_breakz,generic_jump.<locals>.raise_jump_graph_break¿  sj  € Ü4°UÓ;ˆ
ØˆÜ�eœ^Õ,ð.Ø—{‘{×'Ñ'�ØŸ)™)Ÿ-™-¨Ó8�àÐ'ØŸ™›¨Ò*ØŸ™äŸ™ÜŸ™ðñð —L‘Lð4ôð Ð'ØŸ™›¨Ò*ØŸ™¬¯©Ò3à—L‘LðZôô & d§k¡k°:¸tÓDò Ü#-¨d¯k©k¼3Ô#?�D—K’KÀTð ð Ð"MÑMØ—L‘Lð5ôð 	�‰Ô&×2Ñ2Ô3Ø�‰ÐHÔIÜØ.Ø-¨e¨WÐ5ðDØFPñQàö	
øô	 ò Ùðús    DF Æ	FÆFc           	     óp  •— | j                  «       st        d«      ‚d }	  ‰|«       |€t        d«      ‚| j	                  «       r| j                  | j                  |«       | j                  | j                  t        |«      |¬«       | j                  |«       t        j                  d«       | j                  j                  | t        dt!        |«      › |› �| j#                  «       g«      d¬«      }| j%                  «        | j'                  | j(                  |«      }‰r| j                  |«       |j*                  €t        d«      ‚| j'                  |j*                  |«      }t,        j.                  d	k\  r%| j                  j1                  t3        d
«      g«       t3        |j4                  |d   ¬«      }	| j6                  � | j                  j8                  j:                  n|}
|	j=                  |
«       | j                  j1                  |	g|z   |z   «       y # t        t        f$ r}|}Y d }~�Œd }~ww xY w)Nz7expected self.should_compile_partial_graph() to be truez#expected exc is not None to be true©rÅ   r   zgeneric_jump triggered compilezgeneric_jump r   ©rÅ   Ú
stack_popsú+expected inst.target is not None to be true©é   é   ÚTO_BOOLr   )r.  )Úshould_compile_partial_graphrÌ   r>   r?   Úmaybe_has_backedgeÚraise_loop_graph_breakÚf_codeÚlog_graph_breakÚcode_optionsr¼   rF  r!  r®  r(  Úcompile_subgraphrD   re   Úframe_summaryÚpopÚcreate_call_resume_atÚnext_instructionr.  rZ  Úversion_infoÚadd_output_instructionsr(   rí   ÚparentÚroot_txÚcurrent_instructionÚcopy_positions)rÉ   rÁ   r¯  Ú	extra_msgr   ÚeÚall_stack_locals_metadataÚif_nextÚif_jumpÚ	jump_instÚpositions_instrF  rÅ  s              €€r®   Újump_graph_breakz&generic_jump.<locals>.jump_graph_breakü  s  ø€ ð ×0Ñ0Ô2Ü ØIóð ð ˆð	Ù" 5Ô)ð ˆ;Ü Ð!FÓGÐGð ×"Ñ"Ô$Ø×'Ñ'¨¯©°SÔ9à×ÑØ×ÑÜ�s“8Øð 	ô 	
ð 	�	‰	�%ÔÜ�	‰	Ð2Ô3Ø$(§K¡K×$@Ñ$@ØÜ%Ø¤¨£Ð/°	¨{Ð;¸d×>PÑ>PÓ>RÐ=Sóð ð %Aó %
Ð!ð 	�‰Œ
à×,Ñ,Ø×!Ñ!Ø%ó
ˆñ Ø�I‰I�eÔØ�;‰;ÐÜ Ð!NÓOÐOØ×,Ñ,Ø�K‰KØ%ó
ˆô
 ×Ñ˜wÒ&à�K‰K×/Ñ/Ô1CÀIÓ1NÐ0OÔPä& t§{¡{¸7À1¹:ÔFˆ	ð 8<·{±{Ð7NˆD�K‰K×Ñ×3Ò3ÐTXð 	ð 	× Ñ  Ô0Ø�‰×+Ñ+¨Y¨K¸'Ñ,AÀGÑ,KÕLøôg œYÐ'ò 	ØŽCûð	ús    H ÈH5È(H0È0H5c                óŽ  •— | j                  «       }t        j                  �r`t        j                  j
                  dk(  �rBt        | ‰‰«      �r4| j                  «       }|j                  «       rmt        |j                  «       «      r| j                  |«      S | j                  «       r ‰| ||«       y t        dd|› �dg t        j                  ¢d‘d‘d‘¬«       |j                  «       rJ | j                   j"                  d	t$        j&                  gt)        ||fi «      ¢­Ž  | j                  |«       y t+        |t,        «      rš|j.                  }t+        |t$        j0                  «      s|dk7  }t$        j2                  j4                  j6                  j9                  |«      }|s(t        d
t;        |«      dg t        j<                  ¢¬«       | j                  |«       y  | j                   j"                  d	t$        j>                  gt)        |fi «      ¢­Ž }tA        | |tC        |jD                  | «      ¬«      } | j                   j"                  d	t$        j&                  gt)        ||fi «      ¢­Ž  | j                  |«       y |j                  «       rŠt+        |tF        «      r>|jH                  r2tK        |jH                  jM                  tN        jP                  «      «        ‰|j                  «       «      r%‰r| jS                  |«       | j                  |«       y y |j                  «       r| j                  «       r ‰| ||«       y t+        |tT        «      rS| j                   jW                  |jX                  «      } ‰|«      r%‰r| jS                  |«       | j                  |«       y y t+        |tZ        «      rºt]        | |«      }|j                  «       r; ‰|j                  «       «      r‡‰r| jS                  |«       | j                  |«       y t+        |t,        «      r; ‰|j_                  «       «      r;‰r| jS                  |«       | j                  |«       y t        dd|› d|› �dg ¬«       y y y t+        |t,        «      r‡	 t+        |j.                  t$        j0                  «      r|j_                  | j                   «      }	nta        |j.                  dk7  «      }	 ‰|	«      r%‰r| jS                  |«       | j                  |«       y y |j                  «       s:t]        | |«      } ‰|«      r%‰r| jS                  |«       | j                  |«       y y t+        |tf        jh                  «      r. ‰d«      r%‰r| jS                  |«       | j                  |«       y y ddl$m5} |jH                  �N ||jH                  «      r< ‰|jm                  «       «      r%‰r| jS                  |«       | j                  |«       y y  ‰|«       y # tb        jd                  $ r*}
| j                  «       r ‰| ||d|
› �¬«      cY d }
~
S ‚ d }
~
ww xY w)Nr   z>Data-dependent assertion failed (cannot compile partial graph)zvalue: zuDynamo has determined when encountering a data-dependent assert failure that it should not compile the partial graph.zÎUse `torch._assert()` to raise a hard AssertionError when the check fails. This error will propagate back the user code that called the compiled function (i.e. Dynamo will not trace any exception handling).zRemove the assert statement.z†Move the assert statement outside of any context managers in order to graph break with partial graph compilation (if fullgraph=False).r¹  rG  z#Assertion failed on symbolic shapesrç   )r´  z3Data-dependent branching with non-constant __bool__z
, result: zdAttempted to perform data-dependent branching on a user-defined object with non-constant truthiness.rü   )rà  Tr   )Úis_constant_source)7r×  r   Ú rewrite_assert_with_torch_assertrZ  ÚflagsÚoptimizer  Úis_python_constantrÂ   Úas_python_constantÚjumprÏ  r=   r   rÂ  Ú	is_tensorr(  Úcreate_proxyr‘  Ú_assert_asyncrb   rV  r“   Úsym_numÚSymBoolr’  ÚexperimentalÚsymbolic_shapesÚexpect_truer¼   Ú
USER_ERRORÚscalar_tensorrj   r\   r«  rs   rœ  rB   Ú
make_guardrA   ÚSEQUENCE_LENGTHrF  rŠ   Úget_submoduleÚ
module_keyr›   rŒ   Úevaluate_exprr   r   r?   r   ÚBackwardHookVariableré  Úget_real_value)rÉ   rÁ   r¯  r~  Úsym_exprÚresultÚscalar_to_tensor_proxyÚscalar_to_tensorr\  Úeval_resultrá  ré  rç  rF  rÅ  ry  s               €€€€r®   Úinnerzgeneric_jump.<locals>.inner?  sS  ø€ Ø!%§¡£ˆä×3Ó3Ü—	‘	×"Ñ" aÓ'Ü6°t¸XÀtÕLà)-¯©«ˆIà×'Ñ'Ô)Ü˜×0Ñ0Ó2Ô3ØŸ9™9 T›?Ð*Ø×6Ñ6Ô8Ù$ T¨4°Ô7Øä!Ø `Ø")¨%¨Ð 1ð%HðÜ.×:Ñ:ððuðð
 ;ððNðõð* �‰Ô Ø(�—‘×(Ñ(Ø#Ü×'Ñ'ðô '¨¨yÐ'9¸2Ó>óð
 —	‘	˜$”Øä˜%¤Ô1ð !Ÿ=™=�Ü! (¬E¯M©MÔ:Ø'¨1™}�HäŸ™×.Ñ.×>Ñ>×JÑJÈ8ÓT�ÙÜ!Ø EÜ # H£Ø$&Ø=Ô 1× <Ñ <Ð=õ	ð —	‘	˜$”Øà%= T§[¡[×%=Ñ%=Ø¤×!4Ñ!4ð&Ü7HÈ%ÈÐSUÓ7Vò&Ð"ô  -ØØ&Ü,Ð-C×-HÑ-HÈ$ÓOô Ðð %ˆD�K‰K×$Ñ$ØÜ×#Ñ#ðô #Ð$4°iÐ#@À"ÓEóð
 �I‰I�dŒOØà×#Ñ#Ô%ô ˜%Ô!2Ô3¸¿ºÜ˜eŸl™l×5Ñ5´l×6RÑ6RÓSÔTÙ˜×0Ñ0Ó2Ô3ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð 4ð �_‰_Ô 4×#DÑ#DÔ#FÙ˜T 4¨Õ/Ü˜Ô/Ô0à—+‘+×+Ñ+¨E×,<Ñ,<Ó=ˆCÙ˜Œ}ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð ô ˜Ô8Ô9Ü! $¨Ó.ˆFØ×(Ñ(Ô*Ù˜F×5Ñ5Ó7Ô8ÙØŸ	™	 %Ô(Ø—I‘I˜d•OÜ˜F¤OÔ4Ù˜F×0Ñ0Ó2Ô3ÙØŸ	™	 %Ô(Ø—I‘I˜d•OäØQØ% e W¨J°v°hÐ?ð!;àöð 4ð 9ô" ˜œÔ/ðô ˜eŸm™m¬U¯]©]Ô;Ø"'×"5Ñ"5°d·k±kÓ"B‘Kä",¨U¯]©]¸aÑ-?Ó"@�Kñ
 ˜Ô$ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð %ð —‘Ô"Ü! $¨Ó.ˆFÙ˜ÔÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð  ô ˜œy×=Ñ=Ô>Ù˜Œ~ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð õ
 3à�|‰|Ð'Ñ,>¸u¿|¹|Ô,LÙ˜E×0Ñ0Ó2Ô3ÙØŸ	™	 %Ô(Ø—I‘I˜d•Oð 4ñ
 ' uÕ-øô9 —=‘=ò Ø×4Ñ4Ô6Ù+¨D°$¸È2ÈaÈSÈÔRÕRØûðús%   ÒAX ØYØX?Ø8YØ>X?Ø?Y)r¯  rg   rÎ   r   )rç   )
rÉ   rÐ   rÁ   r.   r¯  rg   rà  r¼   rÎ   rÏ   ©rÉ   rÐ   rÁ   r.   rÎ   rÏ   rÕ   )ry  rF  r  rç  rÅ  s   `` @@r®   Úgeneric_jumpr  ¼  sb   û€ ó;
ðB ð	AMØ'ðAMàðAMð ðAMð ð	AMð
 
öAM÷F`.ð `.ðD €Lr°   c                óZ  — g }| }|� |j                  |«       |j                  }|�Œ t        |«      D ]÷  } | j                  D ]æ  }t	        |j
                  t        «      r:|j                  |j                  «       j                  |j                  |«      «       ŒW|j
                  €t        d«      ‚t	        |j
                  t        «      st        d«      ‚|j
                  j                  |«       |j                  |j                  «       j                  |j                  |«      «       Œè Œù y)zsGenerates bytecode to restore the block stack for running the unsupported instruction
    in the compiled bytecode.Nz.expected b.with_context is not None to be truezIexpected isinstance(b.with_context, (ContextWrappingVariable)) to be true)rì   rÜ  r©   Úblock_stackrV  r0  r–   Úextend_outputr7  Útry_except_torch_function_moderÔ  rÌ   rn   Úreconstruct_typeÚtry_finally)r«   ÚcgÚcleanupÚall_txesÚcur_txÚbs         r®   Ú_reconstruct_block_stackr  ä  s  € ð 13€HØ/1€FØ
Ð
Ø�‰˜ÔØ—‘ˆð Ñ
ô �xÓ ò RˆØ—‘ò 	RˆAô ˜!Ÿ.™.Ô*CÔDØ× Ñ Ø—K‘K“M×@Ñ@ØŸ™¨óôð
 Ø�~‰~Ð%Ü$Ð%UÓVÐVÜ˜aŸn™nÔ/FÔHÜ$Ø_óð ð �N‰N×+Ñ+¨BÔ/Ø×Ñ˜QŸ[™[›]×6Ñ6°r·±ÈÓPÕQñ%	RñRr°   c                ó^   ‡— ddl Šˆfd„}|j                  j                  | |¬«      |_        |S )a“  Create a wrapper for warnings.warn that reports the given source location.

    When warnings.warn (stacklevel=1) inspects its caller frame, it sees the
    wrapper's code object -- whose co_filename and line table point to the
    original leaf-frame location.  This preserves Python's per-location
    warning dedup even when the call is inlined into a different frame by
    nested graph breaks.
    r   Nc                 ó(   •—  ‰j                   | i |¤ŽS r§   )Úwarn)r¬   ÚkwargsÚwarningss     €r®   r¯   z-_make_warnings_warn_wrapper.<locals>.<lambda>  s   ø€ ¸-¸(¿-¹-ÈÐ:XÐQWÑ:X€ r°   )Úco_filenameÚco_firstlineno)r  Ú__code__Úreplace)r½   r¿   Úwrapperr  s      @r®   Ú_make_warnings_warn_wrapperr    s;   ø€ ó ó #Y€GØ×'Ñ'×/Ñ/ØØð 0ó €GÔð €Nr°   c                ó    ‡ ‡— 	 	 	 	 dˆˆ fd„}|S )Nc                ój   •‡ ‡— t        j                  ‰ «      dˆˆ ˆˆfd„«       }	 	 	 	 	 	 	 	 dˆfd„Š|S )Nc           
     ó4  •— | j                   }‰| _         | j                  «       }|j                  | «      r+|j                  €t	        d«      ‚ ‰| ||j                  «      S 	  ‰| |«      || _         S # t
        t        f$ �rd}| j                  rg| j                  s| j                  r‚ t        |t
        «      r|j                  «        t        dd| j                  › �ddgt        j                  ¢|¬«       t        |dd«      r‚ | j!                  «       s‚ | j#                  «       r| j%                  | j&                  |«       | j)                  | j*                  ‰› d	t-        |«      › �|¬
«       t        |t
        «      r!|j                  «        |j/                  d«       t1        t        |dt-        |«      «      t        |d| j3                  «       g«      «      |_        Y d }~nd }~ww xY w	 || _         n# || _         w xY w|j5                  | j                  «       y )Nz2expected speculation.reason is not None to be truez0Graph break under GenericContextWrappingVariablez!Active generic context managers: z]Attempted to graph break in an active context manager(s) that doesn't support graph breaking.zEMove the offending context manager(s) to outside the compiled region.©rº  r»  r¼  r½  Úfrom_excÚ
skip_frameFz:

rÇ  Úgraph_breakr`  Ú
real_stack)Úcurrent_instruction_pushÚ	speculaterÍ   rÅ   rÌ   r>   r?   Úactive_generic_context_managersÚ	one_graphrÄ   rV  Úremove_from_statsr=   r   ÚCAUSED_BY_EARLIER_GRAPH_BREAKr…  rÏ  rÐ  rÑ  rÒ  rÓ  rÔ  r¼   Úadd_to_statsrD   rÖ  rÊ   )	rÉ   rÁ   Ú	prev_pushÚspeculationÚexcpÚhandle_graph_breakÚinner_fnÚ
msg_prefixrF  s	        €€€€r®   r  z>break_graph_if_unsupported.<locals>.decorator.<locals>.wrapper'  s  ø€ à×5Ñ5ˆIØ,0ˆDÔ)ØŸ.™.Ó*ˆKØ×!Ñ! $Ô'à×%Ñ%Ð-Ü(ØLóð ñ *¨$°°k×6HÑ6HÓIÐIð.:Ù  dÓ+ðZ 1:�Õ-øôY  ¤Ð+ó *Ø×7Ò7à—~’~¨×)BÒ)BØô " $¬Ô4Ø×.Ñ.Ô0Ü!Ø RØ"CÀD×DhÑDhÐCiÐ jð %Dàcðä.×LÑLðð "&õ	ô ˜4 ¨uÔ5Øà×8Ñ8Ô:Øà×*Ñ*Ô,Ø×/Ñ/°·±¸TÔBà×$Ñ$Ø×%Ñ%Ø(˜\¨¬s°4«y¨kÐ:Øð %ô ô ˜d¤KÔ0Ø×*Ñ*Ô,Ø×%Ñ% mÔ4Ü%7Ü˜D %¬¨T«Ó3Ü˜D ,°×1CÑ1CÓ1EÐ0FÓGó&�×"Ñ"ûðO*úðN #ð
 1:�Õ-ø°	�Õ-úØ×1Ñ1°$×2KÑ2KÕLs+   Á"A2 Á2G&ÂEG!ÇG2 Ç!G&Ç&G2 Ç2	G;c                ó*  •— t         j                  dk\  r†t         j                  dk  rs|j                  dk(  rdt        j                  t        j
                  d   |j                  «      t        j                  t        j
                  d   |j                  «      z   }n*t        j                  |j                  |j                  «      }| j                  �| j                  |«       t        j                  d|j                  «       | j                  j                  | |t        ‰«      |z
  ¬«      }t        | j                  j                   «      }g }t#        | ||«       | j                  j%                  |j'                  «       «       ~| j                  � | j                  j                   j(                  n|}t         j                  dk\  rç|j                  dk(  rØ| j*                  �| j*                  j-                  «       nd}t/        |«      dkD  rEt         j                  d	k  st1        d
«      ‚| j                  j%                  t3        d|¬«      g«       |j                  €t1        d«      ‚t5        |j                  d«      }	|	d   j7                  |«       | j                  j%                  |	«       n`|j8                  �t1        d«      ‚t;        j:                  |«      }
d |
_        |
j7                  |«       | j                  j%                  |
g«       | j                  j%                  |«       | j?                  t        ‰«      |z
  «       ‰r| jA                  tC        «       «       | j                  j%                  | jE                  | jF                  |«      «       y )N©rÌ  é   ©rÌ  é   ÚCALLÚPRECALLz%s triggered compilerÈ  rÕ   r   rË  z.expected sys.version_info < (3, 13) to be trueÚKW_NAMES©rw  ú(expected inst.arg is not None to be trueFr‚  z'expected inst.target is None to be true)$rZ  rÚ  rí   ri  Ústack_effectÚopmapÚargÚopcoderÜ  Ú%_maybe_replace_warnings_warn_on_stackr!  r®  r(  rÕ  r¾   r3   rÝ  r  rÛ  rj  rÞ  Úkw_namesrî  rë   rÌ   r(   r$   rß  r.  ÚcopyÚexn_tab_entryrH  rF  r‰   rØ  rÙ  )rÉ   rÁ   rÅ   r?  râ  r  r  ræ  rD  Ú
call_instsÚ	inst_copyrF  s              €r®   r2  zIbreak_graph_if_unsupported.<locals>.decorator.<locals>.handle_graph_breakd  sä  ø€ ô × Ñ  GÒ+Ü×$Ñ$ wÒ.Ø—K‘K 6Ò)ô  #×/Ñ/Ü—I‘I˜iÑ(¨$¯(©(ó ä×$Ñ$¤S§Y¡Y¨vÑ%6¸¿¹ÓAñ B‘ô  #×/Ñ/°·±¸T¿X¹XÓF�ð
 �{‰{Ð&Ø×:Ñ:¸4Ô@ä�I‰IÐ,¨d¯k©kÔ:Ø(,¯©×(DÑ(DØ˜V´°D³	¸LÑ0Hð )Eó )Ð%ô ˜4Ÿ;™;×.Ñ.Ó/ˆBØ)+ˆGÜ$ T¨2¨wÔ7Ø�K‰K×/Ñ/°×0CÑ0CÓ0EÔFØð —;‘;Ð*ð —‘×#Ñ#×7Ò7àð ô ×Ñ 7Ò*¨t¯{©{¸fÒ/Dð —}‘}Ð0ð —M‘M×4Ñ4Ô6àð ô
 �x“= 1Ò$ä×,Ñ,¨wÒ6Ü,ØLóð ð —K‘K×7Ñ7Ü+¨J¸xÔHÐIôð —8‘8Ð#Ü(Ð)SÓTÐTÜ1°$·(±(¸EÓB�
Ø˜2‘×-Ñ-¨nÔ=Ø—‘×3Ñ3°JÕ?ð —;‘;Ð*Ü(Ð)RÓSÐSÜ ŸI™I d›O�	Ø*.�	Ô'Ø×(Ñ(¨Ô8Ø—‘×3Ñ3°Y°KÔ@à�K‰K×/Ñ/°Ô8à�I‰I”c˜$“i ,Ñ.Ô/ÙØ—	‘	œ/Ó+Ô,Ø�K‰K×/Ñ/Ø×*Ñ*Ø×)Ñ)Ø-óõr°   r  )rÉ   rÐ   rÁ   r.   rÅ   rD   rÎ   rÏ   )rP  rQ  )r3  r  r2  r4  rF  s   ` @€€r®   Ú	decoratorz-break_graph_if_unsupported.<locals>.decorator$  sY   ú€ ô 
�‰˜Ó	"÷:	Mó 
#ð:	MðxR	Ø+ðR	àðR	ð 'ðR	ð õ	R	ðh ˆr°   )r3  úCallable[..., None]rÎ   ú8Callable[[InstructionTranslatorBase, Instruction], None]rÕ   )rF  r4  rI  s   `` r®   Úbreak_graph_if_unsupportedrL    s$   ù€ ð
TØ%ðTà	AöTðl Ðr°   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚBytecodeDispatchTableMetazTInstalls a `cls.dispatch_table` on every subclass to speed up calls to self.OPCODE()c                ó@  •— t         ‰	| �  |||«       dd„}t        j                  j	                  «       D ��ci c]'  \  }}|t        | |t        j                  ||«      «      “Œ) }}}t        d«      D �cg c]  }|j                  |«      ‘Œ c}| _
        y c c}}w c c}w )Nc                ó^   — t        d| › d|› �d| › d�d| › d�gt        j                  ¢¬«       y )NzMissing bytecode handlerz with args z=Dynamo does not know how to handle the bytecode instruction `ú`.z%Do not trace code that produces the `z_` bytecode instruction (see https://docs.python.org/3/library/dis.html for bytecode semantics).r¹  )r=   r   ÚSUPPORTABLE)rí   r¬   s     r®   Ú_missingz4BytecodeDispatchTableMeta.__init__.<locals>._missingÃ  sS   € ÜØ2Ø!˜( +¨d¨VÐ4Ø[Ð\bÐ[cÐceÐfà;¸F¸8ð D_ð _ðô '×2Ñ2ðö		r°   é   )rí   r¼   r¬   r   rÎ   rÏ   )ÚsuperÚ__init__ri  r@  r  r…  rP  ÚpartialÚranger„  Údispatch_table)
r  r¸   ÚbasesÚdctrS  rí   r›  rY  rg  Ú	__class__s
            €r®   rV  z"BytecodeDispatchTableMeta.__init__À  s’   ø€ Ü‰Ñ˜˜u cÔ*ó
	ô "Ÿi™iŸo™oÓ/÷
á�˜ð ”˜˜V¤Y×%6Ñ%6°xÀÓ%HÓIÑIð
ˆñ 
ô >CÀ4»[ÖI¸˜n×0Ñ0°Õ3ÒIˆÕùó	
ùò Js   ¸,BÁ4B)
r  Útyper¸   r¼   rZ  r   r[  r   rÎ   rÏ   )rÑ   rÒ   rÓ   rô   rV  Ú__classcell__©r\  s   @r®   rN  rN  ½  s   ø„ Ù^÷Jñ Jr°   rN  c                  óø   — e Zd ZU dZ ej
                  e¬«      Zded<    ej
                  d¬«      Z	ded<   dd	„Z
	 d	 	 	 	 	 dd
„Zdd„Zdd„Z	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„ZeZy)ÚExceptionStackzU
    Exception stack that it is shared among all InstructionTranslator instances
    rØ   zlist[ExceptionVals]Ú
_exc_stackN)ÚdefaultzExceptionVals | NoneÚ_current_exceptionc                ó   — d | _         y r§   )rd  râ   s    r®   Úclear_current_exceptionz&ExceptionStack.clear_current_exceptionê  s
   € Ø"&ˆÕr°   c                ó8   — |r| j                  |«       || _        y r§   )Ú._set_context_and_break_context_reference_cyclerd  )rÉ   ÚvalÚset_contexts      r®   Úset_current_exceptionz$ExceptionStack.set_current_exceptioní  s   € ñ Ø×?Ñ?ÀÔDØ"%ˆÕr°   c                óˆ   — | j                   €t        d«      ‚| j                  | j                   «       | j                  «        y ©Nz7expected self._current_exception is not None to be true)rd  rÌ   rì   rf  râ   s    r®   Úmove_current_exception_to_stackz.ExceptionStack.move_current_exception_to_stackô  s>   € Ø×"Ñ"Ð*Ü ØIóð ð 	�‰�D×+Ñ+Ô,Ø×$Ñ$Õ&r°   c                óH   — | j                   €t        d«      ‚| j                   S rm  )rd  rÌ   râ   s    r®   Úget_current_exceptionz$ExceptionStack.get_current_exceptionü  s,   € Ø×"Ñ"Ð*Ü ØIóð ð ×&Ñ&Ð&r°   c                óî   — |j                   x}r|j                  «       s|S t        | j                  «      |z   dkD  r9| j                  |   }| j	                  ||dz
  «       ||ur|j                  |«       |S )Nr   r   )Ú__context__Úis_constant_nonerë   rb  Ú_set_context_recursiverj  )rÉ   ri  Úprev_idxÚctxÚprevs        r®   rt  z%ExceptionStack._set_context_recursive  ss   € ð —?‘?Ð"ˆCÐ"¨C×,@Ñ,@Ô,BØˆJÜˆt�‰Ó (Ñ*¨QÒ.Ø—?‘? 8Ñ,ˆDØ×'Ñ'¨¨h¸©lÔ;Ø˜3‰Ø—‘ Ô%Øˆ
r°   c                óÎ   — |x}}d}	 |j                   }|j                  «       ry ||u r%|j                  t        j                  d «      «       y |}||u ry |r|j                   }| }Œ_r'  )rr  rs  rj  rm   Úcreate)rÉ   ri  ÚoÚslow_oÚslow_update_toggler»  s         r®   Ú_break_context_reference_cyclez-ExceptionStack._break_context_reference_cycle  s~   € ð
 ÐˆˆFØ"ÐØØ—m‘mˆGØ×'Ñ'Ô)Øà˜#‰~Ø—‘Ô.×5Ñ5°dÓ;Ô<ØàˆAØ�F‰{ð á!à×+Ñ+�Ø%7Ð!7Ðð% r°   c                óv   — | j                  |t        | j                  «      dz
  «       | j                  |«       y ©Nr   )rt  rë   rb  r}  ©rÉ   ri  s     r®   rh  z=ExceptionStack._set_context_and_break_context_reference_cycle*  s0   € ð 	×#Ñ# C¬¨T¯_©_Ó)=ÀÑ)AÔBØ×+Ñ+¨CÕ0r°   c                ó6   — | j                   j                  «       S r§   )rb  r×  râ   s    r®   r×  zExceptionStack.pop1  s   € Ø�‰×"Ñ"Ó$Ð$r°   c                ó:   — | j                   j                  |«       y r§   )rb  rì   r€  s     r®   rì   zExceptionStack.append4  s   € Ø�‰×Ñ˜sÕ#r°   c                ó,   — t        | j                  «      S r§   )rë   rb  râ   s    r®   Ú__len__zExceptionStack.__len__7  s   € Ü�4—?‘?Ó#Ð#r°   c                ó    — | j                   |   S r§   )rb  )rÉ   rÛ   s     r®   Ú__getitem__zExceptionStack.__getitem__:  s   € Ø�‰˜uÑ%Ð%r°   c                ó:   — d| j                   ›d| j                  ›�S )Nzself._exc_stack=z - self._current_exception=)rb  rd  râ   s    r®   Ú__str__zExceptionStack.__str__=  s"   € Ø"�$—/‘/Ð#Ð#? t×'>Ñ'>Ð&@ÐAÐAr°   ró   )T)ri  r´   rj  rÂ   rÎ   rÏ   )rÎ   r´   )ri  r´   ru  r¾   rÎ   r´   )ri  r´   rÎ   rÏ   )rÎ   r¾   )rÛ   r¾   rÎ   r´   r  )rÑ   rÒ   rÓ   rô   rõ   rö   r÷   rb  rÔ   rd  rf  rk  rn  rp  rt  r}  rh  r×  rì   r„  r†  rˆ  Ú__repr__rÕ   r°   r®   ra  ra  Ö  sÃ   … ñð '8 k×&7Ñ&7ÈÔ&M€JÐ#ÓMØ/@¨{×/@Ñ/@ÈÔ/NÐÐ,ÓNó'ð 7;ð&Ø ð&Ø/3ð&à	ó&ó'ó'ð
Ø ð
Ø,/ð
à	ó
ó8ð61Ø ð1à	ó1ó%ó$ó$ó&óBð �Hr°   ra  c                  óö  ‡ — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded <   d!ed"<   d#ed$<   d%ed&<   d'ed(<   ded)<   ded*<   d+ed,<   ded-<   d.ed/<   d0ed1<   d2ed3<   dûd4„Zdüd5„Zdýd6„Zdýd7„Zdþd8„Zdÿd9„Z	dþd:„Z
dýd;„Zdûd<„Z	 	 	 	 	 	 	 	 �d d=„Z	 	 	 	 	 	 	 	 �dd>„Z	 �d	 	 	 	 	 	 	 	 	 �dd@„Z�d�ddB„Z�ddC„Z�ddD„ZdüdE„Zej*                  dFk\  r�ddG„Zn�ddH„Ze�d	dI„«       Z�d
dJ„Z�ddK„ZdûdL„Z�ddM„Z�ddN„Z�ddO„Z�ddP„Z�ddQ„Z �ddR„Z!�ddS„Z"�ddT„Z#�ddU„Z$�ddV„Z%e Z&�ddW„Z'�ddX„Z(�ddY„Z)e*jV                  �ddZ„«       Z,�dd[„Z-�dd\„Z.e/�dd]„«       Z0�dd^„Z1�dd_„Z2�dd`„Z3e3Z4�dda„Z5e/�ddb„«       Z6�ddc„Z7�ddd„Z8e8Z9e8Z: e;e<jz                  d?«      Z> e;e<j~                  d?«      Z@ e;e<jz                  de«      ZA e;e<j~                  de«      ZB�ddf„ZC�ddg„ZD�ddh„ZE�ddi„ZF�ddj„ZG�ddk„ZH�ddl„ZI�ddm„ZJ	 	 	 	 	 	 �ddn„ZK�ddo„ZL�ddp„ZM�ddq„ZN�ddr„ZO�dds„ZP�ddt„ZQ�ddu„ZR�ddv„ZSdüdw„ZT�ddx„ZU�ddy„ZV eWdedz¬{«      �dd|„«       ZX�dd}„ZY eWded~¬{«      �dd„«       ZZ eWded€¬{«      �dd�„«       Z[ eWded‚¬{«      �ddƒ„«       Z\�dd„„Z]�dd…„Z^�dd†„Z_�dd‡„Z`�ddˆ„Za�dd‰„Zb eWd?dŠ¬{«      �dd‹„«       Zc�ddŒ„Zd�dd�„Zeef	 	 	 	 	 	 �ddŽ„«       Zg	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 �dd�„Zh�dd�„Zi	 	 	 	 	 	 �dd‘„Zjef	 	 	 	 	 	 	 	 �d d’„«       Zkdüd“„Zl eWd?d”¬{«      �dd•„«       Zm�dd–„Zn	 	 	 	 	 	 �d!d—„Zo�dd˜„Zp�dd™„Zqdüdš„Zr�dd›„Zs�ddœ„Zteuf�d"d�„Zv�ddž„ZwewZx�ddŸ„Zy�dd „ZzezZ{�dd¡„Z|�dd¢„Z}�dd£„Z~�dd¤„Z�dd¥„Z€�dd¦„Z��dd§„Z‚�dd¨„Zƒ eWd?d©¬{«      �ddª„«       Z„�dd«„Z…�dd¬„Z†�dd­„Z‡�dd®„Zˆ�dd¯„Z‰�dd°„ZŠ�dd±„Z‹�d#d²„ZŒ�d$d³„Z��dd´„ZŽ�ddµ„Z��dd¶„Z��dd·„Z‘�dd¸„Z’�dd¹„Z“�ddº„Z”�dd»„Z•e•Z–�dd¼„Z—�dd½„Z˜�dd¾„Z™�dd¿„Zš�ddÀ„Z›�ddÁ„Zœ�ddÂ„Z��ddÃ„Zž eŸe<�j@                  «      Z¡ eŸe<�jD                  «      Z£ eŸe<jz                  «      Z¤ eŸe<�jJ                  «      Z¦ eŸe<�jN                  «      Z¨ eŸe<�jR                  «      Zª eŸe<�jV                  «      Z¬ eŸe<�jZ                  «      Z® eŸe<�j^                  «      Z° eŸe<�jb                  «      Z² eŸe<�jb                  «      Z³ eŸe<�jh                  «      Zµ eŸe<�jl                  «      Z·  eWdedÄ¬{«       eŸe<�jp                  «      «      Z¹ eŸe<�jt                  «      Z» eŸe<�jx                  «      Z½ eŸe<�j|                  «      Z¿ eŸe<�j€                  «      ZÁ eŸe<�j„                  «      ZÃ eŸe<�jˆ                  «      ZÅ eŸe<�jŒ                  «      ZÇ eŸe<�j�                  «      ZÉ eŸe<�j”                  «      ZË eŸe<�j˜                  «      ZÍ eŸe<�jœ                  «      ZÏ eŸe<�jœ                  «      ZÐ eŸe<�j¢                  «      ZÒ eŸe<�j¦                  «      ZÔ eŸe<�jª                  «      ZÖ eŸe<�j®                  «      ZØ eŸe<�j²                  «      ZÚ eŸe<�j¶                  «      ZÜ eŸe<�jº                  «      ZÞ�ddÅ„Zßej*                  dFk\  r�ddÆ„Zà�ddÇ„Zá�ddÈ„Zâ�ddÉ„Zã�d�d%dÊ„Zä eWdedË¬{«      �ddÌ„«       Zå�ddÍ„Zæ�ddÎ„Zçe8Zèe8Zé e;e<j~                  d?«      Zê e;e<j~                  d?«      Zë e;e<jz                  d?«      Zì e;e<jz                  d?«      Zí�ddÏ„Zî�ddÐ„Zï	 	 	 	 	 	 �d&dÑ„Zðef�d'dÒ„«       Zñ�ddÓ„Zò�ddÔ„Zó�ddÕ„Zô�ddÖ„Zõ�dd×„Zö�ddØ„Z÷�ddÙ„Zø�ddÚ„Zù�ddÛ„Zú�ddÜ„Zû�ddÝ„Zü�ddÞ„Zý eWdedß¬{«      �ddà„«       Zþ�ddá„Zÿ�ddâ„�Z �ddã„�Z�ddä„�Z�ddå„�Ze �Ze…�Z�ddæ„�Zdç�Z�ddè„�Z�ddé„�Z	�e
�e�e�e�e�e�edAdêded?dëf�Z�ddì„�Zdüdí„�Z	 �d	 	 	 �d(dî„�Z�d)dï„�Zdüdð„�Z�d*dñ„�Ze�d+dò„«       �Z�e�j4                  	 	 	 	 �d,dó„«       �Z�d-dô„�Z	 	 	 	 	 	 	 	 �d.dõ„�Z	 	 	 	 �d/dö„�Z�dd÷„�Z	 	 	 	 	 	 	 	 �d0dø„�Z ef	 	 	 	 	 	 �d1dù„«       �Z!	 	 	 �d2	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 �d3ˆ fdú„�Z"ˆ x�Z#S (4  rÐ   rE   r(  údict[str, VariableTracker]Úsymbolic_localsÚsymbolic_globalsr•   Úsymbolic_torch_function_stater‘   Úsymbolic_stream_statez!dict[str, VariableTracker] | NoneÚpost_prune_cell_and_freevarsúlist[VariableTracker]Ústackú
int | NonerÀ   r.   rÞ  rÂ   r(  zlist[BlockStackEntry]r
  r¾   r¿   zConstantVariable | NonerD  Úaccept_prefix_instúlist[Instruction]Úprefix_instsÚinline_depthÚinconsistent_side_effectszSpeculationEntry | NoneÚcurrent_speculationz	list[Any]rY  ra  Úexn_vt_stackzExecutionRecorder | NoneÚexec_recorderz(Callable[[VariableTracker], bool] | NoneÚstrict_checks_fnÚstart_pointÚhas_no_inlined_callsz InstructionTranslatorBase | NonerÜ  Úis_child_tracer_activez3list[tuple[VariableTracker, list[VariableTracker]]]Údebug_localsúCompilePackage | NoneÚpackagez
deque[str]Úlatest_bytecode_queuec                ó   — d| _         y)zÒ
        InstructionTranslator has encountered instructions which may cause
        dynamo to see a different version of history from eager
        See: https://github.com/pytorch/pytorch/issues/110765
        TN)r˜  râ   s    r®   Úmark_inconsistent_side_effectsz8InstructionTranslatorBase.mark_inconsistent_side_effectsh  s   € ð *.ˆÕ&r°   c                ó,  — | }|��|j                   j                  }|j                  €t        d«      ‚|j                  |j                  d  D ]8  }|j
                  dv r n(|j
                  t        v sŒ&|j                  }||k  sŒ8 y |j                  }|�Œ�y)Nz:expected cur_tx.instruction_pointer is not None to be true)ÚRETURN_VALUEÚRETURN_CONSTTF)	rÞ  ÚoffsetrÀ   rÌ   rv  rí   r   rw  rÜ  )rÉ   r  Ú
cur_offsetrÁ   Újump_offsets        r®   rÐ  z,InstructionTranslatorBase.maybe_has_backedgep  s©   € ð* 48ˆØÐ Ø×3Ñ3×:Ñ:ˆJØ×)Ñ)Ð1Ü$ØPóð ð ×+Ñ+¨F×,FÑ,FÐ,HÐIò $�Ø—;‘;Ð"BÑBÙØ—;‘;¤,Ò.Ø"&§+¡+�KØ" ZÓ/Ù#ð$ð —]‘]ˆFð Ñ ð r°   c                ó    — | j                   d   S )NÚco_cellvars©rÔ  râ   s    r®   Úcellvarsz"InstructionTranslatorBase.cellvars–  ó   € Ø× Ñ  Ñ/Ð/r°   c                ó    — | j                   d   S )NÚco_freevarsr®  râ   s    r®   Úfreevarsz"InstructionTranslatorBase.freevars™  r°  r°   c                ó^   — d|› t        | j                  |   «      › �}|| j                  |<   |S )zIGenerate a fresh, unique pycode-local variable name for the given prefix.Ú__)rò   Ú_pycode_varname_counterÚ_pycode_last_varname)rÉ   Úprefixr¸   s      r®   Únew_pycode_varnamez,InstructionTranslatorBase.new_pycode_varnameœ  s8   € à�F�8œD ×!=Ñ!=¸fÑ!EÓFÐGÐHˆØ,0ˆ×!Ñ! &Ñ)Øˆr°   c                óH   — t        j                  d«      | j                  |<   y rá   )Ú	itertoolsÚcountr¶  ©rÉ   r¸  s     r®   Úreset_pycode_varname_counterz6InstructionTranslatorBase.reset_pycode_varname_counter¢  s   € Ü/8¯©¸qÓ/Aˆ×$Ñ$ VÒ,r°   c                ó    — | j                   |   S )zGReturn the most recently generated pycode varname for the given prefix.)r·  r½  s     r®   Úget_pycode_last_varnamez1InstructionTranslatorBase.get_pycode_last_varname¥  s   € à×(Ñ(¨Ñ0Ð0r°   c                ó~   — t        | d«      s&| j                  «       | j                  «       z   | _        | j                  S )NÚ_cell_and_freevars)r5  r¯  r³  rÂ  râ   s    r®   Úcell_and_freevarsz+InstructionTranslatorBase.cell_and_freevars©  s2   € Ü�tÐ1Ô2Ø&*§m¡m£o¸¿¹»Ñ&GˆDÔ#Ø×&Ñ&Ð&r°   c                óV  — | j                   j                  «       D ��ci c]  \  }}|| j                  «       v r||“Œ c}}| _        t	        | j
                  | j                  «      }| j                   j                  «       D ��ci c]  \  }}||v sŒ||“Œ c}}| _         y c c}}w c c}}w r§   )rŒ  r  rÃ  r�  r    rv  rÞ  )rÉ   r  r  Úreadss       r®   Úprune_dead_localsz+InstructionTranslatorBase.prune_dead_locals®  s    € ð ×,Ñ,×2Ñ2Ó4÷-
á��1Ø�D×*Ñ*Ó,Ñ,ð ˆq‰Dó-
ˆÔ)ô " $×"3Ñ"3°T×5MÑ5MÓNˆà!×1Ñ1×7Ñ7Ó9÷ 
Ù�Q˜¸QÀ%ºZˆAˆq‰Dó 
ˆÕùó-
ùó 
s   žBÂB%ÂB%c                ó  — t        |t        «      st        d«      ‚t        |t        «      st        d«      ‚t        |t        «      st        d«      ‚t        d„ t        j                  ||j                  «       «      D «       «      st        d«      ‚d }t        |d«      r|j                  }t        |d«      r|j                  }|�$t        |«      rt        |«      rt        d|› �«      ‚| j                  |j                  | ||«      «       y )	Nz3expected isinstance(fn, VariableTracker) to be truez*expected isinstance(args, list) to be truez,expected isinstance(kwargs, dict) to be truec              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr§   )rV  rg   )r   rb  s     r®   r  z:InstructionTranslatorBase.call_function.<locals>.<genexpr>Ç  s   è ø€ ò 
àô �qœ/×*ñ
ùó   ‚ziexpected all( isinstance(x, VariableTracker) for x in itertools.chain(args, kwargs.values()) ) to be truer¯  rR  z$Attempt to trace forbidden callable )rV  rg   rÌ   r÷   r  r¶  r»  ÚchainÚvaluesr5  r¯  rR  ÚcallablerY   rF  rG  )rÉ   rR  r¬   r  r3  s        r®   rG  z'InstructionTranslatorBase.call_function»  sí   € ô ˜"œoÔ.Ü Ð!VÓWÐWÜ˜$¤Ô%Ü Ð!MÓNÐNÜ˜&¤$Ô'Ü Ð!OÓPÐPÜñ 
ä—_‘_ T¨6¯=©=«?Ó;ô
ô 
ô !Ø{óð ð ˆÜ�2�wÔØ—x‘xˆHÜ�2�tÔØ—u‘uˆHØÐ¤H¨XÔ$6¼<ÈÔ;QÜ Ð#GÈÀzÐ!RÓSÐSØ�	‰	�"×"Ñ" 4¨¨vÓ6Õ7r°   c                ó^   — t        |t        «      st        |«      }|j                  | ||«      S )zD
        Redirect the call to the generator "call_function"
        )rV  rw   rG  )rÉ   rR  r¬   r  s       r®   Úinline_generator_functionz3InstructionTranslatorBase.inline_generator_function×  s.   € ô ˜"Ô<Ô=Ü/°Ó3ˆBØ×Ñ  d¨FÓ3Ð3r°   Fc                ó®   — t         j                  r,t        |j                  «       «      r| j	                  |||«      S t
        j                  | ||||¬«      S )zF
        A call to some user defined function by inlining it.
        ©Úallow_nested_graph_breaks)r   Ú"enable_faithful_generator_behaviorr/   Úget_coderÎ  ÚInliningInstructionTranslatorÚinline_call)rÉ   rR  r¬   r  rÑ  s        r®   Úinline_user_function_returnz5InstructionTranslatorBase.inline_user_function_returnä  sV   € ô ×4Ò4¼ÀbÇkÁkÃmÔ9TØ×1Ñ1°"°d¸FÓCÐCä0×<Ñ<ØØØØØ*Cð =ó ð r°   Nc                ó   — |€| j                   }| j                  dkD  rd| j                  › d�nd}t        | j                  j                  |«      }|€dnd|› d�}| j                  j                  › d|› d| j                  j
                  › |› |› �S )Nr   z (inline depth: r™  rç   rê   rè   z in )r¿   r—  r@   rÒ  r  Úco_name)rÉ   r¿   Úinline_depth_strÚfuncnameÚfuncname_strs        r®   Úget_line_of_code_headerz1InstructionTranslatorBase.get_line_of_code_headerù  s�   € Øˆ>Ø—[‘[ˆFà7;×7HÑ7HÈ1Ò7LÐ˜t×0Ñ0Ð1°Ñ3ÐRTð 	ô   §¡× 7Ñ 7¸Ó@ˆØ%Ð-‘r°R¸°zÀÐ3CˆØ—+‘+×)Ñ)Ð*¨!¨F¨8°4¸¿¹×8KÑ8KÐ7LÈ\ÈNÐ[kÐZlÐmÐmr°   c                óÂ   — d| j                  «       › d�}t        j                  | j                  j                  | j
                  «      j                  «       }|d|› �z  }|S )NzTRACE starts_line rü   r¦  )rÜ  Ú	linecacheÚgetlinerÒ  r  r¿   Úrstrip)rÉ   Úlog_strr‹  s      r®   Úget_log_starts_line_log_strz5InstructionTranslatorBase.get_log_starts_line_log_str  sX   € Ø& t×'CÑ'CÓ'EÐ&FÀbÐIˆÜ× Ñ  §¡×!8Ñ!8¸$¿+¹+ÓF×MÑMÓOˆØ�T˜$˜�=Ñ ˆØˆr°   c                ó  — | j                   |k(  ry || _         t        j                  | j                  j                  || j                  j
                  «       | j                  r*t        j                  dt        | j                  «      «       y y )Nú%s)r¿   r   Úset_current_locrÒ  r  rØ  Úis_trace_source_log_enabledÚtrace_source_logr®  ra   râ  )rÉ   r¿   s     r®   Ústarts_linez%InstructionTranslatorBase.starts_line	  sl   € Ø�;‰;˜&Ò ØØˆŒÜ×&Ñ&Ø�K‰K×#Ñ# V¨T¯[©[×-@Ñ-@ô	
ð ×+Ò+Ü×"Ñ" 4¬°D×4TÑ4TÓ)UÕVð ,r°   c                óú  — t        «       | _        | j                  }|€y| j                  |   x| _        }|dz   | _        |j
                  r| j                  |j
                  «       t        j                  «       }|�|j                  |_	        | j                  sb| j                  «       rR| j                  «       rB| j                  «       | _        | j                  j                  | «      r| j!                  |«       y| j"                  r?t$        j'                  d|j(                  |j*                  t-        | j                  «      «       t.        j0                  rW	 t-        | j                  «      }| j4                  j7                  d|j(                  › dt-        |j*                  «      › d|› �«       | j9                  |«       	  | j:                  |j<                     | |«       | j>                  j@                   S # t2        $ r d}Y Œ—w xY w# tB        $ r ‚ tD        jF                  $ r}| jI                  |«       Y d}~yd}~wtJ        tL        f$ r Y ytN        tP        tR        f$ rô}| jT                  s%| j                  s| jV                  stY        |d	d«      r2t[        |tR        «      r!t]        d
ddddgt^        j`                  ¢¬«       ‚ | j                  €Otb        j'                  d«       t[        |tR        «      r"t]        dddddgt^        j`                  ¢d¬«       d|_2        ‚ dtg        |«      › �}| ji                  | jj                  ||¬«       Y d}~nd}~ww xY w| j                  jm                  | j                  «       y)z<Process exactly one instruction, return False we should exitNFr   zTRACE %s %s %sz0<self.stack repr truncated due to large integer>zTRACE ú Tr%  z3cannot resume from torch._dynamo.step_unsupported()rç   z‡traced torch._dynamo.step_unsupported(), but Dynamo is instructed to error on graph break. This graph break is used for debugging only.z1Remove the torch._dynamo.step_unsupported() call.z9Make sure fullgraph=False and error_on_graph_break=False.r¹  z1empty checkpoint - cannot resume from graph breakz6torch._dynamo.step_unsupported() with empty checkpointzŠtraced torch._dynamo.step_unsupported(), but there is no checkpoint to step_graph_break from. This graph break is used for debugging only.z¨Include at least one checkpoint: (1) include at least 2 ops and (2) make sure there is some line of code that is not in a try/with block, and has an empty Python stack.)rº  r»  r¼  r½  r%  z¤Encountered graph break that we cannot resume from. Compiling up to the previous resumable state, then skipping the rest of the function. Graph break encountered:

rÇ  )7rZ   rÄ   rÀ   rv  rÞ  rè  r   Útry_getÚ	positionsÚloc_in_frame_positionsr’  rÏ  Úis_non_empty_graphr)  r™  rÍ   Ústep_graph_breakÚis_trace_bytecode_log_enabledÚtrace_bytecode_logr®  rí   rw  r”  r   ÚverboseÚ
ValueErrorr£  rì   Úupdate_block_stackrY  rB  r(  r)  r   r   r   Úexception_handlerrA  rC  r>   r?   r<   r+  Úis_tracing_resume_prologuer…  rV  r=   r   Ú
DYNAMO_BUGr!  r%  r¼   rÓ  rÔ  rÊ   )rÉ   ÚiprÁ   ÚtcÚ
stack_reprrá  rÅ   s          r®   ÚstepzInstructionTranslatorBase.step  sA  € ä$=Ó$?ˆÔ!à×%Ñ%ˆØˆ:ØØ*.×*;Ñ*;¸BÑ*?Ð?ˆÔ  4Ø#%¨¡6ˆÔ à×ÒØ×Ñ˜T×-Ñ-Ô.ä×#Ñ#Ó%ˆØˆ>Ø(,¯©ˆBÔ%ð —
’
Ø×1Ñ1Ô3Ø×'Ñ'Ô)à'+§~¡~Ó'7ˆDÔ$Ø×'Ñ'×.Ñ.¨tÔ4Ø×%Ñ% dÔ+Øà×-Ò-Ü×$Ñ$Ø  $§+¡+¨t¯{©{¼DÀÇÁÓ<Lôô �>Š>ðPÜ! $§*¡*Ó-�
ð ×&Ñ&×-Ñ-Ø˜Ÿ™˜ Q¤t¨D¯K©KÓ'8Ð&9¸¸:¸,ÐGôð 	×Ñ Ô%ðA	Ø,ˆD×Ñ §¡Ñ,¨T°4Ô8Ø—{‘{×.Ñ.Ð.Ð.øô ò PàO’
ðPûô .ò 	ØÜ×$Ñ$ò 	Ø×"Ñ" 1Ô%ÜûÜœ|Ð,ò 	ÙÜœY¬Ð8ò 7	ð —’Ø×,Ò,Ø×2Ò2Ü˜1˜l¨EÔ2ä˜a¤Ô1Ü!Ø UØ "ð%`ð PØWðô /×9Ñ9ðõ
ð Ø×'Ñ'Ð/Ü—	‘	ÐMÔNÜ˜a¤Ô1Ü!Ø XØ "ð%að Pðkðô /×9Ñ9ð	ð $(õð  $�”Øð/ô 03°1«v¨hð8ð ð × Ñ Ø×!Ñ!ØØð !÷ ñ ûðg7	úðr 	× Ñ ×:Ñ:¸4×;TÑ;TÔUØs=   ÅG6 Æ?6H Ç6HÈHÈMÈ#H9È9MÉMÉ C*MÍMr6  c                óÒ  — |j                   }|r€t        | j                  «      dk\  rg|j                  | j                  d   j                  urA|j                  | j                  d   j                  u r| j                  j	                  «        y y y y | j                  rM|j
                  dvr>t        | j                  «      dk7  rt        d«      ‚| j                  j	                  «        y y y )Né   r‚  éþÿÿÿ)ÚNOPÚJUMP_BACKWARDÚ	NOT_TAKENr   z.expected len(self.block_stack) == 1 to be true)rF  rë   r
  r.  r×  rí   rÌ   )rÉ   rÁ   rï   s      r®   rô  z,InstructionTranslatorBase.update_block_stackŠ  sâ   € ð ×&Ñ&ˆEÙô ˜×(Ñ(Ó)¨QÒ.ØŸ™¨D×,<Ñ,<¸RÑ,@×,GÑ,GÑGØŸ™¨×(8Ñ(8¸Ñ(<×(CÑ(CÑCð ×$Ñ$×(Ñ(Õ*ð Dð Hð /ð" ×#Ò#¨¯©ð <ñ )ô ˜4×+Ñ+Ó,°Ò1Ü,ØLóð ð ×$Ñ$×(Ñ(Õ*ð)Ð#r°   c                 ó   — y r§   rÕ   ©rÉ   rÁ   s     r®   rô  z,InstructionTranslatorBase.update_block_stack»  s   € Ør°   c                ób   — | j                   €t        d«      ‚| j                  | j                      S )Nú8expected self.instruction_pointer is not None to be true)rÀ   rÌ   rv  râ   s    r®   rÙ  z*InstructionTranslatorBase.next_instruction¾  s7   € à×#Ñ#Ð+Ü ØJóð ð × Ñ  ×!9Ñ!9Ñ:Ð:r°   c           	     ór
  — | j                   j                  rt        d«      ‚| j                  €t        d«      ‚| j                  rt        d«      ‚t
        j                  d«       | j                   j                  | t        d| j                  «       g«      ¬«      }| j                  �rSddlm} t        j                  st        d	«      ‚t        | j                   j                   «      }|j#                  g t%        d
«      ¢|j'                  d«      ‘|j)                  «       ‘t+        dd¬«      ‘t%        d
«      ¢|j'                  d«      ‘|j)                  «       ‘t+        dd¬«      ‘«       | j-                  d||d   g |dd«      \  }} ||«       g }t/        | j                  ||«       | j1                  |g|g|«       |j#                  |«       |j#                  g t%        d
«      ¢|j'                  d«      ‘t+        d«      ‘t%        d«      ¢|j'                  d«      ‘t+        d«      ‘«       |d   j2                  }|j#                  g t%        d
«      ¢|j'                  d«      ‘|j)                  «       ‘t5        d|«      ¢«       |j#                  g t7        d
«      ¢t+        dd¬«      ‘«       | j                  j9                  t;        «       «       |d   xj2                  dz  c_        |dkD  rp|j#                  g t%        d
«      ¢|j'                  d«      ‘|j)                  «       ‘t5        |d «      ¢t%        d«      ¢|j'                  d«      ‘t+        d«      ‘«       |j#                  t+        d|dz   ¬«      t+        d|dz   ¬«      t+        d|dz   ¬«      g«       | j                   j=                  |j?                  «       | j                  jA                  | j                  jB                  |dd  «      z   «       y | j                   j=                  g t7        d
«      ¢t+        d«      ‘«       t        | j                   j                   «      }| j                   j=                  |j'                  d«      |j)                  «       g«       |d   jD                  jG                  «       D ]X  \  }	}
| j                   j=                  tI        «       |j'                  |
«      |j)                  «       |jK                  |	«      g«       ŒZ | j                   j=                  t+        d«      tM        |«      g| jN                  ¢«       y )Nz7expected not self.output.output_instructions to be truez8expected self.current_speculation is not None to be truez"expected not self.stack to be truezstep triggered compileÚstep_unsupported)rÅ   r   )Ú	skip_codez.expected config.nested_graph_breaks to be truerý  r   Ú
BUILD_LIST©rA  TFÚDELETE_SUBSCRrÌ  ÚLIST_APPENDÚSTORE_SUBSCRÚUNPACK_SEQUENCEÚPOP_TOPr‚  )(r(  Úoutput_instructionsrÌ   r™  r’  r!  r®  rÕ  rD   rÖ  rÜ  Ú
eval_framer  r   Únested_graph_breaksr3   rÝ  r  r&   Úcreate_load_constÚcreate_binary_subscrr(   Úcreate_resumer  Úcodegen_call_resumeÚ	num_stackr#   r+   rF  r‰   rÛ  rj  rØ  rÙ  Úlocals_namesr  r'   Úcreate_storer)   rv  )rÉ   Úcontinue_instrâ  r  r  Úleaf_resume_codeÚleaf_resume_namer  r  ÚlocalÚidxs              r®   rï  z*InstructionTranslatorBase.step_graph_breakÆ  s\  € à�;‰;×*Ò*Ü ØIóð ð ×#Ñ#Ð+Ü ØJóð ð �:Š:Ü Ð!EÓFÐFô 	�	‰	Ð*Ô+Ø$(§K¡K×$@Ñ$@ØÜ%Ð&8¸4×;MÑ;MÓ;OÐ:PÓQð %Aó %
Ð!ð �;‹;Ý-ô ×-Ò-Ü$Ð%UÓVÐVÜ˜4Ÿ;™;×.Ñ.Ó/ˆBð ×Ñð	Ü  “^ð	à×(Ñ(¨Ó+ð	ð ×+Ñ+Ó-ð	ô ' |¸Ô;ð		ô
 ! “^ð	ð ×(Ñ(¨Ó+ð	ð ×+Ñ+Ó-ð	ô ' |¸Ô;ð	ôð 26×1CÑ1CØ�=Ð";¸AÑ">ÀÀBÈÈeó2Ñ.ÐÐ.ñ Ð&Ô'à)+ˆGÜ$ T§[¡[°"°gÔ>ð ×$Ñ$Ð&6Ð%7Ð:JÐ9KÈRÔPà×Ñ˜WÔ%ð ×ÑðÜ  “^ðà×(Ñ(¨Ó+ðô ' Ó7ðô ! “^ð	ð
 ×(Ñ(¨Ó+ðô ' Ó7ðô	ð 2°!Ñ4×>Ñ>ˆIØ×ÑðÜ  “^ðà×(Ñ(¨Ó+ðð ×+Ñ+Ó-ðô )¨¨IÓ6ð	ôð ×ÑðÜ  “^ðä& }¸!Ô<ðôð �K‰K×Ñœ_Ó.Ô/Ø% aÑ(×2Ò2°aÑ7Õ2ð
 ˜1Š}Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨QÓ/ðð ×/Ñ/Ó1ðô -¨Y¸Ó=ð	ô
 % Q›ðð ×,Ñ,¨QÓ/ðô +¨>Ó:ðôð  ×Ñä&Ð'8¸iÈ!¹mÔLÜ& |¸ÀQ¹ÔGÜ&Ð'8¸iÈ!¹mÔLðôð" �K‰K×/Ñ/Ø×#Ñ#Ó%Ø—+‘+×3Ñ3Ø—K‘K×0Ñ0Ð2KÈAÈBÐ2Oóñõð �K‰K×/Ñ/ðÜ  “^ðä& yÓ1ðôô ˜4Ÿ;™;×.Ñ.Ó/ˆBØ�K‰K×/Ñ/à×(Ñ(¨Ó,Ø×+Ñ+Ó-ðôð 8¸Ñ;×HÑH×NÑNÓPò ‘
��sØ—‘×3Ñ3ä&Ó(Ø×,Ñ,¨SÓ1Ø×/Ñ/Ó1ØŸ™¨Ó.ð	õðð �K‰K×/Ñ/ä& yÓ1Ü(¨Ó7ðð ×&Ñ&ðõr°   c                ó,   — t        j                  d «      S r§   )r   Úcurrent_framerâ   s    r®   Úrun_ctx_mgrz%InstructionTranslatorBase.run_ctx_mgr‘  s   € ô ×+Ñ+¨DÓ1Ð1r°   c           
     óú  — | j                  «       5  t        | j                  j                  «       	 | j                  j                  | «       | j                  | _        	 | j                  «       r	 | j                  «       rŒ| j                  jY                  «        t)        | t.        «      r5| j                  j[                  «        | j                  j]                  «        	 d d d «       y # t        $ rY}| j                  rGt        dt        |«      j                  › dt        |«      › �«      j                  |j                   «      d ‚‚ d }~ww xY w# t"        $ r ‚ t$        $ r ‚ t&        $ �r*}t)        |t*        t,        f«      rTt)        | t.        «      rD| j0                  s8| j2                  s,dt        |«      › �}| j5                  | j6                  ||¬«       t)        |t8        j:                  «      s$| j                  j<                  j?                  «        tA        |d«      rpd|jB                  v rbtD        jF                  jI                  | j                  jJ                  | j                  jL                  «      jO                  ddd¬	«      }||_(        ‚ ‚ d }~wt        $ ro}| jR                  r| jR                  jU                  «       |_+        t)        |t8        j:                  «      s$| j                  j<                  j?                  «        ‚ d }~ww xY w# | j                  jY                  «        t)        | t.        «      r5| j                  j[                  «        | j                  j]                  «        w w xY w# 1 sw Y   y xY w)
NzˆError while tracing through a Dynamo-generated resume function prologue. Errors are not allowed when tracing resume function prologues.
rþ   ztFailed to handle graph break gracefully. Skipping the function and falling back to eager. Graph break encountered:

rÇ  r`  zData-dependentFT)Úprint_outputÚinclude_strideÚinclude_device)/r!  r   rÒ  r  r(  Úpush_txrÀ   r�  rû  r­  rö  r;   r]  rÓ   r¼   Úwith_tracebackÚ__traceback__r   r6   ÚRuntimeErrorrV  r>   r?   rL  rÄ   r+  rÓ  rÔ  r   ÚRestartAnalysisÚside_effectsÚlog_side_effects_summaryr5  r`  r‘  r’  ÚGraphModuleÚ
nn_modulesÚgraphÚprint_readableÚpartial_fx_graphr›  Ú
get_recordÚexec_recordÚpop_txr  Úmark_bytecode_tracing_stop)rÉ   rá  rÅ   Úreadable_graphs       r®   ÚrunzInstructionTranslatorBase.run—  sè  € Ø×ÑÓñ L	=Ü�d—k‘k×-Ñ-Ô.ðJ=Ø—‘×#Ñ# DÔ)Ø#'×#;Ñ#;�Ô ð
ØŸ)™)œ+Øð Ÿ)™)�+ðt —‘×"Ñ"Ô$ô ˜dÔ$9Ô:Ø—K‘K×'Ñ'Ô)ð
 —K‘K×:Ñ:Õ<÷YL	=ð L	=øô !ò Ø×6Ò6Ü8ð_ä# A›w×3Ñ3Ð4°B´s¸1³v°hð@ó÷ )™.¨¯©Ó9¸tð	Dð
 ûðûô 2ò ØÜ(ò ØÜó #ô ˜q¤;´	Ð":Ô;Ü" 4Ô)>Ô?Ø ×5Ò5Ø ŸNšNð7ä7:¸1³v°hð@ð ð
 ×(Ñ(Ø×)Ñ)Ø%Øð )ô ô " !¤S×%8Ñ%8Ô9Ø—K‘K×,Ñ,×EÑEÔGä˜1˜eÔ$Ð)9¸Q¿U¹UÑ)BÜ%*§X¡X×%9Ñ%9ØŸ™×.Ñ.°·±×0AÑ0Aó&ç$‘nØ%*¸4ÐPTð %ó ð #ð
 *8�AÔ&ØàûÜò Ø×%Ò%Ø$(×$6Ñ$6×$AÑ$AÓ$C�A”MÜ! !¤S×%8Ñ%8Ô9Ø—K‘K×,Ñ,×EÑEÔGàûðûð —‘×"Ñ"Ô$ô ˜dÔ$9Ô:Ø—K‘K×'Ñ'Ô)ð
 —K‘K×:Ñ:Õ<ð ;ú÷ML	=ð L	=úsi   ‘ M1²,EÁ!C)ÂAM1Ã)	EÃ2AEÅEÅEÅL
Å*D%JÊL
ÊA*LÌL
Ì
LÌA!M.Í.M1Í1M:c           	     ó�  — t        |t        «      st        dt        |«      › �«      ‚|j                  €ø| j
                  }|j                  �š|j                  j                  �„|j                  t        | j                  j                  |j                  j                  |j                  j                  |j                  j                  |j                  j                  ¬«      «       nF|j                  �:|j                  t        | j                  j                  |j                  ¬«      «       | j                   j#                  |«       y )Nz"push expects VariableTracker, got )r½   r¿   Ú
end_linenoÚ
col_offsetÚend_col_offset)r½   r¿   )rV  rg   rÌ   re   Úsource_locationrÞ  rì  r¿   Úset_source_locationrd   rÒ  r  r9  r:  r;  rè  r’  rì   )rÉ   ri  rÁ   s      r®   rF  zInstructionTranslatorBase.pushæ  sø   € Ü˜#œÔ/Ü Ð#EÄgÈcÃlÀ^Ð!TÓUÐUØ×ÑÐ&Ø×+Ñ+ˆDØ�~‰~Ð)¨d¯n©n×.CÑ.CÐ.OØ×'Ñ'Ü"Ø!%§¡×!8Ñ!8Ø#Ÿ~™~×4Ñ4Ø#'§>¡>×#<Ñ#<Ø#'§>¡>×#<Ñ#<Ø'+§~¡~×'DÑ'Dôõð ×!Ñ!Ð-Ø×'Ñ'Ü"Ø!%§¡×!8Ñ!8Ø#×/Ñ/ôôð 	�
‰
×Ñ˜#Õr°   c                ó4   — |D ]  }| j                  |«       Œ y r§   )rF  )rÉ   Úvalsri  s      r®   Ú	push_manyz#InstructionTranslatorBase.push_manyþ  s   € Øò 	ˆCØ�I‰I�c�Nñ	r°   c                ó6   — | j                   j                  «       S r§   )r’  r×  râ   s    r®   r×  zInstructionTranslatorBase.pop  s   € Ø�z‰z�~‰~ÓÐr°   c                óp   — g t        t        |«      D �cg c]  }| j                  «       ‘Œ c}«      ¢S c c}w r§   )r©   rX  r×  )rÉ   r‡  r­   s      r®   rH  zInstructionTranslatorBase.popn  s*   € Ø:”¬u°Q«xÖ8¨!˜4Ÿ8™8�:Ò8Ó9Ð:Ð:ùÒ8s   ”3
c           	     ó²  — |j                   }| j                  r7|| j                  v r)| j                  j                  || j                  |   «       	 | j	                  | j
                  |   j                  «       «       |j                  d«      r| j
                  j                  |«       y y # t        $ r¢ |j                  d«      rh	 |j                  dd«      }| j	                  | j
                  |   «       n\# t        $ r* t        dd|› �d|› d�dgt        j                  ¢¬«       Y n*w xY wt        d	d|› �d
|› d�g t        j                  ¢¬«       Y ŒØw xY w)NrU  Úimplicitz5Attempted to read undefined local variable (implicit)z
LOAD_FAST z5Could not find an implicit local variable with name `ú`z(This happens in dict/list comprehensionsr¹  z*Attempted to read undefined local variablez+Could not find a local variable with name `Ú__stack)rw  r›  Úf_localsÚadd_local_varrF  rŒ  ÚunwrapÚKeyErrorrf  r  r=   r   rø  r×  )rÉ   rÁ   r¸   Únew_names       r®   Ú	LOAD_FASTz#InstructionTranslatorBase.LOAD_FAST  sP  € Ø�{‰{ˆØ×Ò $¨$¯-©-Ñ"7Ø×Ñ×,Ñ,¨T°4·=±=ÀÑ3FÔGð	Ø�I‰I�d×*Ñ*¨4Ñ0×7Ñ7Ó9Ô:ð4 �?‰?˜9Ô%Ø× Ñ ×$Ñ$ TÕ*ð &øô3 ò 	Ø�‰˜sÔ#ðà#Ÿ|™|¨C°Ó<�HØ—I‘I˜d×2Ñ2°8Ñ<Õ=øÜò 	Ü!Ø WØ",¨T¨FÐ 3Ø&[Ð\`Ð[aÐabÐ$càFðä.×9Ñ9ð÷	ð	úô ØHØ(¨¨Ð/Ø"MÈdÈVÐSTÐ UØ9Ô-×8Ñ8Ð9õ	ùð#	ús6   Á,B+ Â+EÃ0C7Ã6EÃ70D*Ä'EÄ)D*Ä*)EÅEc                ó¶  — |j                   | j                  «       vrt        d«      ‚| j                  |j                      }| j                  j
                  j                  |«      }| j                  |«       | j                  rW|j                   | j                  v r>| j                  j                  |j                   | j                  |j                      «       y y y )Nú;expected inst.argval in self.cell_and_freevars() to be true)rw  rÃ  rÌ   rŒ  r(  r+  Ú	load_cellrF  r›  rG  rH  )rÉ   rÁ   ÚcellÚcontents_vars       r®   Ú
LOAD_DEREFz$InstructionTranslatorBase.LOAD_DEREF+  sª   € Ø�;‰;˜d×4Ñ4Ó6Ñ6Ü ØMóð ð ×#Ñ# D§K¡KÑ0ˆØ—{‘{×/Ñ/×9Ñ9¸$Ó?ˆØ�	‰	�,Ôà×Ò $§+¡+°·±Ñ">Ø×Ñ×,Ñ,¨T¯[©[¸$¿-¹-ÈÏÉÑ:TÕUð #?Ðr°   c                óö   — |j                   }| j                  «       }|j                  |«       || j                  |<   |t        k(  r4|j                  «       }t        |«      t        urt        d«      ‚|| _	        y y )Nz%expected type(val) is bool to be true)
rw  r×  Úset_name_hintrŒ  rN   rî  r]  rÂ   rÌ   rö  )rÉ   rÁ   r¸   Ú	loaded_vtri  s        r®   Ú
STORE_FASTz$InstructionTranslatorBase.STORE_FAST7  sp   € Ø�{‰{ˆØ—H‘H“Jˆ	Ø×Ñ Ô%Ø%.ˆ×Ñ˜TÑ"ØÔ5Ò5Ø×.Ñ.Ó0ˆCÜ�C‹y¤Ñ$Ü$Ð%LÓMÐMØ.1ˆDÕ+ð	 6r°   c                ó®   — |j                   }| j                  j                  |«      }t        |t        «      r| j                  |«       | j                  |= y r§   )rw  rŒ  r„  rV  r”   Ú_maybe_emit_sync_dealloc)rÉ   rÁ   r¸   Úvars       r®   ÚDELETE_FASTz%InstructionTranslatorBase.DELETE_FASTB  sG   € Ø�{‰{ˆØ×"Ñ"×&Ñ& tÓ,ˆÜ�cœ>Ô*Ø×)Ñ)¨#Ô.Ø× Ñ  Ñ&r°   c                ó^  — ddl m}m} |j                  }|�|j                  dvry |j
                  j                  }|j                  j                  di «      j                  dd «      }t        |j                  j                  «       «      }|sy d }| j                  j                  j                  D ]	  }	|	|v sŒ|	}Œ |�|j                  dk(  ry |j                  j                  di «      j                  dd «      }
||
k(  ry |€ ||«      }|
€ ||«      }
 |«       }| j                  j!                  dt"        j$                  j&                  j(                  ||
fi «       | j                  j!                  dt"        j$                  j&                  j*                  |||j-                  «       fi «       y )Nr   )Úget_current_streamÚ	new_event)ÚcudaÚxpuÚcustomÚstreamr(  rG  )Úvariables.streamsr\  r]  Údevicer]  rª  r«  rƒ  r„  r  ÚusersÚkeysr(  r/  Únodesr›  rñ  r‘  ÚopsÚstreamsÚrecord_eventÚsync_deallocÚas_proxy)rÉ   rY  r\  r]  rc  r«  Úalloc_streamrd  Ú	last_userr‡  Úlast_use_streamÚ	event_idxs               r®   rX  z2InstructionTranslatorBase._maybe_emit_sync_deallocI  su  € ßDà—‘ˆØˆ>˜VŸ[™[°Ñ?Øà�y‰y�~‰~ˆØ—y‘y—}‘} X¨rÓ2×6Ñ6°xÀÓFˆä�D—J‘J—O‘OÓ%Ó&ˆÙØØˆ	Ø—‘×"Ñ"×(Ñ(ò 	ˆAØ�EŠzØ‘	ð	ð Ð 	§¡°Ò 8Øà#Ÿ.™.×,Ñ,¨X°rÓ:×>Ñ>¸xÈÓNˆØ˜?Ò*ØàÐÙ-¨fÓ5ˆLØÐ"Ù0°Ó8ˆOá“Kˆ	Ø�‰× Ñ ØÜ�I‰I×Ñ×*Ñ*Ø˜Ð(Øô		
ð 	�‰× Ñ ØÜ�I‰I×Ñ×*Ñ*Ø˜ c§l¡l£nÐ5Øõ		
r°   c                óv  — |j                   | j                  «       vrt        d«      ‚| j                  |j                      }| j	                  «       }| j
                  j                  j                  ||«       t        |t        «      st        d«      ‚|j                  �|j                  |j                  «       y y )NrN  z2expected isinstance(cell, CellVariable) to be true)rw  rÃ  rÌ   rŒ  r×  r(  r+  Ú
store_cellrV  r„   Ú
local_namerT  )rÉ   rÁ   rP  ri  s       r®   ÚSTORE_DEREFz%InstructionTranslatorBase.STORE_DEREFt  sŸ   € Ø�;‰;˜d×4Ñ4Ó6Ñ6Ü ØMóð ð ×#Ñ# D§K¡KÑ0ˆØ�h‰h‹jˆØ�‰× Ñ ×+Ñ+¨D°#Ô6ä˜$¤Ô-Ü ØDóð ð �?‰?Ð&Ø×Ñ˜dŸo™oÕ.ð 'r°   c                ó  — |j                   }|€ t        j                  |j                  ¬«      S | j                  |   }|s<t        j                  |j                  ¬«      | j                  |<   | j                  |   }|€t        d«      ‚|S )N©r¯  z#expected val is not None to be true)rA  rm   ry  rw  Ú_constants_cacherÌ   )rÉ   rÁ   rg  ri  s       r®   Ú_load_constz%InstructionTranslatorBase._load_const†  s}   € Ø�H‰HˆØˆ9Ü#×*Ñ*°·±Ô=Ð=Ø×#Ñ# AÑ&ˆÙÜ'7×'>Ñ'>ÀTÇ[Á[Ô'QˆD×!Ñ! !Ñ$Ø×'Ñ'¨Ñ*ˆCØˆ;Ü Ð!FÓGÐGØˆ
r°   c                óD   — | j                  | j                  |«      «       y r§   )rF  rw  r  s     r®   rs  z$InstructionTranslatorBase.LOAD_CONST’  s   € Ø�	‰	�$×"Ñ" 4Ó(Õ)r°   c           	     ó°  — |j                   }| j                  rw|| j                  v r*| j                  j                  || j                  |   «       n?|| j                  vrt        d«      ‚| j                  |   | j                  j                  |<   || j                  vr| j                  |«      S || j                  v r\| j                  j                  | j                  |      }| j                  | j                  j                  j                  ||«      «       y | j                  |   }| j                  t        j                  | |t        |«      «      «       y )Nz+expected name in self.f_builtins to be true)rw  r›  Ú	f_globalsÚadd_global_varÚ
f_builtinsrÌ   ÚbuiltinsÚload_builtinr�  r(  r+  rF  Úload_globalrg   rx  rR   )rÉ   rÁ   r¸   Úvariabler¯  s        r®   Ú_load_globalz&InstructionTranslatorBase._load_global•  s  € Ø�{‰{ˆà×ÒØ�t—~‘~Ñ%Ø×"Ñ"×1Ñ1°$¸¿¹ÀtÑ8LÕMà˜tŸ™Ñ.Ü(Ð)VÓWÐWØ48·O±OÀDÑ4I�×"Ñ"×+Ñ+¨DÑ1à�t—~‘~Ñ%Ø×$Ñ$ TÓ*Ð*à�4×(Ñ(Ñ(Ø—{‘{×/Ñ/°×0EÑ0EÀdÑ0KÑLˆHØ�I‰I�d—k‘k×.Ñ.×:Ñ:¸8ÀTÓJÔKØà—‘˜tÑ$ˆØ�	‰	”/×'Ñ'¨¨e´\À$Ó5GÓHÕIr°   c                ól   — d}| j                  |«      }t        |«      }t        j                  | ||«      S )Nztorch.nn.modules.module)Úimport_sourcer¹   rg   rx  )rÉ   Úmodule_nameÚmodule_sourceÚfglobals_values       r®   Únn_modules_globals_vtz/InstructionTranslatorBase.nn_modules_globals_vt«  s6   € à/ˆØ×*Ñ*¨;Ó7ˆÜ'¨Ó4ˆÜ×$Ñ$ T¨>¸=ÓIÐIr°   c                óJ  — |j                   €t        d«      ‚t        j                  dk\  r3t        j                  dk  r |j                   dz  r| j	                  |«       | j                  |«       t        j                  dk\  r"|j                   dz  r| j	                  |«       y y y )Nr>  r6  rË  rý  )rA  rÌ   rZ  rÚ  Ú	PUSH_NULLr�  r  s     r®   ÚLOAD_GLOBALz%InstructionTranslatorBase.LOAD_GLOBAL²  s„   € Ø�8‰8ÐÜ Ð!KÓLÐLÜ×Ñ˜wÒ&¬3×+;Ñ+;¸gÒ+EÈ$Ï(É(ÐUVÊ,Ø�N‰N˜4Ô Ø×Ñ˜$ÔÜ×Ñ˜wÒ&¨4¯8©8°aª<Ø�N‰N˜4Õ ð ,8Ð&r°   c                óŽ  — | j                  «       }|j                  }t        |«      }|| j                  vrt	        «       | j                  |<   | j
                  j                  j                  || j                  |   «      }t        |t        «      rt        d|dg ¬«       | j
                  j                  j                  |||«       y )Nz%Storing Tensor hook handle in globalsúThis is not supported.r¹  )r×  rw  rR   r�  r¨  r(  r+  Útrack_global_existingrV  r—   r=   Ústore_global)rÉ   rÁ   r¯  r¸   rœ  r€  s         r®   ÚSTORE_GLOBALz&InstructionTranslatorBase.STORE_GLOBAL»  s©   € Ø—‘“
ˆØ�{‰{ˆÜ˜dÓ#ˆØ�t×,Ñ,Ñ,Ü*0«(ˆD×!Ñ! $Ñ'Ø—;‘;×+Ñ+×AÑAØ�D×)Ñ)¨$Ñ/ó
ˆô �eÔ4Ô5ÜØ?ØØ4Øõ	ð 	�‰× Ñ ×-Ñ-¨h¸¸eÕDr°   c                ó.  — d|v rZt         j                  j                  j                  |   }|j	                  dd«      j	                  dd«      j	                  dd«      }n t        |«      }d|j	                  dd«      › �}| j                  �| j                  j                  ||«       || j                  j                  |<   | j                  j                  }||vs||   |u st        d«      ‚|||<   | j                  j                  |«       t        |«      S )	z-Create an alias to a module for use in guardsÚtorch_packageú>r­   ú<rU  Ú_dot_Ú	__import_zGexpected alias not in f_globals or f_globals[alias] is value to be true)r‘  r¢  Úpackage_importerÚ_package_imported_modulesr  r¹   Úadd_import_sourcer(  Úimport_sourcesÚglobal_scoperÌ   Úupdate_co_namesrR   )rÉ   r„  r¯  Úaliasrz  s        r®   rƒ  z'InstructionTranslatorBase.import_sourceÏ  s  € ð ˜kÑ)Ü—M‘M×2Ñ2×LÑLØñˆEð ×#Ñ# C¨Ó-×5Ñ5°c¸3Ó?×GÑGÈÈWÓUñ ô # ;Ó/ˆEØ × 3Ñ 3°C¸Ó AÐBÐCˆEà�<‰<Ð#Ø�L‰L×*Ñ*¨5°+Ô>Ø,7ˆ�‰×"Ñ" 5Ñ)Ø—K‘K×,Ñ,ˆ	Ø˜YÑ&¨)°EÑ*:¸eÑ*CÜ ØYóð ð !ˆ	�%ÑØ�‰×#Ñ# EÔ*Ü˜EÓ"Ð"r°   c                ó~   — |j                  d|dz
  «      }t        |«      |k  rt        d«      ‚|d   }|r|› d|› �S |S )zú
        Copied from the Cpython implementation of __import__
        Resolve a relative module name to an absolute one.
        https://github.com/python/cpython/blob/5a094f0255eea1db58fb2cf14c200971e64ec36e/Lib/importlib/_bootstrap.py#L902
        rU  r   z2attempted relative import beyond top-level packager   )Úrsplitrë   ÚImportError)rÉ   r¸   r¢  ÚlevelÚbitsÚbases         r®   Úresolve_namez&InstructionTranslatorBase.resolve_nameé  sQ   € ð �~‰~˜c 5¨1¡9Ó-ˆÜˆt‹9�uÒÜÐRÓSÐSØ�A‰wˆÙ#'�$��q˜˜ÐÐ1¨TÐ1r°   c                óŽ  — | j                   j                  d«      }| j                   j                  d«      }|�6|�2||j                  k7  r#t        j	                  d||j                  d¬«       |S |�|j                  S t        j	                  dd¬«       | j                   d   }d| j                   vr|j                  d	«      d
   }|S )zÀ
        Copied from the Cpython implementation of __import__
        https://github.com/python/cpython/blob/5a094f0255eea1db58fb2cf14c200971e64ec36e/Lib/importlib/_bootstrap.py#L1090
        Ú__package__Ú__spec__z)__package__ != __spec__.parent (%r != %r)rÌ  )Ú
stacklevelzYcan't resolve package from __spec__ or __package__, falling back on __name__ and __path__rÑ   Ú__path__rU  r   )rz  r„  rÜ  r!  ÚwarningÚ
rpartition)rÉ   r¢  Úspecs      r®   Úcalc_packagez&InstructionTranslatorBase.calc_packageõ  sÊ   € ð
 —.‘.×$Ñ$ ]Ó3ˆØ�~‰~×!Ñ! *Ó-ˆØÐØÐ G¨t¯{©{Ò$:Ü—‘Ø?ØØ—K‘KØ ð	 ô ð ˆNØÐØ—;‘;Ðä�K‰Kð8àð ô ð
 —n‘n ZÑ0ˆGØ §¡Ñ/Ø!×,Ñ,¨SÓ1°!Ñ4�Øˆr°   c           
     ól  — | j                  d«      \  }}|j                  «       }|j                  «       }|j                  }t        j                  › d|› d|› d|› �}|| j
                  v r| j
                  |   }t        |«      }n{	 t        |||| j
                  ¬«      }|d
k7  r#| j                  «       }| j                  |||«      }|s&|j                  d«      d
   }	| j                  |	«      }n| j                  |«      }| j                   r| j                   j#                  |«       t%        t&        j(                  t*        f«      r| j-                  t/        ||¬«      «       y t        dt1        |«      dg ¬	«       y # t        $ r, t        dd|› d|› d|› �dg t        j                  ¢¬	«       Y �Œw xY w)Nrý  r­   )Úfromlistr   ÚglobalszImport failurezmodule_name: z, fromlist: z, level=z"Failure when attempting to import.r¹  r   rU  ©rœ  zBad import resultz%Import result is not a Python module.)rH  rî  rw  rL   ÚLOCAL_MOD_PREFIXrz  rR   Ú
__import__rŸ  r=   r   rø  r¬  r£  Ú	partitionrƒ  r›  Úadd_local_modrV  rW  rX  rK   rF  r‡   re   )
rÉ   rÁ   r   r®  r„  Úrecorded_namer¯  rœ  ÚpkgÚtop_level_module_names
             r®   ÚIMPORT_NAMEz%InstructionTranslatorBase.IMPORT_NAME	  sº  € ØŸ)™) A›,‰ˆˆxØ×(Ñ(Ó*ˆØ×.Ñ.Ó0ˆØ—k‘kˆô !×1Ñ1Ð2°!°E°7¸!¸H¸:ÀQÀ{ÀmÐTð 	ð ˜DŸN™NÑ*Ø—N‘N =Ñ1ˆEÜ! -Ó0‰FðÜ"ØØ%ØØ ŸN™Nô	�ð ˜ŠzØ×'Ñ'Ó)�Ø"×/Ñ/°¸SÀ%ÓH�ñ Ø(3×(=Ñ(=¸cÓ(BÀ1Ñ(EÐ%Ø×+Ñ+Ð,AÓB‘à×+Ñ+¨KÓ8�à×Òà×Ñ×,Ñ,¨]¸EÔBô �eœe×.Ñ.´Ð<Ô=à�I‰IÔ*¨5¸Ô@ÕAäØ+ä ›ØCØöøôA ò ÜØ,Ø+¨K¨=¸ÀXÀJÈhÐW\ÐV]Ð^Ø DØ9Ô-×8Ñ8Ð9÷	ð ðús   ÂE> Å>1F3Æ2F3c                ó\   — | j                  |«       | j                  |j                  «       y r§   )ÚDUP_TOPÚ
_load_attrrw  r  s     r®   ÚIMPORT_FROMz%InstructionTranslatorBase.IMPORT_FROMR	  s   € Ø�‰�TÔØ�‰˜Ÿ™Õ$r°   c                ót  — || j                   vr#t        ddd|› d�g t        j                  ¢¬«       | j                   |   }t	        |«      rBt        | j                  j                  «      }t        ||«      }t        j                  | ||«      S t        |«      st        d«      ‚t        j                  | |«      S )Nz%failed to find name in frame builtinsrç   zFailed to find name `z` in frame's builtins.r¹  z,expected is_builtin_constant(val) to be true)r|  r=   r   r÷  rÌ  rR   r(  Ú%name_of_builtins_dict_key_in_fglobalsrQ   rg   rx  rX   rÌ   )rÉ   rw  ri  Úbuiltins_sourceÚ
var_sources        r®   Úload_builtin_from_argvalz2InstructionTranslatorBase.load_builtin_from_argvalX	  s´   € à˜Ÿ™Ñ(ÜØ?ØØ3°F°8Ð;QÐRðÜ&×1Ñ1ðõ	ð �o‰o˜fÑ%ˆä�CŒ=Ü*Ø—‘×AÑAóˆOô +¨?¸FÓCˆJÜ"×(Ñ(¨¨s°JÓ?Ð?ä& sÔ+Ü$Ð%SÓTÐTÜ"×(Ñ(¨¨sÓ3Ð3r°   c                óX   — | j                  | j                  |j                  «      «       y r§   )rF  rÁ  rw  r  s     r®   r~  z&InstructionTranslatorBase.load_builtinp	  s   € Ø�	‰	�$×/Ñ/°·±Ó<Õ=r°   c                óN  — | j                   €t        d«      ‚| j                  €t        d«      ‚|j                  €t        d«      ‚t	        «       j                  d| j                   | j                  z
  «       | j                  |j                     | _         | j                   | _        y )Nr  ú0expected self.start_point is not None to be truerÊ  Úir_count)rÀ   rÌ   r�  r.  r^   Ú	incrementÚindexofr  s     r®   rï  zInstructionTranslatorBase.jumps	  sš   € Ø×#Ñ#Ð+Ü ØJóð ð ×ÑÐ#Ü Ð!SÓTÐTØ�;‰;ÐÜ Ð!NÓOÐOÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ð $(§<¡<°·±Ñ#<ˆÔ Ø×3Ñ3ˆÕr°   Tc           	     ó¸   — |j                   €t        d«      ‚| j                  j                  t	        ||j                   t        | j                  «      «      «       y ©NrÊ  ©r.  rÌ   r
  rì   r-  rë   r’  r  s     r®   Ú
SETUP_LOOPz$InstructionTranslatorBase.SETUP_LOOPŠ	  óA   € à�;‰;ÐÜ Ð!NÓOÐOØ×Ñ×Ñ¤°°d·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr°   c           	     ó¸   — |j                   €t        d«      ‚| j                  j                  t	        ||j                   t        | j                  «      «      «       y rÉ  rÊ  r  s     r®   ÚSETUP_EXCEPTz&InstructionTranslatorBase.SETUP_EXCEPT�	  rÌ  r°   c                ó8   — | j                   j                  «        y r§   )r
  r×  r  s     r®   Ú	POP_BLOCKz#InstructionTranslatorBase.POP_BLOCK–	  s   € Ø×Ñ×ÑÕr°   c                ó&   — | j                  |«       y r§   ©Úsetup_or_before_withr  s     r®   Ú
SETUP_WITHz$InstructionTranslatorBase.SETUP_WITH™	  ó   € Ø×!Ñ! $Õ'r°   c           	     ó¸   — |j                   €t        d«      ‚| j                  j                  t	        ||j                   t        | j                  «      «      «       y rÉ  rÊ  r  s     r®   ÚSETUP_FINALLYz'InstructionTranslatorBase.SETUP_FINALLYœ	  sA   € Ø�;‰;ÐÜ Ð!NÓOÐOØ×Ñ×Ñ¤°°d·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr°   c                ó¶  — t         j                  dk\  rQ| j                  «       }| j                  «       j                  «       }| j	                  |«       | j	                  |«       n/| j                  «       j                  «       }| j	                  |«       	 t         j                  dk\  rCt        | |«      \  }}| j                  «        | j	                  |«       | j	                  |«       y |j                  | «      }| j	                  |«       y # t        t        j                  t        j                  f$ r¢}t        |t        j                  t        j                  f«      rt        j                  | «       t         j                  dk\  r%| j	                  t        j                  d «      «       n| j                  «        | j                  |«       Y d }~y d }~ww xY w)N©rÌ  é   r8  )rZ  rÚ  r×  ÚrealizerF  r�   Únext_variableÚStopIterationr   ÚObservedUserStopIterationÚObservedIndexErrorrV  Úhandle_observed_exceptionrm   ry  rï  )rÉ   rÁ   Únull_or_idxÚitri  Únext_rá  s          r®   ÚFOR_ITERz"InstructionTranslatorBase.FOR_ITER¡	  sW  € Ü×Ñ˜wÒ&ØŸ(™(›*ˆKØ—‘“×#Ñ#Ó%ˆBØ�I‰I�bŒMØ�I‰I�kÕ"à—‘“×#Ñ#Ó%ˆBØ�I‰I�bŒMð	Ü×Ñ 7Ò*Ü2°4¸¸[ÓI‘
��UØ—‘”
Ø—	‘	˜%Ô Ø—	‘	˜#•à×&Ñ& tÓ,�Ø—	‘	˜#•øäÜ×)Ñ)Ü×"Ñ"ð
ò 	ô
 ˜!œc×;Ñ;¼S×=SÑ=SÐTÔUÜ×-Ñ-¨dÔ3ä×Ñ 7Ò*ð
 —	‘	Ô*×1Ñ1°$Ó7Õ8ð —‘”
Ø�I‰I�d�O‰Oûð#	ús    ÂAD Ã+"D Ä(GÄ6BGÇGc                ól   — t        |t        j                  t        f«      r|j	                  | g i «      }|S r§   )rV  r   rk   r™   rG  r€  s     r®   Ú_create_exception_typez0InstructionTranslatorBase._create_exception_typeÆ	  s6   € ÜØ”)×+Ñ+Ô-NÐOô
ð
 ×#Ñ# D¨"¨bÓ1ˆCØˆ
r°   c                ó  — | j                  «       } |j                  | d«      }t        |t        t        f«      st        d«      ‚t	        j                  ||«      } |j                  | dt        j                  | d«      |gi «       y )Nr(  zKexpected isinstance( tb, (ConstantVariable, TracebackVariable) ) to be trueÚ__setattr__)
rÖ  Úvar_getattrrV  rm   rˆ   rÌ   Úfrom_frame_summaryÚcall_methodrg   rx  )rÉ   r   rÖ  ÚtbÚnew_tbs        r®   Ú_attach_traceback_to_exceptionz8InstructionTranslatorBase._attach_traceback_to_exceptionÏ	  s‰   € à×*Ñ*Ó,ˆØˆS�_‰_àØó
ˆô
 ˜"Ô/Ô1BÐCÔDÜ Ø]óð ô #×5Ñ5°mÀRÓHˆØˆ�‰ØØÜ×"Ñ" 4¨Ó9¸6ÐBØõ		
r°   c                óÚ  — | j                  |«      }t        | j                  «      rWt        |t        j
                  «      r=|j                  t        u r+t        j                  | t        «      j                  | g i «      }| j                  |«      r:t        |dd «      €-t        j                  j                   j#                  «       |_        | j                  |«      rd| j&                  j)                  ||¬«       t+        j,                  |j                  «      }t        |dd «      } |d|j/                  «       › �|¬«      ‚t+        j0                  t2        | d|j5                  «       › �g¬«       y )NÚpython_stack©rj  úraised exception )r'  z/exceptions must derive from BaseException, not ©r¬   )ræ  r/   rÒ  rV  r   r…   Úexc_typerÝ  rg   rx  r)  rG  Ú_isinstance_exceptionr…  r‘  Ú_guardsr   Úextract_stackrð  rš  rk  r   Úget_dynamo_observed_exceptionÚ
debug_reprÚraise_observed_exceptionÚ	TypeErrorÚpython_type_name)rÉ   ri  rj  Úobserved_exception_typerð  s        r®   Ú_raise_exception_variablez3InstructionTranslatorBase._raise_exception_variableã	  s9  € ð ×)Ñ)¨#Ó.ˆô
 ˜Ÿ™Ô%Ü˜3¤	× ;Ñ ;Ô<Ø—‘¤Ñ-ä!×'Ñ'¨¬lÓ;×IÑIÈ$ÐPRÐTVÓWˆCð ×&Ñ& sÔ+Ü˜˜^¨TÓ2Ð:ä$Ÿ}™}×;Ñ;×IÑIÓKˆCÔð ×%Ñ% cÔ*ð
 ×Ñ×3Ñ3°CÀ[Ð3ÔQä&)×&GÑ&GÈÏÉÓ&UÐ#ä" 3¨¸Ó=ˆLÙ)Ø# C§N¡NÓ$4Ð#5Ð6À<ôð ô 	×$Ñ$ÜØàAÀ#×BVÑBVÓBXÐAYÐZðö	
r°   c           
     ój  — |j                   dk(  r‘t        | j                  «      st        j                  t
        | dg¬«       t        | j                  «      st        d«      ‚| j                  d   }| j                  |«      st        |«      ‚| j                  |d¬«       y |j                   dk(  rO| j                  d   }	 | j                  |d	¬«       | j                  j                  «       }| j                  |«       y | j                  «       }| j                  «       }	 | j                  |d	¬«       | j                  j                  «       }| j                  |«       | j                  |«      }|j                  | d
t        j                   | d«      |gi «       y # | j                  j                  «       }| j                  |«       w xY w# | j                  j                  «       }| j                  |«       | j                  |«      }|j                  | d
t        j                   | d«      |gi «       w xY w)Nr   zNo active exception to reraiseró  ú*expected len(self.exn_vt_stack) to be truer‚  Frñ  r   Trè  Ú	__cause__)rA  rë   rš  r   rú  r)  rÌ   rõ  rþ  r’  rp  rî  r×  ræ  rë  rg   rx  )rÉ   rÁ   ri  Úcurr_excÚfrom_vtÚcauses         r®   rh  z'InstructionTranslatorBase.RAISE_VARARGS
  s÷  € Ø�8‰8�qŠ=Ü�t×(Ñ(Ô)Ü×,Ñ,Ü  $Ð.NÐ-Oõô �t×(Ñ(Ô)Ü$Ð%QÓRÐRØ×#Ñ# BÑ'ˆCØ×-Ñ-¨cÔ2Ü$ SÓ)Ð)Ø×*Ñ*¨3¸EÐ*ÕBØ�X‰X˜Š]à—*‘*˜R‘.ˆCð>Ø×.Ñ.¨sÀÐ.ÔEð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÕ=ð —h‘h“jˆGØ—(‘(“*ˆCðØ×.Ñ.¨sÀÐ.ÔEð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=Ø×3Ñ3°GÓ<�Ø×$Ñ$ØØ!Ü$×*Ñ*¨4°Ó=¸uÐEØõ	øð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÕ=ûð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=Ø×3Ñ3°GÓ<�Ø×$Ñ$ØØ!Ü$×*Ñ*¨4°Ó=¸uÐEØõ	ús   Ã F Ä G
 Æ-GÇ
A(H2c                ó¾   — | j                   d   }t        |t        «      st        d«      ‚|j                  t
        u rt        dddg ¬«       y | j                  |«       y )Nr‚  z6expected isinstance(tos, ExceptionVariable) to be truez CLEANUP_THROW with StopIterationrç   zRReceived StopIteration when handling generator.throw/close. This is not supported.r¹  )r’  rV  r…   rÌ   rô  rÝ  r=   ÚRERAISE©rÉ   rÁ   Útoss      r®   ÚCLEANUP_THROWz'InstructionTranslatorBase.CLEANUP_THROWG
  sZ   € à�j‰j˜‰nˆÜ˜#Ô0Ô1Ü ØHóð ð �<‰<œ=Ñ(ÜØ:ØØpØö	ð �L‰L˜Õr°   c                óz  — t         j                  dk\  re| j                  «       }|j                  r$| j                  «       }| j	                  |d¬«       y | j                  |«       | j	                  |d¬«       y | j                  «       }| j                  «       }| j                  «       }| j	                  |d¬«       y )Nr6  Frñ  )rZ  rÚ  r×  rw  rþ  rF  )rÉ   rÁ   ri  r­   Ú_excÚ_tbs         r®   r  z!InstructionTranslatorBase.RERAISEX
  s–   € ô ×Ñ˜wÒ&à—(‘(“*ˆCØ�{Š{à—H‘H“J�Ø×.Ñ.¨sÀÐ.ÕFð —	‘	˜#”Ø×.Ñ.¨sÀÐ.ÕFà—8‘8“:ˆDØ—(‘(“*ˆCØ—(‘(“*ˆCØ×*Ñ*¨3¸EÐ*ÕBr°   c                ó"   — t        |t        «      S r§   )rV  r´   r€  s     r®   rõ  z/InstructionTranslatorBase._isinstance_exceptiono
  s   € Ü˜#œ}Ó-Ð-r°   c                óB  — g }t         j                  dk\  rët         j                  dk  rdnd}t        | j                  «      |k\  st	        d«      ‚| j                  |    }| j                  d   }| j                  |«      st	        d«      ‚t        |j                  «      }|j                  | d«      }t         j                  dk\  rÀt        | j                  d	   t        «      s£|j                  | j                  d	   «       n„t        | j                  «      d
k\  st	        d«      ‚| j                  d   }| j                  d   }| j                  |«      st	        d«      ‚t        |j                  «      }|j                  | d«      }||||gz  }| j                  ||i «       y )Nr6  ©rÌ  é   é   é   z-expected len(self.stack) >= fn_loc to be truer‚  ú3expected self._isinstance_exception(val) to be truer(  éüÿÿÿé   z(expected len(self.stack) >= 7 to be trueiùÿÿÿrþ  )rZ  rÚ  rë   r’  rÌ   rõ  rk   rô  ré  rV  r†   rì   rG  )rÉ   rÁ   r¬   Úfn_locrR  ri  Útyprì  s           r®   ÚWITH_EXCEPT_STARTz+InstructionTranslatorBase.WITH_EXCEPT_STARTr
  sr  € Ø&(ˆÜ×Ñ˜wÒ&Ü×*Ñ*¨WÒ4‘Q¸!ˆFô ˜Ÿ
™
“O vÒ-Ü$Ð%TÓUÐUØ—‘˜V˜GÑ$ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨cÔ2Ü$ØIóð ô " #§,¡,Ó/ˆCØ—‘àØóˆBô
 ×Ñ 7Ò*Ü! $§*¡*¨R¡.´,Ô?Ø—K‘K §
¡
¨2¡Õ/ä˜Ÿ
™
“O qÒ(Ü$Ð%OÓPÐPØ—‘˜B‘ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨cÔ2Ü$ØIóð ô " #§,¡,Ó/ˆCà—‘  Ó7ˆBà��c˜2�ÑˆØ×Ñ˜2˜t RÕ(r°   c           	     óü	  ‡ ‡‡	— dŠ	dˆ	ˆˆ fd„}t         j                  dk\  �rL‰ j                  j                  }|rÕt	        ‰ j
                  «      |j                  kD  r3‰ j                  «        t	        ‰ j
                  «      |j                  kD  rŒ3|j                  r9‰ j                  t        j                  ‰ ‰ j                  j                  «      «       ‰ j                  ‰ j                  j                  «       «       ‰ j                  |«       y ‰ j
                  j!                  «        ‰ j                  j                  «       }‰ j#                  |«       t%        ‰ «      t&        u r |«        ‰‚t	        ‰ j(                  «      �rF‰ j(                  j                  «       }|j*                  j,                  dk(  rÐ‰ j/                  d«       ‰ j                  j                  «        t	        ‰ j(                  «      dk(  rY‰ j
                  j!                  «        t%        ‰ «      t&        u r,t1        dt3        ‰«      ‰	dz   g t4        j6                  ¢‰¬	«       ‰‚‰ j(                  j                  «       }|j*                  j,                  dk(  rŒÐ‰ j                  j                  «       }‰ j                  j9                  «        t	        ‰ j
                  «      |j:                  kD  r3‰ j                  «        t	        ‰ j
                  «      |j:                  kD  rŒ3t=        t?        d
«      dd d«      }‰ j(                  jA                  tC        |d t	        ‰ j
                  «      «      «       t	        ‰ j                  «      dk\  rr‰ j                  d   }‰ j                  tE        jF                  «       «       ‰ j                  |«       ‰ j                  tE        jH                  |jJ                  «      «       nl‰ j                  tM        jN                  d «      «       ‰ j                  tM        jN                  d «      «       ‰ j                  tM        jN                  d «      «       ‰ j                  tE        jF                  «       «       ‰ j                  |«       ‰ j                  tE        jH                  |jJ                  «      «       ‰ j                  |«       y ‰ j
                  j!                  «        t%        ‰ «      t&        u r |«        ‰‚)NzšDynamo found no exception handler at the top-level compiled function when encountering an exception. Exception will propagate outside the compiled region.c                 ó0  •— ‰j                   j                  «       } t        j                  | j	                  «       «      }t        ‰|«      st        d«      ‚t        dd| j                  «       › �‰g t        j                  ¢t        j                  ¢‰¬«       y )Nz<expected isinstance(raised_exception, dynamo_exc) to be truezObserved exceptionrò  r#  )rš  rp  r   rø  Úpython_typerV  rÌ   r=   rù  r   rø  rR  )r  Ú
dynamo_excÚobserved_exn_gb_explanationÚraised_exceptionrÉ   s     €€€r®   Úbubble_exception_to_interpreterzTInstructionTranslatorBase.exception_handler.<locals>.bubble_exception_to_interpreter¦
  s•   ø€ à×(Ñ(×>Ñ>Ó@ˆHÜ×:Ñ:¸8×;OÑ;OÓ;QÓRˆJÜÐ.°
Ô;Ü$ØRóð ô Ø,Ø+¨H×,?Ñ,?Ó,AÐ+BÐCØ7ðÜ&×1Ñ1ðä&×2Ñ2ðð *ö	r°   r6  ÚEXCEPT_HANDLERrÌ  r   z#Observed exception (EXCEPT_HANDLER)z  This graph break is unexpected.r#  g    €„.Arý  rþ  ró   )(rZ  rÚ  rÞ  rF  rë   r’  Údepthr×  ÚlastirF  rg   rx  r©  rš  rp  rï  rå   rî  r]  rL  r
  rÁ   rí   rH  r=   r¼   r   r÷  rn  r/  r.   r¾   rì   r-  r   r‰   rk   rô  rm   ry  )
rÉ   r  r  rF  r  Úblock_stack_entryÚexception_varÚexcept_handler_instÚold_exceptionr  s
   ``       @r®   rõ  z+InstructionTranslatorBase.exception_handler 
  sÜ  ú€ ðdð 	$÷
	ô& ×Ñ˜wÓ&Ø ×4Ñ4×BÑBˆMÙô
 ˜$Ÿ*™*“o¨×(;Ñ(;Ò;Ø—H‘H”Jô ˜$Ÿ*™*“o¨×(;Ñ(;Ó;ð !×&Ò&Ø—I‘IÜ'×-Ñ-¨d°D×4LÑ4L×4SÑ4SÓTôð
 —	‘	˜$×+Ñ+×AÑAÓCÔDð —	‘	˜-Õ(ð —
‘
× Ñ Ô"ð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=ä˜“:Ô!6Ñ6Ù3Ô5Ø&Ð&ä�4×#Ñ#Õ$ð %)×$4Ñ$4×$8Ñ$8Ó$:Ð!à'×,Ñ,×3Ñ3Ð7GÒGð —I‘I˜a”LØ×%Ñ%×)Ñ)Ô+Ü˜4×+Ñ+Ó,°Ò1ð Ÿ
™
×(Ñ(Ô*Ü ›:Ô)>Ñ>Ü)Ø(MÜ(+Ð,<Ó(=Ø,GØ"Dñ-Eà&EÔ(9×(DÑ(DÐ&EØ)9õð /Ð.Ø(,×(8Ñ(8×(<Ñ(<Ó(>Ð%ð) (×,Ñ,×3Ñ3Ð7GÓGð, !%× 1Ñ 1× GÑ GÓ I�Ø×!Ñ!×AÑAÔCô ˜$Ÿ*™*“oÐ(9×(EÑ(EÒEØ—H‘H”Jô ˜$Ÿ*™*“oÐ(9×(EÑ(EÓEô
 '2´#°c³(Ð<LÈdÐTUÓ&VÐ#Ø× Ñ ×'Ñ'Ü#Ð$7¸¼sÀ4Ç:Á:»ÓOôô
 �t×(Ñ(Ó)¨QÒ.Ø$(×$5Ñ$5°bÑ$9�Mð —I‘Iœi×7Ñ7Ó9Ô:Ø—I‘I˜mÔ,à—I‘Iœi×7Ñ7¸×8NÑ8NÓOÕPð —I‘IÔ.×5Ñ5°dÓ;Ô<Ø—I‘IÔ.×5Ñ5°dÓ;Ô<Ø—I‘IÔ.×5Ñ5°dÓ;Ô<ð —	‘	œ)×3Ñ3Ó5Ô6Ø—	‘	˜-Ô(à—	‘	œ)×3Ñ3°M×4JÑ4JÓKÔLð —	‘	Ð+Õ,ð —
‘
× Ñ Ô"Ü˜“:Ô!6Ñ6Ù3Ô5Ø&Ð&r°   c                ó  — | j                  «       }t        | j                  «      dk(  rt        j                  d «      }n| j                  d   }| j                  |«       | j                  |«       | j                  j                  «        y )Nr   r‚  )r×  rë   rš  rm   ry  rF  rn  )rÉ   rÁ   ri  Úprev_excs       r®   ÚPUSH_EXC_INFOz'InstructionTranslatorBase.PUSH_EXC_INFO&  sk   € ð( �h‰h‹jˆÜˆt× Ñ Ó! QÒ&Ü(8×(?Ñ(?ÀÓ(E‰Hà×(Ñ(¨Ñ,ˆHØ�	‰	�(ÔØ�	‰	�#ŒØ×Ñ×9Ñ9Õ;r°   c                ó2  — t         j                  dk\  rK| j                  «       }t        | j                  «      st        d«      ‚| j                  j                  «        y t        | j                  «      dkD  st        d«      ‚| j                  d   j                  j                  dk7  rt        d«      ‚| j                  j                  «        | j                  d«       t        | j                  «      st        d«      ‚| j                  j                  «        y )	Nr6  r   r   z-expected len(self.block_stack) > 0 to be truer‚  r   zYBug in Dynamo tracing of exception handling.Top of the block stack is not EXCEPT_HANDLER.rÌ  )
rZ  rÚ  r×  rë   rš  rÌ   r
  rÁ   rí   rH  )rÉ   rÁ   r­   s      r®   Ú
POP_EXCEPTz$InstructionTranslatorBase.POP_EXCEPTC  sæ   € Ü×Ñ˜wÒ&Ø—‘“
ˆAä�t×(Ñ(Ô)Ü$Ð%QÓRÐRØ×Ñ×!Ñ!Õ#ä˜×(Ñ(Ó)¨AÒ-Ü$Ð%TÓUÐUØ×Ñ Ñ#×(Ñ(×/Ñ/Ð3CÒCÜ$ðDóð ð ×Ñ× Ñ Ô"à�I‰I�aŒLô �t×(Ñ(Ô)Ü$Ð%QÓRÐRØ×Ñ×!Ñ!Õ#r°   c                óØ  — t        | j                  «      dk\  st        d«      ‚| j                  «       }t        j
                  dk\  r| j                  d   }n| j                  j                  «       }t        |t        t        t        t        f«      s,t        dt        |«      d|› d�g t        j                  ¢¬«       t        j
                  dk\  r=| j                  |«      s,t        d	t        |«      d
|› d�g t        j                  ¢¬«       t        |t        «      r|j                   }n|g}|D ]¹  }t        |t        t        t        f«      s,t        dt        |«      d|› d�g t        j                  ¢¬«       | j                  |«      r"t#        |j$                  |j&                  «      r yt        |t(        j                  «      sŒ˜t#        |j&                  |j&                  «      sŒ¹ y y)Nrý  ú(expected len(self.stack) >= 2 to be truer6  r‚  z Exception with bad expected typez"`except ...` has unsupported type rU  r¹  zCaught non-Exception valuezCExcept expects to receive an object of Exception type but received z#Exception with non-type expectationz!`except ...` expects a non-type: TF)rë   r’  rÌ   r×  rZ  rÚ  rV  rk   rƒ   r™   rš   r=   r¼   r   rø  rõ  r  Ú
issubclassrô  rR  r   )rÉ   Úexpected_exc_typesÚexc_instanceÚexpected_typesÚexpected_types        r®   Úcheck_if_exc_matchesz.InstructionTranslatorBase.check_if_exc_matches[  sÙ  € Ü�D—J‘J“ 1Ò$Ü Ð!KÓLÐLØ!ŸX™X›ZÐÜ×Ñ˜wÒ&ð  Ÿ:™: b™>‰Lð
  Ÿ:™:Ÿ>™>Ó+ˆLô ØäÜÜ1Ü2ð	ô
ô Ø:ÜÐ.Ó/Ø@ÐASÐ@TÐTUÐVØ5Ô)×4Ñ4Ð5õ	ô ×Ñ˜wÒ&Ø×-Ñ-¨lÔ;ÜØ8Ü Ó-Ø"eÐfrÐesÐstÐ uØ9Ô-×8Ñ8Ð9õ	ô Ð(¬-Ô8Ø/×5Ñ5‰Nð #ðˆNð ,ò 	ˆMÜØä#Ü6Ü5ðôô ØAÜ Ó.Ø"CÀMÀ?ÐRSÐ TØ9Ô-×8Ñ8Ð9õ	ð ×)Ñ)¨,Ô7¼JØ×%Ñ%Ø× Ñ ô=ñ Ü˜L¬)×*CÑ*CÕDÌØ—‘à× Ñ õJñ
 ð3	ð6 r°   c                ój   — | j                  t        j                  | | j                  «       «      «       y r§   )rF  rg   rx  r3  r  s     r®   ÚCHECK_EXC_MATCHz)InstructionTranslatorBase.CHECK_EXC_MATCH¯  s$   € Ø�	‰	”/×'Ñ'¨¨d×.GÑ.GÓ.IÓJÕKr°   c                óH   — | j                  «       s| j                  |«       y y r§   )r3  rï  r  s     r®   ÚJUMP_IF_NOT_EXC_MATCHz/InstructionTranslatorBase.JUMP_IF_NOT_EXC_MATCH²  s   € Ø×(Ñ(Ô*Ø�I‰I�d�Oð +r°   z`Encountered graph break when attempting to trace COMPARE_OP: a comparison operation, e.g. a == b)rF  r4  c                ó¶   — |j                   dk(  r| j                  |«       y | j                  t        |j                      | | j	                  d«      i «      «       y )Nzexception matchrý  )rw  r5  rF  r¥   rH  r  s     r®   Ú
COMPARE_OPz$InstructionTranslatorBase.COMPARE_OP¶  sF   € ð
 �;‰;Ð+Ò+Ø× Ñ  Õ&à�I‰IÔ)¨$¯+©+Ñ6°t¸T¿Y¹YÀq»\È2ÓNÕOr°   c                óä  — t         j                  dk\  r£| j                  «       }t        |t        t
        f«      r7| j                  |«       | j                  t        j                  | d«      «       y | j                  t        j                  | t        «      |gi «       | j                  t        «       «       y | j                  t        j                  | t        «      | j                  «       gi «       y )NrÙ  r   )rZ  rÚ  r×  rV  r�   rƒ   rF  rg   rx  rG  Úiterr†   ©rÉ   rÁ   Úobjs      r®   ÚGET_ITERz"InstructionTranslatorBase.GET_ITERÀ  s¥   € Ü×Ñ˜wÒ&Ø—(‘(“*ˆCÜ˜#¤¬mÐ<Ô=Ø—	‘	˜#”Ø—	‘	œ/×/Ñ/°°aÓ8Õ9à×"Ñ"¤?×#8Ñ#8¸¼tÓ#DÀsÀeÈRÔPØ—	‘	œ,›.Õ)à×Ñœ×4Ñ4°T¼4Ó@À4Ç8Á8Ã:À,ÐPRÕSr°   zjEncountered graph break when attempting to trace CALL_FUNCTION: a call to a regular function, e.g. f(x, y)c                ó€   — | j                  |j                  «      }| j                  «       }| j                  ||i «       y r§   )rH  rw  r×  rG  )rÉ   rÁ   r¬   rR  s       r®   ÚCALL_FUNCTIONz'InstructionTranslatorBase.CALL_FUNCTIONÌ  s3   € ð
 �y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆØ×Ñ˜2˜t RÕ(r°   zjEncountered graph break when attempting to trace CALL_FUNCTION_EX: a variadic function call, e.g. f(*args)c           	     ón  — |j                   dk(  rt        i «      }| j                  «       }n—|j                   dk(  st        j                  dk\  r<| j                  «       }t        |t        «      rt        i «      }| j                  «       }n9t        dd|j                   › �d|j                   › �g t        j                  ¢¬«       t        j                  dk\  r+| j                  «       }t        |t        «      st        d	«      ‚| j                  «       }t        j                  d
k\  r>t        j                  dk  r+| j                  «       }t        |t        «      st        d	«      ‚t        t        «      st        t        | |«      «      }t        t        «      rt        j                   | t"        |«      }t        |t        «      rt        |t        «      s7t        ddt%        |«      › dt%        |«      › �dg t        j&                  ¢¬«       |j)                  «       }| j+                  ||j,                  |«       y )Nr   r   r  z%Variadic function call with bad flagszflags: zHAttempted to call a variadic function (CALL_FUNCTION_EX) with bad flags r¹  rË  z2expected isinstance(null, NullVariable) to be truer6  z0Variadic function call with bad args/kwargs typezargs type: z, kwargs type: z2Expected args to be a list and kwargs to be a dict)rw  rs   r×  rZ  rÚ  rV  r†   r=   r   r÷  rÌ   r   rƒ   rc   r›   rl   Úcall_custom_dictr  re   rø  Úkeys_as_python_constantrG  r  )rÉ   rÁ   Ú
kwargsvarsÚargsvarsÚnullrR  s         r®   ÚCALL_FUNCTION_EXz*InstructionTranslatorBase.CALL_FUNCTION_EXÕ  sä  € ð �;‰;˜!ÒÜ*¨2Ó.ˆJØ—x‘x“z‰HØ�[‰[˜AÒ¤×!1Ñ!1°WÒ!<àŸ™›ˆJÜ˜*¤lÔ3Ü.¨rÓ2�
Ø—x‘x“z‰HäØ?Ø! $§+¡+ Ð/ØfÐgk×grÑgrÐfsÐtØ5Ô)×4Ñ4Ð5õ	ô ×Ñ˜wÒ&à—8‘8“:ˆDÜ˜d¤LÔ1Ü$ØHóð ð �X‰X‹Zˆä×Ñ˜wÒ&¬3×+;Ñ+;¸gÒ+EØ—8‘8“:ˆDÜ˜d¤LÔ1Ü$ØHóð ô ØÜô
ô %¤_°T¸8Ó%DÓEˆHô �jÔ";Ô<Ü,×=Ñ=¸dÄDÈ*ÓUˆJô ˜(Ô$4Ô5¼ZàÜô>
ô
 ØJà%¤g¨hÓ&7Ð%8¸ÌÐPZÓH[ÐG\Ð]ØPØ5Ô)×4Ñ4Ð5õð  ×7Ñ7Ó9ˆ
à×Ñ˜2˜xŸ~™~¨zÕ:r°   zyEncountered graph break when attempting to trace CALL_FUNCTION_KW: a function call with keyword arguments, e.g. f(x=True)c                óÖ  — | j                  «       }| j                  |j                  «      }| j                  «       }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚|j                  «       }|d t        |«        |t        |«       d  }}t        t        ||«      «      }t        |«      t        |«      k7  rt        d«      ‚| j                  |||«       y )Nz7expected isinstance(argnames, TupleVariable) to be truez1expected argnames.is_python_constant() to be truez0expected len(kwargs) == len(argnames) to be true)r×  rH  rw  rV  rƒ   rÌ   rí  rî  rë   r  ÚziprG  )rÉ   rÁ   Úargnamesr¬   rR  Úkwargs_listr  s          r®   ÚCALL_FUNCTION_KWz*InstructionTranslatorBase.CALL_FUNCTION_KW  sÒ   € ð —8‘8“:ˆØ�y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆÜ˜(¤MÔ2Ü ØIóð ð ×*Ñ*Ô,Ü Ð!TÓUÐUØ×.Ñ.Ó0ˆØ Ð!1¤C¨£M >Ð2°D¼#¸h»-¸Ð9IÐ4JˆkˆÜ”c˜( KÓ0Ó1ˆÜˆv‹;œ#˜h›-Ò'Ü Ð!SÓTÐTØ×Ñ˜2˜t VÕ,r°   c                ó(  — | j                  t        j                  |d¬«      «       |j                  d   }| j                  d   |   }t
        j                  dk  r| j                  |«       y | j                  t        j                  ||¬«      «       y )Nrý  r=  r   Úco_namesr6  )	r@  rõ   r  rw  rÔ  rZ  rÚ  r»  ÚLOAD_METHOD©rÉ   rÁ   rA  rw  s       r®   ÚLOAD_METHOD_SUPERz+InstructionTranslatorBase.LOAD_METHOD_SUPER1  st   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆÜ×Ñ˜gÒ%Ø�O‰O˜FÕ#à×Ñœ[×0Ñ0°¸fÔEÕFr°   c                ó´   — | j                  t        j                  |d¬«      «       |j                  d   }| j                  d   |   }| j                  |«       y )Nrý  r=  r   rN  )r@  rõ   r  rw  rÔ  r»  rP  s       r®   ÚLOAD_ATTR_SUPERz)InstructionTranslatorBase.LOAD_ATTR_SUPER:  sK   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆØ�‰˜Õr°   c                óF  — | j                  |j                  «       | j                  «       }t        j                  dk\  r#| j                  |«       | j                  |«       y t        j                  dk\  r#| j                  |«       | j                  |«       y t        d«      ‚)NrË  r6  zPLOAD_METHOD should have been rewritten to LOAD_ATTR. We should never reach here.)r»  rw  r×  rZ  rÚ  rF  r‰  rÌ   r<  s      r®   rO  z%InstructionTranslatorBase.LOAD_METHOD@  sy   € Ø�‰˜Ÿ™Ô$Ø�h‰h‹jˆÜ×Ñ˜wÒ&Ø�I‰I�cŒNØ�N‰N˜4Õ Ü×Ñ Ò(ð �N‰N˜4Ô Ø�I‰I�c�Nä Øbóð r°   c                ó   — t        d«      ‚)Nz^CALL_METHOD should have been rewritten to CALL_FUNCTION. This function should never be called.)rÌ   r  s     r®   ÚCALL_METHODz%InstructionTranslatorBase.CALL_METHODQ  s   € ÜØló
ð 	
r°   c                óÈ   — | j                  «       }t        j                  | t        «      j	                  | |t        j                  | |«      gi «      }| j                  |«       y r§   )r×  rg   rx  r…  rG  rF  )rÉ   Úattrr=  r  s       r®   r»  z$InstructionTranslatorBase._load_attrV  sS   € Ø�h‰h‹jˆÜ ×&Ñ& t¬WÓ5×CÑCØØ”/×'Ñ'¨¨dÓ3Ð4Øó
ˆð
 	�	‰	�&Õr°   c                ó¢   — t         j                  dk\  r!|j                  dz  r| j                  |«       y | j	                  |j
                  «       y )Nr8  rý  )rZ  rÚ  rA  rO  r»  rw  r  s     r®   Ú	LOAD_ATTRz#InstructionTranslatorBase.LOAD_ATTR_  s<   € Ü×Ñ˜wÒ&à�x‰x˜!Š|Ø× Ñ  Ô&ØØ�‰˜Ÿ™Õ$r°   zkEncountered graph break when attempting to trace STORE_ATTR: storing an object's attribute, e.g. x.attr = yc                óÄ   — | j                  d«      \  }}t        j                  | t        «      j	                  | |t        j                  | |j
                  «      |gi «       y )Nrý  )rH  rg   rx  ÚsetattrrG  rw  )rÉ   rÁ   ri  r=  s       r®   Ú
STORE_ATTRz$InstructionTranslatorBase.STORE_ATTRg  sQ   € ð
 —9‘9˜Q“<‰ˆˆSÜ×Ñ˜d¤GÓ,×:Ñ:ØØ”/×'Ñ'¨¨d¯k©kÓ:¸CÐ@Øõ	
r°   c                óò   — | j                  «       }| j                  ||j                  «       t        j                  | t
        «      j                  | |t        j                  | |j                  «      gi «       y r§   )r×  Ú_maybe_sync_dealloc_attrrw  rg   rx  ÚdelattrrG  r<  s      r®   ÚDELETE_ATTRz%InstructionTranslatorBase.DELETE_ATTRs  s[   € Ø�h‰h‹jˆØ×%Ñ% c¨4¯;©;Ô7Ü×Ñ˜d¤GÓ,×:Ñ:ØØ”/×'Ñ'¨¨d¯k©kÓ:Ð;Øõ	
r°   c                óâ   — | j                   j                  j                  ||«      rI| j                   j                  j                  ||«      }t	        |t
        «      r| j                  |«       y y y r§   )r(  r+  Úhas_pending_mutation_of_attrÚ	load_attrrV  r”   rX  )rÉ   r=  r¸   Úattr_vars       r®   r_  z2InstructionTranslatorBase._maybe_sync_dealloc_attr|  s]   € ð �;‰;×#Ñ#×@Ñ@ÀÀdÔKØ—{‘{×/Ñ/×9Ñ9¸#¸tÓDˆHÜ˜(¤NÔ3Ø×-Ñ-¨hÕ7ð 4ð Lr°   c                ó  — g }|dk  st        d«      ‚|dk(  r|j                  t        d«      «       | j                  dk(  rt	        d«      nt	        d| j
                  ¬«      }|j                  t	        d«      t	        d«      |g«       |S )aÐ  
        Debug CPython expects the stack to be empty after the return.
        Calling compile_subgraph will push cells and frame values to TOS.
        This function will pop those 2 values from the stack before actually returning.

        Expects the stack to be:
            cells, frame values, current frame stack (0 or 1 values)

        Pops cells and frame values, leaving the current frame stack as TOS.
        A return instruction is included.
        r   z"expected num_stack <= 1 to be truerÌ  r§  r¨  r=  r  )rÌ   r¬  r+   rí   r(   rw  )rÁ   r  rm  Úreturn_insts       r®   Úcodegen_return_with_popsz2InstructionTranslatorBase.codegen_return_with_pops…  sŠ   € ð ˆð ˜Q’Ü Ð!EÓFÐFØ˜Š>Ø�L‰Lœ Q›Ô(ð �{‰{˜nÒ,ô ˜~Ô.ä# N¸4¿;¹;ÔGð 	ð
 	�‰Ü 	Ó*Ô,>¸yÓ,IÈ;ÐWô	
ð ˆr°   c                óx  ‡ ‡‡— |�r™t        |j                  |j                  «      D ]¨  \  \  }}	}
t        t        ‰ j
                  |
   «      }|j                  t        «       «       |j                  |«       |j                  g t        d«      ¢|j                  |«      ‘|j                  «       ‘|j                  |«      ‘t        d«      ‘«       Œª |j                  D ]¿  \  }}	t        t        ‰ j                  |   «      }|j                  t        «       «       |j                  |«       |j                  g t        d«      ¢|j                  |«      ‘|j                  «       ‘|j                  |j                   |j"                  |   z   «      ‘t        d«      ‘«       ŒÁ t%        |«      r#|j&                  st)        d«      ‚|j&                  }t+        d|j,                  › �«      }|�rlt/        ‰ j0                  |«      Št3        ˆˆ fd„‰ j                  D «       «      }t5        |j6                  «      Št3        ˆfd„|D «       «      }t3        ˆfd„|D «       «      }|j                  t        «       |j                  |«      |j                  «       t        «       g«       |D ]`  }|j                  t        «       |j                  |j                   |j"                  |   z   «      |j                  «       gt        d«      ¢«       Œb |j                  t        d«      t        d	t9        |«      ¬
«      gt        d«      ¢t;        |j                   dd«      ¢«       n8t3        |j"                  j=                  «       «      }t3        |j6                  «      }t>        j@                  dk  rt9        |«      dk7  rt)        d«      ‚t9        ‰ j
                  «      t9        |jB                  «      z
  }‰ jD                  j,                  €t)        d«      ‚tG        jH                  ‰ jJ                  ‰ jL                  ‰ jD                  j,                  |j,                  t3        d„ ‰ jN                  D «       «      |||t3        d„ ‰ jN                  D «       «      |t3        |j                  «      t3        |j                  «      t3        |jB                  «      t3        |«      ‰ jP                   «      } tS        jT                  ‰ jJ                  «      jW                  dd„ «      «       }|�+tY        jZ                  |«      tS        jT                  |«      d<   ‰ j\                  j_                  ||‰ j`                  «       ‰ jb                  �*‰ jb                  je                  |‰ j`                  d   |«       tf        d   |jh                  xx   dz  cc<   ||fS )a.  
        Creates the resume function for the frame corresponding to `self`.

        Expects the TOS to be:
            [frame N cells, ..., frame 1 cells],
            [
                frame N stack + locals,
                ...,
                frame 1 stack + locals
            ]

        Some additional codegen may happen to prepare the frame stack + locals values for the generated resume function:
        - inactive context variables in the stack and locals will be replaced by their types
        - if the frame is a leaf frame, prune dead locals

        Regardless of codegen, the stack will be left in the same state as before.

        Args:
            - idx: depth of this frame: 0 corresponds to the leaf frame (frame N), N-1 to the root frame (frame 1).
            - resume_inst: the instruction that this frame should resume at
            - meta: metadata for this frame returned from OutputGraph.compile_subgraph
            - resume_codes: nested resume code objects generated from previous create_resume calls.
            - cg: codegen object to output to
            - is_leaf: True if `self` corresponds to the leaf frame.
            - handle_inactive_ctx: If True, handles inactive context variables as described above. This is necessary
                iff the resume function is traced
        rý  r  z&expected resume_inst.target to be trueÚ__resume_at_c              3  óN   •K  — | ]  }|‰v r|‰j                  «       vr|–— Œ y ­wr§   )rÃ  )r   r  rÅ  rÉ   s     €€r®   r  z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>  s0   øè ø€ ò !àØ˜‘: !¨4×+AÑ+AÓ+CÑ"Cô ñ!ùs   ƒ"%c              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wr§   rÕ   ©r   r  Úargnames_null_sets     €r®   r  z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>  s   øè ø€ ÒS 1¸ÐARÒ8RœQÑSùó   ƒ	�c              3  ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wr§   rÕ   rm  s     €r®   r  z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>	  s   øè ø€ Ò!T¨¸QÐBSÒ=S¤!Ñ!Tùro  r  r	  r
  NTr8  r   z&variables should not be NULL in < 3.12z?expected self.current_instruction.offset is not None to be truec              3  óH   K  — | ]  }|j                   j                  –— Œ y ­wr§   )r.  r©  ©r   r  s     r®   r  z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>A  s   è ø€ Ò< a�!—(‘(—/•/Ñ<ùs   ‚ "c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr§   )r7  rr  s     r®   r  z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>E  s   è ø€ Ò: A�!—+‘+—-Ñ:ùrÉ  Úorig_graphmodulec                  ó   — y r§   rÕ   rÕ   r°   r®   r¯   z9InstructionTranslatorBase.create_resume.<locals>.<lambda>Q  ó   � r°   rÑ   Úresumesr   )5rI  Ústack_ctx_argsÚstack_ctx_idxes_origr   rn   r’  Úappend_outputr'   r  r  r+   r  r  r(   Úlocals_ctx_argsrŒ  r  r  r0   r.  rÌ   r1   r©  r    rv  r6  r  Úlocals_null_keysrë   r#   re  rZ  rÚ  Ústack_null_idxesrÞ  rM   ÚlookuprÒ  r¿   r
  r(  r2   Úget_contextr„  ÚweakrefÚrefr(  Úinstall_resume_function_globalrz  r¢  Úadd_resume_functionr[   rØ  )rÉ   r  Úresume_instrƒ  Úresume_codesr  Úis_leafÚhandle_inactive_ctxÚjr­   Új_origrv  r¸   Úresume_nameÚall_argnamesrJ  Úargnames_nullrA  Ú	stack_lenÚnew_codeÚorig_graphmodule_maybern  rÅ  s   `                    @@r®   r  z'InstructionTranslatorBase.create_resume¦  sG  ú€ òT Ü"% d×&9Ñ&9¸4×;TÑ;TÓ"Uò ‘‘��A˜äÔ2°D·J±J¸vÑ4FÓG�à× Ñ ¤Ó!1Ô2Ø×$Ñ$ RÔ(Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨SÓ1ðð ×/Ñ/Ó1ðð ×,Ñ,¨QÓ/ð	ô
 +¨>Ó:ðõðð   ×/Ñ/ò ‘��aäÔ2°D×4HÑ4HÈÑ4NÓO�à× Ñ ¤Ó!1Ô2Ø×$Ñ$ RÔ(Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨SÓ1ðð ×/Ñ/Ó1ðð ×,Ñ,¨T¯^©^¸d×>OÑ>OÐPTÑ>UÑ-UÓVð	ô
 +¨>Ó:ðõðô( ˜KÔ(Ø×%Ò%Ü$Ð%MÓNÐNØ%×,Ñ,ˆKä ,¨{×/AÑ/AÐ.BÐ CÓDˆò Ü% d×&7Ñ&7¸ÓEˆEÜ ô !à×-Ñ-ô!ó ˆLô
 !$ D×$9Ñ$9Ó :ÐÜÓS¨ÔSÓSˆHÜ!Ó!T¨\Ô!TÓTˆMð ×Ñä"Ó$Ø×(Ñ(¨Ó-Ø×+Ñ+Ó-Ü"Ó$ð	ôð  ò 	�à× Ñ ä&Ó(Ø×,Ñ,¨T¯^©^¸d×>OÑ>OÐPSÑ>TÑ-TÓUØ×/Ñ/Ó1ðô % Q›ð	õð	ð ×Ñä& yÓ1Ü& |¼¸X»ÔGðô ! “^ðô
 )¨¯©¸¸tÓDðõ	ô ˜T×.Ñ.×3Ñ3Ó5Ó6ˆHÜ! $×"7Ñ"7Ó8ˆMä×Ñ˜gÒ%Ü�=Ó! QÒ&Ü$Ð%MÓNÐNô ˜Ÿ
™
“O¤c¨$×*?Ñ*?Ó&@Ñ@ˆ	à×#Ñ#×*Ñ*Ð2Ü ØQóð ô $:×#@Ñ#@Ø�K‰KØ�K‰KØ×$Ñ$×+Ñ+Ø×ÑäÑ<¨4×+;Ñ+;Ô<Ó<ØØØÜÑ:¨×)9Ñ)9Ô:Ó:ØÜ�$×%Ñ%Ó&Ü�$×&Ñ&Ó'Ü�$×'Ñ'Ó(Ü�,ÓØ×-Ñ-Ð-ó!$
ˆð*"
¤×!9Ñ!9¸$¿+¹+Ó!F×!JÑ!JØ¡ó"
ó "Ðð "Ð-ÜELÇ[Á[Ø&óFŒL×$Ñ$ XÓ.Ð/AÑBð
 	�‰×2Ñ2Ø˜ 4§>¡>ô	
ð �<‰<Ð#Ø�L‰L×,Ñ,Ø˜$Ÿ.™.¨Ñ4°kôô 	�Ñ˜H×,Ñ,Ó-°Ñ2Ó-à˜Ð$Ð$r°   c                óJ  — |j                   €y	 t        |j                  |j                   «      }t	        | j
                  «      |z
  }| j
                  |   }t        |t        «      r|j                  t        j                  u sy| j                  j                  }|j                  r|j                  j                  n|j                  }|€yt!        ||«      }| j"                  j%                  d|«      }t        |t'        |«      ¬«      | j
                  |<   y# t        $ r Y yw xY w)a  Replace warnings.warn on the symbolic stack with a wrapper that
        preserves the leaf frame's source location for warning dedup.

        When nested graph breaks inline a warnings.warn call into the root
        frame's bytecode, the root frame's line numbers defeat Python's
        per-location warning dedup.  This replaces the SkipFunctionVariable
        for warnings.warn on the symbolic stack before compile_subgraph, so
        the codegen naturally reconstructs the wrapper via LOAD_GLOBAL.
        NÚ__warnings_warn_wrapperr°  )rA  r,   rí   ró  rë   r’  rV  rz   r¯  Ú	_warningsr  rÒ  r  rì  r¿   rè  r  r(  Úinstall_globalrR   )	rÉ   rÁ   r!  Úcallable_idxÚcallable_varÚleaf_filenameÚleaf_linenor  Úwrapper_names	            r®   rC  z?InstructionTranslatorBase._maybe_replace_warnings_warn_on_stacke  sõ   € ð �8‰8ÐØð	Ü+¨D¯K©K¸¿¹ÓBˆEô ˜4Ÿ:™:“¨Ñ.ˆØ—z‘z ,Ñ/ˆä�|Ô%9Ô:Ø×"Ñ"¤i§n¡nÑ4ààŸ™×/Ñ/ˆØ/3¯~ª~�d—n‘n×+Ò+À4×CSÑCSˆØÐØä-¨m¸[ÓIˆØ—{‘{×1Ñ1Ð2KÈWÓUˆÜ#7ØœL¨Ó6ô$
ˆ�
‰
�<Ò øô% ò 	Ùð	ús   � D Ä	D"Ä!D"c           
     ó¼  — d| _         t        | j                  j                  «      }g }g }g }| }d}|�i|| u r|}	n|j                  }	|	j
                  dk7  r3|j                  |«       |j                  |«       |j                  |	«       |j                  }|dz  }|�Œit        | j                  «      t        |d   j                  «      z
  }
|s„|
dk\  st        d«      ‚|j                  t        |
dz   «      «       t        |
dz   «      D ]  }|j                  t!        d«      «       Œ |j                  t!        d«      «       |j#                  «       S |d   | u r)|j                  t!        d|
¬	«      «       d}|
|d   _        n¬|j                  t        |
«      «       t        |
dz
  «      D ]  }|j                  t!        d«      «       Œ |j                  t!        dd¬	«      «       ||d      j$                  }||d      xj$                  dz  c_        |d   j'                  t)        «       «       |j                  g t+        d«      ¢|j-                  |d   «      ‘|j/                  «       ‘t1        ||d
«      ¢«       g }|D ]F  }|j3                  t5        «       |j-                  |«      |j/                  «       gt        d«      ¢«       ŒH |j3                  t!        d«      t!        dt        |«      ¬	«      g«       |j                  |«       |j                  g t        d«      ¢t7        j8                  |«      ¢t        d«      ¢«       g }g }t;        |«      D ]L  \  }}|j=                  |||   |||      |||| u d
«      \  }}|j                  |«       |j                  |«       ŒN | j?                  |||«       |j                  t!        d«      «       |j#                  «       S )aP  
        Codegen all resume function(s) from the frame stack starting at `self`, call them,
        and return the result.
        Assumes that the unsupported instruction has already been run.

        Expects the TOS to be:
            [
                frame N locals,
                frame N-1 stack + locals,
                ...,
                frame 1 stack + locals
            ], *(frame N stack (post-unsupported instruction))

        Leaves the result of calling the resume functions on the stack and returns it
        (empty stack after return).

        Args:
            - inst: the instruction of the current (deepest) frame to resume at
            - all_stack_locals_metadata: metadata returned from OutputGraph.compile_subgraph - contains
                metadata such as local names, NULL positions, stack length, etc.
        Nr   r§  r   z*expected current_num_stack >= 1 to be truerý  r  r	  r
  T) rÀ   r3   r(  rÝ  rÙ  rí   rì   rÜ  rë   r’  r}  rÌ   r  r+   rX  rz  r(   rj  r  rF  r‰   r&   r  r  r#   r¬  r'   rE  Údeepcopyrk  r  r  )rÉ   rÁ   râ  r  ÚtxesÚidxesÚresume_instsr  r  r„  Úcurrent_num_stackr­   Ústack_insert_idxÚfilter_instsr…  Úresume_namesrg  Úresume_coderŠ  s                      r®   rØ  z/InstructionTranslatorBase.create_call_resume_atŠ  s  € ð6 $(ˆÔ ä�t—{‘{×*Ñ*Ó+ˆð 13ˆØˆØ*,ˆØ37ˆØˆØÐ Ø˜‰~Ø"‘à$×5Ñ5�Ø×!Ñ! ^Ò3Ø—‘˜FÔ#Ø—‘˜SÔ!Ø×#Ñ# KÔ0à—]‘]ˆFØ�1‰HˆCð Ñ ô   §
¡
›O¬cØ% aÑ(×9Ñ9ó/
ñ 
Ðñ
 ð
 &¨Ò*Ü$Ð%QÓRÐRØ×Ñœ[Ð):¸QÑ)>Ó?Ô@ÜÐ,¨qÑ0Ó1ò @�Ø× Ñ Ô!3°IÓ!>Õ?ð@à×ÑÔ/°Ó?Ô@à×&Ñ&Ó(Ð(ð �‰7�d‰?ð ×ÑÔ/°ÐBSÔTÔUà ÐØ5FÐ% aÑ(Õ2ð
 ×Ñœ[Ð):Ó;Ô<ÜÐ,¨qÑ0Ó1ò @�Ø× Ñ Ô!3°IÓ!>Õ?ð@à×ÑÔ/°À!ÔDÔEà8¸¸q¹ÑB×LÑLÐØ% e¨A¡hÑ/×9Ò9¸QÑ>Õ9Ø�‰G�L‰LœÓ*Ô+ð 	×ÑðÜ˜Q“ðð ×$Ñ$ U¨1¡XÓ.ðð ×'Ñ'Ó)ð	ô
 %Ð%5Ð7GÈÓNðô
	
ð ˆØò 	ˆCØ×Ñä"Ó$Ø×(Ñ(¨Ó-Ø×+Ñ+Ó-ðô ! “^ð	õð	ð 	×Ñä" 9Ó-Ü" <´S¸³ZÔ@ðô	
ð 	×Ñ˜Ô&ð 	×ÑðÜ˜Q“ðä—‘˜|Ó,ðô ˜Q“ðô	
ð .0ˆØˆÜ" 4›ò 	-‰IˆAˆvØ'-×';Ñ';ØØ˜Q‘Ø)¨%°©(Ñ3ØØØ˜$�Øó(Ñ$ˆK˜ð ×Ñ Ô,Ø×Ñ Õ,ð	-ð 	× Ñ  ¨|¸RÔ@Ø
×ÑÔ+¨NÓ;Ô<à×"Ñ"Ó$Ð$r°   c           	     óR  — |j                  t        d«      «       t        t        || «      «      D ]Ø  \  }\  }}|t	        |«      dz
  k(  r n¿|j
                  ru|j                  t        «       |j                  |«      |j                  «       g«       |j                  |j                  |d¬«      gt        d«      ¢t        dd¬«      ¢«       n"|j                  |j                  |dd«      «       |j                  t        d«      «       ŒÚ |j                  t        d«      t        d	t	        | «      dz
  ¬
«      g«       |j                  t        d«      «       | d   j
                  r‹|j                  |j                  d«      |j                  «       g«       |j                  |j                  |d   d¬«      gt        d«      ¢t        dd¬«      ¢«       |j                  g t        d«      ¢«       n;|j                  t        d«      g|j                  |d   d«      ¢t        d«      ¢«       |j                  t        «       t        «       |j                  d«      |j                  «       gt        d«      ¢|j                  d«      ‘t        d«      ‘«       t        j                   | d   «      r|j                  t        d	d¬
«      g«       nA|j                  g t        d«      ¢t        d	d¬
«      ‘t        d«      ¢t        dd¬
«      ‘«       |j                  t#        dd«      «       y)aŒ  
        Calls the provided resume functions.

        Expects the TOS to be in the state:
            [frame N cells, ..., frame 1 cells],
            [
                frame N stack + locals,
                frame N-1 stack + locals,
                ...,
                frame 1 stack + locals
            ]

        Pops the cells and frame values, leaving the result of calling the resume functions on TOS.

        Args:
            - resume_codes: list of resume function code objects to call
            - resume_names: list of the corresponding names of the resume functions
            - cg: PyCodegen object to output instructions to
        rý  r   T)r  )Ú	push_nullFr   r  r	  r
  rÌ  r‚  r  ÚLIST_EXTENDN)r  r&   rk  rI  rë   r²  r'   r  r  Úcreate_load_globalr+   r$   Úload_function_namer(   r*   rM   Úuses_boxed_callr%   )r…  r¡  r  rg  r¸   r�  s         r®   r  z-InstructionTranslatorBase.codegen_call_resume4  s8  € ð4 	×Ñœ Q›Ô(Ü(¬¨\¸<Ó)HÓIò 	-‰OˆA‰|��dØ”C˜Ó%¨Ñ)Ò)Ùà×ÒØ× Ñ ä&Ó(Ø×,Ñ,¨QÓ/Ø×/Ñ/Ó1ðôð × Ñ à×-Ñ-¨d¸Ð-Ó=ðä$ Q›ðô .¨a¸4Ô@ðõð × Ñ  ×!6Ñ!6°t¸UÀAÓ!FÔGØ×Ñœ[¨›^Õ,ð/	-ð0 	×Ñä" 9Ó-Ü" <´S¸Ó5FÈÑ5JÔKðô	
ð 	×Ñœ Q›Ô(Ø˜Ñ×'Ò'Ø×Ñà×(Ñ(¨Ó,Ø×+Ñ+Ó-ðôð ×Ñà×)Ñ)¨,°rÑ*:ÀÐ)ÓEðä  “^ðô *¨!°tÔ<ðôð ×ÑðÜ! !“_ðõð ×Ñä& yÓ1ðà×*Ñ*¨<¸Ñ+;¸UÓCðô " !“_ðôð* 	×ÑäÓ ÜÓ à×$Ñ$ RÓ(Ø×'Ñ'Ó)ðô ˜Q“ðð ×$Ñ$ RÓ(ðô # ?Ó3ðô	
ô  "×1Ñ1°,¸rÑ2BÔCØ×Ñô ' |¸Ô;ðõð ×ÑðÜ! !“_ðä& |¸Ô;ðô ! “^ðô
 ' }¸!Ô<ðôð 	×ÑÔ0°¸Ó=Õ>r°   c                óî  — t         j                  dk\  rJ| j                  j                  }|r2| j                  r%|j
                  | j                  d   j
                  uryt        d„ | j                  D «       «      xr{ | j                   xrl | j                  xs | j                   xrO | j                   xr@ | j                   xr1 | j                   xr" | j                  j                  j                  d u S )Nr6  r‚  Fc              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr§   )r2  rr  s     r®   r  zIInstructionTranslatorBase.should_compile_partial_graph.<locals>.<genexpr>Ê  s   è ø€ Ò: A�—‘—Ñ:ùrÉ  )rZ  rÚ  rÞ  rF  r
  r.  r¶  r+  rŸ  rÄ   rö  r*  Ú!skip_one_hop_torch_function_depthr(  Úcurrent_tracerrÜ  )rÉ   rï   s     r®   rÏ  z6InstructionTranslatorBase.should_compile_partial_graphÁ  sê   € Ü×Ñ˜wÒ&à×,Ñ,×:Ñ:ˆEÙØ×$Ò$¨¯©¸D×<LÑ<LÈRÑ<P×<WÑ<WÑ(WàäÑ:¨×)9Ñ)9Ô:Ó:ò :Ø—N‘NÐ"ò:ð ×,Ñ,ÒM°D×4MÑ4MÐ0Mò:ð ×3Ñ3Ð3ò	:ð
 ×8Ñ8Ð8ò:ð ×:Ñ:Ð:ò:ð —‘×*Ñ*×1Ñ1°TÐ9ð
	
r°   ziEncountered graph break when attempting to trace STORE_SUBSCR: trying to store subscript, e.g. x[key] = yc                óZ   — | j                  d«      \  }}}|j                  | d||gi «       y )NrÌ  Ú__setitem__)rH  rë  )rÉ   rÁ   ri  r=  Úkeys        r®   r  z&InstructionTranslatorBase.STORE_SUBSCRÕ  s-   € ð
 Ÿ	™	 !›‰ˆˆS�#Ø�‰˜˜m¨c°3¨Z¸Õ<r°   c                óz   — | j                  d«      \  }}| j                  ||«       |j                  | d|gi «       y )Nrý  Ú__delitem__)rH  Ú_maybe_sync_dealloc_subscrrë  )rÉ   rÁ   r=  r¯  s       r®   r  z'InstructionTranslatorBase.DELETE_SUBSCRÝ  s9   € Ø—9‘9˜Q“<‰ˆˆSð 	×'Ñ'¨¨SÔ1Ø�‰˜˜m¨c¨U°BÕ7r°   c                óü   — ddl m} ddlm} d }	 t	        ||«      r|j                  | |«      }nt	        ||«      r|j                  |«      }t	        |t        «      r| j                  |«       y y # t        $ r Y Œ.w xY w)Nr   rr   )r   )
Úvariables.dictsrs   Úvariables.listsr   rV  Úgetitem_constÚmaybe_getitem_constr­  r”   rX  )rÉ   r=  r¯  rs   r   Úitem_vars         r®   r²  z4InstructionTranslatorBase._maybe_sync_dealloc_subscrå  s…   € õ 	7Ý5àˆð		Ü˜#Ð/Ô0Ø×,Ñ,ØØó‘ô ˜CÐ!2Ô3Ø×2Ñ2°3Ó7�ô �h¤Ô/Ø×)Ñ)¨(Õ3ð 0øô ò 	Ùð	ús   �<A/ Á/	A;Á:A;c                ón   — | j                  |j                  «      }| j                  t        |«      «       y r§   )rH  rw  rF  rƒ   ©rÉ   rÁ   r  s      r®   ÚBUILD_TUPLEz%InstructionTranslatorBase.BUILD_TUPLEù  s%   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- Ó&Õ'r°   c                ór   — | j                  |j                  «      }| j                  t        || ¬«      «       y )N©r«   )rH  rw  rF  r‚   rº  s      r®   ÚBUILD_SLICEz%InstructionTranslatorBase.BUILD_SLICEý  s'   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- ¨$Ô/Õ0r°   c                 ó   — y)z�Check if comprehension speculation is allowed in nested context.

        For the base class (non-inlined), this always returns False.
        FrÕ   râ   s    r®   Ú#_can_speculate_comprehension_nestedz=InstructionTranslatorBase._can_speculate_comprehension_nested  s   € ð
 r°   c                óž   — t        | |«      ry | j                  |j                  «      }| j                  t	        j
                  | |«      «       y r§   )r4   rH  rw  rF  rg   rx  rº  s      r®   r	  z$InstructionTranslatorBase.BUILD_LIST  s:   € Ü0°°tÔ<Øà—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”/×'Ñ'¨¨eÓ4Õ5r°   c                óÄ   — t         j                  rt        dddg ¬«       | j                  |j                  «      }t        |t        «       ¬«      }| j                  |«       y )Nzmissing BUILD_SET handlerrç   z:Missing BUILD_SET bytecode handler (for testing purposes).r¹  ©Úmutation_type)r   Ú+inject_BUILD_SET_unimplemented_TESTING_ONLYr=   rH  rw  r�   rf   rF  )rÉ   rÁ   r  Únew_sets       r®   Ú	BUILD_SETz#InstructionTranslatorBase.BUILD_SET  sO   € Ü×=Ò=ÜØ3ØØXØõ	ð —	‘	˜$Ÿ+™+Ó&ˆÜ˜eÔ3CÓ3EÔFˆØ�	‰	�'Õr°   c           	     ó:  — | j                  |j                  «      }g }|D ]  }	 |j                  t        | |«      «       Œ  | j                   ||t        «       ¬«      «       y # t        $ r. t        dt        |«      |› d�g t        j                  ¢¬«       Y Œyw xY w)Nz-Failed to unpack object for BUILD_LIST_UNPACKzU cannot be unpacked into a list for the BUILD_LIST_UNPACK bytecode (`[*x, *y, ...]`).r¹  rÃ  )rH  rw  r¬  rc   ÚNotImplementedErrorr=   r¼   r   rø  rF  rf   )rÉ   rÁ   r  Úseqsr  Úseqs         r®   ÚBUILD_LIST_UNPACKz+InstructionTranslatorBase.BUILD_LIST_UNPACK  sš   € Ø�y‰y˜Ÿ™Ó%ˆØˆØò 
	ˆCð	Ø—‘œ_¨T°3Ó7Õ8ð
	ð 	�	‰	‘#�eÔ+;Ó+=Ô>Õ?øô 'ò ÜØKÜ ›HØ#& %ð (2ð !2à9Ô-×8Ñ8Ð9÷ðús   ¤A#Á#4BÂBc                ó2   — | j                  |t        ¬«       y )Nr  )rÌ  rƒ   r  s     r®   ÚBUILD_TUPLE_UNPACKz,InstructionTranslatorBase.BUILD_TUPLE_UNPACK+  s   € Ø×Ñ˜t¬ÐÕ7r°   c           	     óæ   — t        | |«      ry | j                  |j                  dz  «      }t        t	        |d d d…   |dd d…   «      «      }| j                  t        j                  | |«      «       y )Nrý  r   )r4   rH  rw  r  rI  rF  rg   rx  )rÉ   rÁ   r  Úds       r®   Ú	BUILD_MAPz#InstructionTranslatorBase.BUILD_MAP0  sa   € Ü0°°tÔ<Øà—	‘	˜$Ÿ+™+¨™/Ó*ˆÜ”�U™3˜Q˜3‘Z  q t¨! t¡Ó-Ó.ˆØ�	‰	”/×'Ñ'¨¨aÓ0Õ1r°   c                ó~  — | j                  |j                  «      }|D �cg c].  }t        j                  | t        «      j                  | |gi «      ‘Œ0 }}i }|D ]8  }t        |t        «      st        d«      ‚|j                  |j                  «       Œ: | j                  t        j                  | |«      «       y c c}w )Nz4expected isinstance(x, ConstDictVariable) to be true)rH  rw  rg   rx  r  rG  rV  rs   rÌ   Úupdater  rF  )rÉ   rÁ   r  rb  r  s        r®   ÚBUILD_MAP_UNPACKz*InstructionTranslatorBase.BUILD_MAP_UNPACK8  s»   € Ø—	‘	˜$Ÿ+™+Ó&ˆð ö
àô ×!Ñ! $¬Ó-×;Ñ;¸DÀ1À#ÀrÕJð
ˆð 
ð "$ˆØò 	#ˆAÜ˜aÔ!2Ô3Ü$ØJóð ð �M‰M˜!Ÿ'™'Õ"ð	#ð 	�	‰	Ü×!Ñ!ØØóõ	
ùò
s    3B:c                ó’  — | j                  «       }| j                  |j                  «      }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚t        | |«      }t        |«      t        |«      k7  rt        d«      ‚| j                  t        j                  | t        t        ||«      «      «      «       y )Nú3expected isinstance(keys, TupleVariable) to be truez-expected keys.is_python_constant() to be truez,expected len(keys) == len(values) to be true)r×  rH  rw  rV  rƒ   rÌ   rí  rc   rë   rF  rg   rx  r  rI  )rÉ   rÁ   re  rË  s       r®   ÚBUILD_CONST_KEY_MAPz-InstructionTranslatorBase.BUILD_CONST_KEY_MAPO  s¡   € Ø�x‰x‹zˆØ—‘˜4Ÿ;™;Ó'ˆÜ˜$¤Ô.Ü Ð!VÓWÐWØ×&Ñ&Ô(Ü Ð!PÓQÐQä˜t TÓ*ˆÜˆt‹9œ˜F›Ò#Ü Ð!OÓPÐPà�	‰	Ü×!Ñ!ØÜ”S˜˜vÓ&Ó'óõ	
r°   c                ó@  — | j                  d«      \  }}|j                  dkD  st        d«      ‚|j                  €t        d«      ‚| j                  |j                      j                  «       }t        |t        «      st        d«      ‚|j                  | d||fi «       y )Nrý  r   ú#expected inst.argval > 0 to be truer>  ú6expected isinstance(obj, ConstDictVariable) to be truer®  )	rH  rw  rÌ   rA  r’  rÛ  rV  rs   rë  )rÉ   rÁ   r  r  r=  s        r®   ÚMAP_ADDz!InstructionTranslatorBase.MAP_ADDb  s�   € Ø�y‰y˜‹|‰ˆˆ1Ø—‘˜a’Ü Ð!FÓGÐGØ�8‰8ÐÜ Ð!KÓLÐLØ�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0Ô1Ü ØHóð ð 	�‰˜˜m¨a°¨V°RÕ8r°   c                óP  — | j                  «       }|j                  dkD  st        d«      ‚|j                  €t        d«      ‚| j                  |j                      }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚|j                  | d|gi «       y )Nr   rÙ  r>  ú0expected isinstance(obj, SetVariable) to be trueú$expected obj.is_mutable() to be truer  ©	r×  rw  rÌ   rA  r’  rV  r�   Ú
is_mutablerë  ©rÉ   rÁ   r  r=  s       r®   ÚSET_ADDz!InstructionTranslatorBase.SET_ADDo  sŽ   € Ø�H‰H‹JˆØ—‘˜a’Ü Ð!FÓGÐGØ�8‰8ÐÜ Ð!KÓLÐLØ�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{Ô+Ü Ð!SÓTÐTØ�~‰~ÔÜ Ð!GÓHÐHØ�‰˜˜e a S¨"Õ-r°   c                óP  — | j                  «       }|j                  dkD  st        d«      ‚|j                  €t        d«      ‚| j                  |j                      }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚|j                  | d|gi «       y )Nr   rÙ  r>  rÝ  rÞ  rÓ  rß  rá  s       r®   Ú
SET_UPDATEz$InstructionTranslatorBase.SET_UPDATE|  sŽ   € Ø�H‰H‹JˆØ—‘˜a’Ü Ð!FÓGÐGØ�8‰8ÐÜ Ð!KÓLÐLØ�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{Ô+Ü Ð!SÓTÐTØ�~‰~ÔÜ Ð!GÓHÐHØ�‰˜˜h¨¨¨RÕ0r°   c                óÂ  — | j                  «       }|j                  dkD  st        d«      ‚|j                  €t        d«      ‚| j                  |j                      j                  «       }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚| j                  j                  j                  |«       |j                  j                  |«       y )Nr   rÙ  r>  ú1expected isinstance(obj, ListVariable) to be truerÞ  )r×  rw  rÌ   rA  r’  rÛ  rV  r�   rà  r(  r+  Úmutationr  rì   rá  s       r®   r  z%InstructionTranslatorBase.LIST_APPEND‰  s­   € Ø�H‰H‹JˆØ—‘˜a’Ü Ð!FÓGÐGØ�8‰8ÐÜ Ð!KÓLÐLØ�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#œ|Ô,Ü Ð!TÓUÐUØ�~‰~ÔÜ Ð!GÓHÐHØ�‰× Ñ ×)Ñ)¨#Ô.Ø�	‰	×Ñ˜Õr°   c                óv  — |j                   }t        j                  dk  r| j                  «       }| j                  «       }t        j                  dk\  rKt	        |j
                  d«      st        d«      ‚t        j                  | |j
                  j                  «      }d }d }d }d }t        j                  dk  rV|�T|dz  r| j                  «       }|dz  r| j                  «       }|dz  r| j                  «       }|dz  r| j                  «       }t        || j                  |||«      }	|r~t        |t        «      st        d	«      ‚|j                  }
t        t!        t#        |
d d d…   |
dd d…   d
¬«      «      t%        «       ¬«      }|	j'                  | «      j)                  d|«       | j+                  |	«       y )Nr6  Úco_qualnamez6expected hasattr(code.value, "co_qualname") to be truerË  é   r  rý  r   z:expected isinstance(annotations, TupleVariable) to be trueT©ÚstrictrÃ  rÔ   )rA  rZ  rÚ  r×  r5  r¯  rÌ   rg   rx  ré  ry   rz  rV  rƒ   r  rs   r  rI  rf   Úget_dict_vtÚsetitemrF  )rÉ   rÁ   rë  Úfn_namer�  ÚdefaultsÚclosurer   Ú
kwdefaultsrR  r  Úanns               r®   ÚMAKE_FUNCTIONz'InstructionTranslatorBase.MAKE_FUNCTION—  s•  € Ø—‘ˆÜ×Ñ˜gÒ%Ø—h‘h“jˆGØ�x‰x‹zˆÜ×Ñ˜wÒ&ô ˜4Ÿ:™: }Ô5Ü$ØLóð ô &×+Ñ+¨D°$·*±*×2HÑ2HÓIˆGØˆØˆØˆØˆ
ä×Ñ˜gÒ%àÐ Ø˜4’<Ø"Ÿh™h›j�GØ˜4’<Ø"&§(¡(£*�KØ˜4’<Ø!%§¡£�JØ˜4’<Ø#Ÿx™x›z�Hä'ØØØ�N‰NØØØó
ˆñ Ü˜k¬=Ô9Ü$ØPóð ð
  ×%Ñ%ˆEÜ#Ü”S˜™s ˜s™ U¨1¨4¨a¨4¡[¸Ô>Ó?Ü.Ó0ôˆCð �N‰N˜4Ó ×(Ñ(Ø! 3ôð 	�	‰	�"�r°   c           	     ó^  — | j                  «       }t        | |«      }t        |«      |j                  k  r&t	        | d|j                  › dt        |«      › d�«       t        |«      |j                  kD  rt	        | d|j                  › d�«       t        |«      D ]  }| j                  |«       Œ y )Nz&not enough values to unpack (expected ú, got r™  z$too many values to unpack (expected )r×  rc   rë   rw  r:   r©   rF  )rÉ   rÁ   rË  ri  rg  s        r®   r  z)InstructionTranslatorBase.UNPACK_SEQUENCEÎ  s�   € Ø�h‰h‹jˆÜ˜d CÓ(ˆÜˆs‹8�d—k‘kÒ!ÜØØ8¸¿¹¸ÀVÌCÐPSËHÈ:ÐUVÐWôô ˆs‹8�d—k‘kÒ!ÜØØ6°t·{±{°mÀ1ÐEôô ˜#“ò 	ˆAØ�I‰I�a�Lñ	r°   c           	     ó¾  — d|j                   cxk  rdk  st        d«      ‚ t        d«      ‚|j                   dz  }|j                   dz	  }| j                  «       }t        | |«      x}rÊt	        | |«      }t        |«      ||z   k  rt        | d||z   › dt        |«      › d�«       |d | }||t        |«      |z
   }|t        |«      |z
  d  }	t        |	«      D ]  }
| j                  |
«       Œ | j                  t        |t        «       ¬	«      «       t        |«      D ]  }
| j                  |
«       Œ y t        d
t        |«      |› d�g t        j                  ¢¬«       y )Nr   iÿÿ  z.expected 0 <= inst.argval <= 0xFFFF to be trueéÿ   rê  z/not enough values to unpack (expected at least rö  r™  rÃ  z%Failed to unpack object for UNPACK_EXz; cannot be unpacked into a list for the UNPACK_EX bytecode.r¹  )rw  rÌ   r×  rŽ   rc   rë   r:   r©   rF  r�   rf   r=   r¼   r   rø  )rÉ   rÁ   r¸  ÚsuffixrË  Úiteratorr?  Úvals_prefixÚ	vals_listÚvals_suffixÚitems              r®   Ú	UNPACK_EXz#InstructionTranslatorBase.UNPACK_EXÞ  sl  € Ø�T—[‘[Ô* FÒ*Ü Ð!QÓRÐRð +Ü Ð!QÓRÐRØ—‘˜tÑ#ˆØ—‘ Ñ!ˆØ�h‰h‹jˆÜ& t¨SÓ1Ð1ˆ8Ð1Ü" 4¨Ó2ˆDÜ�4‹y˜6 F™?Ò*Ü!ØØEÀfÈvÁoÐEVÐV\Ô]`ÐaeÓ]fÐ\gÐghÐiôð ˜w ˜-ˆKØ˜V¤c¨$£i°&Ñ&8Ð9ˆIØœs 4›y¨6Ñ1Ð3Ð4ˆKÜ  Ó-ò  �Ø—	‘	˜$•ð à�I‰I”l 9Ô<LÓ<NÔOÔPÜ  Ó-ò  �Ø—	‘	˜$•ñ ô Ø?Ü˜C›Ø"˜eÐ#^Ð_Ø5Ô)×4Ñ4Ð5ö	r°   z-Encountered intentional debugging graph breakc                ó>   — | j                   rt        ddddg¬«       y y )Nz#Forced graph break on leaf functionrç   zSForced graph break on non-inlining function for nested graph break testing purposeszGSet torch._dynamo.config.debug_force_graph_break_on_leaf_return = Falser¹  )rž  r=   r  s     r®   Úgraph_break_on_leaf_functionz6InstructionTranslatorBase.graph_break_on_leaf_functionû  s0   € ð ×$Ò$ÜØ=Øð6ð ^ðöð %r°   c                óF   — |j                   dk(  r| j                  |«       y y )NÚGRAPH_BREAK_IF_LEAF)rw  r  r  s     r®   rÿ  zInstructionTranslatorBase.NOP
  s"   € à�;‰;Ð/Ò/Ø×-Ñ-¨dÕ3ð 0r°   c                ó$   — | j                  «        y r§   ©r×  r  s     r®   r  z!InstructionTranslatorBase.POP_TOP  ó   € Ø�‰�
r°   c                óˆ   — | j                  «       }| j                  «       }| j                  |«       | j                  |«       y r§   ©r×  rF  ©rÉ   rÁ   r•  r  s       r®   ÚROT_TWOz!InstructionTranslatorBase.ROT_TWO  s.   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r°   c                óÊ   — | j                  «       }| j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       y r§   r  )rÉ   rÁ   r•  r  Úcs        r®   Ú	ROT_THREEz#InstructionTranslatorBase.ROT_THREE  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r°   c                ó  — | j                  «       }| j                  «       }| j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       | j                  |«       y r§   r  )rÉ   rÁ   r•  r  r  rÐ  s         r®   ÚROT_FOURz"InstructionTranslatorBase.ROT_FOUR   sZ   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r°   c                óh   — | j                  «       }| j                  |«       | j                  |«       y r§   r  )rÉ   rÁ   r•  s      r®   rº  z!InstructionTranslatorBase.DUP_TOP*  s#   € Ø�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r°   c                óÌ   — | j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       | j                  |«       y r§   r  r	  s       r®   ÚDUP_TOP_TWOz%InstructionTranslatorBase.DUP_TOP_TWO/  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r°   c                ó,  — |dk(  r,t        j                  | t        «      j                  | |gi «      S |dk(  r,t        j                  | t        «      j                  | |gi «      S |dk(  r,t        j                  | t
        «      j                  | |gi «      S |S )Nr   rý  rÌ  )rg   rx  r¼   rG  r”  Úascii)rÉ   r¯  Úflags      r®   Ú_convert_valuez(InstructionTranslatorBase._convert_value7  s‹   € Ø�1Š9Ü"×(Ñ(¨¬sÓ3×AÑAÀ$ÈÈÐQSÓTÐTØ�QŠYÜ"×(Ñ(¨¬tÓ4×BÑBÀ4È%ÈÐRTÓUÐUØ�QŠYÜ"×(Ñ(¨¬uÓ5×CÑCÀDÈ5È'ÐSUÓVÐVØˆr°   c                óš  — | j                  «       }t        |t        «      r@ddlm}m}  |j                   |||«      |j                  | ¬«      }| j                  |«       y | j                  ||dz  «      }t        j                  | d|j                  «       z   dz   «      }| j                  t        t        j                   «      ||gi «       y )Nr   )ÚLazySymNodeFormatStringr~   )rœ  r«   rÌ  z{:ú})r×  rV  r“   Útorch._dynamo.variables.lazyr  r~   ry  rœ  rF  r  rg   rx  rî  rG  rk   r¼   Úformat)rÉ   Úfmt_specrë  r¯  r  r~   Úfmt_vars          r®   Ú_format_valuez'InstructionTranslatorBase._format_value@  sµ   € Ø—‘“
ˆÜ�eœ_Ô-÷ð
 /Ð'×.Ñ.Ù'¨¨xÓ8ÀÇÁÐRVôˆEð �I‰I�eÔØà×#Ñ# E¨5°4©<Ó8ˆä!×'Ñ'Ø�$˜×4Ñ4Ó6Ñ6¸Ñ<ó
ˆð 	×Ñœ?¬3¯:©:Ó6¸À%Ð8HÈ"ÕMr°   c                ó¶   — |j                   }|€t        d«      ‚|dz  dk(  r| j                  «       }nt        j                  | d«      }| j                  ||«      S )Nú%expected flags is not None to be truer  rç   )rA  rÌ   r×  rg   rx  r  )rÉ   rÁ   rë  r  s       r®   ÚFORMAT_VALUEz&InstructionTranslatorBase.FORMAT_VALUEV  sX   € Ø—‘ˆØˆ=Ü Ð!HÓIÐIØ�D‰L˜TÒ!Ø—x‘x“z‰Hä&×,Ñ,¨T°2Ó6ˆHØ×!Ñ! (¨EÓ2Ð2r°   c           
     ón  — g }g }i }|j                   €t        d«      ‚| j                  |j                   «      D �]:  }|j                  «       r#|j	                  d«       |j	                  |«       Œ7t        |t        j                  «      rÂ|j	                  |j                  «       |j                  |j                  «       t        |j                  «       «      t        |j                  j                  «       «      z  r2t        dd|› d|› d|j                  › �dg t        j                   ¢¬«       |j#                  |j                  «       �Œt        d	t%        |«      d
g t        j                   ¢¬«       �Œ= | j'                  t        j                  j)                  dj+                  |«      ||«      «       y )Nr>  z{}zBUILD_STRING key conflictzformat_string_parts: z
, kwargs: z, part.sym_kwargs: z1Failed to build format string due to key conflictr¹  zBUILD_STRING type errorzLFormat string part type is not correct - expected constant or format string.rç   )rA  rÌ   rH  rí  rì   rV  r   ÚStringFormatVariableÚformat_stringr¬  Úsym_argsr  re  Ú
sym_kwargsr=   r   rø  rÓ  r¼   rF  ry  r  )rÉ   rÁ   Úformat_string_partsr¬   r  Úparts         r®   ÚBUILD_STRINGz&InstructionTranslatorBase.BUILD_STRING`  s{  € Ø)+ÐØ&(ˆØ-/ˆØ�8‰8ÐÜ Ð!KÓLÐLØ—I‘I˜dŸh™hÓ'ó 	ˆDØ×&Ñ&Ô(Ø#×*Ñ*¨4Ô0Ø—‘˜DÕ!Ü˜D¤)×"@Ñ"@ÔAØ#×*Ñ*¨4×+=Ñ+=Ô>Ø—‘˜DŸM™MÔ*Ü�v—{‘{“}Ó%¬¨D¯O©O×,@Ñ,@Ó,BÓ(CÒCÜ!Ø ;Ø"7Ð8KÐ7LÈJÐW]ÐV^Ð^qÐrv÷  sBñ  sBð  rCð  !DØ$WØ=Ô 1× <Ñ <Ð=õ	ð —‘˜dŸo™oÖ.äØ5Ü ›IØ nØ9Ô-×8Ñ8Ð9÷	ð!	ð, 	�	‰	Ü×*Ñ*×1Ñ1Ø—‘Ð+Ó,¨d°Fóõ	
r°   c                óØ   — |j                   dk(  s|j                   dk(  st        d«      ‚|j                   dk(  rdnd}| j                  t        |   | | j	                  d«      i «      «       y )Nr   r   ú8expected inst.argval == 0 or inst.argval == 1 to be trueÚiszis notrý  )rw  rÌ   rF  r¥   rH  )rÉ   rÁ   rw  s      r®   ÚIS_OPzInstructionTranslatorBase.IS_OP‚  s`   € Ø—‘˜qÒ  D§K¡K°1Ò$4Ü ØJóð ð Ÿ™¨Ò)‘¨xˆØ�	‰	Ô% fÑ-¨d°D·I±I¸a³LÀ"ÓEÕFr°   c                óü   — |j                   dk(  s|j                   dk(  st        d«      ‚| j                  d«      \  }}|j                   }| j                  t	        | ||«      «       |dk(  r| j                  |«       y y )Nr   r   r+  rý  )rw  rÌ   rH  rF  r�   Ú	UNARY_NOT)rÉ   rÁ   ÚleftÚrightr›  s        r®   ÚCONTAINS_OPz%InstructionTranslatorBase.CONTAINS_OPŠ  ss   € Ø—‘˜qÒ  D§K¡K°1Ò$4Ü ØJóð ð —i‘i “l‰ˆˆeØ�[‰[ˆØ�	‰	Ô" 4¨°Ó5Ô6Ø�Š7Ø�N‰N˜4Õ ð r°   c                óP  — | j                  «       }|j                  dkD  st        d«      ‚|j                  €t        d«      ‚| j                  |j                      }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚|j                  | d|gi «       y )Nr   rÙ  r>  ræ  rÞ  r¬  )	r×  rw  rÌ   rA  r’  rV  r�   rà  rë  rá  s       r®   r¥  z%InstructionTranslatorBase.LIST_EXTEND•  sŽ   € Ø�H‰H‹JˆØ—‘˜a’Ü Ð!FÓGÐGØ�8‰8ÐÜ Ð!KÓLÐLØ�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ|Ô,Ü Ð!TÓUÐUØ�~‰~ÔÜ Ð!GÓHÐHØ�‰˜˜h¨¨¨RÕ0r°   c                ó–   — | j                  t        j                  | t        «      j	                  | | j                  «       gi «      «       y r§   )rF  rg   rx  r6  rG  r×  r  s     r®   ÚLIST_TO_TUPLEz'InstructionTranslatorBase.LIST_TO_TUPLE¢  s6   € Ø�	‰	Ü×!Ñ! $¬Ó.×<Ñ<¸TÀDÇHÁHÃJÀ<ÐQSÓTõ	
r°   c                óÆ  — | j                   d   }| j                  |«      st        d«      ‚|j                  t        u r¤t        j                  | t        «      j                  | t        j                  | d«      gi «      }|j                  | dt        j                  | d«      |gi «       |j                  | dt        j                  | d«      |gi «       || j                   d<   y y )Nr‚  r  zgenerator raised StopIterationrè  rr  r  )
r’  rõ  rÌ   rô  rÝ  rg   rx  r)  rG  rë  )rÉ   rÁ   ri  Únew_vals       r®   ÚSTOPITERATION_ERRORz-InstructionTranslatorBase.STOPITERATION_ERROR§  sÝ   € ð �j‰j˜‰nˆØ×)Ñ)¨#Ô.Ü Ð!VÓWÐWØ�<‰<œ=Ñ(Ü%×+Ñ+¨D´,Ó?×MÑMØÜ ×&Ñ& tÐ-MÓNÐOØóˆGð
 ×ÑØØÜ ×&Ñ& t¨]Ó;¸SÐAØô	ð ×ÑØ�m¤o×&;Ñ&;¸DÀ+Ó&NÐPSÐ%TÐVXôð %ˆD�J‰J�rŠNð )r°   c                ól  — | j                  «       }|j                  dkD  st        d«      ‚|j                  €t        d«      ‚| j                  |j                      j                  «       }t        |t        «      st        d«      ‚|j                  «       st        d«      ‚|j                  | d|gi «       y )Nr   rÙ  r>  rÚ  rÞ  rÓ  )
r×  rw  rÌ   rA  r’  rÛ  rV  rs   rà  rë  rá  s       r®   Ú
DICT_MERGEz$InstructionTranslatorBase.DICT_MERGEÁ  sž   € Ø�H‰H‹JˆØ—‘˜a’Ü Ð!FÓGÐGØ�8‰8ÐÜ Ð!KÓLÐLØ�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0Ô1Ü ØHóð ð �~‰~ÔÜ Ð!GÓHÐHØ�‰˜˜h¨¨¨RÕ0r°   c                ó$   — | j                  «        y r§   r  r  s     r®   Ú	GEN_STARTz#InstructionTranslatorBase.GEN_STARTÒ  r  r°   c           	     ó  — | j                   d   }|j                  «       r=| j                  t        j                  | t        |j                  «       «      «      «       y | j                  |j                  | dg i «      «       y )Nr‚  r„  )r’  rí  rF  rg   rx  rë   rî  rë  r  s      r®   ÚGET_LENz!InstructionTranslatorBase.GET_LENÕ  s]   € Ø�j‰j˜‰nˆØ×!Ñ!Ô#Ø�I‰I”o×+Ñ+¨D´#°c×6LÑ6LÓ6NÓ2OÓPÕQà�I‰I�c—o‘o d¨I°r¸2Ó>Õ?r°   c                ó˜   — | j                   d   }| j                  | j                  t        j                  | t
        «      |gi «      «       y)zr
        If STACK[-1] is an instance of collections.abc.Mapping, push True.
        Otherwise, push False
        r‚  N)r’  rF  rÖ  rg   rx  rG   r  s      r®   ÚMATCH_MAPPINGz'InstructionTranslatorBase.MATCH_MAPPINGÜ  sC   € ð
 �j‰j˜‰nˆØ�	‰	Ø×,Ñ,Ü×%Ñ% d¬OÓ<Ø�Øóõ	
r°   c                ó˜   — | j                   d   }| j                  | j                  t        j                  | t
        «      |gi «      «       y ©Nr‚  )r’  rF  rÖ  rg   rx  rJ   r  s      r®   ÚMATCH_SEQUENCEz(InstructionTranslatorBase.MATCH_SEQUENCEê  sB   € Ø�j‰j˜‰nˆØ�	‰	Ø×,Ñ,Ü×%Ñ% dÔ,?Ó@Ø�Øóõ	
r°   c           	     ó˜  — | j                  d«      \  }}}t        j                  | |j                  «      }| j	                  | j                  t        j                  | t        «      ||||gi «      «       t        j                  dk  rD| j                  d   }| j	                  t        j                  | t        |t        «       «      «       y y )NrÌ  r6  r‚  )rH  rg   rx  rA  rF  rÖ  rH   rZ  rÚ  r’  r`   rm   )rÉ   rÁ   Úsubjectr  ÚnamesrA  r  s          r®   ÚMATCH_CLASSz%InstructionTranslatorBase.MATCH_CLASSô  s¬   € Ø"Ÿi™i¨›lÑˆ��eÜ×#Ñ# D¨$¯(©(Ó3ˆØ�	‰	Ø×,Ñ,Ü×%Ñ% dÔ,<Ó=Ø˜#˜s EÐ*Øóô	
ô ×Ñ˜gÒ%à—*‘*˜R‘.ˆCØ�I‰I”o×+Ñ+¨D´f¸SÔBRÓ6SÐ2SÓTÕUð &r°   c           	     óœ  — | j                   d   }| j                   d   }t        |t        «      st        d«      ‚| j	                  | j                  t        j                  | t        «      ||gi «      «       t        j                  dk  rD| j                   d   }| j	                  t        j                  | t        |t        «       «      «       y y )Nr‚  rþ  rÖ  r6  )r’  rV  rƒ   rÌ   rF  rÖ  rg   rx  rI   rZ  rÚ  r`   rm   )rÉ   rÁ   re  r=  r  s        r®   Ú
MATCH_KEYSz$InstructionTranslatorBase.MATCH_KEYS  sª   € Ø�z‰z˜"‰~ˆØ�j‰j˜‰nˆä˜$¤Ô.Ü Ð!VÓWÐWà�	‰	Ø×,Ñ,Ü×%Ñ% d¬OÓ<¸sÀD¸kÈ2óô	
ô ×Ñ˜gÒ%à—*‘*˜R‘.ˆCØ�I‰I”o×+Ñ+¨D´f¸SÔBRÓ6SÐ2SÓTÕUð &r°   c                óD   — | j                  | j                  d«      «       y )NrÌ   ©rF  rÁ  r  s     r®   ÚLOAD_ASSERTION_ERRORz.InstructionTranslatorBase.LOAD_ASSERTION_ERROR  s   € Ø�	‰	�$×/Ñ/Ð0@ÓAÕBr°   c                óD   — | j                  | j                  d«      «       y )NÚ__build_class__rK  r  s     r®   ÚLOAD_BUILD_CLASSz*InstructionTranslatorBase.LOAD_BUILD_CLASS  s   € Ø�	‰	�$×/Ñ/Ð0AÓBÕCr°   z`Encountered graph break when attempting to trace BINARY_SUBSCR: a binary subscript, e.g. x[attr]c                óê   — |j                   dk(  r| j                  |«       d| _        y t        j                  dk\  r!|j                   dk(  r| j                  |«       y | j                  rt        d«      ‚y )Nr   FrÙ  r  z/expected not self.accept_prefix_inst to be true)rA  Úappend_prefix_instr”  rZ  rÚ  rÌ   r  s     r®   ÚRESUMEz InstructionTranslatorBase.RESUMEE  sc   € Ø�8‰8�qŠ=Ø×#Ñ# DÔ)Ø&+ˆDÕ#Ü×Ñ Ò(¨T¯X©X¸ª]à×#Ñ# DÕ)à×&Ò&Ü$Ð%VÓWÐWð 'r°   c                ób   — |j                   €t        d«      ‚t        |j                      | |«      S ©Nr>  )rA  rÌ   Ú_binary_op_lookupr  s     r®   Ú	BINARY_OPz#InstructionTranslatorBase.BINARY_OPR  s.   € Ø�x‰xÐÜ$Ð%OÓPÐPÜ$ T§X¡XÑ.¨t°TÓ:Ð:r°   c                 ó   — y r§   rÕ   r  s     r®   r;  z!InstructionTranslatorBase.PRECALLW  ó   € Ør°   c                óH  — |j                   €t        d«      ‚| j                  d   |j                      }t        |t        «      st        d«      ‚|D ]  }t        |t
        «      rŒt        d«      ‚ | j                  �t        d«      ‚t        j                  |¬«      | _        y )Nr>  Ú	co_constsz/expected isinstance(kw_names, tuple) to be truez)expected isinstance(name, str) to be truez)expected self.kw_names is None to be trueru  )	rA  rÌ   rÔ  rV  r6  r¼   rD  rm   ry  )rÉ   rÁ   rD  r¸   s       r®   r<  z"InstructionTranslatorBase.KW_NAMESZ  s˜   € Ø�8‰8ÐÜ Ð!KÓLÐLØ×$Ñ$ [Ñ1°$·(±(Ñ;ˆÜ˜(¤EÔ*Ü Ð!RÓSÐSØò 	RˆDÜ˜d¤CÕ(Ü$Ð%PÓQÐQð	Rð �=‰=Ð$Ü Ð!LÓMÐMÜ(×/Ñ/°hÔ?ˆ�r°   c                ó6   — | j                  t        «       «       y r§   )rF  r†   r  s     r®   r‰  z#InstructionTranslatorBase.PUSH_NULLg  s   € Ø�	‰	”,“.Õ!r°   c                ón  — |rut         j                  dk\  st        d«      ‚| j                  «       }t	        |t
        «      st        d«      ‚|j                  «       st        d«      ‚|j                  «       }n$| j                  r| j                  j                  nd}|j                  €t        d«      ‚| j                  |j                  dz   «      }t         j                  dk\  r!|d   }t	        |d	   t        «      rg n|d	   g}n&t	        |d   t        «      r|d	   }g }n|d   }|d	   g}|rX||dt        |«        z   }|t        |«       d  }t        t        ||«      «      }t        |«      t        |«      k7  rt        d
«      ‚||dd  z   }i }	 | j!                  |||«       d | _        y # d | _        w xY w)NrË  z/expected sys.version_info >= (3, 13) to be truez7expected isinstance(kw_names, TupleVariable) to be truez1expected kw_names.is_python_constant() to be truerÕ   r>  rý  r   r   z0expected len(kwargs) == len(kw_names) to be true)rZ  rÚ  rÌ   r×  rV  rƒ   rí  rî  rD  r¯  rA  rH  r†   rë   r  rI  rG  )	rÉ   rÁ   Úcall_kwrD  ÚcontentsrR  r¬   rK  r  s	            r®   Ú_callzInstructionTranslatorBase._callj  s¯  € ñ ä×$Ñ$¨Ò/Ü$Ð%VÓWÐWØ—x‘x“zˆHÜ˜h¬Ô6Ü$ØMóð ð ×.Ñ.Ô0Ü$ØGóð ð  ×2Ñ2Ó4‰Hà.2¯mªm�t—}‘}×*Ò*ÀˆHà�8‰8ÐÜ Ð!KÓLÐLØ—9‘9˜TŸX™X¨™\Ó*ˆÜ×Ñ˜wÒ&à˜!‘ˆBÜ# H¨Q¡K´Ô>‘2ÀXÈaÁ[ÀM‰Dä˜( 1™+¤|Ô4Ø˜a‘[�à‘à˜a‘[�Ø  ™�}�áØ˜( 1¬¨H« ~Ð6Ñ6ˆDà"¤C¨£M >Ð#3Ð4ˆKäœ#˜h¨Ó4Ó5ˆFä�6‹{œc (›mÒ+Ü$Ð%WÓXÐXà˜( 1 2˜,Ñ&ˆDàˆFð	!ð ×Ñ˜r 4¨Ô0à ˆD�Mø˜DˆD�Mús   ÆF+ Æ+	F4zTEncountered graph break when attempting to trace CALL: a function call, e.g. f(x, y)c                ó&   — | j                  |«       y r§   ©r_  r  s     r®   r:  zInstructionTranslatorBase.CALL£  s   € ð
 	�
‰
�4Õr°   c                ó„   — |j                   €t        d«      ‚| j                  | j                  |j                       «       y rT  )rA  rÌ   rF  r’  r  s     r®   ÚCOPYzInstructionTranslatorBase.COPYª  s3   € Ø�8‰8ÐÜ Ð!KÓLÐLØ�	‰	�$—*‘*˜dŸh™h˜YÑ'Õ(r°   c                óÐ   — |j                   €t        d«      ‚| j                  |j                       | j                  d   c| j                  d<   | j                  |j                    <   y )Nr>  r‚  )rA  rÌ   r’  r  s     r®   ÚSWAPzInstructionTranslatorBase.SWAP¯  sS   € Ø�8‰8ÐÜ Ð!KÓLÐLØ04·
±
¸D¿H¹H¸9Ñ0EÀtÇzÁzÐRTÁ~Ð-ˆ�
‰
�2‰˜Ÿ
™
 D§H¡H 9Ò-r°   c                 ó   — y r§   rÕ   r  s     r®   ÚCACHEzInstructionTranslatorBase.CACHE¼  rX  r°   c                ó&   — | j                  |«       y r§   rÒ  r  s     r®   ÚBEFORE_WITHz%InstructionTranslatorBase.BEFORE_WITH¿  rÕ  r°   c           	     ó  — t        |t        «      r+|j                  «       s| j                  j	                  |«       t
        j                  dk\  rŒ|j                  r>| j                  r/|j                  j                  | j                  d   j                  urd }nN| j                  j                  €t        d«      ‚| j                  j                  j                  }n|j                  }|r”t        | t        «      st        j                  r;| j                  j	                  t        ||t!        | j"                  «      |«      «       n9| j                  j	                  t        ||t!        | j"                  «      «      «       |j%                  | «      S )Nr6  r‚  zCexpected self.next_instruction.exn_tab_entry is not None to be true)rV  ro   Úsupports_graph_breaksr*  rì   rZ  rÚ  rF  r
  r.  rÙ  rÌ   rL  r   r  r-  rë   r’  Úenter)rÉ   rv  rÁ   r.  s       r®   Ú	enter_ctxz#InstructionTranslatorBase.enter_ctxÂ  s4  € ô �sÔ:Ô;Ø×-Ñ-Ô/à×0Ñ0×7Ñ7¸Ô<ä×Ñ˜wÒ&ð
 ×!Ò!Ø×$Ò$Ø×%Ñ%×,Ñ,°D×4DÑ4DÀRÑ4H×4OÑ4OÑOà‘à×(Ñ(×6Ñ6Ð>Ü(Ø]óð ð ×.Ñ.×<Ñ<×CÑC‘à—[‘[ˆFáÜ˜$Ô 5Ô6¼&×:TÒ:TØ× Ñ ×'Ñ'Ü# D¨&´#°d·j±j³/À3ÓGõð × Ñ ×'Ñ'¬¸¸fÄcÈ$Ï*É*ÃoÓ(VÔWà�y‰y˜‹Ðr°   c                óP   — t        dd| › �d| j                  «       › d�g d¢¬«       y )NzUnsupported context managerz1Attempted SETUP_WITH/BEFORE_WITH/LOAD_SPECIAL on z%Dynamo does not know how to enter a `z` context manager.)z,Avoid using the unsupported context manager.aE  If the context manager seems like it should be supported (e.g. torch.set_grad_enabled), then it may be the case that it was created outside the compiled region, which Dynamo does not support. Supported context managers can cross graph break boundaries only if they are local non-closure variables, or are intermediate values.zŒFile an issue to PyTorch. Simple context managers can potentially be supported, but note that context managers can't be supported in generalr¹  )r=   rü  )rv  s    r®   Úunsupported_ctx_graph_breakz5InstructionTranslatorBase.unsupported_ctx_graph_breakê  s3   € äØ1ØGÈÀuÐMØ?À×@TÑ@TÓ@VÐ?WÐWiÐjòö		
r°   c                ó@  — | j                  «       }t        |t        t        f«      s| j	                  |«       t        |t        t        f«      st        d«      ‚| j                  t        ||j                  «      «       | j                  | j                  ||«      «       y )Nú`expected isinstance( ctx, (ContextWrappingVariable, GenericContextWrappingVariable) ) to be true)
r×  rV  rn   ro   ro  rÌ   rF  rq   r.  rm  )rÉ   rÁ   rv  s      r®   rÓ  z.InstructionTranslatorBase.setup_or_before_withû  sŠ   € Ø�h‰h‹jˆÜØÔ)Ô+IÐJô
ð ×,Ñ,¨SÔ1ô ØÔ)Ô+IÐJô
ô !Øróð ð 	�	‰	Ô*¨3°·±Ó<Ô=Ø�	‰	�$—.‘.  dÓ+Õ,r°   c                óh   — | j                   st        d«      ‚| j                  j                  |«       y )Nz+expected self.accept_prefix_inst to be true)r”  rÌ   r–  rì   r  s     r®   rQ  z,InstructionTranslatorBase.append_prefix_inst  s+   € Ø×&Ò&Ü Ð!NÓOÐOØ×Ñ× Ñ  Õ&r°   c                ó@  — t         j                  dk\  rz| j                  snt        | j                  |j
                     t        «      st        d«      ‚| j                  j                  j                  «       | j                  |j
                  <   y | j                  |«       y )Nr8  zOexpected isinstance(self.symbolic_locals[inst.argval], NullVariable) to be true)rZ  rÚ  r”  rV  rŒ  rw  r†   rÌ   r(  r+  Útrack_cell_newrQ  r  s     r®   Ú	MAKE_CELLz#InstructionTranslatorBase.MAKE_CELL  s   € Ü×Ñ˜wÒ&¨t×/FÒ/Fô ˜d×2Ñ2°4·;±;Ñ?ÄÔNÜ$Øeóð ð —‘×(Ñ(×7Ñ7Ó9ð × Ñ  §¡Ò-ð ×#Ñ# DÕ)r°   c                ó&   — | j                  |«       y r§   ©rQ  r  s     r®   ÚCOPY_FREE_VARSz(InstructionTranslatorBase.COPY_FREE_VARS   ó   € Ø×Ñ Õ%r°   c                ó&   — | j                  |«       y r§   rw  r  s     r®   ÚRETURN_GENERATORz*InstructionTranslatorBase.RETURN_GENERATOR#  ry  r°   c                ó2  — t         j                  dk\  r| j                  «        n| j                  d«       t         j                  dk\  rO| j                  |   }|| j
                  v r1| j
                  j                  |«       | xj                  dz  c_        y y y )NrË  rý  r8  r   )rZ  rÚ  r×  rH  rÇ  Ú_comprehension_end_for_ipsÚdiscardÚ_comprehension_depth)rÉ   rÁ   Ú
current_ips      r®   ÚEND_FORz!InstructionTranslatorBase.END_FOR*  s   € Ü×Ñ˜wÒ&Ø�H‰H�Jà�I‰I�aŒLô ×Ñ˜wÒ&ØŸ™ dÑ+ˆJØ˜T×<Ñ<Ñ<Ø×/Ñ/×7Ñ7¸
ÔCØ×)Ò)¨QÑ.Ö)ð =ð 'r°   c                óú   — t        | j                  j                  |j                  d «      t        «      r6t        d|j                  d|j                  › �g t        j                  ¢¬«       | j                  |«       y )Nz)LOAD_FAST_CHECK on uninitialized variablez/Attempted to load uninitialized local variable r¹  )	r`   rŒ  r„  rw  r†   r=   r   rø  rL  r  s     r®   ÚLOAD_FAST_CHECKz)InstructionTranslatorBase.LOAD_FAST_CHECK7  s`   € Ü�$×&Ñ&×*Ñ*¨4¯;©;¸Ó=¼|ÔLÜØCØŸ™ØMÈdÏkÉkÈ]Ð[Ø5Ô)×4Ñ4Ð5õ	ð 	�‰�tÕr°   c                óÌ   — |j                   | j                  vr| j                  t        «       «       n| j	                  |«       t        «       | j                  |j                   <   y r§   )rw  rŒ  rF  r†   rL  r  s     r®   ÚLOAD_FAST_AND_CLEARz-InstructionTranslatorBase.LOAD_FAST_AND_CLEARA  sD   € Ø�;‰;˜d×2Ñ2Ñ2Ø�I‰I”l“nÕ%à�N‰N˜4Ô Ü,8«Nˆ×Ñ˜TŸ[™[Ò)r°   c                óö   — | j                  t        j                  |d¬«      «       |j                  €t	        d«      ‚|j                  dz  r| j                  |«       y | j                  |j                  «       y )Nrý  r=  r>  r   )r@  rõ   r  rA  rÌ   rO  r»  rw  r  s     r®   ÚLOAD_SUPER_ATTRz)InstructionTranslatorBase.LOAD_SUPER_ATTRH  s\   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�8‰8ÐÜ Ð!KÓLÐLØ�8‰8�aŠ<Ø×Ñ˜TÕ"à�O‰O˜DŸK™KÕ(r°   c                ó>  — |j                   dk(  r| j                  |«       y |j                   dk(  r| j                  |«       y |j                   dk(  r5t        | | j	                  «       «      }| j                  t        |«      «       y |j                   dk(  rN| j	                  «       j                  «       }t        j                  t        |«      «      }| j                  |«       y t        dd|j                   › �d|j                   › d�g t        j                  ¢¬	«       y )
NrÌ  r  é   r  z Missing CALL_INTRINSIC_1 handlerzCALL_INTRINSIC_1 operand: z,No handler implemented for CALL_INTRINSIC_1 ú instruction.r¹  )rw  r8  ÚUNARY_POSITIVErc   r×  rF  rƒ   rî  r   ÚTypingVariabler   r=   r   rR  )rÉ   rÁ   r  r  Útvs        r®   ÚCALL_INTRINSIC_1z*InstructionTranslatorBase.CALL_INTRINSIC_1Q  sÝ   € Ø�;‰;˜!Òà×$Ñ$ TÕ*Ø�[‰[˜AÒà×Ñ Õ%Ø�[‰[˜AÒä# D¨$¯(©(«*Ó5ˆEØ�I‰I”m EÓ*Õ+Ø�[‰[˜AÒà—‘“
×-Ñ-Ó/ˆAÜ×)Ñ)¬'°!«*Ó5ˆBØ�I‰I�b�MäØ:Ø4°T·[±[°MÐBØJÈ4Ï;É;È-ÐWdÐeØ6Ô)×5Ñ5Ð6ö	r°   c                ó‚  — | j                  «       }| j                  «       }|j                  dk(  rVt        |t        «      st	        d«      ‚|j                  | dt        j                  d«      |gi «       | j                  |«       y t        dd|j                  › �d|j                  › d�g t        j                  ¢¬	«       y )
Nr  z>expected isinstance(arg1, BaseUserFunctionVariable) to be truerè  Ú__type_params__z Missing CALL_INTRINSIC_2 handlerzCALL_INTRINSIC_2 operand: z,No handler implemented for CALL_INTRINSIC_2 rŠ  r¹  )r×  rw  rV  rt   rÌ   rë  rm   ry  rF  r=   r   rR  )rÉ   rÁ   Úarg2Úarg1s       r®   ÚCALL_INTRINSIC_2z*InstructionTranslatorBase.CALL_INTRINSIC_2i  s´   € Ø�x‰x‹zˆØ�x‰x‹zˆØ�;‰;˜!Òô ˜dÔ$<Ô=Ü$ØTóð ð ×ÑØØÜ!×(Ñ(Ð):Ó;¸TÐBØô	ð �I‰I�d�OäØ:Ø4°T·[±[°MÐBØJÈ4Ï;É;È-ÐWdÐeØ6Ô)×5Ñ5Ð6ö	r°   c                óf   — | j                  «       }| j                  «        | j                  |«       y r§   r  r  s      r®   ÚEND_SENDz"InstructionTranslatorBase.END_SEND‚  s!   € Ø�h‰h‹jˆØ�‰Œ
Ø�	‰	�#�r°   zpEncountered graph break when attempting to trace CALL_KW: a function call with keyword arguments, e.g. f(x=True)c                ó*   — | j                  |d¬«       y )NT)r]  ra  r  s     r®   ÚCALL_KWz!InstructionTranslatorBase.CALL_KWŠ  s   € ð 	�
‰
�4 ˆ
Õ&r°   c                óJ   — | j                   j                  dvrt        d«      ‚y )N)ÚPOP_JUMP_IF_TRUEÚPOP_JUMP_IF_FALSEr/  zmexpected self.next_instruction.opname in ( "POP_JUMP_IF_TRUE", "POP_JUMP_IF_FALSE", "UNARY_NOT", ) to be true)rÙ  rí   rÌ   r  s     r®   rÎ  z!InstructionTranslatorBase.TO_BOOL’  s4   € ð × Ñ ×'Ñ'ð 0
ñ 
ô
 !Øóð ð
r°   c                ó  — |j                   }|€t        d«      ‚| j                  «       }t        |t        «      st        d«      ‚| j                  «       }|dz  rpt
        j                  dk\  st        d«      ‚|j                  | t        j                  | d«      gi «      }|j                  | dt        j                  d«      |gi «       nª|d	z  r||_        n�|d
z  rt        |t        «      st        d«      ‚|j                  }t!        t#        t%        |d d d…   |dd d…   d¬«      «      t'        «       ¬«      }|j)                  | «      j+                  d|«       n|dz  r||_        n|dz  r||_        | j1                  |«       y )Nr   z>expected isinstance(fn, NestedUserFunctionVariable) to be trueé   r  z/expected sys.version_info >= (3, 14) to be truer   rè  rÔ   rê  r  z3expected isinstance(attr, TupleVariable) to be truerý  Trë  rÃ  )rA  rÌ   r×  rV  ry   rZ  rÚ  rG  rg   rx  rë  rm   ry  rñ  rƒ   r  rs   r  rI  rf   rí  rî  rò  rð  rF  )rÉ   rÁ   rë  rR  rX  r  ró  s          r®   ÚSET_FUNCTION_ATTRIBUTEz0InstructionTranslatorBase.SET_FUNCTION_ATTRIBUTEŸ  su  € Ø—‘ˆØˆ=Ü Ð!HÓIÐIØ�X‰X‹ZˆÜ˜"Ô8Ô9Ü ØPóð ð �x‰x‹zˆà�4Š<Ü×$Ñ$¨Ò/Ü$Ð%VÓWÐWð ×%Ñ% d¬_×-BÑ-BÀ4ÈÓ-KÐ,LÈbÓQˆDØ�N‰NØØÜ!×(Ñ(Ð):Ó;¸TÐBØõ	ð �TŠ\ØˆB�JØ�TŠ\Ü˜d¤MÔ2Ü$ØIóð ð
 —J‘JˆEÜ#Ü”S˜™s ˜s™ U¨1¨4¨a¨4¡[¸Ô>Ó?Ü.Ó0ôˆCð �N‰N˜4Ó ×(Ñ(Ø! 3õð �TŠ\Ø ˆB�MØ�TŠ\ØˆBŒKà�	‰	�"�r°   c                ó¤   — |j                   €t        d«      ‚| j                  | j                  | j	                  «       |j                   «      «       y rT  )rA  rÌ   rF  r  r×  r  s     r®   ÚCONVERT_VALUEz'InstructionTranslatorBase.CONVERT_VALUEÏ  s;   € Ø�8‰8ÐÜ Ð!KÓLÐLØ�	‰	�$×%Ñ% d§h¡h£j°$·(±(Ó;Õ<r°   c                óP   — | j                  t        j                  | d«      d«       y )Nrç   r   )r  rg   rx  r  s     r®   ÚFORMAT_SIMPLEz'InstructionTranslatorBase.FORMAT_SIMPLEÔ  s   € Ø×Ñœ?×0Ñ0°°rÓ:¸AÕ>r°   c                óD   — | j                  | j                  «       d«       y rá   )r  r×  r  s     r®   ÚFORMAT_WITH_SPECz*InstructionTranslatorBase.FORMAT_WITH_SPEC×  s   € Ø×Ñ˜4Ÿ8™8›: qÕ)r°   c                ól   — | j                  «        t        j                  dk\  r| j                  «        y y )NrÙ  )r×  rZ  rÚ  r  s     r®   ÚPOP_ITERz"InstructionTranslatorBase.POP_ITERÞ  s'   € Ø�‰Œ
Ü×Ñ˜wÒ&Ø�H‰H�Jð 'r°   )Ú	__enter__Ú__exit__Ú
__aenter__Ú	__aexit__c                óz  — t        |j                  t        «      st        d«      ‚| j                  |j                     }|dv r¶| j                  «       }t        |t        t        f«      s| j                  |«       t        |t        t        f«      st        d«      ‚|dk(  r,| j                  t        |«      «       | j                  |«       y | j                  t        |d «      «       | j                  |«       y | j                  |«       | j                  «       }| j                  |«       | j                  |«       y )Nz*expected LOAD_SPECIAL arg to be set to int)r¦  r§  rq  r¦  )rV  rA  r¾   rÌ   Ú_load_special_namesr×  rn   ro   ro  rF  rp   r‰  rq   r»  )rÉ   rÁ   rX  rv  r=  s        r®   ÚLOAD_SPECIALz&InstructionTranslatorBase.LOAD_SPECIALí  s
  € Ü˜$Ÿ(™(¤CÔ(Ü Ð!MÓNÐNØ×'Ñ'¨¯©Ñ1ˆØÐ,Ñ,Ø—(‘(“*ˆCÜØÔ-Ô/MÐNôð ×0Ñ0°Ô5ô ØÔ-Ô/MÐNôô %Øvóð ð �{Ò"Ø—	‘	Ô3°CÓ8Ô9Ø—‘˜tÕ$ð —	‘	Ô2°3¸Ó=Ô>Ø—‘˜tÕ$ð �O‰O˜DÔ!Ø—(‘(“*ˆCØ�I‰I�cŒNØ�N‰N˜4Õ r°   c                ób   — | j                  t        j                  | |j                  «      «       y r§   )rF  rg   rx  rw  r  s     r®   ÚLOAD_SMALL_INTz(InstructionTranslatorBase.LOAD_SMALL_INT  s   € Ø�	‰	”/×'Ñ'¨¨d¯k©kÓ:Õ;r°   rç   r‚  c                óÆ   — t        |j                  t        «      st        d«      ‚| j	                  t        j                  | | j                  |j                     «      «       y )Nz2expected LOAD_COMMON_CONSTANT arg to be set to int)rV  rA  r¾   rÌ   rF  rg   rx  Ú_common_constantsr  s     r®   ÚLOAD_COMMON_CONSTANTz.InstructionTranslatorBase.LOAD_COMMON_CONSTANT"  sD   € Ü˜$Ÿ(™(¤CÔ(Ü Ð!UÓVÐVØ�	‰	”/×'Ñ'¨¨d×.DÑ.DÀTÇXÁXÑ.NÓOÕPr°   c                óP   — | j                   j                  «       dkD  r	d„ | _        yy)Nr   c                  ó   — y©NTrÕ   rÕ   r°   r®   r¯   z>InstructionTranslatorBase.is_non_empty_graph.<locals>.<lambda>*  rv  r°   TF)r(  Úcount_callsrî  râ   s    r®   rî  z,InstructionTranslatorBase.is_non_empty_graph'  s%   € Ø�;‰;×"Ñ"Ó$ qÒ(á&2ˆDÔ#ØØr°   c           
     óš   — |€g }dj                  t        j                  | j                  «       gt	        t        |«      «      z   «      «      S )Nrç   )r  Ú	tracebackÚformat_listrÖ  r÷   r©   )rÉ   Úadditional_stack_framess     r®   Úformat_frame_summaryz.InstructionTranslatorBase.format_frame_summary.  sN   € ð #Ð*Ø&(Ð#Ø�w‰wÜ×!Ñ!Ø×#Ñ#Ó%Ð&¬¬hÐ7NÓ.OÓ)PÑPóó
ð 	
r°   c           	     ó4  — | j                   j                  }i }t        j                  dk\  r |�|j                  |d<   |j
                  |d<   t        j                  t        | j                  dd«      | j                  t        | j                  dd«      fddi|¤ŽS )	Nr6  ÚcolnoÚ	end_colnor  ú	<unknown>rØ  Úlookup_lineF)rÞ  rì  rZ  rÚ  r:  r;  r·  ÚFrameSummaryr…  rÒ  r¿   )rÉ   rì  r  s      r®   rÖ  z'InstructionTranslatorBase.frame_summary9  s˜   € Ø×,Ñ,×6Ñ6ˆ	à!#ˆÜ×Ñ˜wÒ&¨9Ð+@Ø'×2Ñ2ˆF�7‰OØ"+×":Ñ":ˆF�;ÑÜ×%Ñ%Ü�D—K‘K °Ó<Ø�K‰KÜ�D—K‘K ¨KÓ8ñ
ð ð	
ð
 ñ
ð 	
r°   c                ó€   — t        | j                  dd«      }t        j                  d«      }|j	                  |«      d uS )Nr  r¾  z.*torch/nn/modules.*)r…  rÒ  ÚreÚcompileÚmatch)rÉ   r½   Únn_modules_patterns      r®   Úis_co_filename_from_nn_modulesz8InstructionTranslatorBase.is_co_filename_from_nn_modulesH  s:   € Ü˜4Ÿ;™;¨°{ÓCˆÜŸZ™ZÐ(?Ó@ÐØ!×'Ñ'¨Ó1¸Ð=Ð=r°   c                óÆ   — | j                   j                  |t        j                  |«      «      }t	        t        |«      j                  t        j                  «      «       |S r§   )	r(  Úinstall_global_by_idr€  r�  rB   rS   rú  rA   ÚWEAKREF_ALIVE)rÉ   r¸  r¯  Úglobal_names       r®   Ústore_global_weakref_by_idz4InstructionTranslatorBase.store_global_weakref_by_idM  sJ   € Ø—k‘k×6Ñ6°v¼w¿{¹{È5Ó?QÓRˆÜÜ Ó,×7Ñ7¼×8RÑ8RÓSô	
ð Ðr°   c                óB   — | j                   j                  j                  S r§   )r(  Útracing_contextÚ	fake_moderâ   s    r®   rÎ  z#InstructionTranslatorBase.fake_modeT  s   € à�{‰{×*Ñ*×4Ñ4Ð4r°   c              #  ób   K  — | j                   }|| _         	 d–— || _         y# || _         w xY w­w)zx
        Strict mode is enabled on a per-VariableTracker level depending on the return value of check_fn(node).
        N)rœ  )rÉ   Úcheck_fnÚpriors      r®   Ústrict_translation_modez1InstructionTranslatorBase.strict_translation_modeX  s3   è ø€ ð ×%Ñ%ˆØ (ˆÔð	*Ûà$)ˆDÕ!ø EˆDÕ!üs   ‚/—# ›/£	,¬/c                ó*  — | j                   €t        d«      ‚| j                   dkD  st        d«      ‚| j                  j                  | j                  j
                  | j                  | j                   dz
  | j                  | j                   dz
     «      S )Nr  r   ú0expected self.instruction_pointer > 0 to be truer   )rÀ   rÌ   r$  rò   rÒ  r  r¿   rv  râ   s    r®   r)  z#InstructionTranslatorBase.speculatef  sŽ   € Ø×#Ñ#Ð+Ü ØJóð ð ×(Ñ(¨1Ò,Ü Ð!SÓTÐTØ×#Ñ#×(Ñ(Ø�K‰K×#Ñ#Ø�K‰KØ×$Ñ$ qÑ(Ø×Ñ˜d×6Ñ6¸Ñ:Ñ;ó	
ð 	
r°   c                ó    — |�|dk  r||fS ||fS rá   rÕ   )rÉ   r½   r¿   Úfallback_linenos       r®   Ú_make_frame_locz)InstructionTranslatorBase._make_frame_loct  s%   € ð ˆ>˜V ašZØ˜oÐ.Ð.Ø˜&Ð!Ð!r°   c                ód  — g }t         j                  rs| j                  }|�e| j                  |j                  j
                  |j                  |j                  j                  «      }|j                  |«       |j                  }|�Œe|j                  «        |j                  |«       t        |«      S r§   )r   r  rÜ  r×  rÒ  r  r¿   r  rì   Úreverser6  )rÉ   Ú	frame_locÚframe_loc_chain_listÚ
current_txÚparent_frame_locs        r®   Ú_get_frame_loc_chainz.InstructionTranslatorBase._get_frame_loc_chain{  s¦   € ð 79Ðä×%Ò%Ø;?¿;¹;ˆJØÐ(Ø#'×#7Ñ#7Ø×%Ñ%×1Ñ1Ø×%Ñ%Ø×%Ñ%×4Ñ4ó$Ð ð
 %×+Ñ+Ð,<Ô=Ø'×.Ñ.�
ð Ñ(ð 	×$Ñ$Ô&Ø×#Ñ# IÔ.ÜÐ)Ó*Ð*r°   c                ó  — t        «       }g }| j                  D ]Z  }|j                  }|€Œ||v rŒ|j                  |«       |j	                  d|›d|j                  «       j                  «       › �«       Œ\ |syddj                  |«      z   S )zLFormat bytecode source locations for stack values involved in a graph break.z  z originated from:
rç   z#Stack variable source attribution:
rü   )r  r’  r<  r  rì   r  rà  r  )rÉ   ÚseenÚpartsÚvtr<  s        r®   Ú _format_stack_source_attributionz:InstructionTranslatorBase._format_stack_source_attribution�  s˜   € ä$'£EˆØˆØ—*‘*ò 		ˆBØ ×0Ñ0ˆOØÐ&ØØ $Ñ&ØØ�H‰H�_Ô%Ø�L‰LØ�R�FÐ-¨o×.DÑ.DÓ.F×.MÑ.MÓ.OÐ-PÐQõð		ñ ØØ5¸¿	¹	À%Ó8HÑHÐHr°   c                ó6  ‡— |j                   ry t        |dd «      }|€(t        j                  j                  j                  «       }	 t        j                  rR| j                  �F| j                  | j                  j                  | j                  | j                  j                  «      }n-| j                  |d   j                  |d   j                  d«      }| j!                  |«      }d}t        j"                  r/t%        «       }dj'                  t)        j*                  |«      «      }nt%        «       |z   }t-        |«      }dj'                  t)        j*                  |«      «      }	|�t/        ||«      }| j1                  «       }
d|d   › d|d	   › �d
|› �g}|
r|j3                  d|
g«       |j3                  ddg«       dj'                  |«      dz   Št        j"                  r‰|› d|	› d�z  Šn‰t5        |	«      z  Št        j6                  j9                  dd„ ˆfd„¬«       t;        |t<        «      r|j>                  n
tA        |«      }tB        jE                  tF        jH                  «      rptJ        sjtM        jN                  ||f«      rSt        j"                  r&‰dz  Š‰dj'                  | jP                  «      dz   z  ŠtB        jS                  ‰«       d|_         y tB        jS                  d|d   |d	   |«       d|_         y # t        $ r |d   |d   f}Y �ŒAw xY w)Nr'  r‚  r   r  r  rç   zGraph break in user code at rè   r   zGraph Break Reason: zUser code traceback:rü   zQ
========== most recent `torch.compile` tracing attempt started here ==========

a}  
NOTE: the most recent `torch.compile` tracing attempt might not be where you applied `torch.compile`! This is due to how graph breaks are implemented - the optimized code object returned by Dynamo will call another Dynamo-generated resume function and tracing is re-enabled by calling the resume function as a normal Python function, which Dynamo intercepts as a top-level frame.
Úartifactc                 ó   — dddœS )NÚdynamo_graph_break_reasonÚstring)r¸   ÚencodingrÕ   rÕ   r°   r®   r¯   z;InstructionTranslatorBase.log_graph_break.<locals>.<lambda>ì  s   € Ø3Ø$ñ!€ r°   c                 ó6   •— ‰ › dt        j                  «       › �S )Nrü   )r·  Ú
format_exc)Úuser_stack_traces   €r®   r¯   z;InstructionTranslatorBase.log_graph_break.<locals>.<lambda>ð  s   ø€ Ð"2Ð!3°2´i×6JÑ6JÓ6LÐ5MÐN€ r°   )Úmetadata_fnÚ
payload_fnz4
Most recent bytecode instructions traced (max 20):
zmGraph break (user stack suppressed due to duplicate graph break) in user code at %s:%s
Graph Break Reason: %sT)*Úloggedr…  r‘  rö  r   r÷  r   r  rÜ  r×  rÒ  r  r¿   r  r½   Ú
IndexErrorrÞ  rò  r9   r  r·  r¸  r7   r5   rã  r¬  r¼   Ú_loggingÚtrace_structuredrV  r>   rº  r]  Úgraph_break_logÚisEnabledForr   ÚDEBUGÚexplainr_   r  r£  r®  )rÉ   rÔ  rÅ   r   Ú
user_stackrÚ  Úframe_loc_chainÚstack_above_dynamo_formattedÚstack_above_dynamoÚuser_stack_formattedÚstack_source_attributionÚuser_stack_trace_partsrº  rì  s                @r®   rÓ  z)InstructionTranslatorBase.log_graph_break¢  s  ø€ ð �:Š:Øä˜S ,°Ó5ˆ
àÐÜŸ™×5Ñ5×CÑCÓEˆJð	Ü×)Ò)¨d¯k©kÐ.EØ ×0Ñ0Ø—K‘K×+Ñ+Ø—K‘KØ—K‘K×.Ñ.ó‘	ð !×0Ñ0Ø˜r‘N×+Ñ+Ø˜r‘N×)Ñ)Øó�	ð ×3Ñ3°IÓ>ˆØ')Ð$Ü�>Š>Ü!7Ó!9ÐØ+-¯7©7Ü×%Ñ%Ð&8Ó9ó,Ñ(ô 0Ó1°JÑ>ˆJÜ/°
Ó;ˆJØ!Ÿw™w¤y×'<Ñ'<¸ZÓ'HÓIÐð ˆ?Ü6°s¸FÓCˆFà#'×#HÑ#HÓ#JÐ à*¨9°Q©<¨.¸¸)ÀA¹,¸ÐHØ" 6 (Ð+ð"
Ðñ $Ø"×)Ñ)¨2Ð/GÐ*HÔIØ×%Ñ% rÐ+AÐ&BÔCØŸ9™9Ð%;Ó<¸tÑCÐä�>Š>ØØ/Ð0ð 1eà'Ð(ð )LðLñÑð ¤Ð$8Ó 9Ñ9Ðä�‰×'Ñ'Øñó Oð 	(ô 	
ô ",¨C´Ô!=�#—+’+Ä4ÈÃ9ˆä×(Ñ(¬¯©Ô7ÝÜ/×3Ñ3°W¸oÐ4NÔOô
 �~Š~Ø ØLñÐ ð ! D§I¡I¨d×.HÑ.HÓ$IÈDÑ$PÑPÐ ä×!Ñ!Ø ôð ˆ�
ô ×!Ñ!ð AØ˜!‘Ø˜!‘Øô	ð ˆ�
øôk ò 	ð ˜]Ñ+ØÐ-Ñ.ð‹Ið	ús   ÁBL ÌLÌLc                ó^   — t        ddt        | «      › �dg t        j                  ¢|d¬«       y )Nzgraph break in loopzframe skipped: z“torch.compile detected a graph break in a for/while loop. Skipping the frame and falling back to eager, as graph breaks in loops are not supported.T)rº  r»  r¼  r½  r$  r%  )r=   r8   r   r-  )r�  r   s     r®   rÑ  z0InstructionTranslatorBase.raise_loop_graph_break  s;   € ô 	Ø)Ø%Ô&7¸Ó&=Ð%>Ð?ðhàDÔ%×CÑCÐDØØö	
r°   c                óh  •— t         ‰| �  «        || _        || _        || _        || _        || _        |	| _        |
| _        d | _	        g | _
        d| _        d | _        t        d«      | _        d| _        g | _        g | _        d| _        d| _        d | _        d| _        g | _        || _        t1        d¬«      | _        d| _        t7        «       | _        t;        d„ «      | _        i | _        || _         |�|ntC        | j@                  «      | _"        || _#        || _$        || _%        || _&        || _'        || _(        |�$tR        jT                  rtW        |||¬«      | _,        nd | _,        i | _-        i | _.        || _/        d	| _0        d	| _1        d	| _2        d | _3        d | _4        d| _5        d | _6        d	| _7        g | _8        || _9        d
dl:m;}m<}m=}m>} ||z  |z  }t~        j€                  dk  r||z  }|j‚                  |z  r| j…                  t‡        d «      «       || _D        d	| _E        d gt�        |jŽ                  «      z  | _H        t’        j•                  t–        j˜                  «      | _M        tœ        j•                  t–        j˜                  «      | _O        t¡        j¢                  |j¤                  |«       y )Nr   rÿ  Tr‚  é   )Úmaxlenc                 ó,   — t        j                  d«      S rá   )r»  r¼  rÕ   r°   r®   r¯   z4InstructionTranslatorBase.__init__.<locals>.<lambda>Z  s   € ¤	§¡°Ó 2€ r°   )r�  rñ  rÔ  Fr   )ÚCO_ASYNC_GENERATORÚCO_COROUTINEÚCO_GENERATORÚCO_ITERABLE_COROUTINEr6  )SrU  rV  r$  Údistributed_stater(  rŒ  r�  rŽ  r�  r�  r’  rÀ   r�  r(   rÞ  r(  r
  r*  r«  r¿   rD  r”  r–  rš  r   r£  r  r  r}  r   r¶  r·  rv  r   rÇ  rG  rz  r|  rÔ  rÒ  rñ  r   Úreplay_record_enabledrL   r›  Únn_module_stackÚ	num_callsÚexportr+  rÄ   rö  r™  rœ  rž  rÜ  rŸ  r   r¢  Úresume_executionr  r  r  r  rZ  rÚ  Úco_flagsrF  rk   r—  r˜  rë   rZ  rv  rñ  rô  r   rõ  rð  rç  ræ  rÞ  Ú	lazycacher  )rÉ   r(  rv  rG  rz  r|  rÔ  rŒ  r�  rŽ  r�  rÒ  r  r—  r$  rš  r  rñ  r¢  rÇ  r  r  r  r  Ú
push_typesr\  s                            €r®   rV  z"InstructionTranslatorBase.__init__"  s¿  ø€ ô0 	‰ÑÔØ.ˆÔØ!2ˆÔð ˆŒØ.ˆÔØ 0ˆÔØ-JˆÔ*Ø%:ˆÔ"ð -1ˆÔ)Ø,.ˆŒ
Ø#$ˆÔ ØˆÔÜ#5°eÓ#<ˆÔ Ø(,ˆÔ%ØˆÔàUWˆÔ,Ø67ˆÔ.ØˆŒØˆŒØ"&ˆÔØˆÔØ(ˆÔÜ%*°"Ô%5ˆÔ"Ø$%ˆÔ!Ü47³EˆÔ'ô Ñ2Ó3ð 	Ô$ð 57ˆÔ!ð 0<ˆÔàÐ*‰G´¸D×<MÑ<MÓ0Nð 	Œð ð 	Œð *3ˆŒØ*4ˆŒØ)5ˆÔØ&,ˆŒØˆŒð Ð¤6×#?Ò#?Ü!2ØØØ)ô"ˆDÕð "&ˆDÔð BDˆÔØ)+ˆŒàˆŒð ˆŒØ$)ˆÔ!à*/ˆÔ'à#'ˆÔ à $ˆÔà$(ˆÔ!ØˆŒØ&+ˆÔ#ØˆÔàˆŒ÷	
ó 	
ð "Ð$9Ñ9Ð<NÑNˆ
Ü×Ñ˜gÒ%Ø˜,Ñ&ˆJØ�?‰?˜jÒ)Ø�I‰I”o dÓ+Ô,à(ˆÔØ).ˆÔ&àðP
ä�× Ñ Ó!ñP"ˆÔô
 ×+Ñ+¬G¯M©MÓ:ð 	Ô*ô 9I×8UÑ8UÜ�M‰Mó9
ˆÔ(ô 	×Ñ˜F×.Ñ.°	Õ:r°   ró   r  )rÎ   ztuple[str, ...])r¸  r¼   rÎ   r¼   )r¸  r¼   rÎ   rÏ   )rR  rg   r¬   r‘  r  r‹  rÎ   rÏ   )rR  rt   r¬   r‘  r  r‹  rÎ   rg   ©F)
rR  rt   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   )ri  rg   rÎ   rÏ   )r?  r‘  rÎ   rÏ   ©rÎ   rg   )r‡  r¾   rÎ   r‘  )rY  r”   rÎ   rÏ   )rÁ   r.   rÎ   rg   )r„  r¼   rÎ   rR   )r¸   r¼   r¢  r¼   r   r¾   rÎ   r¼   )rw  r   rÎ   rg   )rÁ   zInstruction | BlockStackEntryrÎ   rÏ   )ri  rg   rÎ   rg   )r   r´   rÎ   rÏ   )ri  rg   rj  rÂ   rÎ   r   )ri  rg   rÎ   zTypeIs[ExceptionVals])r  r   rÎ   rÏ   )rX  r   rÎ   rÏ   )r=  rg   r¸   r¼   rÎ   rÏ   )rÁ   r.   r  r¾   rÎ   r•  )r  r¾   r„  r.   rƒ  rF   r…  úlist[types.CodeType]r  r3   r†  rÂ   r‡  rÂ   rÎ   ztuple[types.CodeType, str]©rÁ   r.   râ  zlist[StackLocalsMetadata]rÎ   r•  )r…  r  r¡  rÝ   r  r3   rÎ   rÏ   )r=  rg   r¯  rg   rÎ   rÏ   )rÁ   r.   r  r]  rÎ   rÏ   )r¯  rg   r  r¾   rÎ   rg   )r  rg   rë  r¾   rÎ   rÏ   )rÁ   r.   r]  rÂ   rÎ   rÏ   )rv  z8ContextWrappingVariable | GenericContextWrappingVariablerÁ   r.   rÎ   rg   )rv  rg   rÎ   r   )r¹  zlist[Any] | NonerÎ   r¼   )rÎ   ztraceback.FrameSummary)r¸  r¼   r¯  r   rÎ   r¼   ©rÎ   zFakeTensorMode | None)rÐ  z!Callable[[VariableTracker], bool]rÎ   r   )rÎ   r»   )r½   r¼   r¿   r“  rÖ  r¾   rÎ   útuple[str, int])rÚ  r  rÎ   ztuple[tuple[str, int], ...])rÔ  rC   rÅ   r¼   r   z)Unsupported | UserError | StepUnsupportedrÎ   rÏ   )r�  útypes.CodeTyper   zUnsupported | UserErrorrÎ   r   )NNN)(r(  rE   rv  r•  rG  r¤   rz  r¤   r|  r¤   rÔ  rC   rŒ  r‹  r�  r‹  rŽ  r•   r�  r‘   rÒ  r  r  rÂ   r—  r¾   r$  r×   rš  ra  r  úDistributedState | Nonerñ  ztuple[types.CellType] | Noner¢  r¡  rÇ  zdict[Instruction, int] | NonerÎ   rÏ   ($  rÑ   rÒ   rÓ   rÔ   r¥  rÐ  r¯  r³  r¹  r¾  rÀ  rÃ  rÆ  rG  rÎ  rÖ  rÜ  râ  rè  rû  rZ  rÚ  rô  ÚpropertyrÙ  rï  r!  r7  rF  r@  r×  rH  rL  rR  rV  rZ  rX  rs  ÚLOAD_CLOSURErw  rs  r�  rP  Úcached_propertyr‡  rŠ  r�  r   rƒ  r£  r¬  r¸  ÚEAGER_IMPORT_NAMEr¼  rÁ  r~  rï  ÚJUMP_FORWARDÚJUMP_ABSOLUTEr  rt  Únot_rš  ru  r™  ÚJUMP_IF_FALSE_OR_POPÚJUMP_IF_TRUE_OR_POPrË  rÎ  rÐ  rÔ  r×  rä  ræ  rî  rþ  rh  r	  r  rõ  r  rõ  r)  r+  r3  r5  r7  rL  r9  r>  r@  rG  rL  rQ  rS  rO  rV  r»  rZ  r]  ra  r_  Ústaticmethodrh  r  rC  rØ  r  rÏ  r  r  r²  r»  r¾  rÀ  r	  rÇ  r�   rÌ  rÎ  ÚBUILD_TUPLE_UNPACK_WITH_CALLrÑ  rÔ  ÚBUILD_MAP_UNPACK_WITH_CALLr×  rÛ  râ  rä  r  rô  r  rÿ  r  rÿ  r  r
  r  r  rº  r  r  r  r!  r)  r-  r2  r¥  r5  r8  r:  ÚDICT_UPDATEr<  r>  r@  rC  rG  rI  rL  rO  rS  Úposr‹  ÚnegÚUNARY_NEGATIVEr/  ÚinvertÚUNARY_INVERTÚpowÚBINARY_POWERÚmulÚBINARY_MULTIPLYÚmatmulÚBINARY_MATRIX_MULTIPLYÚfloordivÚBINARY_FLOOR_DIVIDEÚtruedivÚBINARY_TRUE_DIVIDEr\  ÚBINARY_MODULOÚBINARY_REMAINDERr  Ú
BINARY_ADDÚsubÚBINARY_SUBTRACTÚgetitemÚBINARY_SUBSCRÚlshiftÚBINARY_LSHIFTÚrshiftÚBINARY_RSHIFTÚand_Ú
BINARY_ANDÚor_Ú	BINARY_ORÚxorÚ
BINARY_XORÚipowÚINPLACE_POWERÚimulÚINPLACE_MULTIPLYÚimatmulÚINPLACE_MATRIX_MULTIPLYÚ	ifloordivÚINPLACE_FLOOR_DIVIDEÚitruedivÚINPLACE_TRUE_DIVIDEÚimodÚINPLACE_MODULOÚINPLACE_REMAINDERÚiaddÚINPLACE_ADDÚisubÚINPLACE_SUBTRACTÚilshiftÚINPLACE_LSHIFTÚirshiftÚINPLACE_RSHIFTÚiandÚINPLACE_ANDÚixorÚINPLACE_XORÚiorÚ
INPLACE_ORrR  rV  r;  r<  r‰  r_  r:  rc  re  r   ÚJUMP_BACKWARD_NO_INTERRUPTÚPOP_JUMP_FORWARD_IF_TRUEÚPOP_JUMP_BACKWARD_IF_TRUEÚPOP_JUMP_FORWARD_IF_FALSEÚPOP_JUMP_BACKWARD_IF_FALSErg  ri  rm  ro  rÓ  rQ  ru  rx  r{  r�  rƒ  r…  r‡  rŽ  r“  r•  r—  rÎ  r�  rŸ  r¡  r£  ÚLOAD_FAST_BORROWr  r¥  r«  r¬  r®  rÌ   rÉ  r6  r¶  rµ  r÷   r  r°  r±  rî  rº  rÖ  rÆ  rË  rÎ  Ú
contextlibÚcontextmanagerrÒ  r)  r×  rÞ  rã  rÓ  rÑ  rV  r^  r_  s   @r®   rÐ   rÐ   C  sQ  ø… ð ÓØ/Ó/Ø0Ó0Ø#=Ó=Ø.Ó.Ø"CÓCØ Ó Ø#Ó#Ø$Ó$Ø"Ó"Ø&Ó&ØƒKØ%Ó%ØÓØ#Ó#ØÓØ#Ó#Ø0Ó0ØÓØ Ó Ø+Ó+Ø>Ó>ØÓàÓØ,Ó,ð !Ó ØEÓEØ"Ó"Ø%Ó%ó.ó$óL0ó0óóBó1ó'ó

ð8àð8ð $ð8ð +ð	8ð
 
ô8ð84à$ð4ð $ð4ð +ð	4ð
 
ô4ð$ +0ñà$ðð $ðð +ð	ð
 $(ðð 
ôö*nôô	Wórðh ×Ñ˜7Ò"õ-	+ôb	ð ó;ó ð;ôIôV2óM=ô^ô0ô ô;ô!+ôF
Vô	2ô'ô)
ôV/ð  €Lô
ô*ôJð, ×ÑóJó ðJô!ôEð( ó#ó ð#ô2
2ôô:;ð| $Ðô%ð ó4ó ð4ô.>ô4ð €LØ€Má$ X§]¡]°EÓ:ÐÙ# H§N¡N°EÓ:ÐÙ'¨¯©°tÓ<ÐÙ& x§~¡~°tÓ<ÐôUôUôô(ôUô
#ôJô
ð(8
Ø"ð8
Ø15ð8
à	ô8
ôt(ôTô"Cô..ô,)ô\D'ôL<ô:$ó0RôhLôñ  ØØuôóPó	ðPô
Tñ  ØØôó)ó	ð)ñ
  ØØôó@;ó	ð@;ñD  ØðAôó
-óð
-ô"Gô ôô"
ô
ô%ñ  Øð Aôó
ó	ð
ô
ô8ð ðØðØ&)ðà	óó ðð@}%àð}%ð !ð}%ð "ð	}%ð
 +ð}%ð ð}%ð ð}%ð "ð}%ð 
$ô}%ô~#
ðJh%àðh%ð $=ðh%ð 
ô	h%ðT ðJ?Ø*ðJ?Ø:CðJ?ØIRðJ?à	óJ?ó ðJ?óX
ñ(  ØØ~ôó=ó	ð=ô8ð4Ø"ð4Ø)8ð4à	ô4ô((ô1óô6ô
ð @Lõ @ô 8ð $6Ð ô2ô
ð* "2Ðô
ô&9ô.ô1ôô5ônô ñ:  ØÐNôó
óð
ô4ô
ôôôôô
ôôNô,3ô 
ôDGô	!ô1ô
ô
%ô41ð €Kôô@ô
ô
ôVô Vô$CôDñ ˜hŸlšlÓ+€NÙ˜hŸlšlÓ+€NÙ˜Ÿ™Ó'€IÙ˜HŸOšOÓ,€Lá˜HŸLšLÓ)€LÙ˜xŸ|š|Ó,€OÙ% h§o¢oÓ6ÐÙ" 8×#4Ò#4Ó5ÐÙ! (×"2Ò"2Ó3ÐÙ˜XŸ\š\Ó*€MÙ §¢Ó-ÐÙ˜(Ÿ,š,Ó'€JÙ˜xŸ|š|Ó,€OðÑ.ØØuôñ ˆx×ÒÓ ó"€Mñ ˜XŸ_š_Ó-€MÙ˜XŸ_š_Ó-€MÙ˜(Ÿ-š-Ó(€JÙ˜ŸšÓ&€IÙ˜(Ÿ,š,Ó'€Já˜XŸ]š]Ó+€MÙ §¢Ó.ÐÙ& x×'7Ò'7Ó8ÐÙ# H×$6Ò$6Ó7ÐÙ" 8×#4Ò#4Ó5ÐÙ˜hŸmšmÓ,€NÙ  §¢Ó/ÐÙ˜8Ÿ=š=Ó)€KÙ §¢Ó.ÐÙ˜h×.Ò.Ó/€NÙ˜h×.Ò.Ó/€NÙ˜8Ÿ=š=Ó)€KÙ˜8Ÿ=š=Ó)€KÙ˜(Ÿ,š,Ó'€Jô	Xð ×Ñ˜7Ò"ô	;ô
ô@ô"ö7!ñr  ØØiôóó	ðô)ô
Vð
 €MØ!%Ðá+¨H¯N©N¸EÓBÐÙ ,¨X¯^©^¸UÓ CÐÙ ,¨X¯]©]¸EÓ BÐÙ!-¨h¯m©m¸UÓ!CÐôô(ð&àEð&ð ð&ð 
ô	&ðP ó
ó ð
ô -ô$'ô
*ô&ô&ô/ôô;ô)ôô0ô2ñ  ØðAôó
'óð
'ôõ.õ`=õ
?õ*ð !ÑØ�IõðÑõ!õ@<ñ 	ÙÙÙÙÙÙØØ
ØØØ
ðÑõQô
ð ;?ñ	
Ø'7ð	
à	õ	
õ
ô>õ
ð ó5ó ñ5ñ ×Òð*Ø9ð*à	ó*ó ñ*õ
ð"Øð"Ø%/ð"ØBEð"à	õ"ð+Ø(ð+à	$õ+õ(Ið&pà!ðpð ðpð 7ð	pð
 
õpðd ð
Øð
Ø#:ð
à	ó
ó ñ
ð@ 15Ø)-à15ñ-M;àðM;ð (ðM;ð !ð	M;ð
 "ðM;ð #ðM;ð "ðM;ð 4ðM;ð 5ðM;ð (BðM;ð  3ðM;ð ðM;ð ðM;ð ðM;ð (ðM;ð  %ð!M;ð" 3ð#M;ð& .ð'M;ð( 'ð)M;ð, /ð-M;ð. 
÷/M;ô M;r°   )Ú	metaclassc                  óØ   ‡ — e Zd Zedd„«       Zej                  dd„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Zdd	„Zdd
„Zˆ xZS )rL  c                 ó"   — t         j                  S r§   )ÚtlsrÜ  rÕ   r°   r®   rÜ  z InstructionTranslator.current_tx³  s   € ä�~‰~Ðr°   c              #  óì   K  — t        t        dd «      }| t        _        	 d –— |�|t        _        y t        t        d«      rt        `y y # |�|t        _        w t        t        d«      rt        `w w xY w­w)NrÜ  )r…  rm  rÜ  r5  )rÉ   rÑ  s     r®   Úset_current_txz$InstructionTranslator.set_current_tx·  sh   è ø€ äœ˜\¨4Ó0ˆØŒŒð	#ÛàÐ Ø!&”•Üœ˜lÔ+Ü‘Nð ,øð Ð Ø!&”•Üœ˜lÔ+Ü‘Nð ,üs   ‚A4 A
 ¤&A4Á
'A1Á1A4c                óÊ  •—  t        «       t        j                  d|j                  › d|d   › d|d   › �«       t        ‰!| �  t        ||	| ||||||||
|¬«      ||||||i i d d ||d||||¬«       | j                  «        t        | j                  j                  «      5  | j                  «       5  |
| _        || _        | j                  r| j                  st        d	«      ‚i | _        t!        | j#                  «       «      }d }d }|j$                  |j&                  z   }|j(                  t*        z  r|j,                  |   }|d
z  }|j(                  t.        z  r|j,                  |   }t1        j2                  |«      j5                  dd «      }|j7                  «       D ]r  \  }}||vsŒd }|r)t9        |j5                  |i «      j7                  «       «      }t;        j<                  |t?        |d|||k(  ||k(  ¬«      | ¬«      }|| j                  |<   Œt | j                  j@                  }| jC                  «       D ]z  }||v rN||   }t?        |dd¬«      }t;        j<                  ||| ¬«      }|jE                  «       }|jG                  ||«       n|jE                  «       }||_$        || j                  |<   Œ| |€t        d«      ‚tK        | jM                  «       |«      D ]i  \  }}tO        |«      } t?        |d¬«      }	 t;        j<                  |jP                  || ¬«      }|jY                  | ||«      }||_$        || j                  |<   Œk t[        |d¬«      | _.        t_        «       | _0        |r.tT        j:                  jc                  | j                  «      | _        d d d «       d d d «       y # tR        $ r tU        jV                  «       }Y Œ¬w xY w# 1 sw Y   Œ5xY w# 1 sw Y   y xY w)Nztorchdynamo start tracing rê  r  rè   r  )Úlocal_scoperš  rÒ  Útorch_function_mode_stackr+  r¢  r   )r(  rv  rG  rz  r|  rñ  rÔ  rŒ  r�  rŽ  r�  rÒ  r  r—  r$  rš  r  r¢  z4Export without one graph - something has gone wrong.r   ÚdynamismT)Úis_inputrs  Ú
is_varargsÚis_varkwr½  )rt  Úis_derefed_cell_contentsz'expected closure is not None to be true)rw  F)Ú	skip_next)2r"  r   ÚINFOrØ  rU  rV  rE   Ú_throw_if_in_functorchr   r(  rÍ  ro  r+  r  rÌ   rŒ  r  rÃ  Úco_argcountÚco_kwonlyargcountr  ru   Úco_varnamesrv   r2   r  r„  r  Ú	frozensetr~   ry  rU   r+  r¯  rt  rq  rr  rI  r³  rT   Úcell_contentsró  r   ÚDeletedVariableÚtrack_cell_existingr•   rŽ  r‘   r�  Úrealize_all)"rÉ   rv  rÒ  rG  rz  r|  rñ  rr  rÔ  Úcompiler_fnr+  r  Úexport_constraintsÚframe_stater$  rš  r  r¢  rÃ  Úvarargs_nameÚ
varkw_nameÚ_vararg_idxrs  r¸   r¯  Úlocal_dynamismrY  r+  Úcontents_sourcerQ  Úcell_varrP  Úcell_sourcer\  s"                                    €r®   rV  zInstructionTranslator.__init__Ã  s5  ø€ ð( 	Œ‹Ü�L‰LØ(¨¯©Ð(8¸¸,À}Ñ:UÐ9VÐVWÐXdÐeuÑXvÐWwÐxô	
ô 	‰ÑÜØØØØØ"ØØ$Ø&ØØ*CØ#Øôð &ØØØ!ØØ%ØàØ*.Ø"&ØØØØ+Ø%Ø/ØðA 	ô !	
ðF 	×#Ñ#Ô%ô �T—[‘[×0Ñ0Ó1ñ w	°4×3FÑ3FÓ3Hñ w	Ø#,ˆDŒNØ ˆDŒKØ�{Š{Ø—~’~Ü(ØNóð ð $&ˆDÔ ä*-¨d×.DÑ.DÓ.FÓ*GÐð (,ˆLØ%)ˆJØ ×,Ñ,¨v×/GÑ/GÑGˆKØ�‰¤Ò+Ø%×1Ñ1°+Ñ>�Ø˜qÑ �Ø�‰¤Ò/Ø#×/Ñ/°Ñ<�
ä#×/Ñ/°Ó7×;Ñ;¸JÈÓMˆHØ'Ÿ~™~Ó/ò 5‘��eØÐ0Ò0Ø%)�NÙÜ)2°8·<±<ÀÀbÓ3I×3OÑ3OÓ3QÓ)R˜Ü-×4Ñ4ØÜ#Ø Ø%)Ø%3Ø(,°Ñ(<Ø&*¨jÑ&8ôð  ô
�Cð 25�D×(Ñ(¨Ò.ð!5ð(  Ÿ;™;×3Ñ3ˆLØŸ™›ò %6�Ø˜8Ñ#à$ T™N�Eô* '2ØØ!%Ø15ô'�Oô
 5H×4NÑ4NØ˜°4ô5�Lð  ,×:Ñ:Ó<�HØ ×+Ñ+¨H°lÕCà+×:Ñ:Ó<�HØ&*�Ô#Ø-5�×$Ñ$ TÒ*ðK%6ðR ˆÜ$Ð%NÓOÐOÜ! $§-¡-£/°7Ó;ò 6‘
��dÜ-¨dÓ3�Ü"-¨dÈTÔ"R�ð?Ü#6×#=Ñ#=Ø×*Ñ*¨OÀô$�Lð (×;Ñ;Ø  |ó�ð '+�Ô#Ø-5�×$Ñ$ TÒ*ð6ô  2LØ)Øô2ˆDÔ.ô
 *=Ó)>ˆDÔ&áô (1×'DÑ'D×'PÑ'PØ×(Ñ(ó(�Ô$÷kw	÷ w	ð w	øôD "ò ?ä#,×#<Ñ#<Ó#>’Lð?ú÷Ew	ð w	ú÷ w	ð w	úsQ   ÂOÂ0C7OÆ(EOË;"N*ÌA<OÎOÎ*O
	ÏOÏ	O
	Ï
OÏO	ÏOÏO"c                óÞ  — t         j                  j                  d«      }t        j                  | j
                  j                  d| j
                  j                  «      }t         j                  j                  j                  «       }t         j                  j                  j                  j                  t         j                  j                  j                  j                  t         j                  j                  j                  j                  f}|�\|j                  «       |v rI||urD|j                  «       j                  j!                  «       }d|› d|› d|› d�}t#        dd|g ¬	«       y y y y )
NÚeagerrƒ  zhIf you are reaching here, it means dynamo failed for one of the following reasons:
- Calling torch.func.zP(compiled_fn) function from eager mode is not supported. Ensure that torch.func.zp is also wrapped within a torch.compile function. For more information, see PyTorch issue #128711.
- torch.func.z2(fn) requires the function to be inlined by dynamoz%Unsupported functorch tracing attemptrç   r¹  )r‘  Ú_dynamoÚlookup_backendrM  Úgetattr_staticr(  rƒ  Ú_CÚ
_functorchÚpeek_interpreter_stackÚTransformTypeÚVmapÚGradÚJvpr¯  r¸   Úlowerr=   )rÉ   rŽ  rƒ  ÚciÚforbidden_keysr¸   r`  s          r®   rz  z,InstructionTranslator._throw_if_in_functorch{  s0  € ä—‘×,Ñ,¨WÓ5ˆÜ×,Ñ,Ø�K‰K×#Ñ# ]°D·K±K×4KÑ4Kó
ˆô �X‰X× Ñ ×7Ñ7Ó9ˆä�H‰H×Ñ×-Ñ-×2Ñ2Ü�H‰H×Ñ×-Ñ-×2Ñ2Ü�H‰H×Ñ×-Ñ-×1Ñ1ð
ˆð ˆ>˜bŸf™f›h¨.Ñ8¸[ÐPUÑ=UØ—6‘6“8—=‘=×&Ñ&Ó(ˆDð(à(, vð .*Ø*.¨ð 0 ð !%˜vÐ%WðYð ô Ø?ØØØö	ð >VÐ8ˆ>r°   c                ó²   — t        |t        «      r| j                  |j                     S t        |t        «      r| j
                  |j                     S t        ‚r§   )rV  rU   rG  rr  rR   rz  rÊ  rJ  )rÉ   rœ  s     r®   Úget_example_valuez'InstructionTranslator.get_example_valueš  sE   € Ü�fœkÔ*Ø—=‘= ×!2Ñ!2Ñ3Ð3Ü�fœlÔ+Ø—>‘> &×"4Ñ"4Ñ5Ð5Üˆr°   c                óÌ   — | j                   j                  «       D ]G  }t        |t        «      sŒt	        |j                  «       t        j                  j                  «      sŒG y y)NTF)	rŒ  rË  rV  r˜   r.  rî  r‘  ÚnnÚModule)rÉ   r  s     r®   Ú$symbolic_locals_contain_module_classz:InstructionTranslator.symbolic_locals_contain_module_class¡  sR   € Ø×%Ñ%×,Ñ,Ó.ò 	ˆAÜ˜!Ô5Õ6¼:Ø×$Ñ$Ó&¬¯©¯©õ<ñ ð		ð
 r°   c                óÎ   — t        | j                  «      rP| j                  d   x}r>t        |t        «      r-t	        t        | |«      t        «       ¬«      | j                  d<   y y y y )Nr‚  rÃ  )rë   r’  rV  rx   r€   rc   rf   )rÉ   r  s     r®   Ú"replace_tos_if_return_is_generatorz8InstructionTranslator.replace_tos_if_return_is_generator©  s\   € ä�—
‘
ŒOØŸ
™
 2™Ð&�Ð&Ü˜3Ô <Ô=ä1Ü  cÓ*Ü.Ó0ôˆD�J‰J�rŠNð >ð 'ð r°   c                ó¾  — | j                  «        | j                  €t        d«      ‚| j                  €t        d«      ‚t	        «       j                  d| j                  | j                  z
  «       t        j                  s”| j                  j                  «       dk(  rw| j                  sk| j                  «       s[| j                  sO| j                  sC| j                  s7| j                  s+t!        j"                  dt%        | j&                  «      › �«      ‚d | _         t)        «       t*        j,                  d| j&                  j.                  › d|j0                  › d�«       t2        j5                  d	«       | j                  j7                  | t9        d
| j;                  «       gd¬«      |j0                  dk(  rdnd¬«      }t=        |«      dk7  rt        d«      ‚|d   j>                  rt        d«      ‚| j                  jA                  | jC                  ||d   jD                  «      t        jF                  rd| jI                  d«      › �g«       tJ        ‚d «       tJ        ‚)Nr  rÄ  rÅ  r   zhNo ops traced for the FX graph. `torch.compile` will skip the frame and fall back to eager.
Frame info: ztorchdynamo done tracing rê   r™  zreturn triggered compileÚreturn_valueF)r&  r§  r   rÈ  z7expected len(all_stack_locals_metadata) == 1 to be truezEexpected not all_stack_locals_metadata[0].stack_null_idxes to be truez__ret = r’  )&r£  rÀ   rÌ   r�  r^   rÆ  r   Úallow_empty_graphsr(  rµ  r˜  r¡  r  r+  rÄ   rö  r   Ú	SkipFramer8   rÒ  r"  r   ry  rØ  rí   r!  r®  rÕ  rD   rÖ  rë   r}  rÛ  rh  r  Úgenerate_pycoderÀ  rA  )rÉ   rÁ   râ  s      r®   Ú_returnzInstructionTranslator._return´  s1  € Ø×/Ñ/Ô1Ø×#Ñ#Ð+Ü ØJóð ð ×ÑÐ#Ü Ð!SÓTÐTÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ô
 ×)Ò)Ø—‘×'Ñ'Ó)¨QÒ.Ø×2Ò2Ø×=Ñ=Ô?Ø—K’KØ—N’NØ×-Ò-Ø×3Ò3ä—-‘-ðÜ0°·±Ó=Ð>ð@óð ð
 $(ˆÔ ØŒ‹Ü�L‰LØ'¨¯©×(;Ñ(;Ð'<¸B¸t¿{¹{¸mÈ1ÐMô	
ô 	�	‰	Ð,Ô-Ø$(§K¡K×$@Ñ$@ØÜ%Ø ×!3Ñ!3Ó!5Ð 6ÀEôð !ŸK™K¨>Ò9‘q¸qð %Aó %
Ð!ô Ð(Ó)¨QÒ.Ü ØIóð ð % QÑ'×8Ò8Ü ØWóð ð 	�‰×+Ñ+Ø×)Ñ)¨$Ð0IÈ!Ñ0L×0VÑ0VÓWä×%Ò%ð ˜×4Ñ4°WÓ=Ð>Ð?Ð@ô	
ô Ðð ô		
ô Ðr°   c                ó&   — | j                  |«       y r§   ©r©  r  s     r®   r§  z"InstructionTranslator.RETURN_VALUEï  ó   € Ø�‰�TÕr°   c                ó&   — | j                  |«       y r§   r«  r  s     r®   r¨  z"InstructionTranslator.RETURN_CONSTò  r¬  r°   )rÎ   rL  r  )$rv  r•  rÒ  r  rG  r¤   rz  r¤   r|  r¤   rñ  ztuple[Any, ...] | Nonerr  r   rÔ  rC   rƒ  r   r+  rÂ   r  rÂ   r„  r   r…  r   r$  r×   rš  ra  r  r  r¢  r¡  rÎ   rÏ   ró   )rœ  rW   rÎ   r   r  r  )rÑ   rÒ   rÓ   r#  rÜ  rh  ri  ro  rV  rz  r�  r¡  r£  r©  r§  r¨  r^  r_  s   @r®   rL  rL  ²  s  ø„ Øòó ðð ×Ñò	#ó ð	#ðvà'ðvð ðvð !ð	vð
 "ðvð #ðvð (ðvð $'ðvð "ðvð ðvð ðvð ðvð  ðvð ðvð (ðvð  %ð!vð" 3ð#vð$ 'ð%vð& 
õ'vópó>óó	ó9óv÷r°   rL  r6  ÚINPLACErÌ  ÚBINARY_c              #  ód  K  — t         j                  sd–— y| j                  €t        «       | _        | j                  j	                  «       }| j                  j                  «       }| j                  j                  |j                  |j                  |j                  t        j                  «       «       d}	 d–— d}| j                  j                  «       }t        j                  «       }|rÆ|�Ã |«       }||j                  z
  }	|	|j                  z
  }
t        |j                   |j"                  |j$                  |	|
t'        |j(                  «      ||r|d   nd|r|d   nd|r|d   nd|j*                  |¬«      }| j                  j-                  |«       | j                  j/                  |	«       yyy# | j                  j                  «       }t        j                  «       }|rÆ|�Ã |«       }||j                  z
  }	|	|j                  z
  }
t        |j                   |j"                  |j$                  |	|
t'        |j(                  «      ||r|d   nd|r|d   nd|r|d   nd|j*                  |¬«      }| j                  j-                  |«       | j                  j/                  |	«       w w w xY w­w)a[  
    Context manager for profiling inline calls.

    Args:
        output: The OutputGraph containing profiler_state
        code: The code object being inlined (for timing metadata)
        get_inline_depth: Callable that returns inline_depth (called after work completes)

    Yields:
        None (profiling happens around the with block)
    NFTr   r   rý  )Ú	func_namer½   ÚfirstlinenoÚ
cumtime_nsÚ
tottime_nsÚbytecode_countr—  Úcaller_func_nameÚcaller_filenameÚcaller_firstlinenoÚis_primitive_callÚ
call_stack)r   Údynamo_profilerÚprofiler_stater   Úget_current_callerÚget_call_stackrF  rØ  r  r  ÚtimeÚtime_nsr×  Ústart_time_nsÚchild_time_nsr   r±  r½   r²  rë   Úco_coder¹  Úrecord_timingÚadd_child_time)r(  r�  Úget_inline_depthÚcaller_inforº  Útrace_successÚstack_entryÚtrace_end_nsr—  r³  r´  Útimings               r®   Úprofile_inline_callrÌ     sn  è ø€ ô" ×!Ò!ÛØà×ÑÐ$Ü 3Ó 5ˆÔà×'Ñ'×:Ñ:Ó<€KØ×&Ñ&×5Ñ5Ó7€Jà
×Ñ×ÑØ�‰�d×&Ñ&¨×(;Ñ(;¼T¿\¹\»^ôð €Mð=ÛØˆà×+Ñ+×/Ñ/Ó1ˆÜ—|‘|“~ˆá˜[Ð4Ù+Ó-ˆLØ%¨×(AÑ(AÑAˆJØ# k×&?Ñ&?Ñ?ˆJä(Ø%×/Ñ/Ø$×-Ñ-Ø'×3Ñ3Ø%Ø%Ü" 4§<¡<Ó0Ø)Ù3> ¨Q¢ÀDÙ2= ¨A¢À4Ù5@ ;¨q¢>ÀdØ"-×"?Ñ"?Ø%ôˆFð ×!Ñ!×/Ñ/°Ô7Ø×!Ñ!×0Ñ0°Õ<ð) 5ˆ=øð ×+Ñ+×/Ñ/Ó1ˆÜ—|‘|“~ˆá˜[Ð4Ù+Ó-ˆLØ%¨×(AÑ(AÑAˆJØ# k×&?Ñ&?Ñ?ˆJä(Ø%×/Ñ/Ø$×-Ñ-Ø'×3Ñ3Ø%Ø%Ü" 4§<¡<Ó0Ø)Ù3> ¨Q¢ÀDÙ2= ¨A¢À4Ù5@ ;¨q¢>ÀdØ"-×"?Ñ"?Ø%ôˆFð ×!Ñ!×/Ñ/°Ô7Ø×!Ñ!×0Ñ0°Õ<ð) 5ˆ=üs    ‚B5J0Â8F5 Â>C7J0Æ5C8J-Ê-J0c                  óX  ‡ — e Zd ZU dZded<   ded<   e	 d	 	 	 	 	 	 	 	 	 	 	 dd„«       Ze	 	 	 	 dd„«       Ze	 d	 	 	 	 	 	 	 	 	 	 	 dd„«       Z	dd	„Z
	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd
„Zedd„«       Zdd„Zdd„Zdˆ fd„Z	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Z	 	 	 	 d d„Zdˆ fd„Zdˆ fd„Zˆ xZS )!rÔ  z Trace and inline a called methodr<  Úsymbolic_resultrÐ   rÜ  c                óÐ   ‡— d }t        ‰j                  |j                  «       ˆfd„«      5  | j                  ‰||||¬«      }|j	                  «       cd d d «       S # 1 sw Y   y xY w)Nc                 ó"   •— ‰ j                   dz   S r  ©r—  )rÜ  s   €r®   r¯   z;InliningInstructionTranslator.inline_call.<locals>.<lambda>P  s   ø€ °F×4GÑ4GÈ!Ñ4K€ r°   rÐ  )rÌ  r(  rÓ  Úbuild_inline_tracerÚinline_call_)r  rÜ  Úfuncr¬   r  rÑ  Útracers    `     r®   rÕ  z)InliningInstructionTranslator.inline_callE  sm   ø€ ð ˆÜ Ø�M‰M˜4Ÿ=™=›?Ó,Kó
ñ 
	)ð ×,Ñ,ØØØØØ*Cð -ó ˆFð ×&Ñ&Ó(÷
	)÷ 
	)ò 
	)ús   ¬&AÁA%c                óŽ  — | j                  «       rt        dt        | «      dg ¬«       t        | t        «      r†t        j                  | j                  «       dd«      rat        j                  | j                  «       dd «      }t        dt        | j                  «       «      d| j                  «       › d	|› d
�dg¬«       t        j                  | d¬«      }|j                  rãddlm} t        | d«      rDt        | j                  d«      r.| j                  j                  |u rt        j                   dd«      S t        | d«      r| j                  j"                  nd}d|› d�g}d| j%                  «       vr|d|› d�dgz  }t        dd|› d| j'                  «       › d| j%                  «       › d|j(                  › �d|› d �|¬«       |S )!NzInline attempt with __self__z–Attempted to inline a function with the `__self__` attribute. Dynamo is expected to decompose method calls into function calls with a `self` argument.r¹  Ú_torchdynamo_disableFÚ_torchdynamo_disable_msgz2Skip inlining `torch.compiler.disable()`d functionzSkip inlining function z= since it was wrapped with `torch.compiler.disable` (reason: r™  z(Remove the `torch.compiler.disable` callT)Úis_inlined_callr   )Ú!produce_trampoline_autograd_applyrR  Ú_originz"allowlist in dynamo known functionrç   zAvoid calling the function `rQ  r�  z:Apply `@torch._dynamo.dont_skip_tracing` to the function `zw` to force tracing into the function. More graph breaks may occur as a result of attempting to trace into the function.z Please file an issue to PyTorch.z.Attempted to inline function marked as skippedz
qualname: z, name: z, filename: `z`, skip reason: z?Dynamo developers have intentionally marked that the function `z` should not be traced.)Úhas_selfr=   r¼   rV  r{   rM  r‘  Úget_functionr   Úcheck_verboseÚskippedÚtorch._dynamo.variables.miscrÚ  r5  rR  rÛ  Ú
SkipResultrÓ   Úget_filenameÚget_namerÅ   )rÔ  r`  r  rÚ  Úfn_qualnamer½  s         r®   Úcheck_inlineablez.InliningInstructionTranslator.check_inlineable[  s÷  € ð �=‰=Œ?ÜØ6Ü˜D›	ðkàõô �dÔ0Ô1´g×6LÑ6LØ×ÑÓÐ!7¸ô7
ô ×(Ñ(Ø×!Ñ!Ó#Ð%?ÀóˆCô ØLÜ˜D×-Ñ-Ó/Ó0Ø5°d×6GÑ6GÓ6IÐ5Jð K:Ø:=¸¸aðAð ?ðõô ×*Ñ*¨4ÀÔFˆØ�>Š>ÝVô
 ˜˜dÔ#Ü˜DŸG™G YÔ/Ø—G‘G—O‘OÐ'HÑHô #×-Ñ-ØÐ?óð ô 3:¸$ÀÔ2E˜$Ÿ'™'×.Ò.È2ˆKà.¨{¨m¸2Ð>ðˆEð  × 1Ñ 1Ó 3Ñ3ØØPÐQ\ÐP]ð ^hð hð 7ð	ñ �ô ØHØ$ [ M°¸$¿-¹-»/Ð9Jð KØ"×/Ñ/Ó1Ð2Ð2BÀ6Ç=Á=À/ðSà]Ð^iÐ]jð k(ð (àõð ˆr°   c                óª
  ‡ ‡‡‡— t        |t        t        t        f«      st	        d«      ‚|j                  «       Šd }‰ j                  j                  }t        j                  s"|r |j                  j                  ‰d «      x}r|}|€Ot        j                  |«      }|j                  durt	        d«      ‚t        j                  s|r||j                  ‰<   d }	 |j                  ‰ ||«      }|€t	        d«      ‚t1        j2                  |j5                  «       «      D ]8  }t        |t6        «      rŒt#        dd|› d|› �dg t,        j8                  ¢¬«       Œ: ‰j:                  dv r\|r-t        |d   t<        j>                  t<        j@                  f«      s-t#        dd‰j:                  › d|› �d‰j:                  › d�g ¬«       d}tB        jD                  jF                  jH                  jK                  d«      r&dtM        jN                  ‰«      jM                  «       › �}tP        jR                  dk\  r@‰ jT                  Š‰ jV                  Šd%ˆˆˆ ˆfd„}tX        j[                  dt]        |«      «       t^        j[                  d ‰||j`                  «       |�r‡|d   }d!}t        |tb        «      rU|je                  «       sEtg        |ji                  «       tB        jj                  jl                  «      r|jo                  «       }nd}|�rt        |tp        «      r‰‰ j                  js                  |jt                  «      }t        |tB        jv                  jx                  «      r¿t{        j|                  |«      t        j€                  |j‚                  j„                  «      d"<   nt        |t†        «      ro|jˆ                  }t        |tB        jv                  jx                  «      r?t{        j|                  |«      t        j€                  |j‚                  j„                  «      d"<   t        |tŠ        «      rt	        d#«      ‚t�        ‰«      r3t�        ‰ ‰|‰ j�                  ‰ j’                  ‰ j”                  ||¬$«      }|S t        ‰ ‰|‰ j�                  ‰ j’                  ‰ j”                  ||¬$«      }|S # t         $ r¢}	t#        dd|j%                  «       › d|j'                  «       › d|j                  «       j(                  › d|D �
cg c]  }
|
j+                  «       ‘Œ nc c}
w c}
› d	|› �
d
|j%                  «       › d�g t,        j.                  ¢|	¬«       Y d }	~	�Œad }	~	ww xY w)&Nz~expected isinstance( func, ( UserFunctionVariable, NestedUserFunctionVariable, LocalGeneratorFunctionVariable, ), ) to be trueFz+expected result.skipped is False to be truez2failed to bind arguments when attempting to inlinezfunc='z' rè   z	; args = z; kwargs = z4Argument mismatch when attempting to trace function rU  r#  z*expected sub_locals is not None to be truez:Encountered unconverted argument when attempting to inlinezfunc: z, arg: zWAn argument to an inlined function was not successfully converted to a VariableTracker.r¹  )r®  rè  r±  Ú__delattr__r   zJUnsupported __setitem__/__setattr__/__delitem__/__delattr__ inline attemptzcode name: z, args: zAttempted to inline z: where first argument (self) is not a user-defined object.rç   Úbytecoderü   r6  c                 ó®   •— ‰j                  ‰j                  j                  ¬«      } t        ‰‰«      j	                  «       }d‰j
                  › d| › d|› �S )N)r¿   zTRACE inlined call z from rü   )rÜ  rì  r¿   r]   rà  rØ  )Úheaderr‹  r�  Úcur_instrÜ  Úparent_codes     €€€€r®   Úget_trace_call_log_strzQInliningInstructionTranslator.build_inline_tracer.<locals>.get_trace_call_log_strÿ  s[   ø€ Ø×7Ñ7Ø#×-Ñ-×4Ñ4ð 8ó �ô 2°+¸xÓH×OÑOÓQ�Ø,¨T¯\©\¨N¸&ÀÀÈÈ4È&ÐQÐQr°   rä  zINLINING %s%s, %sTrt  z>expected not isinstance(func, SkipFunctionVariable) to be truerÐ  r  )KrV  r{   ry   rw   rÌ   rÓ  r(  rÍ  r   Údont_skip_tracingÚpreviously_inlined_functionsr„  rÔ  rå  rß  Ú	bind_argsrû  r=   rã  râ  r  r  r   rø  r»  rÊ  rË  rg   r÷  rØ  r   r›   r˜   r‘  rñ  Ú	_internalÚ	log_stateÚis_artifact_enabledri  ÚBytecoderZ  rÚ  rÞ  rÒ  Útrace_call_logr®  ra   r!  rÅ   r~   Úis_realizedr.  Ú	peek_typerŸ  r   rÛ  rŠ   rü  rý  r’  r-  r€  r�  r2   r  Úforwardr  r‹   r¯  rz   r/   Ú&InliningGeneratorInstructionTranslatorr�  rŽ  r�  )rÜ  rÔ  r¬   r  rÑ  r  Útracing_ctxÚprevious_resultÚ
sub_localsrá  rA  r  rù  rí  Úarg0Úshould_checkÚmodulerÕ  r�  rë  rì  s   `                 @@@r®   rÒ  z1InliningInstructionTranslator.build_inline_tracer�  sÙ  û€ ô Øä$Ü*Ü.ðô
ô !ð Qóð ð  $Ÿ}™}›ˆØˆØ—m‘m×3Ñ3ˆô
 ×'Ò'©KØ"-×"JÑ"J×"NÑ"NØ�dó#ð ˆð ð )�àˆ>Ü2×CÑCÀDÓIˆFØ�~‰~ UÑ*Ü$Ð%RÓSÐSä×+Ò+±ØAG�×8Ñ8¸Ñ>àˆ
ð	ØŸ™¨°°fÓ=ˆJð ÐÜ Ð!MÓNÐNä—‘ ×!2Ñ!2Ó!4Ó5ò 	ˆAÜ˜a¤Õ1ÜØXØ$ T F¨'°!°Ð5Ø yØ9Ô-×8Ñ8Ð9ö	ð	ð �<‰<ð 
ñ 
ñ ÜØ�Q‘ä×7Ñ7Ü×6Ñ6ðôô ØdØ% d§l¡l ^°8¸D¸6ÐBØ2°4·<±<°.Ð@zÐ{Øõ	ð ˆô �>‰>×#Ñ#×-Ñ-×AÑAÀ*ÔMØœ#Ÿ,™, tÓ,×0Ñ0Ó2Ð3Ð4ˆFÜ×Ñ˜wÒ&Ø×1Ñ1ˆHØ Ÿ-™-ˆK÷Rð Rô × Ñ  ¤zÐ2HÓ'IÔJÜ�	‰	Ð% t¨V°V·]±]ÔCò Ø˜‘7ˆDØˆLÜ˜$Ô 3Ô4¸T×=MÑ=MÔ=OÜ˜dŸn™nÓ.´·±·±Ô@ØŸ<™<›>‘Dà#(�LâÜ˜dÔ$4Ô5Ø#Ÿ]™]×8Ñ8¸¿¹ÓI�FÜ! &¬%¯(©(×*>Ñ*>Ô?ô $ŸK™K¨Ó/ô %×0Ñ0°·±×1HÑ1HÓIØ.òô   Ô&CÔDØ!ŸZ™Z�FÜ! &¬%¯(©(×*>Ñ*>Ô?ô $ŸK™K¨Ó/ô %×0Ñ0°·±×1HÑ1HÓIØ.ñô �dÔ0Ô1Ü ØPóð ô ˜ÔÜ;ØØØØ×'Ñ'Ø×4Ñ4Ø×,Ñ,ØØ*Cô	ˆFð* ˆô 3ØØØØ×'Ñ'Ø×4Ñ4Ø×,Ñ,ØØ*Cô	ˆFð ˆøôo ò 
	ÜØLØ  §¡£Ð 1°°D×4EÑ4EÓ4GÐ3HÈÈ$Ï-É-Ë/×JhÑJhÐIið jØ8<Ö=°˜3Ÿ?™?Õ,Ñ=ùÔ=Ð>¸kÈ&ÈðSàRÐSW×S`ÑS`ÓSbÐRcÐcdÐeðÜ&×1Ñ1ðð ÷	ó 	ûð
	ús%   ÃR' Ò'	UÒ0AUÓ8TÔ8UÕUc                ó–  — | j                   }d|_        d|_        | j                  }t	        j
                  «       }|j                  r| j                  |j                  «      }	 |5  | j                  «        d d d «       | j"                  |_        d|_        | j$                  j&                  rt)        j*                  d «      S | j,                  €t/        d«      ‚| j0                  |j0                  u r%|j2                  j5                  | j2                  «       |xj6                  | j6                  z  c_        t        j                  d|«       | j$                  j8                  j:                  j=                  |«       t>        j@                  stC        | tD        «      r | jF                  r”tI        |«      r}tC        | tD        «      rm| jJ                  ratC        | tD        «      st/        d«      ‚g }| j,                  jM                  «       s| j,                  g}t        jN                  tP        | |¬	«       y | j,                  S tI        |«      r_tC        | tD        «      st/        d«      ‚| j,                  jM                  «       st/        d
«      ‚tS        | jT                  tW        «       ¬«      S | j,                  S # 1 sw Y   �Œ;xY w# t        j                  $ r#}d|› d|› �}t        j                  |«       ‚ d }~wt        t        f$ r}d|_        ‚ d }~wt         $ r t        j                  d|«       ‚ w xY w# | j"                  |_        d|_        w xY w)NFTz!Observed exception DURING INLING z : zFAILED INLINING %sz4expected self.symbolic_result is not None to be truezDONE INLINING %szLexpected isinstance(self, InliningGeneratorInstructionTranslator) to be trueró  z;expected self.symbolic_result.is_constant_none() to be truerÃ  ),rÜ  rž  rŸ  rÒ  rh  Únullcontextrœ  rÒ  r7  r   r   r!  r®  r>   r?   r%  r­  rÄ   r(  r)  rm   ry  rÎ  rÌ   rz  r�  rÓ  r˜  rÍ  Útraced_coderì   r   rÒ  rV  rù  Úis_generator_from_ctx_managerr/   Úgenerator_exhaustedrs  rú  rÝ  r€   Úgenerated_itemsrf   )rÉ   rÜ  r�  Ú
strict_ctxrá  r`  r¬   s          r®   rÓ  z*InliningInstructionTranslator.inline_call_A  sÆ  € Ø—‘ˆØ&+ˆÔ#Ø(,ˆÔ%Ø�{‰{ˆä$×0Ñ0Ó2ˆ
Ø×"Ò"Ø×5Ñ5°f×6MÑ6MÓNˆJð	2Øñ Ø—‘”
÷ð& +/×*CÑ*CˆFÔ'Ø,1ˆFÔ)à�;‰;×"Ò"ä#×*Ñ*¨4Ó0Ð0à×ÑÐ'Ü Ð!WÓXÐXà�>‰>˜V×-Ñ-Ñ-à×#Ñ#×*Ñ*¨4×+@Ñ+@ÔAà×(Ò(¨D×,JÑ,JÑJÕ(ä�	‰	Ð$ dÔ+Ø�‰×#Ñ#×/Ñ/×6Ñ6°tÔ<ä×4Ò4Ü�tÔCÔDØ×2Ò2ô ˜TÔ"Ü˜tÔ%KÔLØ×,Ò,ä! $Ô(NÔOÜ(Øfóð ð
 �Ø×+Ñ+×<Ñ<Ô>Ø ×0Ñ0Ð1�DÜ×,Ñ,¬]¸DÀtÖLà×+Ñ+Ð+ä˜DÔ!Ü! $Ô(NÔOÜ(Øfóð ð ×+Ñ+×<Ñ<Ô>Ü(ØUóð ô ,Ø×(Ñ(Ü"2Ó"4ôð ð
 ×+Ñ+Ð+÷Uñ ûä×$Ñ$ò 	Ø5°d°V¸3¸q¸cÐBˆCÜ�I‰I�cŒNàûÜœYÐ'ò 	ð !ˆAŒLØûÜò 	Ü�I‰IÐ*¨DÔ1Øð	ûð +/×*CÑ*CˆFÔ'Ø,1ˆFÕ)úsH   Á#J< Á%J/Á6J< Ê/J9Ê4J< Ê<L+ËK-Ë-L+Ë?LÌ$L+Ì+L. Ì.Mc	                ó–  •— |j                  «       }	|	d   }
t        |
t        «      s|
j                  }
|j                  j
                  }|r|j                  j                  |«      nd }|�%|j                  }|j                  }|j                  }not        |«      }t        |«       t        |«      }t        t        t!        «       D �ci c]  }|t#        ||«      “Œ c}«      }|rt%        |||¬«      |j                  |<   t&        ‰| �Q  |j                  i |	|
||||||||j*                  |j,                  dz   |j.                  |j0                  |j2                  |j4                  |¬«       || _        || _        |j:                  | _        d | _        |j>                  jA                  «       | _        |jB                  | _!        || _"        y c c}w )NÚ__builtins__)rv  rÇ  rÔ  r   )r(  rG  rz  r|  rŒ  r�  rŽ  r�  rv  rÔ  rÒ  r  r—  r$  rš  r  r¢  rÇ  )#Úget_globalsrV  r  Ú__dict__r(  rÍ  Úinlined_code_cacher„  rv  rÇ  rÔ  r"   r!   r   r   rC   r-   r…  r   rU  rV  r  r—  r$  rš  r  r¢  ÚfuncvarrÜ  r
  rÎ  r	  rE  r+  Ú_allow_nested_graph_breaks)rÉ   rÜ  r�  rŒ  r�  rŽ  r�  r  rÑ  rz  r|  rú  Úcachedrv  rÇ  rÔ  r  r\  s                    €r®   rV  z&InliningInstructionTranslator.__init__˜  s´  ø€ ð ×'Ñ'Ó)ˆ	Ø˜~Ñ.ˆ
Ü˜*¤dÔ+Ø#×,Ñ,ˆJð —m‘m×3Ñ3ˆÙ=H�×/Ñ/×3Ñ3°DÔ9ÈdˆàÐØ!×.Ñ.ˆLØ—n‘nˆGØ!×.Ñ.‰Lä/°Ó5ˆLÜ Ô-Ü! ,Ó/ˆGÜÜ¼=»?ÖK°a˜a¤¨¨qÓ!1Ñ1ÒKóˆLñ Ü7GØ!-Ø#Ø!-ô8�×.Ñ.¨tÑ4ô 	‰ÑØ—=‘=ØØØ!Ø+Ø-Ø*GØ"7Ø%Ø%ØØ—=‘=Ø×,Ñ,¨qÑ0Ø"×2Ñ2Ø×,Ñ,Ø$×6Ñ6Ø—N‘NØð% 	ô 	
ð( ˆŒØˆŒØ×)Ñ)ˆŒØ#ˆÔØ%×5Ñ5×:Ñ:Ó<ˆÔØ×)Ñ)ˆŒØ*CˆÕ'ùòG Ls   ÃG
c                ó.   — | j                   j                  S r§   )rÜ  rÎ  râ   s    r®   rÎ  z'InliningInstructionTranslator.fake_modeÛ  s   € à�{‰{×$Ñ$Ð$r°   c                ó\   — t        j                  | j                  j                  «       «      S r§   )r   r   rÜ  rÖ  râ   s    r®   r!  z)InliningInstructionTranslator.run_ctx_mgrß  s    € Ü×+Ñ+¨D¯K©K×,EÑ,EÓ,GÓHÐHr°   c                ó¬   — t         j                  sy| j                  sy| j                  j	                  «       sy| j
                  j                  «       syy)z«Check if comprehension speculation is allowed in this inlined context.

        Unlike should_compile_partial_graph(), this skips the exception table entry check.
        FT)r   r  r  r  Ú should_allow_nested_graph_breaksrÜ  rÏ  râ   s    r®   rÀ  zAInliningInstructionTranslator._can_speculate_comprehension_nestedâ  sE   € ô
 ×)Ò)ØØ×.Ò.ØØ�|‰|×<Ñ<Ô>ØØ�{‰{×7Ñ7Ô9ØØr°   c                óÈ   •— t         j                  rQ| j                  sy| j                  j	                  «       sy| j
                  j                  «       syt        ‰| �  «       S yr'  )r   r  r  r  r  rÜ  rÏ  rU  ©rÉ   r\  s    €r®   rÏ  z:InliningInstructionTranslator.should_compile_partial_graphñ  sO   ø€ Ü×%Ò%Ø×2Ò2ØØ—<‘<×@Ñ@ÔBØØ—;‘;×;Ñ;Ô=ØÜ‘7Ñ7Ó9Ð9Ør°   c                ód   •— t         j                  rt        ‰| �  ||«      S t	        dddg ¬«       y )NzGraph break in inlined functionrç   z2Graph breaks in an inlined call are not supported.r¹  )r   r  rU  rØ  r=   )rÉ   rÁ   râ  r\  s      €r®   rØ  z3InliningInstructionTranslator.create_call_resume_atü  s5   ø€ ô
 ×%Ò%Ü‘7Ñ0°Ð7PÓQÐQÜØ5ØØLØö		
r°   c                óF   — | j                  «       | _        d | _        t        ‚r§   )r×  rÎ  rÀ   rA  r  s     r®   r§  z*InliningInstructionTranslator.RETURN_VALUE
  s   € Ø#Ÿx™x›zˆÔØ#'ˆÔ ÜÐr°   c                óH   — | j                  |«      | _        d | _        t        ‚r§   )rw  rÎ  rÀ   rA  r  s     r®   r¨  z*InliningInstructionTranslator.RETURN_CONST  s#   € Ø#×/Ñ/°Ó5ˆÔØ#'ˆÔ ÜÐr°   c                ó2  — d| j                   v r”| j                   d   j                  d«      sv| j                   d   }| j                  |«      }d|v r(t        j                  j
                  j                  |   }nt        |«      } t        | |«      |«      }t        ||«      }n[| j                  j                  d| j                   «      }t        |«      }| j                   } t        | |«      |«      }t        ||«      }t        |«      rt        |«      }|||fS )NrÑ   Únamedtuple_r‘  Ú___unnamed_scope)rz  rf  rƒ  r‘  r¢  r–  r—  r¹   ri   rP   r(  rÈ  rR   rQ   r]  rV   )	rÉ   r¸   r„  r…  r†  Úfglobals_vtÚglobal_sourceÚglobals_nameÚglobals_sources	            r®   Úget_globals_source_and_valuez:InliningInstructionTranslator.get_globals_source_and_value  s  € ð ˜Ÿ™Ñ'°·±¸zÑ0J×0UÑ0UØô1
ð Ÿ.™.¨Ñ4ˆKØ ×.Ñ.¨{Ó;ˆMØ +Ñ-ä—M‘M×2Ñ2×LÑLØ#ññ ô "0°Ó!<�ð ?œ/¨$°Ó>¸~ÓNˆKÜ& }°dÓ;‰MàŸ;™;×;Ñ;Ø" D§N¡NóˆLô *¨,Ó7ˆNØ!Ÿ^™^ˆNð @œ/¨$°Ó?ÀÓOˆKÜ-¨n¸dÓCˆMä�^Ô$ô ,¨MÓ:ˆMà˜{¨MÐ9Ð9r°   c                ó  •— |j                   }|| j                  vr| j                  |«      S | j                  j                  | j                  u rt
        ‰| �  |«       y | j                  |«      \  }}}| j                  j                  j                  ||«      r6| j                  | j                  j                  j                  ||«      «       y | j                  |   }| j                  t        j                  | ||«      «       y r§   )rw  rz  r~  r(  rš  rU  r�  r  r+  rc  rF  rd  rg   rx  )rÉ   rÁ   r¸   r­   r  r  r¯  r\  s          €r®   r�  z*InliningInstructionTranslator._load_global>  sÌ   ø€ Ø�{‰{ˆØ�t—~‘~Ñ%Ø×$Ñ$ TÓ*Ð*à�;‰;×#Ñ# t§~¡~Ñ5ô ‰GÑ  Õ&à,0×,MÑ,MÈdÓ,SÑ)ˆAˆ{˜MØ�{‰{×'Ñ'×DÑDÀ[ÐRVÔWØ—	‘	˜$Ÿ+™+×2Ñ2×<Ñ<¸[È$ÓOÕPàŸ™ tÑ,�Ø—	‘	œ/×/Ñ/°°e¸]ÓKÕLr°   c                ól  •— | j                   j                  | j                  u rt        ‰| �  |«       y | j                  «       }t        |t        «      rt        d|j                  dg ¬«       |j                  }| j                  |«      \  }}}| j                   j                  j                  |||«       y )Nz3Storing Tensor hook handle in globals (inline call)rŒ  r¹  )r(  rš  rz  rU  r�  r×  rV  r—   r=   rw  r  r+  Ú
store_attr)rÉ   rÁ   r¯  r¸   Ú_fglobals_valuer  r­   r\  s          €r®   r�  z*InliningInstructionTranslator.STORE_GLOBALO  s•   ø€ Ø�;‰;×#Ñ# t§~¡~Ñ5ô ‰GÑ  Õ&à—H‘H“JˆEÜ˜%Ô!8Ô9ÜØQØ ŸK™KØ 8Øõ	ð —;‘;ˆDØ.2×.OÑ.OÐPTÓ.UÑ+ˆO˜[¨!Ø�K‰K×$Ñ$×/Ñ/°¸TÀ5ÕIr°   r  )rÜ  r   rÔ  rt   r¬   r‘  r  r‹  rÑ  rÂ   rÎ   rg   )rÔ  rt   rÎ   ztrace_rules.SkipResult)rÜ  r   rÔ  rt   r¬   r‘  r  r‹  rÑ  rÂ   rÎ   rÔ  r  )rÜ  rÐ   r�  r  rŒ  r‹  r�  r‹  rŽ  r•   r�  r‘   r  z7BaseUserFunctionVariable | LocalGeneratorObjectVariablerÑ  rÂ   rÎ   rÏ   r  r  r  r  r  )r¸   r¼   rÎ   z#tuple[Any, VariableTracker, Source])rÑ   rÒ   rÓ   rô   rÔ   r  rÕ  r#  rå  rÒ  rÓ  rV  r  rÎ  r!  rÀ  rÏ  rØ  r§  r¨  r  r�  r�  r^  r_  s   @r®   rÔ  rÔ  >  sÙ  ø… Ù*à+Ó+à%Ó%àð +0ð)àð)ð 'ð)ð $ð	)ð
 +ð)ð $(ð)ð 
ò)ó ð)ð* ð?Ø&ð?à	ò?ó ð?ðB ð +0ðaØðaà&ðað $ðað +ð	að
 $(ðað 
'òaó ðaóFU,ð@ +0ðADà)ðADð ðADð 4ð	ADð
 5ðADð (BðADð  3ðADð IðADð $(ðADð 
õADðF ò%ó ð%óIóõ	ð
àð
ð $=ð
ð 
õ	
óó
ð
(:Øð(:à	,ó(:õTM÷"Jñ Jr°   rÔ  c                  ó€   ‡ — e Zd ZU ded<   dˆ fd„Zdˆ fd„Zdd„Zdd„Zdd„Zdd„Z	dˆ fd	„Z
dˆ fd
„Zdd„Zdd„Zˆ xZS )rù  r‘  r  c                óN   •— t        ‰| �  |i |¤Ž g | _        d| _        d| _        y r'  )rU  rV  r  r  r  )rÉ   r¬   r  r\  s      €r®   rV  z/InliningGeneratorInstructionTranslator.__init__f  s-   ø€ Ü‰Ñ˜$Ð) &Ò)Ø!ˆÔØ#(ˆÔ Ø-2ˆÕ*r°   c                ó–   •‡ — t        ‰ j                  ‰ j                  ˆ fd„«      5  t        ‰‰ �  «       cd d d «       S # 1 sw Y   y xY w)Nc                 ó   •— ‰ j                   S r§   rÑ  râ   s   €r®   r¯   zEInliningGeneratorInstructionTranslator.inline_call_.<locals>.<lambda>m  s   ø€ À4×CTÑCT€ r°   )rÌ  r(  rÒ  rU  rÓ  r  s   `€r®   rÓ  z3InliningGeneratorInstructionTranslator.inline_call_l  s8   ù€ Ü  §¡¨d¯k©kÓ;TÓUñ 	*Ü‘7Ñ'Ó)÷	*÷ 	*ò 	*ús	   §?¿Ac                 ó   — yr'  rÕ   râ   s    r®   rÏ  zCInliningGeneratorInstructionTranslator.should_compile_partial_graphp  s   € àr°   c                ó  — | j                  «       }| j                  j                  |«       t        | j                  «      t        kD  rt
        j                  ‚t        j                  s| j                  r|| _
        t        ‚y r§   )r×  r  rì   rë   r}   r   ÚInfiniteGeneratorErrorr   rÒ  r  rÎ  rC  )rÉ   rÁ   Útops      r®   ÚYIELD_VALUEz2InliningGeneratorInstructionTranslator.YIELD_VALUEt  sf   € Ø�h‰h‹jˆØ×Ñ×#Ñ# CÔ(Üˆt×#Ñ#Ó$Ô'9Ò9Ü×,Ñ,Ð,ä×5Ò5Ø×1Ò1à#&ˆDÔ äÐð	 2r°   c                óÞ   — | j                   d   }t        |t        «      sN| j                  «        t	        j
                  | t        «      j                  | |gi «      }| j                  |«       y y rB  )	r’  rV  r€   r×  rg   rx  r;  rG  rF  )rÉ   rÁ   r  Úress       r®   ÚGET_YIELD_FROM_ITERz:InliningGeneratorInstructionTranslator.GET_YIELD_FROM_ITER�  sV   € Ø�j‰j˜‰nˆÜ˜#Ô3Ô4Ø�H‰HŒJÜ!×'Ñ'¨¬dÓ3×AÑAÀ$ÈÈÈrÓRˆCØ�I‰I�c�Nð 5r°   c                ó0   — | j                   | _        t        ‚r§   )r  rÎ  rA  r  s     r®   r{  z7InliningGeneratorInstructionTranslator.RETURN_GENERATORˆ  s   € Ø#Ÿ|™|ˆÔÜÐr°   c                ó0   •— d| _         t        ‰| �	  |«      S r´  )r  rU  r§  ©rÉ   rÁ   r\  s     €r®   r§  z3InliningGeneratorInstructionTranslator.RETURN_VALUEŒ  ó   ø€ Ø#'ˆÔ Ü‰wÑ# DÓ)Ð)r°   c                ó0   •— d| _         t        ‰| �	  |«      S r´  )r  rU  r¨  r2  s     €r®   r¨  z3InliningGeneratorInstructionTranslator.RETURN_CONST�  r3  r°   c                óü  — t        | j                  «      dk\  st        d«      ‚| j                  «       }| j                  d   }|j	                  «       st        dddg ¬«       	 |j                  | «      }t        | j                  t        «      st        d«      ‚| j                  d	kD  st        d
«      ‚| xj                  dz  c_        | j                  |«       | j                  |«       y # t        t        j                  f$ rw}t        |t        j                  «      rt        j                  | «       | j                  «        | j                  t!        j"                  |j$                  «      «       Y d }~y d }~ww xY w)Nrý  r-  r‚  úUnreachable sub-generator coderç   ú@Should only be encountered while implementing generator support.r¹  rr  r   rÔ  r   )rë   r’  rÌ   r×  rs  r=   rÜ  rV  rÀ   r¾   rF  r,  rÝ  r   rÞ  rà  rm   ry  r¯  )rÉ   rÁ   ri  r  Úexs        r®   Ú
YIELD_FROMz1InliningGeneratorInstructionTranslator.YIELD_FROM”  s:  € Ü�D—J‘J“ 1Ò$Ü Ð!KÓLÐLØ�h‰h‹jˆØ�j‰j˜‰nˆØ×#Ñ#Ô%ô Ø8ØØ^Øõ	ð	#Ø×#Ñ# DÓ)ˆCô ˜d×6Ñ6¼Ô<Ü$ØSóð ð ×,Ñ,¨qÒ0Ü$Ð%WÓXÐXØ×$Ò$¨Ñ)Õ$à�I‰I�cŒNà×Ñ˜TÕ"øô' œs×<Ñ<Ð=ò 	9Ü˜"œc×;Ñ;Ô<Ü×-Ñ-¨dÔ3ð �H‰HŒJØ�I‰IÔ&×-Ñ-¨b¯h©hÓ7×8Ñ8ûð	9ús   Á#C+ Ã+E;ÄA-E6Å6E;c                ó  — t        | j                  «      dk\  st        d«      ‚| j                  «       }t        j
                  dk\  r| j                  «       }| j                  d   }t        |t        t        f«      sgt        |t        «      r.t        |j                  t        j                  j                  «      s)t        j
                  dk\  r¢t        |t        t        f«      rŒ|j!                  «       rl	 t        j
                  dk\  rt#        | |«      \  }}n|j%                  | «      }t        j
                  dk\  r| j'                  «       | j'                  |«       y t3        dddg ¬	«       y t3        d
dt5        |«      › �dt5        |«      › d�g ¬	«       y # t(        t*        j,                  t*        j.                  f$ rH t        j
                  dk  r| j                  «        | j'                  |«       | j1                  |«       Y y w xY w)Nrý  r-  rÙ  r‚  r8  r6  rç   r7  r¹  zSEND with bad typez
TOS type: z(Attempted to SEND with unsupported type rU  )rë   r’  rÌ   r×  rZ  rÚ  rV  r|   rx   r›   r¯  ÚcollectionsÚabcÚIteratorr�   rƒ   rs  r�   rÜ  rF  rÝ  r   rÞ  rß  rï  r=   re   )rÉ   rÁ   ri  Únull_or_indexÚreceiverÚnext_idxs         r®   ÚSENDz+InliningGeneratorInstructionTranslator.SEND½  s±  € Ü�D—J‘J“ 1Ò$Ü Ð!KÓLÐLØ�h‰h‹jˆÜ×Ñ˜wÒ&Ø ŸH™H›JˆMØ—:‘:˜b‘>ˆä�xÔ"2Ô4PÐ!QÔRä˜8Ô%>Ô?Ü˜xŸ~™~¬{¯©×/GÑ/GÔHô × Ñ  GÒ+Ü˜x¬,¼Ð)FÔGð ×#Ñ#Ô%ð#Ü×'Ñ'¨7Ò2Ü(=Ø  (¨Mó)™˜™Xð '×4Ñ4°TÓ:˜ô" ×'Ñ'¨7Ò2ØŸ	™	 (Ô+Ø—I‘I˜c•Nô Ø<ØØ bØö	ô Ø,Ø$¤W¨XÓ%6Ð$7Ð8ØFÄwÈxÓGXÐFYÐYZÐ[Øö	øô? "Ü×1Ñ1Ü×*Ñ*ðò $ô ×'Ñ'¨'Ò1ØŸ™œ
Ø—I‘I˜c”NØ—I‘I˜d–Oð$ús   Ã45F ÆA-HÈH)r¬   r   r  r   rÎ   rÏ   r  r  r  )rÑ   rÒ   rÓ   rÔ   rV  rÓ  rÏ  r,  r/  r{  r§  r¨  r9  rA  r^  r_  s   @r®   rù  rù  b  s<   ø… Ø*Ó*õ3õ*óóóóõ*õ*ó'#÷R?r°   rù  )r¸   r¼   rÎ   ztypes.ModuleType)rÎ   rJ  )r«   rÐ   rÎ   úGenerator[None, None, None])rR  zCallable[..., object]rÎ   úCallable[..., Any])r\  r¨  rÎ   rÂ   )rl  rÂ   rÎ   rÝ   )rÉ   rÐ   ry  úCallable[[object], bool]rF  rÂ   rÎ   rÂ   )r‡  r©  rÎ   r¼   )r   )r¯  rg   r   r¾   rÎ   r¼   )ry  rD  rF  rÂ   rÎ   rK  )r«   rÐ   r  r3   r  r•  rÎ   rÏ   )r½   r¼   r¿   r¾   rÎ   rC  )rF  rÂ   r4  r¼   rÎ   zYCallable[[Callable[..., None]], Callable[[InstructionTranslatorBase, Instruction], None]])r(  rE   r�  r  rÆ  zCallable[[], int]rÎ   rB  (  rô   Ú
__future__r   r’  r;  Úcollections.abcrh  rE  rõ   ri  rP  r¶   rM  r»  rÞ  r   rt  rÂ  rZ  Ú	threadingr¿  r·  rW  r€  r   r   Útypingr   r   r   r	   r
   r   Útyping_extensionsr   r‘  Útorch._loggingÚtorch._dynamo.dynamo_profilerr   r   Útorch._dynamo.excr   r   Útorch._guardsr   r   r   Útorch._logging.structuredr   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.utils._functoolsr   rç   r   r   r   r  r   r   Úbytecode_analysisr   r   r    r!   Úbytecode_transformationr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   Úcodegenr3   Úcomprehension_graph_breakr4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   Úfuncname_cacher@   ÚguardsrA   rB   Úoutput_graphrC   rD   rE   rF   Ú	polyfillsrG   rH   rI   rJ   Úreplay_recordrK   rL   r  rM   rN   rO   rœ  rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   ÚutilsrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   Úvariables.baserd   re   rf   rg   Úvariables.builderrh   ri   rj   Úvariables.builtinrk   rl   Úvariables.constantrm   Úvariables.ctx_managerrn   ro   rp   rq   r´  rs   Úvariables.functionsrt   ru   rv   rw   rx   ry   rz   r{   Úvariables.iterr|   r}   Úvariables.lazyr~   rµ  r   r€   r�   r‚   rƒ   Úvariables.miscr„   r…   r†   r‡   rˆ   r‰   Úvariables.nn_modulerŠ   r‹   Úvariables.object_protocolrŒ   r�   rŽ   r�   Úvariables.setsr�   rb  r‘   Úvariables.tensorr’   r“   r”   Úvariables.torch_functionr•   r–   Úvariables.user_definedr—   r˜   r™   rš   r›   rœ   r�   Útorch._subclasses.fake_tensorrž   r¢  rŸ   Ú	getLoggerrÑ   r!  rñ  ÚgetArtifactLoggerró  rõ  rç  rñ  r  rm  r  rG  r¥   rÔ   Úcontainsr¨   r   r³   r´   Úcacher¹   Ú	dataclassr»   r×   rù   r	  r  r"  ri  r%  r+  r-  rÌ   rî   r­  rA  rC  rS  r]  rp  r  rö  rŽ  r±  r  r  r  rL  r]  rN  ra  rÐ   rL  rÚ  Ú_nb_opsr…  rU  rÌ  rÔ  rù  )r  r  rí   r­   s   0000r®   ú<module>rq     s  ðòõ0 #ã ã Û Û Û Û Û 
Û Û Û Û Û Û Û Û 	Û 
Û Û Û Û Û ß *ß I× IÝ $ã Û ß Rß Oß CÑ CÝ /Ý <Ý /÷÷ ÷ó ÷÷ ÷ ÷ ó õ$ 'Ý Ý L÷÷ ÷ ñ õ )ß /÷ó ÷ó ÷ :÷ñ ÷
	÷ 	ó 	÷ ;÷÷ ÷ ÷ WÓ Vß RÑ Rß CÝ 0÷ó õ /÷	÷ 	ó 	÷ AÝ /÷õ ÷÷ ÷ Q÷ó õ (Ý 2ß WÑ W÷÷õ ñ ß3å<å'à€g×Ò˜Ó!€Ø—.’.×2Ò2°8¸^ÓL€Ø—’×1Ò1°(¸LÓI€Ø—>’>×3Ò3°H¸nÓMÐ Ø—^’^×5Ò5°hÐ@PÓQÐ Ø€i‡o‚oÓ€à4RÐ4L×4RÒ4RÓ4T÷'Ù,0¨A¨q€A��qÓ×'Ò'Ñ'ó'Ð �^ó ñ " (×"3Ò"3Ó4×BÒB€Ù˜XŸ]š]Ó+×9Ò9€
ñÐ �DÑ ñ!Ð �HÑ ð
 ×ÒØ'ñ(à(ñ)ð ˆyó ð ‡‚ò)ó ð)ð ×Ò÷ð ó ððB ×Ò÷Ið Ió ðIðX ×Ò÷
ð 
ó ð
ð ×Ò÷/ð /ó ð/÷3ñ 3ð. ‡‚ò4ó ð4ð ×Òð)Ø!ð)à ò)ó ð)ð& ×Òð$Ø!ð$à ò$ó ð$ð ×Ò÷!ð !ó ð!ôH	˜~ô 	ô	‘Iõ 	ô‘9õ ôôAð ‡‚ò.ó ñ.ð&*Ø
#ð*à&ð*ð ð*ð 
ô	*ðZ �ôB@õ&@ðFeØ&ðeØ.2ðeà=ôeðP	RØ!ðRØ'0ðRØ;LðRà	ôRôBð4[Øð[Ø"ð[ðô[ô|J¡õ Jð2 ×Ò÷ið ió ñiôXl=;Ù'öl=;ô^{AÑ5õ AðH
 ×Ò�wÒð Ÿš÷ñ
 ˆF�Aò	 	Ù!Ø# vÑ-ˆF�1�2‰J°W¸VÀAÀB¸Z¸LÐ3Iõ	
óÑð ×Òð:=Øð:=à
ð:=ð (ð:=ð !ò	:=ó ñ:=ôzaJÑ$=õ aJôHZÑ-Jö Zùó{'ùóhhs   ÌV<Õ$W