Ë
    g^(h„ ã                   óà	  — U d 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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  ddl!m"Z"m#Z# ddl$m%Z% ddl&m'Z' d	d
l(m)Z)m*Z*m+Z+mZ,m-Z-m.Z. d	dl/m0Z0m1Z1m2Z2m3Z3 d	dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= d	dl>m>Z> d	dl?m@Z@ d	dl*mAZAmBZBmCZCmDZDmEZEmFZFmGZG d	dlHmIZI d	dlJmKZKmLZL d	dlMmNZNmOZO d	dlPmQZQmRZR d	dlSmTZTmUZU d	dlVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z] d	dl-m^Z^m_Z_ d	dl`maZambZbmcZcmdZdmeZemfZfmgZgmhZh d	dlimjZjmkZkmlZl d	dlmmnZnmoZo d	dlpmqZq d	dlrmsZs d	dltmuZumvZvmwZw d	dlxmyZymzZz d	dl{m|Z|m}Z}m~Z~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Š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–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�jF                  e¤«      Z¥e�jL                  �jO                  e¤d'«      Z¨e�jL                  �jO                  e¤d(«      Z©e�jL                  �jO                  e¤d)«      Zªe�jL                  �jO                  e¤d*«      Z« e�jX                  «       Z­ e—�j\                  «       D � �ci c]  \  } }|  eq|«      �j^                  “Œ c}} Z°e±e²ef   e³d+<    eqe�jh                  «      �j^                  Zµ eqe�jl                  «      �j^                  Z·d,„ e°d-<   d.„ e°d/<   d0Z¸e�jr                  d1e²d2e�jt                  fd3„«       Z»e�jx                   G d4„ d5«      «       Z½e�jx                   G d6„ d7«      «       Z¾e�jx                   G d8„ d9«      «       Z¿e�jx                   G d:„ d;«      «       ZÀ G d<„ d=«      ZÁ e�j„                  d«      d>„ «       ZÃe�jˆ                  ded@„«       ZÅe�jˆ                  dedA„«       ZÆe�jx                   G dB„ dC«      «       ZÇ G dD„ dEeÈ«      ZÉ G dF„ dGeÊ«      ZË G dH„ dIeÊ«      ZÌdJej,                  dKeÍf   fdL„ZÎdMd?dNej,                  eÍgeÏf   dOeÏfdP„ZÐdQZÑdfdR„ZÒdNej,                  eÍgeÏf   dOeÏfdS„ZÓdT„ ZÔ G dU„ dVeÕ«      ZÖe�jx                   G dW„ dX«      «       Z× G dY„ d?eÖ¬Z«      ZØ G d[„ d\eØ«      ZÙe�j´                  d]k\  r6e�j¶                  D ��cg c]  \  }} eÜeÙd^|v r|d_d nd`|d_d › �«      ‘Œ c}}ZÝ G da„ dbeØ«      ZÞ G dc„ ddeÞ«      Zßyc c}} w c c}}w )ga  
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.
é    N)ÚAnyÚCallableÚcastÚNoReturnÚOptionalÚUnion)Úpatch)ÚTensorifyScalarRestartAnalysis)ÚtracingÚTracingContext)Ú
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_call_functionÚcreate_instructionÚcreate_jump_absoluteÚcreate_swapÚget_code_keysÚInstructionÚis_generatorÚ	unique_id)Úcode_context)Ú	PyCodegen)ÚArgsMismatchErrorÚBackendCompilerFailedÚcollapse_resume_framesÚformat_graph_break_messageÚget_stack_above_dynamoÚunimplemented_v2ÚUnsupported)Úget_funcname)ÚGuardBuilderÚinstall_guard)ÚGraphCompileReasonÚOutputGraph)ÚDummyModuleÚExecutionRecorder)ÚContinueExecutionCacheÚReenterWith)Ú
AttrSourceÚDictGetItemSourceÚGlobalSourceÚGlobalWeakRefSourceÚLocalCellSourceÚLocalSourceÚSource)Úis_builtin_constantÚis_forbidden)ÚcountersÚget_fake_valueÚget_instruction_source_311Úget_metrics_contextÚgraph_break_dup_warning_checkerÚistypeÚ
LazyStringÚproxy_args_kwargs)ÚtypestrÚValueMutationNewÚVariableTracker)ÚFrameStateSizeEntryÚwrap_fx_proxy)ÚBuiltinVariable)ÚConstantVariable)ÚContextWrappingVariableÚGenericContextWrappingVariableÚWithExitFunctionVariable)ÚConstDictVariableÚSetVariable)ÚBaseUserFunctionVariableÚLocalGeneratorFunctionVariableÚLocalGeneratorObjectVariableÚNestedUserFunctionVariableÚSkipFunctionVariableÚUserFunctionVariableÚUserMethodVariable)ÚMAX_ITERATOR_LIMIT)ÚLazyVariableTracker)ÚBaseListVariableÚListIteratorVariableÚListVariableÚSliceVariableÚTupleVariable)ÚCellVariableÚExceptionVariableÚGetAttrVariableÚNullVariableÚPythonModuleVariableÚUnknownVariable)ÚNNModuleVariable)Úsupported_comparison_opsÚSymNodeVariableÚTensorVariable)ÚSymbolicTorchFunctionStateÚTorchFunctionModeVariable)ÚRemovableHandleVariableÚUserDefinedClassVariableÚ!UserDefinedExceptionClassVariableÚ"UserDefinedExceptionObjectVariableÚUserDefinedObjectVariableÚgraph_breaksÚ
trace_callÚtrace_sourceÚtrace_bytecodeÚcompare_op_handlersc                 ó2   — t        | g t        |«      ¢i «      S ©N)Úhandle_containsÚreversed©ÚtxÚargsÚ_s      ú\/var/www/skyplay_api_hub/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 rw   )Ú
handle_notrx   ry   rz   s      r~   r   r   ·   s(   € ´JØŒ˜Ð.œx¨›~Ð.°Ó	3Ð4°bó5€ r€   znot inzihttps://github.com/pytorch/pytorch/issues/new?&labels=oncall%3A+pt2&projects=&template=pt2-bug-report.ymlÚnameÚreturnc                 ó,   — 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)r„   s    r~   Ú_import_moduler‰   ¿   s   € ô ×"Ñ" 4Ó(Ð(r€   c                   ó^   — e Zd ZU eed<   eed<   eed<   eed<   dZeed<   dZ	e
e   ed<   d	„ Zy)
ÚSpeculationEntryÚfilenameÚlinenoÚinstruction_pointerÚinstFÚfailedNÚ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   ÚSpeculationRestartAnalysis)Úselfr“   s     r~   Úfail_and_restart_analysisz*SpeculationEntry.fail_and_restart_analysisÒ   s:   € ð ˆŒØ�;‰;Ð"Ø!Ÿ[™[×/Ñ/‰Nà@ˆNÜ×,Ñ,¸NÔKÐKr€   )Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Úintr    r�   Úboolr‘   r   r/   r–   © r€   r~   r‹   r‹   É   s8   … àƒMØƒKØÓØ
ÓØ€FˆDÓØ+/€FˆHÐ'Ñ(Ó/ó	Lr€   r‹   c                   óv   — e Zd ZU dZ ej
                  e¬«      Zee   e	d<   dZ
ee	d<   d„ Zd„ Zded	ed
ef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_factoryÚentriesr   Úindexc                 ó   — d| _         y ©Nr   )r¤   ©r•   s    r~   ÚrestartzSpeculationLog.restartë   s	   € Øˆ�
r€   c                 óF   — | j                   j                  «        d| _        y r¦   )r£   Úclearr¤   r§   s    r~   rª   zSpeculationLog.clearî   s   € Ø�‰×ÑÔØˆ�
r€   rŒ   r�   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 occured:
- 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™   Ú__doc__ÚdataclassesÚfieldÚlistr£   r‹   r›   r¤   rœ   r¨   rª   rš   r·   rž   r€   r~   r    r    Þ   sV   … ñð '8 k×&7Ñ&7ÈÔ&M€GˆTÐ"Ñ#ÓMØ€Eˆ3ƒNòòð-Øð-Ø%(ð-à	ô-r€   r    c                   óT   — e Zd ZU  ej                  e¬«      Zeeef   e	d<   defd„Z
y)Ú
LocalStater¡   Úautomatic_dynamicr…   c                 ó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>)  s*   è ø€ ò 
Ù%) Q¨ˆqˆc��A—H‘H“J�<Ô ñ
ùs   ‚"$)Újoinr¾   Úitemsr§   s    r~   rÃ   zLocalState.render(  s/   € Ø�y‰yñ 
Ø-1×-CÑ-C×-IÑ-IÓ-Kô
ó 
ð 	
r€   N)r—   r˜   r™   r¹   rº   Údictr¾   rš   rI   r›   rÃ   rž   r€   r~   r½   r½   "  s6   … à8I¸×8IÑ8IØô9Ð�t˜CÐ!4Ð4Ñ5ó ð
˜ô 
r€   r½   c                   ó<   — e Zd ZU eed<   eed<   dZeee      ed<   y)ÚDistributedStateÚ
compile_pgÚlocal_stateNÚ
all_states)	r—   r˜   r™   r   r›   r½   rÏ   r   r»   rž   r€   r~   rÌ   rÌ   /  s!   … àƒOØÓØ-1€J�˜˜jÑ)Ñ*Ô1r€   rÌ   c                   óˆ   — e Zd ZU  e«       Zee   ed<   ededdfd„«       Zedede	fd„«       Z
ed	d„«       Zede	fd„«       Zy)
ÚTensorifyStateÚforce_specializationsr¤   r…   Nc                 ó:   — | j                   j                  |«       y rw   )rÒ   Úadd©Úclsr¤   s     r~   Ú
specializezTensorifyState.specialize<  s   € à×!Ñ!×%Ñ% eÕ,r€   c                 ó   — || j                   v S rw   )rÒ   rÕ   s     r~   Úshould_specializez TensorifyState.should_specialize@  s   € à˜×1Ñ1Ð1Ð1r€   c                 ó8   — | j                   j                  «        y rw   )rÒ   rª   ©rÖ   s    r~   rª   zTensorifyState.clearD  s   € à×!Ñ!×'Ñ'Õ)r€   c                 ó2   — t        | j                  «      dk(  S r¦   )r°   rÒ   rÛ   s    r~   ÚemptyzTensorifyState.emptyH  s   € ä�3×,Ñ,Ó-°Ñ2Ð2r€   ©r…   N)r—   r˜   r™   ÚsetrÒ   rš   r›   Úclassmethodr×   r�   rÙ   rª   rÝ   rž   r€   r~   rÑ   rÑ   6  s†   … ñ '*£eÐ˜3˜s™8Ó+àð-˜sð - tò -ó ð-ð ð2 cð 2¨dò 2ó ð2ð ò*ó ð*ð ð3�dò 3ó ñ3r€   rÑ   c                  ó4   — t        j                  t        «      S rw   )Útorchdynamo_loggingÚget_step_loggerÚlogrž   r€   r~   Ú_step_loggerrå   M  s   € ä×.Ñ.¬sÓ3Ð3r€   ÚInstructionTranslatorBasec              #   ó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é   R  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ï   d  sA   è ø€ ð$Ø�i‰i×#Ñ#ˆØ %ˆ�	‰	ÔÛà #ˆ�	‰	Õø ˆ�	‰	Õüs   ‚A„+A ¯AÁAÁAc                   ó\   — e Zd ZU eed<   eed<   eed<   dZeee	e
f      ed<   d„ Zd„ Zd„ Zy)	ÚBlockStackEntryr�   ÚtargetÚstack_indexNÚwith_contextc                 ó   — | j                   d uS rw   )rô   r§   s    r~   Úcan_restorezBlockStackEntry.can_restorex  s   € Ø× Ñ ¨Ð,Ð,r€   c                 ó*  — | j                   €J ‚| j                  rbt        | j                  d«      rL| j                  j                  r6t	        | j                   dz
  t        | j                  j                  «      «      S t	        | j                   dz
  «      S )NÚtarget_valuesr   )ró   rô   Úhasattrrø   r4   Útupler§   s    r~   Ú	resume_fnzBlockStackEntry.resume_fn{  s‚   € Ø×ÑÐ+Ð+Ð+à×ÒÜ˜×)Ñ)¨?Ô;Ø×!Ñ!×/Ò/äØ× Ñ  1Ñ$¤e¨D×,=Ñ,=×,KÑ,KÓ&Lóð ô ˜t×/Ñ/°!Ñ3Ó4Ð4r€   c                 ó’   — | j                   €J ‚|r| j                   j                  «       s|s| j                   j                  |«      S y rw   )rô   Úexit_on_graph_breakÚexit)r•   r{   Úis_graph_breaks      r~   rþ   zBlockStackEntry.exitˆ  sG   € Ø× Ñ Ð,Ð,Ð,á˜t×0Ñ0×DÑDÔFÙØ×$Ñ$×)Ñ)¨"Ó-Ð-ð  r€   )r—   r˜   r™   r    r›   rœ   rô   r   r   rM   rN   rö   rû   rþ   rž   r€   r~   rñ   rñ   n  sJ   … ð ÓØÓØÓð 	ð �(ØÐ%Ð'EÐEÑFñó ò-ò5ó.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~   r  r  ”  r  r€   r  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~   r  r  ˜  s   „ òr€   r  Úfn.c                 ó¾   ‡‡— t        t        j                  | «      j                  «      Št	        | «      Št        j                  | «      dddt        fˆˆfd„«       }|S )Nr•   ÚInstructionTranslatorr�   c                 óh   •— | j                  ‰j                  | | j                  ‰«      i «      «       y rw   )Ú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°   ÚinspectÚ	signatureÚ
parametersrK   Ú	functoolsÚwrapsr    )r  r  r  r  s     @@r~   Ústack_opr  Ÿ  s]   ù€ Ü”×!Ñ! "Ó%×0Ñ0Ó1€EÜ˜RÓ €Fä‡_�_�RÓðDÐ*ð D´+õ Dó ðDð €Kr€   r•   Útruth_fnr  c                 óR  — |t         j                  us|ryt        | j                  t        «      sJ ‚| j                  }| j
                  |   }|j                  dk7  ry|dz  }d}| j
                  |   }|j                  dk(  rrt        |j                  t        «      sy|j                  }|dz  }| j
                  |   }|j                  dvry|dz  }|j                  dk(  r|dz  }| j
                  |   }|j                  dk7  ry| j                  t        j                  |«      «       y	)
NFÚLOAD_ASSERTION_ERRORr   zassertion errorÚ
LOAD_CONST)ÚCALL_FUNCTIONÚPRECALLÚCALLr  ÚRAISE_VARARGST)ÚoperatorÚtruthÚ
isinstancerŽ   rœ   Úinstructionsr²   Úargvalrš   r  rL   Úcreate)r•   r  r  Úcurrent_instruction_pointerr�   Ú	error_msgs         r~   Ú&_detect_and_normalize_assert_statementr'  ª  s.  € ð, 	œŸ™Ñ&©4Øä�d×.Ñ.´Ô4Ð4Ð4Ø"&×":Ñ":ÐØ×ÑÐ8Ñ9€Dà‡{�{Ð,Ò,Øà 1Ñ$Ðð "€Ià×ÑÐ8Ñ9€Dà‡{�{�lÒ"Ü˜$Ÿ+™+¤sÔ+ØØ—K‘Kˆ	ð 	$ qÑ(Ð#Ø× Ñ Ð!<Ñ=ˆØ�;‰;ÐBÑBØð 	$ qÑ(Ð#Ø�;‰;˜)Ò#Ø'¨1Ñ,Ð'Ø× Ñ Ð!<Ñ=ˆà‡{�{�oÒ%Øà‡I�IÔ×%Ñ% iÓ0Ô1àr€   Fc                 ór  ‡‡— |€(t         j                  j                  j                  «       }	 |d   j                  |d   j
                  f}d}t        j                  r/t        «       }dj                  t        j                  |«      «      }nt        «       |z   }t        |«      }dj                  t        j                  |«      «      }d|d   › d|d   › d	|› d
�Št        j                  r‰|› d|› d�z  Šn‰t        |«      z  Št         j                  j!                  dd„ ˆˆfd„¬«       t"        j%                  t&        j(                  «      r1t*        s+t-        j.                  |«      rt"        j1                  ‰«       y t"        j1                  d|d   |d   |«       y # t        $ r | d   | d   f}Y �Œiw xY w)NéÿÿÿÿÚco_filenameÚco_firstlinenor¬   zGraph break in user code at r   r­   r   z
Graph Break Reason: z
User code traceback:
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!log_graph_break.<locals>.<lambda>  s   € Ø/Ø ñ
€ r€   c                  óB   •— ‰› d‰ rt        j                  «       › �S d› �S )NrÀ   r¬   )Ú	tracebackÚ
format_exc)Úexc_infoÚuser_stack_traces   €€r~   r   z!log_graph_break.<locals>.<lambda>  s+   ø€ Ð.Ð/¨rÉH´)×2FÑ2FÓ2HÐ1]Ð^€ ÐZ\Ð1]Ð^€ r€   )Úmetadata_fnÚ
payload_fnzmGraph break (user stack suppressed due to duplicate graph break) in user code at %s:%s
Graph Break Reason: %s)ÚtorchÚ_guardsr   Úextract_stackrŒ   r�   Ú
IndexErrorr   Úverboser)   rÈ   r2  Úformat_listr'   rš   Ú_loggingÚtrace_structuredÚgraph_break_logÚisEnabledForr   ÚDEBUGÚexplainrB   rÔ   Údebug)	Úcode_optionsr‘   r4  Ú
user_stackÚ	frame_locÚstack_above_dynamo_formattedÚstack_above_dynamoÚuser_stack_formattedr5  s	     `     @r~   Úlog_graph_breakrK  ï  sÎ  ù€ ØÐÜ—]‘]×1Ñ1×?Ñ?ÓAˆ
ð
Ø ‘^×,Ñ,¨j¸©n×.CÑ.CÐDˆ	ð $&Ð Ü‡~‚~Ü3Ó5ÐØ')§w¡wÜ×!Ñ!Ð"4Ó5ó(
Ñ$ô ,Ó-°
Ñ:ˆ
Ü+¨JÓ7ˆ
ØŸ7™7¤9×#8Ñ#8¸Ó#DÓEÐà
& y°¡| n°A°iÀ±l°^ð DØ%˜hð '!ð	!ð ô ‡~‚~ØØ+Ð,ð -aà#Ð$ð %HðHñ	
Ñð 	œCÐ 4Ó5Ñ5Ðä	‡N�N×#Ñ#Øñ
ô _ð $ô ô 	×$Ñ$¤W§]¡]Ô3ÝÜ+×/Ñ/°	Ô:ô
 	×ÑØõ	
ô 	×ÑØ|Ø�a‰LØ�a‰LØõ		
øô} ò 
ð ˜Ñ'ØÐ)Ñ*ð
‹	ð
ús   ®F ÆF6Æ5F6c                 óz   ‡ ‡‡‡‡‡— dŠdŠg t         j                  ¢d‘Šd	ˆˆˆˆfd„	Šdddt        fˆˆˆˆˆˆ fd„}|S )
NzData-dependent branchingzyDetected data-dependent branching (e.g. `if my_tensor.sum() > 0:`). Dynamo does not support tracing dynamic control flow.z1Use `torch.cond` to express dynamic control flow.c           	      ó¼  •— t        | j                  t        ‰	d|› �‰‰
¬«      ¬«       | j                  «       st	        dddg ¬«       | j                  «       r=d| j                  «       › �}t        j                  |«       t        j                  |«      ‚| j                  |«       t        j                  d«       | j                  j                  | t        d	t!        |«      › |› �| j                  «       g«      ¬«       | j#                  «        | j%                  | j&                  «      }‰r| j                  |«       | j%                  |j(                  «      }t*        j,                  d
k\  r%| j                  j/                  t1        d«      g«       t1        |j2                  |d   ¬«      }|j5                  |«       | j                  j/                  |g|z   |z   «       y )Núattempted to jump with ©Úgb_typeÚcontextÚexplanationÚhints©r‘   z;Should not compile partial graph (data-dependent branching)r¬   z�Dynamo has determined when encountering data-dependent branching (e.g. `if my_tensor.item() > 0:`) that it should not compile the partial graph.úBSkipping frame because there is a graph break in a for/while loop
zgeneric_jump triggered compilezgeneric_jump ©é   é   ÚTO_BOOLr   )rò   )rK  rE  r(   Úshould_compile_partial_graphr*   Úmaybe_has_backedgeÚframe_summaryrä   Úinfor   Ú	SkipFramer  rD  rì   Úcompile_subgraphr/   rF   ÚpopÚcreate_call_resume_atÚnext_instructionrò   ÚsysÚversion_infoÚadd_output_instructionsr   r²   Úcopy_positions)r•   r�   ÚvalueÚ	extra_msgÚmsgÚif_nextÚif_jumpÚ	jump_instÚ_explanationÚ_gb_typeÚ_hintsr  s           €€€€r~   Újump_graph_breakz&generic_jump.<locals>.jump_graph_breakG  s¤  ø€ ÜØ×ÑÜ-Ø Ø1°%°Ð9Ø(Øô	õ	
ð ×0Ñ0Ô2ÜØUØð-ð õð ×"Ñ"Ô$àUØ×%Ñ%Ó'Ð(ð*ð ô �H‰H�SŒMÜ—-‘- Ó$Ð$à�	‰	�%ÔÜ�	‰	Ð2Ô3Ø�‰×$Ñ$ØÜ%Ø¤¨£Ð/°	¨{Ð;¸d×>PÑ>PÓ>RÐ=Sóð 	%ô 	
ð 	�‰Œ
à×,Ñ,¨T×-BÑ-BÓCˆÙØ�I‰I�eÔØ×,Ñ,¨T¯[©[Ó9ˆä×Ñ˜wÒ&à�K‰K×/Ñ/Ô1CÀIÓ1NÐ0OÔPä& t§{¡{¸7À1¹:ÔFˆ	Ø× Ñ  Ô&Ø�‰×+Ñ+¨Y¨K¸'Ñ,AÀGÑ,KÕLr€   r•   ræ   r�   c                 óò  •— | j                  «       }t        j                  �r	t        | ‰‰«      �rû| j                  «       }|j	                  «       r4t        |j                  «       «      r| j                  |«      S  ‰| ||«       t        |t        «      rJ | j                  j                  dt        j                  gt        ||fi «      ¢­Ž  | j                  |«       y t        |t        «      rš|j                   }t        |t        j"                  «      s|dk7  }t        j$                  j&                  j(                  j+                  |«      }|s(t-        dt/        |«      dg t0        j2                  ¢¬«       | j                  |«       y  | j                  j                  dt        j4                  gt        |fi «      ¢­Ž }t7        | |t9        |j:                  | «      ¬«      } | j                  j                  dt        j                  gt        ||fi «      ¢­Ž  | j                  |«       y |j	                  «       rŠt        |t<        «      r>|j>                  r2tA        |j>                  jC                  tD        jF                  «      «        ‰|j                  «       «      r%‰r| jI                  |«       | j                  |«       y y t        |t        «      r| jK                  «       r ‰| ||«       y t        |tL        «      rS| j                  jO                  |jP                  «      } ‰|«      r%‰r| jI                  |«       | j                  |«       y y t        |tR        «      �r(	 |jU                  | d«      }	t        |	t\        «      rÕ|	j_                  | g i «      }t        |t`        «      rWt        |jb                  t
        td        f«      r7 ‰|jb                  «      r¯‰r| jI                  |«       | j                  |«       y t        |t        «      r5|jg                  «       ri‰r| jI                  |«       | j                  |«       y t-        d	d
|	› d|› �dg ¬«       y  ‰d«      r%‰r| jI                  |«       | j                  |«       y y y y t        |t        «      sW|ji                  | «      rF ‰tk        |jm                  | «      «      «      r%‰r| jI                  |«       | j                  |«       y y t        |t        «      r‡	 t        |j                   t        j"                  «      r|jg                  | j                  «      }
nto        |j                   dk7  «      }
 ‰|
«      r%‰r| jI                  |«       | j                  |«       y y t        |tr        jt                  «      r. ‰d«      r%‰r| jI                  |«       | j                  |«       y y ddlm;} |j>                  �N ||j>                  «      r< ‰|jy                  «       «      r%‰r| jI                  |«       | j                  |«       y y t-        ‰d|› �‰‰¬«       y # tV        jX                  $ r] tW        jZ                  | «       	 |jU                  | d«      }	n0# tV        jX                  $ r tW        jZ                  | «       d }	Y nw xY wY �Œ=w xY w# tV        jp                  $ r*}| jK                  «       r ‰| ||d|› �¬«      cY d }~S ‚ d }~ww xY w)Nr  r   z#Assertion failed on symbolic shapesr¬   rO  )Úexample_valueÚ__bool__Ú__len__z3Data-dependent branching with non-constant __bool__zmethod: z
, result: z}Attempted to perform data-dependent branching on a user-defined object with a __bool__ method that did not return a constant.TrÀ   )rh  r   )Úis_constant_sourcerN  )=r`  r   Ú rewrite_assert_with_torch_assertr'  Úis_python_constantr�   Úas_python_constantÚjumpr!  ri   rì   Úcreate_proxyr8  Ú_assert_asyncrE   rh   Úsym_numÚSymBoolÚfxÚexperimentalÚsymbolic_shapesÚexpect_truer*   rš   r   Ú
USER_ERRORÚscalar_tensorrJ   r?   ÚnoderP   Úsourcer.   Ú
make_guardr-   ÚSEQUENCE_LENGTHr  rZ  rf   Úget_submoduleÚ
module_keyrp   Úvar_getattrr   ÚObservedAttributeErrorÚhandle_observed_exceptionrX   r  rL   rg  rœ   Úevaluate_exprÚhas_unpack_var_sequencer°   Úunpack_var_sequencer   Ú	UserErrorr   ÚBackwardHookVariableru  Úget_real_value)r•   r�   rg  r&  Úsym_exprÚresultÚscalar_to_tensor_proxyÚscalar_to_tensorÚmodÚxÚeval_resultÚeru  rm  rn  ro  rp  r  r  s                €€€€€€r~   Úinnerzgeneric_jump.<locals>.innerz  sÐ  ø€ Ø!%§¡£ˆä×3Ó3Ü6°t¸XÀtÕLà)-¯©«ˆIà×'Ñ'Ô)Ü˜×0Ñ0Ó2Ô3ØŸ9™9 T›?Ð*á$ T¨4°Ô7ô ˜%¤Ô0Ø(�—‘×(Ñ(Ø#Ü×'Ñ'ðô '¨¨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ô
 �uœ~Ô/°D×4UÑ4UÔ4Wá˜T 4¨Õ/Ü˜Ô/Ô0à—+‘+×+Ñ+¨E×,<Ñ,<Ó=ˆCÙ˜Œ}ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð ô ˜Ô8Õ9ð	Ø×%Ñ% d¨JÓ7�ô ˜!Ô/Ô0ØŸ™¨¨r°2Ó6�Ü˜fÔ&6Ô7¼JØ—L‘L¤4¬ +ô=ñ   §¡Ô-ÙØ ŸI™I eÔ,ØŸ	™	 $�Ü ¬Ô8Ø×+Ñ+Ô-ÙØ ŸI™I eÔ,ØŸ	™	 $�ä$Ø UØ"*¨1¨#¨Z¸°xÐ @ð%Xà öñ ˜D”>ÙØŸ	™	 %Ô(Ø—I‘I˜d•Oð "ð .ð .ô. ˜E¤>Ô2°u×7TÑ7TØô8
ñ œ˜E×5Ñ5°dÓ;Ó<Ô=ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð >ô ˜œÔ/ðô ˜eŸm™m¬U¯]©]Ô;Ø"'×"5Ñ"5°d·k±kÓ"B‘Kä",¨U¯]©]¸aÑ-?Ó"@�Kñ
 ˜Ô$ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð %ô ˜œy×=Ñ=Ô>Ù˜Œ~ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð õ
 3à�|‰|Ð'Ñ,>¸u¿|¹|Ô,LÙ˜E×0Ñ0Ó2Ô3ÙØŸ	™	 %Ô(Ø—I‘I˜d•Oð 4ô
 !Ø$Ø5°e°WÐ=Ø ,Ø ö	øô] ×-Ñ-ò Ü×-Ñ-¨dÔ3ðØ×)Ñ)¨$°	Ó:‘AøÜ×1Ñ1ò Ü×1Ñ1°$Ô7Ø’Aðýðûôp —=‘=ò Ø×4Ñ4Ô6Ù+¨D°$¸È2ÈaÈSÈÔRÕRØûðús[   Í&Y ÔAZ9 Ù(Z6Ù/ZÚZ6Ú*Z/Ú,Z6Ú.Z/Ú/Z6Ú5Z6Ú9[6Û[1Û*[6Û0[1Û1[6)r¬   )r   ÚFUNDAMENTALr    )r  r  r›  rm  rn  ro  rp  s   `` @@@@r~   Úgeneric_jumpr�  ;  sb   ý€ à)€Hð	@ð ðÜ	×	&Ñ	&ðà;ð€F÷
1Mð 1MðfkÐ/ð k´{÷ kò kðZ €Lr€   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó‚   •‡ ‡— t        j                  ‰ «      dddt        fˆˆ fd„«       }dddt        dt        fˆfd„Š|S )Nr•   ræ   r�   c                 óP  •— | j                  «       }|j                  r"|j                  €J ‚ ‰| ||j                  «      S 	  ‰| |«      S # t        $ �r@}| j                  r>|j                  «        t        dd| j                  › �ddgt        j                  ¢|¬«       t        |t        j                  «      r‚ | j                  «       s‚ t        | j                  dt        |«      |j                   ¬«       | j#                  «       r>d| j%                  «       › �}t&        j)                  |«       t        j*                  |«      |‚|j                  «        |j-                  d	«       t/        |j0                  |j                   «      |_        Y d }~nd }~ww xY w|j3                  «        y )
Nz0Graph 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.)rP  rQ  rR  rS  Úfrom_excT)r4  r‘   rF  rU  Úgraph_break)Ú	speculater�   r‘   r+   Úactive_generic_context_managersÚremove_from_statsr*   r   ÚCAUSED_BY_EARLIER_GRAPH_BREAKr!  r   ÚUncapturedHigherOrderOpErrorrZ  rK  rE  rš   Ú
real_stackr[  r\  rä   r]  r^  Úadd_to_statsr/   ri  r–   )r•   r�   ÚspeculationÚexcpri  Úhandle_graph_breakÚinner_fns        €€r~   Úwrapperz>break_graph_if_unsupported.<locals>.decorator.<locals>.wrapper,  sŠ  ø€ àŸ.™.Ó*ˆKØ×!Ò!Ø"×)Ñ)Ð5Ð5Ð5Ù)¨$°°k×6HÑ6HÓIÐIð)SÙ  dÓ+Ð+øÜó 'SØ×7Ò7ð ×*Ñ*Ô,Ü$Ø RØ"CÀD×DhÑDhÐCiÐ jð %Dàcðä.×LÑLðð "&õ	ô ˜d¤C×$DÑ$DÔEØà×8Ñ8Ô:ØäØ×%Ñ%Ø!Ü˜t›9Ø#Ÿ™õ	ð ×*Ñ*Ô,à]Ø×-Ñ-Ó/Ð0ð2ð ô —H‘H˜S”MÜŸ-™-¨Ó,°$Ð6à×&Ñ&Ô(Ø×!Ñ! -Ô0Ü%7¸¿¹À$Ç/Á/Ó%R�×"Ñ"ûðO'SúðP ×1Ñ1Õ3s   ÁA
 Á

FÁD6FÆFr‘   c                 óR  •— | j                   j                  | |¬«       t        | «      }g }| j                  D ]Ô  }t	        |j
                  t        «      r:|j                  |j                  «       j                  |j                  |«      «       ŒW|j
                  €J ‚t	        |j
                  t        «      sJ ‚|j
                  j                  |«       |j                  |j                  «       j                  |j                  |«      «       ŒÖ | j                   j                  |j                  «       «       ~t         j"                  dk\  rÇ|j$                  dk(  r¸| j&                  �| j&                  j)                  «       nd}t+        |«      dkD  r<t         j"                  dk  sJ ‚| j                   j                  t-        d|¬«      g«       t/        |j0                  d	«      }|d
   j3                  |«       | j                   j                  |«       nF|j4                  �J ‚t7        j6                  |«      }d |_        | j                   j                  |g«       | j                   j                  |«       t         j"                  dk\  r†t         j"                  dk  rs|j$                  dk(  rdt;        j<                  t:        j>                  d   |j0                  «      t;        j<                  t:        j>                  d   |j0                  «      z   }	n*t;        j<                  |j@                  |j0                  «      }	| jC                  ‰|	z
  «       tE        ‰«      D ]  }
| jG                  tI        «       «       Œ | j                   j                  | jK                  | jL                  «      «       y )NrT  ©rW  é   r  rž   r   rV  ÚKW_NAMES©r#  Fr)  ©rW  é   r  )'rì   r_  r$   Úblock_stackr!  rô   rk   Úextend_outputrû   Útry_except_torch_function_moderE  rM   Úreconstruct_typeÚtry_finallyre  Úget_instructionsrc  rd  r²   Úkw_namesrx  r°   r   r   Úargrf  rò   ÚcopyÚexn_tab_entryÚdisÚstack_effectÚopmapÚopcoder  Úranger  re   ra  rb  )r•   r�   r‘   ÚcgÚcleanupÚbr¼  Ú
call_instsÚ	inst_copyrÁ  r}   r  s              €r~   r¬  zIbreak_graph_if_unsupported.<locals>.decorator.<locals>.handle_graph_break^  sç  ø€ ð
 �K‰K×(Ñ(¨°fÐ(Ô=Ü˜4“ˆBØ)+ˆGà×%Ñ%ò V�ô ˜aŸn™nÔ.GÔHØ×$Ñ$ØŸ™›×DÑDØŸO™O¨Wóôð
 Ø—~‘~Ð1Ð1Ð1Ü! !§.¡.Ô3JÔLÐLÐLØ—‘×/Ñ/°Ô3Ø× Ñ  §¡£×!:Ñ!:¸2¿?¹?ÈGÓ!TÕUðVð �K‰K×/Ñ/°×0CÑ0CÓ0EÔFØä×Ñ 7Ò*¨t¯{©{¸fÒ/Dð —}‘}Ð0ð —M‘M×4Ñ4Ô6àð ô
 �x“= 1Ò$ä×+Ñ+¨gÒ5Ð5Ð5Ø—K‘K×7Ñ7Ü+¨J¸xÔHÐIôô 2°$·(±(¸EÓB�
Ø˜2‘×-Ñ-¨dÔ3Ø—‘×3Ñ3°JÕ?ð —{‘{Ð*Ð*Ð*Ü ŸI™I d›O�	Ø*.�	Ô'Ø—‘×3Ñ3°Y°KÔ@à�K‰K×/Ñ/°Ô8ô × Ñ  GÒ+Ü×$Ñ$ wÒ.Ø—K‘K 6Ò)ô  #×/Ñ/Ü—I‘I˜iÑ(¨$¯(©(ó ä×$Ñ$¤S§Y¡Y¨vÑ%6¸¿¹ÓAñ B‘ô  #×/Ñ/°·±¸T¿X¹XÓF�Ø�I‰I�d˜\Ñ)Ô*ä˜4“[ò -�Ø—	‘	œ/Ó+Õ,ð-à�K‰K×/Ñ/Ø×*Ñ*¨4×+@Ñ+@ÓAõr€   )r  r  r    r/   )r­  r®  r¬  r  s   ` @€r~   Ú	decoratorz-break_graph_if_unsupported.<locals>.decorator+  sY   ú€ Ü	�‰˜Ó	"ð/	4Ð5ð /	4¼[õ /	4ó 
#ð/	4ðbC	Ø-ðC	äðC	ô 'õC	ðJ ˆr€   rž   )r  rÊ  s   ` r~   Úbreak_graph_if_unsupportedrË  *  s   ø€ ôxðt Ðr€   c                   ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚBytecodeDistpatchTableMetazTInstalls a `cls.dispatch_table` on every subclass to speed up calls to self.OPCODE()c                 ó>  •— t         ‰	| �  |||«       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).rO  )r*   r   ÚSUPPORTABLE)r²   r|   s     r~   Ú_missingz5BytecodeDistpatchTableMeta.__init__.<locals>._missing®  sS   € ÜØ2Ø!˜( +¨d¨VÐ4Ø[Ð\bÐ[cÐceÐfà;¸F¸8ð D_ð _ðô '×2Ñ2ðö		r€   é   )ÚsuperÚ__init__rÀ  rÂ  rÉ   Úgetattrr  ÚpartialrÄ  ÚgetÚdispatch_table)
rÖ   r„   ÚbasesÚdctrÒ  r²   ÚoprÙ  ÚiÚ	__class__s
            €r~   rÕ  z#BytecodeDistpatchTableMeta.__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Á3BrÞ   )r—   r˜   r™   r¸   rÕ  Ú__classcell__©rÞ  s   @r~   rÍ  rÍ  ¨  s   ø„ Ù^÷Jñ Jr€   rÍ  c                   óÊ   — e Zd ZU dZ ej
                  e¬«      Zee   e	d<    ej
                  d¬«      Z
ee   e	d<   d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZy)ÚExceptionStackzU
    Exception stack that it is shared among all InstructionTranslator instances
    r¡   Ú
_exc_stackN)ÚdefaultÚ_current_exceptionc                 ó   — d | _         y rw   ©rå  r§   s    r~   Úclear_current_exceptionz&ExceptionStack.clear_current_exceptionÕ  s
   € Ø"&ˆÕr€   c                 ó4   — | j                  |«       || _        y rw   )Ú._set_context_and_break_context_reference_cyclerå  ©r•   Úvals     r~   Úset_current_exceptionz$ExceptionStack.set_current_exceptionØ  s   € Ø×;Ñ;¸CÔ@Ø"%ˆÕr€   c                 óv   — | j                   €J ‚| j                  | j                   «       | j                  «        y rw   )rå  r±   rè  r§   s    r~   Úmove_current_exception_to_stackz.ExceptionStack.move_current_exception_to_stackÜ  s2   € Ø×&Ñ&Ð2Ð2Ð2Ø�‰�D×+Ñ+Ô,Ø×$Ñ$Õ&r€   c                 ó6   — | j                   €J ‚| j                   S rw   rç  r§   s    r~   Úget_current_exceptionz$ExceptionStack.get_current_exceptioná  s    € Ø×&Ñ&Ð2Ð2Ð2Ø×&Ñ&Ð&r€   c                 óè   — |j                   x}rt        |«      t        ur|S t        | j                  «      |z   dkD  r5| j                  |   }| j                  ||dz
  «       |j                  |«       |S ©Nr   r   )Ú__context__ÚtyperL   r°   rã  Ú_set_context_recursiveÚset_context)r•   rì  Úprev_idxÚctxÚprevs        r~   rö  z%ExceptionStack._set_context_recursiveå  sk   € Ø—?‘?Ð"ˆCÐ"¬¨S«	Ô9IÑ(IØˆJÜˆt�‰Ó (Ñ*¨QÒ.Ø—?‘? 8Ñ,ˆDØ×'Ñ'¨¨h¸©lÔ;Ø�O‰O˜DÔ!Øˆ
r€   c                 ó¼   — |x}}d}	 |j                   }t        |«      t        u ry ||u r|j                  t        d «      «       y |}||u ry |r|j                   }| }ŒVrë   )rô  rõ  rL   r÷  )r•   rì  ÚoÚslow_oÚslow_update_togglerQ  s         r~   Ú_break_context_reference_cyclez-ExceptionStack._break_context_reference_cycleî  sy   € ð
 ÐˆˆFØ"ÐØØ—m‘mˆGÜ�G‹}Ô 0Ñ0Øà˜#‰~Ø—‘Ô.¨tÓ4Ô5ØàˆAØ�F‰{ð á!Ø×+Ñ+�Ø%7Ð!7Ðð# r€   c                 óv   — | j                  |t        | j                  «      dz
  «       | j                  |«       y )Nr   )rö  r°   rã  rÿ  rë  s     r~   rê  z=ExceptionStack._set_context_and_break_context_reference_cycle  s.   € à×#Ñ# C¬¨T¯_©_Ó)=ÀÑ)AÔBØ×+Ñ+¨CÕ0r€   c                 ó6   — | j                   j                  «       S rw   )rã  r`  r§   s    r~   r`  zExceptionStack.pop  s   € Ø�‰×"Ñ"Ó$Ð$r€   c                 ó:   — | j                   j                  |«       y rw   )rã  r±   rë  s     r~   r±   zExceptionStack.append  s   € Ø�‰×Ñ˜sÕ#r€   c                 ó,   — t        | j                  «      S rw   )r°   rã  r§   s    r~   rt  zExceptionStack.__len__  s   € Ü�4—?‘?Ó#Ð#r€   c                 ó    — | j                   |   S rw   )rã  )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=)rã  rå  r§   s    r~   Ú__str__zExceptionStack.__str__  s"   € Ø"�$—/‘/Ð#Ð#? t×'>Ñ'>Ð&@ÐAÐAr€   )r—   r˜   r™   r¸   r¹   rº   r»   rã  rH   r›   rå  r   rè  rí  rï  rñ  rö  rÿ  rê  r`  r±   rt  r  r  Ú__repr__rž   r€   r~   râ  râ  Á  s†   … ñð ):¨×(9Ñ(9È$Ô(O€J��_Ñ%ÓOØ4E°K×4EÑ4EÈdÔ4SÐ˜ Ñ1ÓSò'ò&ò'ò
'òò8ò41ò
%ò$ò$ò&òBð �Hr€   râ  c            #       óê  ‡ — e Zd ZU eed<   eeef   ed<   eeef   ed<   eed<   e	e   ed<   e
e   ed<   eed<   e	e   ed<   eed	<   e
e   ed
<   eed<   e	e   ed<   eed<   eed<   e
e   ed<   e	e   ed<   eed<   e
e   ed<   e
eegef      ed<   e
e   ed<   d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdede	e   deeef   fd„Zd„ Zd „ ZdÎd"„Zd#„ Zd$„ Z d%„ Z!e"jF                  d&k\  rd'„ Z$nd(„ Z$e%d)„ «       Z&d*„ Z'd+„ Z(d,„ Z)d-e
e   fd.„Z*d/e	e   fd0„Z+d1efd2„Z,d3ed1e	e   fd4„Z-d5„ Z.d6„ Z/d7„ Z0d8„ Z1d9„ Z2e.Z3d:„ Z4d;„ Z5d<„ Z6e7jp                  d=„ «       Z9d>„ Z:d?„ Z;e<d@„ «       Z=dA„ Z>dB„ Z?dC„ Z@dD„ ZAdE„ ZBdF„ ZCdG„ ZDeDZEeDZF eGeHj’                  dH«      ZJ eGeHj–                  dH«      ZL eGeHj’                  dI«      ZM eGeHj–                  dI«      ZNdJ„ ZOdK„ ZPdL„ ZQdM„ ZRdN„ ZSdO„ ZTdP„ ZUdQ„ ZVdR„ ZWdS„ ZXdT„ ZYdU„ ZZd1e[fdV„Z\dW„ Z]dX„ Z^dY„ Z_dZ„ Z`d[„ Zad\„ Zbd]„ Zcd^„ Zdd_„ Zed`„ Zfda„ Zgdb„ Zhdc„ Zi ejdd¬e«      df„ «       Zk ejdd¬e«      dg„ «       Zl ejdd¬e«      dh„ «       Zmdi„ Zndj„ Zodk„ Zpdl„ Zqdm„ Zrdn„ Zsdo„ Ztdp„ Zudq„ Zvdr„ Zwd1efds„Zx ejdt¬e«      du„ «       Zydv„ Zzdw„ Z{dx„ Z|dy„ Z}dz„ Z~efd{„Z€d|„ Z�e�Z‚d}„ Zƒd~„ Z„e„Z…d„ Z†d€„ Z‡d�„ Zˆd‚„ Z‰dƒ„ ZŠd„„ Z‹d…„ ZŒd†„ Z�d‡„ ZŽdˆ„ Z�d‰„ Z�dŠ„ Z‘d‹„ Z’dŒ„ Z“d�„ Z”dŽ„ Z•d�„ Z–d�„ Z—d‘„ Z˜d’„ Z™d“„ Zšd”„ Z›d•„ Zœd–„ Z�d—„ ZžežZŸd˜„ Z d™„ Z¡dš„ Z¢d›„ Z£dœ„ Z¤d�„ Z¥ e¦eH�jN                  «      Z¨ e¦eH�jR                  «      Zª e¦eHj’                  «      Z« e¦eH�jX                  «      Z­ e¦eH�j\                  «      Z¯ e¦eH�j`                  «      Z± e¦eH�jd                  «      Z³ e¦eH�jh                  «      Zµ e¦eH�jl                  «      Z· e¦eH�jp                  «      Z¹ e¦eH�jp                  «      Zº e¦eH�jv                  «      Z¼ e¦eH�jz                  «      Z¾  ejdd¬e«       e¦eH�j~                  «      «      ZÀ e¦eH�j‚                  «      ZÂ e¦eH�j†                  «      ZÄ e¦eH�jŠ                  «      ZÆ e¦eH�jŽ                  «      ZÈ e¦eH�j’                  «      ZÊ e¦eH�j–                  «      ZÌ e¦eH�jš                  «      ZÎ e¦eH�jž                  «      ZÐ e¦eH�j¢                  «      ZÒ e¦eH�j¦                  «      ZÔ e¦eH�jª                  «      ZÖ e¦eH�jª                  «      Z× e¦eH�j°                  «      ZÙ e¦eH�j´                  «      ZÛ e¦eH�j¸                  «      ZÝ e¦eH�j¼                  «      Zß e¦eH�jÀ                  «      Zá e¦eH�jÄ                  «      Zã e¦eH�jÈ                  «      Zådž„ Zæe"jF                  d&k\  rdŸ„ Zçd „ Zèd¡„ Zéd¢„ ZêdÏd£„Zë ejdd¬e«      d¤„ «       Zìd¥„ Zíd¦„ ZîeDZïeDZð eGeHj–                  dH«      Zñ eGeHj–                  dH«      Zò eGeHj’                  dH«      Zó eGeHj’                  dH«      Zôd§„ Zõd¨„ Zöd©„ Z÷dª„ Zød«„ Zùd¬„ Zúd­„ Zûd®„ Züd¯„ Zýd°„ Zþd±„ Zÿd²„ �Z d³„ �Z ejdd¬e«      d´„ «       �Zdµ„ �Zd¶„ �Zd·„ �Zd¸„ �Zd¹„ �Zdº„ �ZdÎd»„�Z	d¼„ �Z
d½„ �Zd¾„ �Ze%d¿„ «       �Z�e�j                  dÀeegef   fdÁ„«       �Zd1efdÂ„�Z	 dÎdedÃe	e   dÄeeef   dÅeeef   dÆeeef   dÇeeef   deeef   deeef   dedÈ�e�j&                  dÉededÊ�ededËe
�e   dÌe
�e�e�j.                        d1d!f"ˆ fdÍ„�Zˆ x�ZS )Ðræ   rì   Úsymbolic_localsÚsymbolic_globalsÚsymbolic_torch_function_stateÚstackrŽ   Úcurrent_instructionr¶  r�   r¼  Úaccept_prefix_instÚprefix_instsÚinline_depthÚinconsistent_side_effectsÚcurrent_speculationrÙ  Úexn_vt_stackÚexec_recorderÚstrict_checks_fnÚstart_pointc                 ó   — 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_effects7  s   € ð *.ˆÕ&r€   c                 óô   — | j                   j                  }| j                  €J ‚| j                  | j                  d  D ]8  }|j                  dv r y|j                  t
        v sŒ&|j                  }||k  sŒ8 y y)N)ÚRETURN_VALUEÚRETURN_CONSTFT)r  ÚoffsetrŽ   r"  r²   r   r#  )r•   Ú
cur_offsetr�   Újump_offsets       r~   r[  z,InstructionTranslatorBase.maybe_has_backedge?  s   € ð( ×-Ñ-×4Ñ4ˆ
Ø×'Ñ'Ð3Ð3Ð3Ø×%Ñ% d×&>Ñ&>Ð&@ÐAò 	 ˆDØ�{‰{Ð>Ñ>ÙØ�{‰{œlÒ*Ø"Ÿk™k�Ø Ó+Ùð	 ð r€   c                 óî   — t        | d«      s^t        | j                  d   xs g «      | _        t	        | t
        «      r-| xj                  | j                  j                  «       z  c_        | j                  S )NÚ	_cellvarsÚco_cellvars)rù   rú   rE  r!  r!  ÚInliningInstructionTranslatorÚparentÚcellvarsr§   s    r~   r%  z"InstructionTranslatorBase.cellvars^  óZ   € Ü�t˜[Ô)Ü" 4×#4Ñ#4°]Ñ#CÒ#IÀrÓJˆDŒNô ˜$Ô =Ô>Ø—’ $§+¡+×"6Ñ"6Ó"8Ñ8•Ø�~‰~Ðr€   c                 óî   — t        | d«      s^t        | j                  d   xs g «      | _        t	        | t
        «      r-| xj                  | j                  j                  «       z  c_        | j                  S )NÚ	_freevarsÚco_freevars)rù   rú   rE  r(  r!  r#  r$  Úfreevarsr§   s    r~   r*  z"InstructionTranslatorBase.freevarsg  r&  r€   c                 ó~   — t        | d«      s&| j                  «       | j                  «       z   | _        | j                  S )NÚ_cell_and_freevars)rù   r%  r*  r,  r§   s    r~   Úcell_and_freevarsz+InstructionTranslatorBase.cell_and_freevarsp  s2   € Ü�tÐ1Ô2Ø&*§m¡m£o¸¿¹»Ñ&GˆDÔ#Ø×&Ñ&Ð&r€   c                 ó
  — t        | j                  | j                  «      }| j                  j	                  «       D ��ci c]  \  }}||v sŒ||“Œ c}}| _        | j
                  j                  j                  | «       y c c}}w rw   )r   r"  r  r
  rÉ   rì   Úside_effectsÚprune_dead_object_new)r•   ÚreadsrÅ   rÆ   s       r~   Úprune_dead_localsz+InstructionTranslatorBase.prune_dead_localsu  sn   € ä! $×"3Ñ"3°T×5MÑ5MÓNˆà!×1Ñ1×7Ñ7Ó9÷ 
Ù�Q˜¸QÀ%ºZˆAˆq‰Dó 
ˆÔð 	�‰× Ñ ×6Ñ6°tÕ<ùó	 
s   ¾A?ÁA?r  r|   Úkwargsc                 óÐ  — t        |t        «      sJ ‚t        |t        «      sJ ‚t        |t        «      sJ ‚t	        d„ t        j                  ||j                  «       «      D «       «      sJ ‚d }t        |d«      r|j                  }t        |d«      r|j                  }|r$t        |«      rt        |«      rt        d|› �«      ‚| j                  |j                  | ||«      «       y )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrw   )r!  rH   )rÄ   r˜  s     r~   rÇ   z:InstructionTranslatorBase.call_function.<locals>.<genexpr>‡  s   è ø€ ò 
àô �qœ/×*ñ
ùó   ‚rg  r  z$Attempt to trace forbidden callable )r!  rH   r»   rÊ   ÚallÚ	itertoolsÚchainÚvaluesrù   rg  r  Úcallabler=   ÚAssertionErrorr  r  )r•   r  r|   r3  r­  s        r~   r  z'InstructionTranslatorBase.call_function~  sÐ   € ô ˜"œoÔ.Ð.Ð.Ü˜$¤Ô%Ð%Ð%Ü˜&¤$Ô'Ð'Ð'Üñ 
ä—_‘_ T¨6¯=©=«?Ó;ô
ô 
ð 	
ð 
ð ˆÜ�2�wÔØ—x‘xˆHÜ�2�tÔØ—u‘uˆHÙœ Ô*¬|¸HÔ/EÜ Ð#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"
        )r!  rS   r  ©r•   r  r|   r3  s       r~   Úinline_generator_functionz3InstructionTranslatorBase.inline_generator_function”  s.   € ô ˜"Ô<Ô=Ü/°Ó3ˆBØ×Ñ  d¨FÓ3Ð3r€   c                 óª   — t         j                  r,t        |j                  «       «      r| j	                  |||«      S t
        j                  | |||«      S )zF
        A call to some user defined function by inlining it.
        )r   Ú"enable_faithful_generator_behaviorr!   Úget_coder?  r#  Úinline_callr>  s       r~   Úinline_user_function_returnz5InstructionTranslatorBase.inline_user_function_returnœ  sF   € ô ×4Ò4¼ÀbÇkÁkÃmÔ9TØ×1Ñ1°"°d¸FÓCÐCä0×<Ñ<¸TÀ2ÀtÈVÓTÐTr€   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­   z in )r�   r  r,   Úf_coder*  Ú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À   z    )rL  Ú	linecacheÚgetlinerG  r*  r�   Úrstrip)r•   Úlog_strÚlines      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
                  «       ddlm}  || j                  j                  «       t        j                  t        j                  «      r*t        j                  dt        | j                  «      «       y y )Nr   )Ú	dump_fileú%s)r�   r   Úset_current_locrG  r*  rH  Útorch._logging.structuredrU  Útrace_source_logrA  r   rB  rD  rD   rS  )r•   r�   rU  s      r~   Ústarts_linez%InstructionTranslatorBase.starts_lineµ  sŠ   € Ø�;‰;˜&Ò ØØˆŒÜ×&Ñ&Ø�K‰K×#Ñ# V¨T¯[©[×-@Ñ-@ô	
õ 	8á�$—+‘+×)Ñ)Ô*Ü×(Ñ(¬¯©Ô7Ü×"Ñ" 4¬°D×4TÑ4TÓ)UÕVð 8r€   c                 ó  — | j                   }|€y| j                  |   x| _        }|dz   | _         |j                  r| j                  |j                  «       | j                  s\| j                  «       rL| j                  «       r<| j                  «       | _        | j                  j                  r| j                  |«      S t        j                  t        j                  «      r6t        j                  d|j                   |j"                  | j                  «       | j%                  |«       	  | j&                  |j(                     | |«       | j*                  j,                   S # t.        $ r ‚ t0        j2                  $ r}| j5                  |«       Y d}~yd}~wt6        t8        f$ r Y yt:        $ r< | j                  €t<        j                  d«       ‚ t<        j                  dd¬«       Y nw xY w| j                  j?                  «        y)	z<Process exactly one instruction, return False we should exitNFr   zTRACE %s %s %sTzempty checkpointzstep triggered compile©r4  ) rŽ   r"  r  rZ  r  rZ  Úis_non_empty_graphr£  r  r�   Ústep_graph_breakÚtrace_bytecode_logrA  r   rB  rD  r²   r#  Úupdate_block_stackrÙ  rÃ  rì   rí   r
   r   ÚObservedExceptionÚexception_handlerr  r  r+   rä   r–   )r•   Úipr�   rš  s       r~   ÚstepzInstructionTranslatorBase.stepÂ  s©  € à×%Ñ%ˆØˆ:ØØ*.×*;Ñ*;¸BÑ*?Ð?ˆÔ  4Ø#%¨¡6ˆÔ à×ÒØ×Ñ˜T×-Ñ-Ô.ð —
’
Ø×1Ñ1Ô3Ø×'Ñ'Ô)à'+§~¡~Ó'7ˆDÔ$Ø×'Ñ'×.Ò.Ø×,Ñ,¨TÓ2Ð2ä×*Ñ*¬7¯=©=Ô9Ü×$Ñ$Ø  $§+¡+¨t¯{©{¸D¿J¹Jôð 	×Ñ Ô%ð	?Ø,ˆD×Ñ §¡Ñ,¨T°4Ô8Ø—{‘{×.Ñ.Ð.Ð.øÜ-ò 	ØÜ×$Ñ$ò 	Ø×"Ñ" 1Ô%ÜûÜœ|Ð,ò 	ÙÜò 	?Ø×'Ñ'Ð/Ü—	‘	Ð,Ô-ØÜ�I‰IÐ.¸ˆIÖ>ð		?úð 	× Ñ ×:Ñ:Õ<s%   Ä*6E! Å!G+Å=FÆG+Æ'AG+Ç*G+r°  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                  rD|j
                  dvr5t        | j                  «      dk(  sJ ‚| j                  j	                  «        y y y )Né   r)  éþÿÿÿ)ÚNOPÚJUMP_BACKWARDr   )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ð /ð  ×#Ò#¨¯©Ð;SÑ(Sô ˜t×/Ñ/Ó0°AÒ5Ð5Ð5Ø×$Ñ$×(Ñ(Õ*ð )TÐ#r€   c                  ó   — y rw   rž   ©r•   r�   s     r~   r`  z,InstructionTranslatorBase.update_block_stack  s   € Ør€   c                 ó4   — | j                   | j                     S rw   )r"  rŽ   r§   s    r~   rb  z*InstructionTranslatorBase.next_instruction  s   € à× Ñ  ×!9Ñ!9Ñ:Ð:r€   c           	      ó"  — | j                   j                  rJ ‚| j                  €J ‚| j                   j                  | dt	        d| j                  «       g«      ¬«       | j                   j                  t        |«      g| j                  z   «       y )NTÚstep_unsupported)Úpartial_convertr‘   )	rì   Úoutput_instructionsr  r_  r/   r\  re  r   r"  )r•   Úcontinue_insts     r~   r^  z*InstructionTranslatorBase.step_graph_break!  s…   € à—;‘;×2Ò2Ð2Ð2Ø×'Ñ'Ð3Ð3Ð3Ø�‰×$Ñ$ØØ Ü%Ð&8¸4×;MÑ;MÓ;OÐ:PÓQð 	%ô 	
ð
 	�‰×+Ñ+Ü! -Ó0Ð1°D×4EÑ4EÑEõ	
r€   c                 ó,   — t        j                  d «      S rw   )r   Úcurrent_framer§   s    r~   Úrun_ctx_mgrz%InstructionTranslatorBase.run_ctx_mgr.  s   € ô ×+Ñ+¨DÓ1Ð1r€   c           
      óâ  — | j                  «       5  	 | j                  j                  | «       | j                  | _        | j                  «       r	 | j                  «       rŒ| j                  j1                  «        t3        | t4        «      r| j                  j7                  «        	 d d d «       y # t        $ r ‚ t        $ r ‚ t        $ r–}t        |d«      r„d|j                  v rvt        dt        j                  j                  | j                  j                  | j                  j                   «      j#                  ddd¬«      z   t$        j&                  ¬«       ‚ d }~wt(        $ r1}| j*                  r| j*                  j-                  «       |_        ‚ d }~ww xY w# | j                  j1                  «        t3        | t4        «      r| j                  j7                  «        w w xY w# 1 sw Y   y xY w)Nri  zData-dependentrÀ   FT)Úprint_outputÚinclude_strideÚinclude_device)Úfile)rt  rì   Úpush_txrŽ   r  rd  r
   r&   ÚRuntimeErrorrù   ri  Úprintr8  r~  ÚGraphModuleÚ
nn_modulesÚgraphÚprint_readablerc  ÚstderrÚ	Exceptionr  Ú
get_recordÚexec_recordÚpop_txr!  r	  rÆ  )r•   rš  s     r~   ÚrunzInstructionTranslatorBase.run4  s“  € Ø×ÑÓñ $	*ð#*Ø—‘×#Ñ# DÔ)Ø#'×#;Ñ#;�Ô Ø—i‘i”kØð —i‘i•kð2 —‘×"Ñ"Ô$ô ˜dÔ$9Ô:Ø—K‘K×'Ñ'Õ)÷I$	*ð $	*øô 2ò ØÜ(ò ØÜò Ü˜1˜eÔ$Ð)9¸Q¿U¹UÑ)BÜØÜŸ(™(×.Ñ.Ø ŸK™K×2Ñ2°D·K±K×4EÑ4Eóç(™.Ø).¸tÐTXð )ó ñô !ŸZ™Zõð ûÜò Ø×%Ò%Ø$(×$6Ñ$6×$AÑ$AÓ$C�A”Màûð	ûð —‘×"Ñ"Ô$ô ˜dÔ$9Ô:Ø—K‘K×'Ñ'Õ)ð ;ú÷G$	*ð $	*úsJ   ‘G%“AB/Á!AG%Â/FÃ
BEÅFÅ',FÆFÆFÆAG"Ç"G%Ç%G.rì  c                 ó„   — |�#t        |t        «      sJ dt        |«      › �«       ‚| j                  j	                  |«       y )Nz"push expects VariableTracker, got )r!  rH   rF   r  r±   rë  s     r~   r  zInstructionTranslatorBase.push[  s?   € Øˆ{œj¨¬oÔ>ð 	
Ø0´¸³°Ð?ó	
Ð>ð 	�
‰
×Ñ˜#Õr€   Úvalsc                 ó4   — |D ]  }| j                  |«       Œ y rw   ©r  )r•   rˆ  rì  s      r~   Ú	push_manyz#InstructionTranslatorBase.push_manya  s   € Øò 	ˆCØ�I‰I�c�Nñ	r€   r…   c                 ó6   — | j                   j                  «       S rw   )r  r`  r§   s    r~   r`  zInstructionTranslatorBase.pope  s   € Ø�z‰z�~‰~ÓÐr€   Únc                 óp   — g t        t        |«      D �cg c]  }| j                  «       ‘Œ c}«      ¢S c c}w rw   )ry   rÄ  r`  )r•   r�  r}   s      r~   r  zInstructionTranslatorBase.popnh  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)Nú.Ú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 comprehensionsrO  z*Attempted to read undefined local variablez+Could not find a local variable with name `Ú___stack)r#  r  Úf_localsÚadd_local_varr  r
  ÚunwrapÚKeyErrorÚ
startswithÚreplacer*   r   r‚  r`  )r•   r�   r„   Únew_names       r~   Ú	LOAD_FASTz#InstructionTranslatorBase.LOAD_FASTk  sP  € Ø�{‰{ˆØ×Ò $¨$¯-©-Ñ"7Ø×Ñ×,Ñ,¨T°4·=±=ÀÑ3FÔGð	Ø�I‰I�d×*Ñ*¨4Ñ0×7Ñ7Ó9Ô:ð4 �?‰?˜:Ô&Ø× Ñ ×$Ñ$ 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 sJ ‚| j                  |j                      }| j                  j                  j                  |«      }| j                  |«       | j                  rW|j                   | j                  v r>| j                  j                  |j                   | j                  |j                      «       y y y rw   )
r#  r-  r
  rì   r/  Ú	load_cellr  r  r”  r•  )r•   r�   ÚcellÚcontents_vars       r~   Ú
LOAD_DEREFz$InstructionTranslatorBase.LOAD_DEREFŽ  sž   € Ø�{‰{˜d×4Ñ4Ó6Ñ6Ð6Ð6Ø×#Ñ# D§K¡KÑ0ˆØ—{‘{×/Ñ/×9Ñ9¸$Ó?ˆØ�	‰	�,Ôà×Ò $§+¡+°·±Ñ">Ø×Ñ×,Ñ,¨T¯[©[¸$¿-¹-ÈÏÉÑ:TÕUð #?Ðr€   c                 ó|   — |j                   }| j                  «       }|j                  |«       || j                  |<   y rw   )r#  r`  Úset_name_hintr
  )r•   r�   r„   Ú	loaded_vts       r~   Ú
STORE_FASTz$InstructionTranslatorBase.STORE_FAST—  s4   € Ø�{‰{ˆØ—H‘H“Jˆ	Ø×Ñ Ô%Ø%.ˆ×Ñ˜TÒ"r€   c                 ó2   — | j                   |j                  = y rw   )r
  r#  rk  s     r~   ÚDELETE_FASTz%InstructionTranslatorBase.DELETE_FAST�  s   € Ø× Ñ  §¡Ñ-r€   c                 óR  — |j                   | j                  «       v sJ ‚| j                  |j                      }| j                  «       }| j                  j
                  j                  ||«       t        |t        «      sJ ‚|j                  �|j                  |j                  «       y y rw   )r#  r-  r
  r`  rì   r/  Ú
store_cellr!  r`   Ú
local_namer¢  )r•   r�   rž  rì  s       r~   ÚSTORE_DEREFz%InstructionTranslatorBase.STORE_DEREF   s‡   € Ø�{‰{˜d×4Ñ4Ó6Ñ6Ð6Ð6Ø×#Ñ# D§K¡KÑ0ˆØ�h‰h‹jˆØ�‰× Ñ ×+Ñ+¨D°#Ô6ä˜$¤Ô-Ð-Ð-Ø�?‰?Ð&Ø×Ñ˜dŸo™oÕ.ð 'r€   c                 óâ   — |j                   }|€ t        j                  |j                  ¬«      S | j                  |   }|s/t        j                  |j                  ¬«      x| j                  |<   }|S )N©rg  )r½  rL   r$  r#  Ú_constants_cache)r•   r�   rÝ  rì  s       r~   Ú_load_constz%InstructionTranslatorBase._load_const¬  sa   € Ø�H‰HˆØˆ9Ü#×*Ñ*°·±Ô=Ð=Ø×#Ñ# AÑ&ˆÙÜ-=×-DÑ-DÈ4Ï;É;Ô-WÐWˆD×!Ñ! !Ñ$ sØˆ
r€   c                 óD   — | j                  | j                  |«      «       y rw   )r  r®  rk  s     r~   r  z$InstructionTranslatorBase.LOAD_CONSTµ  s   € Ø�	‰	�$×"Ñ" 4Ó(Õ)r€   c           	      ó¢  — |j                   }| j                  rn|| j                  v r*| j                  j                  || j                  |   «       n6|| j                  v sJ ‚| j                  |   | j                  j
                  |<   || j                  v r\| j                  j                  | j                  |      }| j                  | j                  j                  j                  ||«      «       y 	 | j                  |   }| j                  t        j                  | |t        |«      «      «       y # t        $ r | j                  |«      cY S w xY wrw   )r#  r  Ú	f_globalsÚadd_global_varÚ
f_builtinsÚbuiltinsr  rì   r/  r  Úload_globalr—  Úload_builtinrH   Úbuildr7   )r•   r�   r„   Úvariablerg  s        r~   Ú_load_globalz&InstructionTranslatorBase._load_global¸  s  € Ø�{‰{ˆà×ÒØ�t—~‘~Ñ%Ø×"Ñ"×1Ñ1°$¸¿¹ÀtÑ8LÕMà˜tŸ™Ñ.Ð.Ð.Ø48·O±OÀDÑ4I�×"Ñ"×+Ñ+¨DÑ1à�4×(Ñ(Ñ(Ø—{‘{×/Ñ/°×0EÑ0EÀdÑ0KÑLˆHØ�I‰I�d—k‘k×.Ñ.×:Ñ:¸8ÀTÓJÔKØð	+Ø—N‘N 4Ñ(ˆEð 	�	‰	”/×'Ñ'¨¨e´\À$Ó5GÓHÕIøô ò 	+Ø×$Ñ$ TÓ*Ò*ð	+ús   Ã2D1 Ä1EÅEc                 ól   — d}| j                  |«      }t        |«      }t        j                  | ||«      S )Nztorch.nn.modules.module)Úimport_sourcer‰   rH   r·  )r•   Úmodule_nameÚmodule_sourceÚfglobals_values       r~   Únn_modules_globals_vtz/InstructionTranslatorBase.nn_modules_globals_vtÎ  s6   € à/ˆØ×*Ñ*¨;Ó7ˆÜ'¨Ó4ˆÜ×$Ñ$ T¨>¸=ÓIÐIr€   c                 ó  — 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°  rV  rf  )rc  rd  r½  Ú	PUSH_NULLr¹  rk  s     r~   ÚLOAD_GLOBALz%InstructionTranslatorBase.LOAD_GLOBALÕ  sn   € Ü×Ñ˜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.rO  )r`  r#  r7   r  Úobjectrì   r/  Útrack_global_existingr!  rl   r*   Ústore_global)r•   r�   rg  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                  }||vs	||   |u sJ ‚|||<   | j                  j                  |«       t        |«      S )z-Create an alias to a module for use in guardsÚtorch_packageú>r}   ú<r�  Ú_dot_Ú	__import_)
r8  ÚpackageÚpackage_importerÚ_package_imported_modulesr™  r‰   rì   Úglobal_scopeÚupdate_co_namesr7   )r•   r¼  rg  Úaliasr±  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Ø—K‘K×,Ñ,ˆ	Ø˜IÑ%¨°5Ñ)9¸UÑ)BÐBÐBØ ˆ	�%ÑØ�‰×#Ñ# 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
        r�  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)rW  )Ú
stacklevelzYcan't resolve package from __spec__ or __package__, falling back on __name__ and __path__r—   Ú__path__r�  r   )r±  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)Nrf  r}   )ÚfromlistrØ  ÚglobalszImport failurezmodule_name: z, fromlist: z, level=z"Failure when attempting to import.rO  r   r�  ©r…  zBad import resultz%Import result is not a Python module.)r  rx  r#  r2   ÚLOCAL_MOD_PREFIXr±  r7   Ú
__import__r×  r*   r   r‚  rä  rÛ  Ú	partitionr»  r  Úadd_local_modrC   ÚtypesÚ
ModuleTyper1   r  rd   rF   )
r•   r�   rØ  ræ  r¼  Úrecorded_namerg  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ä�%œ%×*Ñ*¬KÐ8Ô9Ø�I‰IÔ*¨5¸Ô@ÕAäØ+Ü ›ØCØö	øô; ò Ü Ø,Ø+¨K¨=¸ÀXÀJÈhÐW\ÐV]Ð^Ø DØ9Ô-×8Ñ8Ð9÷	ð ðús   ÂE> Å>1F3Æ2F3c                 óH   — | j                  |«       | j                  |«       y rw   )ÚDUP_TOPÚ
_load_attrrk  s     r~   ÚIMPORT_FROMz%InstructionTranslatorBase.IMPORT_FROMe  s   € Ø�‰�TÔØ�‰˜Õr€   c                 óz  — || j                   vrt        d|› d�«      ‚| j                   |   }t        |«      rRt        | j                  j
                  «      }t        ||«      }| j                  t        j                  | ||«      «       y t        |«      sJ ‚| j                  t        j                  |¬«      «       y )Nzname 'z' is not definedr¬  )r³  r+   r;  r7   rì   Ú%name_of_builtins_dict_key_in_fglobalsr6   r  rH   r·  r<   rL   r$  )r•   r#  rì  Úbuiltins_sourceÚ
var_sources        r~   Úload_builtin_from_argvalz2InstructionTranslatorBase.load_builtin_from_argvali  sž   € Ø˜Ÿ™Ñ(Ü  v hÐ.>Ð?Ó@Ð@Ø�o‰o˜fÑ%ˆä�CŒ=Ü*Ø—‘×AÑAóˆOô +¨?¸FÓCˆJØ�I‰I”o×+Ñ+¨D°#°zÓBÕCä& sÔ+Ð+Ð+Ø�I‰IÔ&×-Ñ-°CÔ8Õ9r€   c                 ó:   — | j                  |j                  «       y rw   )rû  r#  rk  s     r~   r¶  z&InstructionTranslatorBase.load_builtinx  s   € Ø×%Ñ% d§k¡kÕ2r€   c                 óü   — | j                   €J ‚| j                  €J ‚t        «       j                  d| j                   | j                  z
  «       | j                  |j
                     | _         | j                   | _        y )NÚir_count)rŽ   r  rA   Ú	incrementÚindexofrò   rk  s     r~   ry  zInstructionTranslatorBase.jump{  sr   € Ø×'Ñ'Ð3Ð3Ð3Ø×ÑÐ+Ð+Ð+ÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ð $(§<¡<°·±Ñ#<ˆÔ Ø×3Ñ3ˆÕr€   FTc           	      óŠ   — | j                   j                  t        ||j                  t	        | j
                  «      «      «       y rw   ©r¶  r±   rñ   rò   r°   r  rk  s     r~   Ú
SETUP_LOOPz$InstructionTranslatorBase.SETUP_LOOPŒ  ó+   € à×Ñ×Ñ¤°°d·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr€   c           	      óŠ   — | j                   j                  t        ||j                  t	        | j
                  «      «      «       y rw   r  rk  s     r~   ÚSETUP_EXCEPTz&InstructionTranslatorBase.SETUP_EXCEPT�  r  r€   c                 ó8   — | j                   j                  «        y rw   )r¶  r`  rk  s     r~   Ú	POP_BLOCKz#InstructionTranslatorBase.POP_BLOCK”  s   € Ø×Ñ×ÑÕr€   c                 ó&   — | j                  |«       y rw   ©Úsetup_or_before_withrk  s     r~   Ú
SETUP_WITHz$InstructionTranslatorBase.SETUP_WITH—  ó   € Ø×!Ñ! $Õ'r€   c           	      óŠ   — | j                   j                  t        ||j                  t	        | j
                  «      «      «       y rw   r  rk  s     r~   ÚSETUP_FINALLYz'InstructionTranslatorBase.SETUP_FINALLYš  s+   € Ø×Ñ×Ñ¤°°d·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr€   c                 ó&   — | j                  d «       y rw   rŠ  rk  s     r~   ÚBEGIN_FINALLYz'InstructionTranslatorBase.BEGIN_FINALLY�  s   € Ø�	‰	�$�r€   c                 óÈ   — | j                  d«      \  }}|�J ‚| j                  |«       | j                  |j                  | t        j                  d «      gdz  i «      «       y )Nrf  rW  )r  r  r  rL   r$  )r•   r�   rþ   r   s       r~   ÚWITH_CLEANUP_STARTz,InstructionTranslatorBase.WITH_CLEANUP_START   sX   € Ø—I‘I˜a“L‰	ˆˆcØˆ{Ðˆ{Ø�	‰	�#ŒØ�	‰	�$×$Ñ$ TÔ,<×,CÑ,CÀDÓ,IÐ+JÈQÑ+NÐPRÓSÕTr€   c                 óH   — | j                  d«       | j                  d «       y )Nrf  )r  r  rk  s     r~   ÚWITH_CLEANUP_FINISHz-InstructionTranslatorBase.WITH_CLEANUP_FINISH¦  s   € Ø�	‰	�!ŒØ�	‰	�$�r€   c                 ó    — | j                   | j                     }| j                  t        j                  |«      «       | j                  |«       y)z|
        pushes the address of the next instruction onto the stack and increments
        bytecode counter by delta
        N)r   rb  r  rL   r$  ry  )r•   r�   Úaddrs      r~   ÚCALL_FINALLYz&InstructionTranslatorBase.CALL_FINALLYª  s;   € ð �|‰|˜D×1Ñ1Ñ2ˆØ�	‰	Ô"×)Ñ)¨$Ó/Ô0Ø�	‰	�$�r€   c                 óp   — | j                  «       }t        |t        «      r|j                  «       | _        y y rw   )r`  r!  rL   rx  rŽ   ©r•   r�   Útoss      r~   ÚEND_FINALLYz%InstructionTranslatorBase.END_FINALLY´  s.   € ð �h‰h‹jˆÜ�cÔ+Ô,Ø'*×'=Ñ'=Ó'?ˆDÕ$àr€   c                 óˆ   — |j                   }|r| j                  «       }| j                  «       }|r| j                  «       y y rw   )r#  r`  r  )r•   r�   Úpreserve_tosr  r}   s        r~   ÚPOP_FINALLYz%InstructionTranslatorBase.POP_FINALLY½  s7   € à—{‘{ˆÙØ—(‘(“*ˆCØ�H‰H‹JˆÙØ�I‰I�c�Nð r€   c                 ó  — | j                  «       j                  «       }	 |j                  | «      }| j                  |«       | j                  |«       y # t        t
        j                  f$ r’}t        |t
        j                  «      rt        j                  | «       t        j                  dk\  r5| j                  |«       | j                  t        j                  d «      «       | j                  |«       Y d }~y d }~ww xY w©Nr´  )r`  ÚrealizeÚnext_variabler  ÚStopIterationr   ÚObservedUserStopIterationr!  rŒ  rc  rd  rL   r$  ry  )r•   r�   Úitrì  rš  s        r~   ÚFOR_ITERz"InstructionTranslatorBase.FOR_ITERÆ  s¼   € Ø�X‰X‹Z×ÑÓ!ˆð	Ø×"Ñ" 4Ó(ˆCØ�I‰I�bŒMØ�I‰I�c�NøÜœs×<Ñ<Ð=ò 	Ü˜!œS×:Ñ:Ô;Ü×-Ñ-¨dÔ3ô ×Ñ 7Ò*ð
 —	‘	˜"”Ø—	‘	Ô*×1Ñ1°$Ó7Ô8Ø�I‰I�d�O‰Oûð	ús    3A ÁC?Á-BC:Ã:C?c                 óD  — t        |t        j                  t        f«      r|j	                  | g i «      }t        | j                  «      rVt        |t        j                  «      r<|j                  t        u r*t        j                  t        «      j	                  | g i «      }| j                  j                  |«       | j                  |«      r*t        j                  |j                  «      } |d|› �«      ‚t!        dt#        t        «      dg t$        j&                  ¢¬«       y )Nzraised exception zFailed to raise exceptionz.Attempted to raise a non-Exception type/value.rO  )r!  r   rK   rn   r  r!   rG  ra   Úexc_typer$  r{  r  rí  Ú_isinstance_exceptionr   Úget_dynamo_observed_exceptionr*   rš   r   r‚  )r•   rì  Úobserved_exception_types      r~   Ú_raise_exception_variablez3InstructionTranslatorBase._raise_exception_variableÚ  sï   € ô Ø”)×+Ñ+Ô-NÐOô
ð
 ×#Ñ# D¨"¨bÓ1ˆCô
 ˜Ÿ™Ô%Ü˜3¤	× ;Ñ ;Ô<Ø—‘¤Ñ-ä×+Ñ+¬LÓ9×GÑGÈÈbÐRTÓUˆCð 	×Ñ×/Ñ/°Ô4ð ×%Ñ% cÔ*Ü&)×&GÑ&GÈÏÉÓ&UÐ#Ù)Ð,=¸c¸UÐ*CÓDÐDÜØ/Üœ“HØHØ1Ô%×0Ñ0Ð1ö		
r€   c           	      óô  — |j                   dk(  rPt        | j                  «      sJ ‚| j                  d   }| j                  |«      sJ |«       ‚| j	                  |«       y |j                   dk(  r!| j
                  d   }| j	                  |«       y | j                  «       }t        |t        «      rm|j                  €a| j                  «       }	 | j	                  |«       | j                  j                  «       }|j                  | t        d«      t        d «      «       t        dt        |«      dg ¬«       y # | j                  j                  «       }|j                  | t        d«      t        d «      «       w xY w)Nr   r)  r   Ú	__cause__zRe-raise with 2 argumentsz3Dynamo does not support `raise ... from [not-None]`rO  )r½  r°   r  r*  r-  r  r`  r!  rL   rg  rñ  Úcall_setattrr*   rš   )r•   r�   rì  Úfrom_vtÚcurr_excs        r~   r  z'InstructionTranslatorBase.RAISE_VARARGSþ  sI  € Ø�8‰8�qŠ=ô �t×(Ñ(Ô)Ð)Ð)Ø×#Ñ# BÑ'ˆCØ×-Ñ-¨cÔ2Ð7°CÓ7Ð2Ø×*Ñ*¨3Õ/Ø�X‰X˜Š]à—*‘*˜R‘.ˆCØ×*Ñ*¨3Õ/ð —h‘h“jˆGÜ˜'Ô#3Ô4¸¿¹Ð9NØ—h‘h“j�ðØ×2Ñ2°3Ô7ð  $×0Ñ0×FÑFÓH�HØ×)Ñ)ØÔ.¨{Ó;Ô=MÈdÓ=Sôô Ø3Ü˜G›ØQØö	øð	  $×0Ñ0×FÑFÓH�HØ×)Ñ)ØÔ.¨{Ó;Ô=MÈdÓ=Sõús   ÃD6 Ä6AE7c                 ó¬   — | j                   d   }t        |t        «      sJ ‚|j                  t        u rt        dddg ¬«       y | j                  |«       y )Nr)  z CLEANUP_THROW with StopIterationr¬   zRReceived StopIteration when handling generator.throw/close. This is not supported.rO  )r  r!  ra   r)  r$  r*   ÚRERAISEr  s      r~   ÚCLEANUP_THROWz'InstructionTranslatorBase.CLEANUP_THROW  sN   € à�j‰j˜‰nˆÜ˜#Ô0Ô1Ð1Ð1Ø�<‰<œ=Ñ(ÜØ:ØØpØö	ð �L‰L˜Õr€   c                 ón  — t         j                  dk\  ra| j                  «       }|j                  r"| j                  «       }| j	                  |«       y | j                  |«       | j	                  |«       y | j                  «       }| j                  «       }| j                  «       }| j	                  |«       y )Nr°  )rc  rd  r`  r#  r-  r  )r•   r�   rì  r}   Ú_excÚ_tbs         r~   r4  z!InstructionTranslatorBase.RERAISE,  s‡   € ô ×Ñ˜wÒ&à—(‘(“*ˆCØ�{Š{à—H‘H“J�Ø×.Ñ.¨sÕ3ð —	‘	˜#”Ø×.Ñ.¨sÕ3à—8‘8“:ˆDØ—(‘(“*ˆCØ—(‘(“*ˆCØ×*Ñ*¨3Õ/r€   c                 óL   — t        |t        j                  t        t        f«      S rw   )r!  r   ra   rn   ro   rë  s     r~   r*  z/InstructionTranslatorBase._isinstance_exceptionC  s&   € ÜØä×+Ñ+Ü1Ü2ðó
ð 	
r€   c                 ó  — t         j                  dk\  rlt        | j                  «      dk\  sJ ‚| j                  d   }| j                  d   }| j	                  |«      sJ ‚t        |j                  «      }t        d «      }nkt        | j                  «      dk\  sJ ‚| j                  d   }| j                  d   }| j	                  |«      sJ ‚t        |j                  «      }t        d «      }| j                  ||||gi «       y )Nr°  é   éüÿÿÿr)  é   iùÿÿÿrg  )	rc  rd  r°   r  r*  rK   r)  rL   r  )r•   r�   r  rì  ÚtypÚtbs         r~   ÚWITH_EXCEPT_STARTz+InstructionTranslatorBase.WITH_EXCEPT_STARTM  sâ   € Ü×Ñ˜wÒ&ô �t—z‘z“? aÒ'Ð'Ð'Ø—‘˜B‘ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨cÔ2Ð2Ð2Ü! #§,¡,Ó/ˆCÜ! $Ó'‰Bä�t—z‘z“? aÒ'Ð'Ð'Ø—‘˜B‘ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨cÔ2Ð2Ð2Ü! #§,¡,Ó/ˆCÜ! $Ó'ˆBà×Ñ˜2  S¨"˜~¨rÕ2r€   c           	      ó>
  — d}t         j                  dk\  �rQ| j                  j                  }|rÔt	        | j
                  «      |j                  kD  r3| j                  «        t	        | j
                  «      |j                  kD  rŒ3|j                  r8| j                  t        j                  | j                  j                  «      «       | j                  | j                  j                  «       «       | j                  |«       y | j
                  j!                  «        t#        | «      t$        u r8t'        dt)        |«      |g t*        j,                  ¢t*        j.                  ¢¬«       |‚t	        | j0                  «      �r<| j0                  j                  «       }|j2                  j4                  dk(  rÏ| j7                  d«       | j                  j                  «        t	        | j0                  «      dk(  rX| j
                  j!                  «        t#        | «      t$        u r+t'        dt)        |«      |d	z   g t*        j8                  ¢¬«       |‚| j0                  j                  «       }|j2                  j4                  dk(  rŒÏ| j                  j                  «       }| j                  j;                  «        t	        | j
                  «      |j<                  kD  r3| j                  «        t	        | j
                  «      |j<                  kD  rŒ3t?        d
dd d«      }| j0                  jA                  tC        |d t	        | j
                  «      «      «       t	        | j                  «      dk\  rr| j                  d   }| j                  t        jD                  «       «       | j                  |«       | j                  t        jF                  |jH                  «      «       nl| j                  t        j                  d «      «       | j                  t        j                  d «      «       | j                  t        j                  d «      «       | j                  t        jD                  «       «       | j                  |«       | j                  t        jF                  |jH                  «      «       | j                  |«       y | j
                  j!                  «        t#        | «      t$        u r8t'        dt)        |«      |g t*        j,                  ¢t*        j.                  ¢¬«       |‚)NzšDynamo found no exception handler at the top-level compiled function when encountering an exception. Exception will propagate outside the compiled region.r°  zObserved exceptionrO  ÚEXCEPT_HANDLERrW  r   z#Observed exception (EXCEPT_HANDLER)z  This graph break is unexpected.g    €„.Arf  rg  )%rc  rd  r  r¿  r°   r  Údepthr`  Úlastir  r   rL   r  r  rñ  ry  rª   rõ  r	  r*   rš   r   r‚  rÑ  r¶  r�   r²   r  Ú
DYNAMO_BUGrï  ró   r    r±   rñ   re   rK   r)  )r•   Úraised_exceptionÚobserved_exn_gb_explanationr¿  Úblock_stack_entryÚexception_varÚexcept_handler_instÚold_exceptions           r~   rb  z+InstructionTranslatorBase.exception_handlerf  s  € ðdð 	$ô
 ×Ñ˜wÓ&Ø ×4Ñ4×BÑBˆMÙô
 ˜$Ÿ*™*“o¨×(;Ñ(;Ò;Ø—H‘H”Jô ˜$Ÿ*™*“o¨×(;Ñ(;Ó;ð !×&Ò&Ø—I‘IÜ!×2Ñ2°4×3KÑ3K×3RÑ3RÓSôð
 —	‘	˜$×+Ñ+×AÑAÓCÔDð —	‘	˜-Õ(ð —
‘
× Ñ Ô"Ü˜“:Ô!6Ñ6Ü$Ø 4Ü #Ð$4Ó 5Ø$?ðÜ.×9Ñ9ðä.×:Ñ:ðõ	ð 'Ð&ä�4×#Ñ#Õ$ð %)×$4Ñ$4×$8Ñ$8Ó$:Ð!à'×,Ñ,×3Ñ3Ð7GÒGð —I‘I˜a”LØ×%Ñ%×)Ñ)Ô+Ü˜4×+Ñ+Ó,°Ò1ð Ÿ
™
×(Ñ(Ô*Ü ›:Ô)>Ñ>Ü,Ø(MÜ(+Ð,<Ó(=Ø,GØ"Dñ-Eà&EÔ(9×(DÑ(DÐ&Eõð /Ð.Ø(,×(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°#Ð7GÈÈqÓ&QÐ#Ø× Ñ ×'Ñ'Ü#Ð$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œi×8Ñ8¸Ó>Ô?Ø—I‘Iœi×8Ñ8¸Ó>Ô?Ø—I‘Iœi×8Ñ8¸Ó>Ô?ð —	‘	œ)×3Ñ3Ó5Ô6Ø—	‘	˜-Ô(Ø—	‘	œ)×3Ñ3°M×4JÑ4JÓKÔLð —	‘	Ð+Õ,ð —
‘
× Ñ Ô"Ü˜“:Ô!6Ñ6Ü$Ø 4Ü #Ð$4Ó 5Ø$?ðÜ.×9Ñ9ðä.×:Ñ:ðõ	ð 'Ð&r€   c                 ó  — | j                  «       }t        | j                  «      dk(  rt        d «      }n| j                  d   }| j	                  |«       | j	                  |«       | j                  j                  «        y )Nr   r)  )r`  r°   r  rL   r  rï  )r•   r�   rì  Úprev_excs       r~   ÚPUSH_EXC_INFOz'InstructionTranslatorBase.PUSH_EXC_INFOá  se   € ð( �h‰h‹jˆÜˆt× Ñ Ó! QÒ&Ü'¨Ó-‰Hà×(Ñ(¨Ñ,ˆHØ�	‰	�(ÔØ�	‰	�#ŒØ×Ñ×9Ñ9Õ;r€   c                 óü  — t         j                  dk\  rB| j                  «       }t        | j                  «      sJ ‚| j                  j                  «        y t        | j
                  «      dkD  sJ ‚| j
                  d   j                  j                  dk7  rt        d«      ‚| j
                  j                  «        | j                  d«       t        | j                  «      sJ ‚| j                  j                  «        y )Nr°  r   r)  rB  zYBug in Dynamo tracing of exception handling.Top of the block stack is not EXCEPT_HANDLER.rW  )
rc  rd  r`  r°   r  r¶  r�   r²   r<  r  )r•   r�   r}   s      r~   Ú
POP_EXCEPTz$InstructionTranslatorBase.POP_EXCEPTþ  sÔ   € Ü×Ñ˜wÒ&Ø—‘“
ˆAä�t×(Ñ(Ô)Ð)Ð)Ø×Ñ×!Ñ!Õ#ä�t×'Ñ'Ó(¨1Ò,Ð,Ð,Ø×Ñ Ñ#×(Ñ(×/Ñ/Ð3CÒCÜ$ðDóð ð ×Ñ× Ñ Ô"à�I‰I�aŒLô �t×(Ñ(Ô)Ð)Ð)Ø×Ñ×!Ñ!Õ#r€   c                 óÆ  — t        | j                  «      dk\  sJ ‚| 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)Nrf  r°  r)  z Exception with bad expected typez"`except ...` has unsupported type r�  rO  zCaught non-Exception valuezCExcept expects to recieve an object of Exception type but received z#Exception with non-type expectationz!`except ...` expects a non-type: TF)r°   r  r`  rc  rd  r!  rK   r_   rn   ro   r*   rš   r   r‚  r*  rÉ   Ú
issubclassr)  r  r   )r•   Úexpected_exc_typesÚexc_instanceÚexpected_typesÚexpected_types        r~   Úcheck_if_exc_matchesz.InstructionTranslatorBase.check_if_exc_matches  sÒ  € Ü�4—:‘:‹ !Ò#Ð#Ð#Ø!Ÿ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ÌØ—‘ ×!1Ñ!1õJñ ð/	ð2 r€   c                 óh   — | j                  t        j                  | j                  «       «      «       y rw   )r  r   rL   rW  rk  s     r~   ÚCHECK_EXC_MATCHz)InstructionTranslatorBase.CHECK_EXC_MATCHd  s"   € Ø�	‰	”)×,Ñ,¨T×-FÑ-FÓ-HÓIÕJr€   c                 óH   — | j                  «       s| j                  |«       y y rw   )rW  ry  rk  s     r~   ÚJUMP_IF_NOT_EXC_MATCHz/InstructionTranslatorBase.JUMP_IF_NOT_EXC_MATCHg  s   € Ø×(Ñ(Ô*Ø�I‰I�d�Oð +r€   c                 ó¶   — |j                   dk(  r| j                  |«       y | j                  t        |j                      | | j	                  d«      i «      «       y )Nzexception matchrf  )r#  rY  r  ru   r  rk  s     r~   Ú
COMPARE_OPz$InstructionTranslatorBase.COMPARE_OPk  sD   € Ø�;‰;Ð+Ò+Ø× Ñ  Õ&à�I‰IÔ)¨$¯+©+Ñ6°t¸T¿Y¹YÀq»\È2ÓNÕOr€   c                 ób   — | j                  t        t        «      | j                  «       gi «       y rw   )r  rK   Úiterr`  rk  s     r~   ÚGET_ITERz"InstructionTranslatorBase.GET_ITERq  s!   € Ø×Ñœ?¬4Ó0°4·8±8³:°,ÀÕCr€   r   rŠ  c                 ó€   — | j                  |j                  «      }| j                  «       }| j                  ||i «       y rw   ©r  r#  r`  r  )r•   r�   r|   r  s       r~   r  z'InstructionTranslatorBase.CALL_FUNCTIONt  s1   € à�y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆØ×Ñ˜2˜t RÕ(r€   c           	      ó¬  — |j                   dk(  rt        i «      }| j                  «       }ni|j                   dk(  r!| j                  «       }| j                  «       }n9t        dd|j                   › �d|j                   › �g t        j
                  ¢¬«       t        j                  dk\  r"| j                  «       }t        |t        «      sJ ‚| j                  «       }t        j                  dk\  r5t        j                  dk  r"| j                  «       }t        |t        «      sJ ‚t        |t        «      �r8t        |j                  t        «      �rj                  «       }|j                  d	k(  r#t        t        t        f«      rt!        |g«      }nÛ|j                  d
k(  r_t        t         «      rOt#        |j$                  «      dk(  r7t        |t        «      r't        j&                  d«      |v rt        dddg ¬«       nm|j                  dk(  r^t        t         «      rNt#        |j$                  «      dk(  r6t        |t        «      r&t        j&                  d«      |v rt        dddg ¬«       t        t(        «      s+|j+                  | «      rt!        |j-                  | «      «      }t        t.        «      rt1        j2                  | t4        |«      }t        |t(        «      rt        |t        «      s7t        ddt7        |«      › dt7        |«      › �dg t        j8                  ¢¬«       |j;                  «       }| j=                  ||j$                  |«       y )Nr   r   z%Variadic function call with bad flagszflags: zHAttempted to call a variadic function (CALL_FUNCTION_EX) with bad flags rO  rV  r°  ÚviewÚrandom_Úfromz,Tensor.random_ op called with `from` keywordr¬   rÄ  Úuniform_z-Tensor.uniform_ op called with `from` keywordz0Variadic function call with bad args/kwargs typezargs type: z, kwargs type: z2Expected args to be a list and kwargs to be a dict)r#  rP   r`  r*   r   rE  rc  rd  r!  rc   rb   Úobjri   r"  r„   rL   r_   r°   rÉ   r$  r[   Úhas_force_unpack_var_sequenceÚforce_unpack_var_sequencerp   rK   Úcall_custom_dictrÊ   rF   r‚  Úkeys_as_python_constantr  )r•   r�   Ú
kwargsvarsÚargsvarsÚnullr  s         r~   ÚCALL_FUNCTION_EXz*InstructionTranslatorBase.CALL_FUNCTION_EXz  sÄ  € ð �;‰;˜!ÒÜ*¨2Ó.ˆJØ—x‘x“z‰HØ�[‰[˜AÒØŸ™›ˆJØ—x‘x“z‰HäØ?Ø! $§+¡+ Ð/ØfÐgk×grÑgrÐfsÐtØ5Ô)×4Ñ4Ð5õ	ô ×Ñ˜wÒ&à—8‘8“:ˆDÜ˜d¤LÔ1Ð1Ð1à�X‰X‹Zˆä×Ñ˜wÒ&¬3×+;Ñ+;¸gÒ+EØ—8‘8“:ˆDÜ˜d¤LÔ1Ð1Ð1ä�bœ/Õ*¬z¸"¿&¹&Ä.Õ/Qà#×+Ñ+Ó-ˆJØ�w‰w˜&Ò ¤ZØÔ+¬^Ð<ô&ô )¨(¨Ó4‘à—‘˜9Ò$Ü˜x¬Ô7Ü˜Ÿ™Ó'¨1Ò,Ü˜zÔ+<Ô=Ü$×+Ñ+¨FÓ3°zÑAô !ØJØØ 8Øö	ð —‘˜:Ò%Ü˜x¬Ô7Ü˜Ÿ™Ó'¨1Ò,Ü˜zÔ+<Ô=Ü$×+Ñ+¨FÓ3°zÑAô !ØKØØ 8Øõ	ô ØÔ&ô
à×4Ñ4°TÔ:Ü$ X×%GÑ%GÈÓ%MÓNˆHô �jÔ";Ô<Ü(×9Ñ9¸$ÄÀjÓQˆJä˜(Ô$4Ô5¼ZØÔ)ô>
ô ØJØ%¤g¨hÓ&7Ð%8¸ÌÐPZÓH[ÐG\Ð]ØPØ5Ô)×4Ñ4Ð5õ	ð  ×7Ñ7Ó9ˆ
Ø×Ñ˜2˜xŸ~™~¨zÕ:r€   c                 óœ  — | j                  «       }| j                  |j                  «      }| j                  «       }t        |t        «      r|j                  «       sJ ‚|j                  «       }|d t        |«        |t        |«       d  }}t        t        ||«      «      }t        |«      t        |«      k(  sJ ‚| j                  |||«       y rw   )r`  r  r#  r!  r_   rw  rx  r°   rÊ   Úzipr  )r•   r�   Úargnamesr|   r  Úkwargs_listr3  s          r~   ÚCALL_FUNCTION_KWz*InstructionTranslatorBase.CALL_FUNCTION_KWÜ  s±   € à—8‘8“:ˆØ�y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆÜ˜(¤MÔ2°x×7RÑ7RÔ7TÐTÐTØ×.Ñ.Ó0ˆØ Ð!1¤C¨£M >Ð2°D¼#¸h»-¸Ð9IÐ4JˆkˆÜ”c˜( KÓ0Ó1ˆÜ�6‹{œc (›mÒ+Ð+Ð+Ø×Ñ˜2˜t VÕ,r€   c                 óR  — | j                  t        j                  |d¬«      «       |j                  d   }| j                  d   |   }t
        j                  dk  r'| j                  t        j                  ||¬«      «       y | j                  t        j                  ||¬«      «       y )Nrf  r³  r   Úco_namesr°  )	r  r¹   r™  r#  rE  rc  rd  rõ  ÚLOAD_METHOD©r•   r�   r½  r#  s       r~   ÚLOAD_METHOD_SUPERz+InstructionTranslatorBase.LOAD_METHOD_SUPERè  s�   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆÜ×Ñ˜gÒ%Ø�O‰OœK×/Ñ/°¸VÔDÕEà×Ñœ[×0Ñ0°¸fÔEÕFr€   c                 óÞ   — | j                  t        j                  |d¬«      «       |j                  d   }| j                  d   |   }| j                  t        j                  ||¬«      «       y )Nrf  r³  r   rw  )r  r¹   r™  r#  rE  rõ  ry  s       r~   ÚLOAD_ATTR_SUPERz)InstructionTranslatorBase.LOAD_ATTR_SUPERñ  sX   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆØ�‰œ×+Ñ+¨D¸Ô@ÕAr€   c                 ób  — | j                  |«       | j                  «       }t        j                  dk\  r#| j	                  |«       | j                  |«       y t        j                  dk\  r#| j                  |«       | j	                  |«       y | j	                  |«       | j	                  d «       y )NrV  r°  )rõ  r`  rc  rd  r  rÁ  ©r•   r�   rh  s      r~   rx  z%InstructionTranslatorBase.LOAD_METHOD÷  s{   € Ø�‰˜ÔØ�h‰h‹jˆÜ×Ñ˜wÒ&Ø�I‰I�cŒNØ�N‰N˜4Õ Ü×Ñ Ò(ð �N‰N˜4Ô Ø�I‰I�c�Nà�I‰I�cŒNØ�I‰I�d�Or€   c                 ó¨   — | j                  |j                  «      }| j                  «       }|�J ‚| j                  «       }| j                  ||i «       y rw   rb  )r•   r�   r|   Údummyr  s        r~   ÚCALL_METHODz%InstructionTranslatorBase.CALL_METHOD	  sF   € Ø�y‰y˜Ÿ™Ó%ˆØ—‘“
ˆØˆ}Ðˆ}Ø�X‰X‹ZˆØ×Ñ˜2˜t RÕ(r€   c                 óÄ   — | j                  «       }t        t        «      j                  | |t	        j
                  |j                  «      gi «      }| j                  |«       y rw   )r`  rK   rÖ  r  rL   r$  r#  r  )r•   r�   rh  r”  s       r~   rõ  z$InstructionTranslatorBase._load_attr	  sN   € Ø�h‰h‹jˆÜ ¤Ó)×7Ñ7ØØÔ"×)Ñ)¨$¯+©+Ó6Ð7Øó
ˆð
 	�	‰	�&Õr€   c                 óŽ   — t         j                  dk\  r!|j                  dz  r| j                  |«       y | j	                  |«       y )Nr´  rf  )rc  rd  r½  rx  rõ  rk  s     r~   Ú	LOAD_ATTRz#InstructionTranslatorBase.LOAD_ATTR	  s8   € Ü×Ñ˜wÒ&Ø�x‰x˜!Š|Ø× Ñ  Ô&ØØ�‰˜Õr€   c                 ój  — | j                  «       }|j                  r| j                  |«      S | j                  d«      \  }}t	        |t
        «      r1t	        |t        «      s!| j                  rJ d|j                  › d�«       ‚	 t        t        «      j                  | |t        j                  |j                  «      |gi «       y # t        $ rS}| j                  «       s‚ t        j!                  dd¬«       |j#                  «        |j%                  d«       Y d }~nd }~ww xY w|j'                  «        y )Nrf  zMutating module attribute z during export.zSTORE_ATTR triggered compileTr\  r¢  )r£  r�   Ústore_attr_graph_breakr  r!  rf   rL   Úexportr#  rK   Úsetattrr  r$  r+   rZ  rä   rD  r¥  r©  r–   )r•   r�   rª  rì  rh  rš  s         r~   Ú
STORE_ATTRz$InstructionTranslatorBase.STORE_ATTR	  s	  € Ø—n‘nÓ&ˆØ×ÒØ×.Ñ.¨tÓ4Ð4Ø—9‘9˜Q“<‰ˆˆSä�cÔ+Ô,´ZÀÔEUÔ5Vð —{’{ð Ø,¨T¯[©[¨M¸ÐIó�?ð	*ÜœGÓ$×2Ñ2ØØÔ&×-Ñ-¨d¯k©kÓ:¸CÐ@Øôð
 øÜò 	*Ø×4Ñ4Ô6ØÜ�I‰IÐ4¸tˆIÔDØ×ÑÔ!Ø�N‰N˜=×)Ñ)ûð	*úð 	×-Ñ-Õ/s   ÂA C Ã	D!ÃA	DÄD!c                 óÄ  — t        | j                  d¬«       | j                  «       st        dddg ¬«       | j                  j                  | t        d| j                  «       g«      ¬«       | j                  j                  t        j                  |«      g«       | j                  d«       | j                  j                  | j                  | j                  «      «       y )	NzSTORE_ATTR-caused graph breakrT  z-Should not compile partial graph (STORE_ATTR)r¬   z“Dynamo has determined when encountering an unsupported STORE_ATTR instruction (i.e. `obj.attr = val`) that it should not compile the partial graph.rO  Ú
store_attrrf  )rK  rE  rZ  r*   rì   r_  r/   r\  re  r¾  r  ra  rb  rk  s     r~   r†  z0InstructionTranslatorBase.store_attr_graph_break:	  s¸   € Ü˜×)Ñ)Ð2QÕRØ×0Ñ0Ô2ÜØGØðoàõð 	�‰×$Ñ$ØÔ+¨L¸4×;MÑ;MÓ;OÐ:PÓQð 	%ô 	
ð 	�‰×+Ñ+¬T¯Y©Y°t«_Ð,=Ô>Ø�	‰	�!ŒØ�‰×+Ñ+Ø×&Ñ& t×'<Ñ'<Ó=õ	
r€   c                 ó¢   — | j                  «       }t        t        «      j                  | |t	        j
                  |j                  «      gi «       y rw   )r`  rK   Údelattrr  rL   r$  r#  r~  s      r~   ÚDELETE_ATTRz%InstructionTranslatorBase.DELETE_ATTRM	  s>   € Ø�h‰h‹jˆÜœÓ ×.Ñ.ØØÔ"×)Ñ)¨$¯+©+Ó6Ð7Øõ	
r€   c                 ó0   — t        dt        | «      › �«      ‚)Nz1create_call_resume_at not overridden by subclass ©r<  rõ  ©r•   r  s     r~   ra  z/InstructionTranslatorBase.create_call_resume_atU	  s   € ÜØ?ÄÀTÃ
¸|ÐLó
ð 	
r€   c                 ó0   — t        dt        | «      › �«      ‚)Nz8should_compile_partial_graph not overridden by subclass r�  r§   s    r~   rZ  z6InstructionTranslatorBase.should_compile_partial_graphZ	  s   € ÜØFÄtÈDÃzÀlÐSó
ð 	
r€   r   c                 óZ   — | j                  d«      \  }}}|j                  | d||gi «       y )NrW  Ú__setitem__©r  Úcall_method)r•   r�   rì  rh  Úkeys        r~   ÚSTORE_SUBSCRz&InstructionTranslatorBase.STORE_SUBSCR_	  s+   € àŸ	™	 !›‰ˆˆS�#Ø�‰˜˜m¨c°3¨Z¸Õ<r€   c                 óV   — | j                  d«      \  }}|j                  | d|gi «       y )Nrf  Ú__delitem__r•  )r•   r�   rh  r—  s       r~   ÚDELETE_SUBSCRz'InstructionTranslatorBase.DELETE_SUBSCRd	  s'   € Ø—9‘9˜Q“<‰ˆˆSØ�‰˜˜m¨c¨U°BÕ7r€   c                 ón   — | j                  |j                  «      }| j                  t        |«      «       y rw   )r  r#  r  r_   ©r•   r�   rÉ   s      r~   ÚBUILD_TUPLEz%InstructionTranslatorBase.BUILD_TUPLEh	  ó%   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- Ó&Õ'r€   c                 ón   — | j                  |j                  «      }| j                  t        |«      «       y rw   )r  r#  r  r^   r�  s      r~   ÚBUILD_SLICEz%InstructionTranslatorBase.BUILD_SLICEl	  rŸ  r€   c                 ó‚   — | j                  |j                  «      }| j                  t        |t	        «       ¬«      «       y ©N©Úmutation_type)r  r#  r  r]   rG   r�  s      r~   Ú
BUILD_LISTz$InstructionTranslatorBase.BUILD_LISTp	  s+   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”,˜uÔ4DÓ4FÔGÕHr€   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).rO  r¤  )r   Ú+inject_BUILD_SET_unimplemented_TESTING_ONLYr*   r  r#  rQ   rG   r  )r•   r�   rÉ   Únew_sets       r~   Ú	BUILD_SETz#InstructionTranslatorBase.BUILD_SETt	  sO   € Ü×=Ò=ÜØ3ØØXØõ	ð —	‘	˜$Ÿ+™+Ó&ˆÜ˜eÔ3CÓ3EÔFˆØ�	‰	�'Õr€   c           	      óD  — | j                  |j                  «      }g }|D ]#  }	 |j                  |j                  | «      «       Œ% | j                   ||t        «       ¬«      «       y # t        $ r. t        dt        |«      |› d�g t        j                  ¢¬«       Y Œ~w 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, ...]`).rO  r¤  )r  r#  Úextendrj  ÚNotImplementedErrorr*   rš   r   r‚  r  rG   )r•   r�   rÖ   ÚseqsrÉ   Úseqs         r~   ÚBUILD_LIST_UNPACKz+InstructionTranslatorBase.BUILD_LIST_UNPACK€	  sž   € Ø�y‰y˜Ÿ™Ó%ˆØˆØò 
	ˆCð	Ø—‘˜S×:Ñ:¸4Ó@ÕAð
	ð 	�	‰	‘#�eÔ+;Ó+=Ô>Õ?øô 'ò Ü ØKÜ ›HØ#& %ð (2ð !2à9Ô-×8Ñ8Ð9÷ðús   ¤ A(Á(4BÂBc                 ó2   — | j                  |t        ¬«       y )NrÛ   )r°  r_   rk  s     r~   ÚBUILD_TUPLE_UNPACKz,InstructionTranslatorBase.BUILD_TUPLE_UNPACK�	  s   € Ø×Ñ˜t¬ÐÕ7r€   c           	      óÊ   — | j                  |j                  dz  «      }t        t        |d d d…   |dd d…   «      «      }| j	                  t        |t        «       ¬«      «       y )Nrf  r   r¤  )r  r#  rÊ   rr  r  rP   rG   )r•   r�   rÉ   Úds       r~   Ú	BUILD_MAPz#InstructionTranslatorBase.BUILD_MAP•	  sS   € Ø—	‘	˜$Ÿ+™+¨™/Ó*ˆÜ”�U™3˜Q˜3‘Z  q t¨! t¡Ó-Ó.ˆØ�	‰	Ô# AÔ5EÓ5GÔHÕIr€   c                 óT  — | j                  |j                  «      }|D �cg c]#  }t        t        «      j	                  | |gi «      ‘Œ% }}i }|D ]/  }t        |t        «      sJ ‚|j                  |j                  «       Œ1 | j                  t        |t        «       ¬«      «       y c c}w r£  )r  r#  rK   rÊ   r  r!  rP   ÚupdaterÉ   r  rG   )r•   r�   rÉ   r˜  r”  s        r~   ÚBUILD_MAP_UNPACKz*InstructionTranslatorBase.BUILD_MAP_UNPACKš	  s—   € Ø—	‘	˜$Ÿ+™+Ó&ˆàMRÖSÈ”¤Ó&×4Ñ4°T¸A¸3ÀÕCÐSˆÐSØˆØò 	#ˆAÜ˜aÔ!2Ô3Ð3Ð3Ø�M‰M˜!Ÿ'™'Õ"ð	#ð 	�	‰	ÜØÜ.Ó0ôõ	
ùò Ts    (B%c           
      ód  — | j                  «       }| j                  |j                  «      }t        |t        «      sJ ‚|j                  «       sJ ‚|j                  | «      }t        |«      t        |«      k(  sJ ‚| j                  t        t        t        ||«      «      t        «       ¬«      «       y r£  )r`  r  r#  r!  r_   rw  rj  r°   r  rP   rÊ   rr  rG   )r•   r�   Úkeysr:  s       r~   ÚBUILD_CONST_KEY_MAPz-InstructionTranslatorBase.BUILD_CONST_KEY_MAP«	  s�   € Ø�x‰x‹zˆØ—‘˜4Ÿ;™;Ó'ˆÜ˜$¤Ô.Ð.Ð.Ø×&Ñ&Ô(Ð(Ð(à×-Ñ-¨dÓ3ˆÜ�4‹yœC ›KÒ'Ð'Ð'à�	‰	ÜÜ”S˜˜vÓ&Ó'Ü.Ó0ôõ	
r€   c                 óî   — | j                  d«      \  }}|j                  dkD  sJ ‚| j                  |j                      j	                  «       }t        |t        «      sJ ‚|j                  | d||fi «       y )Nrf  r   r”  )r  r#  r  r½  r"  r!  rP   r–  )r•   r�   rÅ   rÆ   rh  s        r~   ÚMAP_ADDz!InstructionTranslatorBase.MAP_ADD»	  sg   € Ø�y‰y˜‹|‰ˆˆ1Ø�{‰{˜QŠÐˆØ�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0Ô1Ð1Ð1Ø�‰˜˜m¨a°¨V°RÕ8r€   c                 óê   — | j                  «       }|j                  dkD  sJ ‚| j                  |j                      }t	        |t
        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «      S )Nr   rÔ   ©r`  r#  r  r½  r!  rQ   Ú
is_mutabler–  ©r•   r�   rÆ   rh  s       r~   ÚSET_ADDz!InstructionTranslatorBase.SET_ADDÂ	  sh   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{Ô+Ð+Ð+Ø�~‰~ÔÐÐØ�‰˜t U¨Q¨C°Ó4Ð4r€   c                 óì   — | j                  «       }|j                  dkD  sJ ‚| j                  |j                      }t	        |t
        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y ©Nr   r·  r¿  rÁ  s       r~   Ú
SET_UPDATEz$InstructionTranslatorBase.SET_UPDATEÊ	  se   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{Ô+Ð+Ð+Ø�~‰~ÔÐÐØ�‰˜˜h¨¨¨RÕ0r€   c                 ó^  — | j                  «       }|j                  dkD  sJ ‚| j                  |j                      j	                  «       }t        |t        «      sJ ‚|j                  «       sJ ‚| j                  j                  j                  |«       |j                  j                  |«       y r¦   )r`  r#  r  r½  r"  r!  r]   rÀ  rì   r/  ÚmutationrÉ   r±   rÁ  s       r~   ÚLIST_APPENDz%InstructionTranslatorBase.LIST_APPENDÒ	  s„   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#œ|Ô,Ð,Ð,Ø�~‰~ÔÐÐØ�‰× Ñ ×)Ñ)¨#Ô.Ø�	‰	×Ñ˜Õr€   c                 ó^  — |j                   }t        j                  dk  r| j                  «       }| j                  «       }t        j                  dk\  rBt	        |j
                  d«      sJ ‚t        j                  |j
                  j                  ¬«      }d }d }d }d }t        j                  dk  rT|dz  r| j                  «       }|dz  r| j                  «       }|dz  r| j                  «       }|dz  r| j                  «       }| j                  t        || j                  ||||«      «       y )	Nr°  Úco_qualnamer¬  rV  é   r;  rf  r   )r½  rc  rd  r`  rù   rg  rL   r$  rÊ  r  rU   r±  )	r•   r�   ÚflagsÚfn_nameÚcodeÚdefaultsÚclosureÚannotationsÚ
kwdefaultss	            r~   ÚMAKE_FUNCTIONz'InstructionTranslatorBase.MAKE_FUNCTIONÛ	  s  € Ø—‘ˆÜ×Ñ˜gÒ%Ø—h‘h“jˆGØ�x‰x‹zˆÜ×Ñ˜wÒ&ô ˜4Ÿ:™: }Ô5Ð5Ð5Ü&×-Ñ-°D·J±J×4JÑ4JÔKˆGØˆØˆØˆØˆ
ä×Ñ˜gÒ%à�tŠ|ØŸ(™(›*�Ø�tŠ|Ø"Ÿh™h›j�Ø�tŠ|Ø!ŸX™X›Z�
Ø�tŠ|ØŸ8™8›:�à�	‰	Ü&ØØØ—‘ØØØØóõ
	
r€   c           	      ó0  — | j                  «       }t        |t        «      r'|j                  | t	        |j
                  «      ¬«      }nÖt        |t        «      rxt        |j                  t        «      r^t        |j                  j                  «       |j                  «      }t	        |j
                  «      D �cg c]  }t        | ||   «      ‘Œ }}nN|j                  | «      r|j                  | «      }n+t        dt        |«      |› d�g t         j"                  ¢¬«       t%        «      |j
                  k7  r;t        dd|j
                  › dt%        |«      › �|› d�g t         j&                  ¢¬«       t)        |«      D ]  }| j+                  |«       Œ y c c}w )	N)Úidxesz+Failed to unpack object for UNPACK_SEQUENCEzV cannot be unpacked into a list for the UNPACK_SEQUENCE bytecode (i.e. `a, b, c = d`).rO  z9Length mismatch when unpacking object for UNPACK_SEQUENCEzexpected length: z
, actual: za unpacked to a list for the UNPACK_SEQUENCE bytecode (i.e. `a, b, c = d`) with unexpected length.)r`  r!  ri   r�  rÄ  r#  rb   rh  rÖ  Úas_proxyr„   rJ   ri  rj  r*   rš   r   r‚  r°   rE  ry   r  )r•   r�   r¯  rì  ÚproxyrÝ  s         r~   ÚUNPACK_SEQUENCEz)InstructionTranslatorBase.UNPACK_SEQUENCE
  sW  € Ø�h‰h‹jˆÜ�cœ>Ô*Ø×)Ñ)¨$´e¸D¿K¹KÓ6HÐ)ÓI‰CÜ˜œ_Ô-´*¸S¿W¹WÄnÔ2Uä˜CŸG™G×,Ñ,Ó.°·±Ó9ˆEÜ:?ÀÇÁÓ:LÖM°Q”=  u¨Q¡xÕ0ÐMˆCÑMØ×.Ñ.¨tÔ4Ø×/Ñ/°Ó5‰CäØEÜ˜C›Ø"˜eð $(ð (à5Ô)×4Ñ4Ð5õô ˆs‹8�t—{‘{Ò"ÜØSØ+¨D¯K©K¨=¸
Ä3ÀsÃ8À*ÐMØ"˜eð $?ð ?à5Ô)×4Ñ4Ð5õô ˜#“ò 	ˆAØ�I‰I�a�Lñ	ùò' Ns   Â7Fc                 ón  — d|j                   cxk  rdk  sJ ‚ J ‚|j                   dz  }|j                   dz	  }| j                  «       }|j                  | «      r±t        |j	                  | «      «      }t        |«      ||z   k\  sJ ‚|d | }||t        |«      |z
   }|t        |«      |z
  d  }t        |«      D ]  }	| j                  |	«       Œ | j                  t        |«      «       t        |«      D ]  }	| j                  |	«       Œ y t        dt        |«      |› d�g t        j                  ¢¬«       y )Nr   iÿÿ  éÿ   rË  z%Failed to unpack object for UNPACK_EXz; cannot be unpacked into a list for the UNPACK_EX bytecode.rO  )r#  r`  ri  r»   rj  r°   ry   r  r_   r*   rš   r   r‚  )
r•   r�   ÚprefixÚsuffixr¯  rˆ  Úvals_prefixÚ	vals_listÚvals_suffixÚitems
             r~   Ú	UNPACK_EXz#InstructionTranslatorBase.UNPACK_EX
  s2  € Ø�D—K‘KÔ) 6Ò)Ð)Ñ)Ð)Ð)Ø—‘˜tÑ#ˆØ—‘ Ñ!ˆØ�h‰h‹jˆØ×,Ñ,¨TÔ2Ü˜×5Ñ5°dÓ;Ó<ˆDÜ�t“9 ¨¡Ò/Ð/Ð/Ø˜w ˜-ˆKØ˜V¤c¨$£i°&Ñ&8Ð9ˆIØœs 4›y¨6Ñ1Ð3Ð4ˆKÜ  Ó-ò  �Ø—	‘	˜$•ð à�I‰I”m IÓ.Ô/Ü  Ó-ò  �Ø—	‘	˜$•ñ ô Ø?Ü˜C›Ø"˜eÐ#^Ð_Ø5Ô)×4Ñ4Ð5ö	r€   c                  ó   — y rw   rž   rk  s     r~   rh  zInstructionTranslatorBase.NOP6
  ó   € Ør€   c                 ó$   — | j                  «        y rw   ©r`  rk  s     r~   ÚPOP_TOPz!InstructionTranslatorBase.POP_TOP9
  ó   € Ø�‰�
r€   c                 óˆ   — | j                  «       }| j                  «       }| j                  |«       | j                  |«       y rw   ©r`  r  ©r•   r�   ÚarÇ  s       r~   ÚROT_TWOz!InstructionTranslatorBase.ROT_TWO<
  s.   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r€   c                 óÊ   — | j                  «       }| j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       y rw   ré  )r•   r�   rë  rÇ  Úcs        r~   Ú	ROT_THREEz#InstructionTranslatorBase.ROT_THREEB
  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r€   c                 ó  — | j                  «       }| j                  «       }| j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       | j                  |«       y rw   ré  )r•   r�   rë  rÇ  rî  r´  s         r~   ÚROT_FOURz"InstructionTranslatorBase.ROT_FOURJ
  sZ   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r€   c                 óh   — | j                  «       }| j                  |«       | j                  |«       y rw   ré  )r•   r�   rë  s      r~   rô  z!InstructionTranslatorBase.DUP_TOPT
  s#   € Ø�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r€   c                 óÌ   — | j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       | j                  |«       y rw   ré  rê  s       r~   ÚDUP_TOP_TWOz%InstructionTranslatorBase.DUP_TOP_TWOY
  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r€   c                 óê   — |dk(  r!t        t        «      j                  | |gi «      S |dk(  r!t        t        «      j                  | |gi «      S |dk(  r!t        t        «      j                  | |gi «      S |S )Nr   rf  rW  )rK   rš   r  ÚreprÚascii)r•   rg  Úflags      r~   Ú_convert_valuez(InstructionTranslatorBase._convert_valuea
  sp   € Ø�1Š9Ü"¤3Ó'×5Ñ5°d¸U¸GÀRÓHÐHØ�QŠYÜ"¤4Ó(×6Ñ6°t¸e¸WÀbÓIÐIØ�QŠYÜ"¤5Ó)×7Ñ7¸¸u¸gÀrÓJÐJØˆ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   )ÚLazySymNodeFormatStringrZ   rè  rW  z{:ú})r`  r!  rh   Útorch._dynamo.variables.lazyrû  rZ   r$  r…  r  rù  rL   rx  r  rK   rš   Úformat)r•   Úfmt_specrÌ  rg  rû  rZ   Úfmt_vars          r~   Ú_format_valuez'InstructionTranslatorBase._format_valuej
  s¬   € Ø—‘“
ˆÜ�eœ_Ô-÷ð
 /Ð'×.Ñ.Ù'¨¨xÓ8ÀÇÁôˆEð �I‰I�eÔØà×#Ñ# E¨5°4©<Ó8ˆä"×)Ñ)¨$°×1LÑ1LÓ1NÑ*NÐQTÑ*TÓUˆà×Ñœ?¬3¯:©:Ó6¸À%Ð8HÈ"ÕMr€   c                 óš   — |j                   }|dz  dk(  r| j                  «       }nt        j                  d«      }| j	                  ||«      S )Nr;  r¬   )r½  r`  rL   r$  r  )r•   r�   rÌ  rÿ  s       r~   ÚFORMAT_VALUEz&InstructionTranslatorBase.FORMAT_VALUE~
  sE   € Ø—‘ˆØ�D‰L˜TÒ!Ø—x‘x“z‰Hä'×.Ñ.¨rÓ2ˆHà×!Ñ! (¨EÓ2Ð2r€   c           
      ó@  — g }g }i }| j                  |j                  «      D �]:  }t        |t        «      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 )Nz{}zBUILD_STRING key conflictzformat_string_parts: z
, kwargs: z, part.sym_kwargs: z1Failed to build format string due to key conflictrO  zBUILD_STRING type errorzLFormat string part type is not correct - expected constant or format string.r¬   )r  r½  r!  rL   r±   r   ÚStringFormatVariableÚformat_stringr¬  Úsym_argsrß   rº  Ú
sym_kwargsr*   r   r‚  r·  rš   r  r$  rÈ   )r•   r�   Úformat_string_partsr|   r3  Úparts         r~   ÚBUILD_STRINGz&InstructionTranslatorBase.BUILD_STRING‡
  sd  € Ø)+ÐØ&(ˆØ-/ˆØ—I‘I˜dŸh™hÓ'ó 	ˆDÜ˜$Ô 0Ô1Ø#×*Ñ*¨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J ‚|j                   dk(  rd}nd}t        d|¬«      }| j                  |«       y )Nr   r   Úiszis notr]  r³  )r#  r   r]  )r•   r�   Ú
new_argvalÚnew_insts       r~   ÚIS_OPzInstructionTranslatorBase.IS_OP§
  sM   € Ø�{‰{˜aÒ 4§;¡;°!Ò#3Ð3Ð3Ø�;‰;˜!ÒØ‰Jà!ˆJÜ% l¸:ÔFˆØ�‰˜Õ!r€   c                 óú   — |j                   dk(  s|j                   dk(  sJ ‚| j                  d«      \  }}|j                   }| j                  |j                  | d|gi «      «       |dk(  r| j	                  |«       y y )Nr   r   rf  Ú__contains__)r#  r  r  r–  Ú	UNARY_NOT)r•   r�   ÚleftÚrightrÜ  s        r~   ÚCONTAINS_OPz%InstructionTranslatorBase.CONTAINS_OP°
  sp   € Ø�{‰{˜aÒ 4§;¡;°!Ò#3Ð3Ð3Ø—i‘i “l‰ˆˆeØ�[‰[ˆØ�	‰	�%×#Ñ# D¨.¸4¸&À"ÓEÔFØ�Š7Ø�N‰N˜4Õ ð r€   c                 óì   — | j                  «       }|j                  dkD  sJ ‚| j                  |j                      }t	        |t
        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y )Nr   r¬  )r`  r#  r  r½  r!  r]   rÀ  r–  rÁ  s       r~   ÚLIST_EXTENDz%InstructionTranslatorBase.LIST_EXTEND¸
  se   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ|Ô,Ð,Ð,Ø�~‰~ÔÐÐØ�‰˜˜h¨¨¨RÕ0r€   c                 ó€   — | j                  t        t        «      j                  | | j	                  «       gi «      «       y rw   )r  rK   rú   r  r`  rk  s     r~   ÚLIST_TO_TUPLEz'InstructionTranslatorBase.LIST_TO_TUPLEÀ
  s*   € Ø�	‰	”/¤%Ó(×6Ñ6°t¸d¿h¹h»j¸\È2ÓNÕOr€   c                 óà   — | j                   d   }| j                  |«      sJ ‚|j                  t        u r:t	        j
                  t        «      j                  | g i «      }|| j                   d<   y y ©Nr)  )r  r*  r)  r$  r   rK   r{  r  )r•   r�   rì  Únew_vals       r~   ÚSTOPITERATION_ERRORz-InstructionTranslatorBase.STOPITERATION_ERRORÃ
  si   € ð �j‰j˜‰nˆØ×)Ñ)¨#Ô.Ð.Ð.Ø�<‰<œ=Ñ(Ü×/Ñ/´Ó=×KÑKØØØóˆGð
 %ˆD�J‰J�rŠNð )r€   c                 ó  — | j                  «       }|j                  dkD  sJ ‚| j                  |j                      j	                  «       }t        |t        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y rÄ  )	r`  r#  r  r½  r"  r!  rP   rÀ  r–  rÁ  s       r~   Ú
DICT_MERGEz$InstructionTranslatorBase.DICT_MERGEÓ
  so   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0Ô1Ð1Ð1Ø�~‰~ÔÐÐØ�‰˜˜h¨¨¨RÕ0r€   c                 ó$   — | j                  «        y rw   rå  rk  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)  rt  )r  rw  r  rL   r$  r°   rx  r–  r  s      r~   ÚGET_LENz!InstructionTranslatorBase.GET_LENà
  s\   € Ø�j‰j˜‰nˆØ×!Ñ!Ô#Ø�I‰IÔ&×-Ñ-¬c°#×2HÑ2HÓ2JÓ.KÓLÕMà�I‰I�c—o‘o d¨I°r¸2Ó>Õ?r€   c                 ó4  — | j                   d   }t        |t        «      sJ ‚t        |j                  t        j
                  j                  «      r%| j                  t        j                  d«      «       y | j                  t        j                  d«      «       y ©Nr)  TF)
r  r!  rP   rÉ   ÚcollectionsÚabcÚMappingr  rL   r$  r  s      r~   ÚMATCH_MAPPINGz'InstructionTranslatorBase.MATCH_MAPPINGç
  sh   € Ø�j‰j˜‰nˆÜ˜#Ô0Ô1Ð1Ð1Ü�c—i‘i¤§¡×!8Ñ!8Ô9Ø�I‰IÔ&×-Ñ-¨dÓ3Õ4à�I‰IÔ&×-Ñ-¨eÓ4Õ5r€   c                 óv  — | j                   d   }|j                  «       sJ ‚|j                  «       }t        |t        j
                  j                  «      r@t        |t        t        t        f«      s%| j                  t        j                  d«      «       y | j                  t        j                  d«      «       y r&  )r  rw  rx  r!  r'  r(  ÚSequencerš   ÚbytesÚ	bytearrayr  rL   r$  )r•   r�   r  Ú	tos_values       r~   ÚMATCH_SEQUENCEz(InstructionTranslatorBase.MATCH_SEQUENCEï
  s‰   € Ø�j‰j˜‰nˆØ×%Ñ%Ô'Ð'Ð'Ø×*Ñ*Ó,ˆ	Ü�i¤§¡×!9Ñ!9Ô:Ä:ØœœU¤IÐ.ôD
ð �I‰IÔ&×-Ñ-¨dÓ3Õ4à�I‰IÔ&×-Ñ-¨eÓ4Õ5r€   c                 ó2  ‡— | j                   d   }| j                   d   Št        ‰t        «      sJ ‚t        ˆfd„|D «       «      rq| j	                  t        |D �cg c]  }‰j                  | |«      ‘Œ c}«      «       t        j                  dk  r%| j	                  t        j                  d«      «       y y | j	                  t        j                  d «      «       t        j                  dk  r%| j	                  t        j                  d«      «       y y c c}w )Nr)  rg  c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wrw   rž   )rÄ   rÅ   Útos1s     €r~   rÇ   z7InstructionTranslatorBase.MATCH_KEYS.<locals>.<genexpr>ÿ
  s   øè ø€ Ò&˜Qˆq�DŒyÑ&ùs   ƒr°  TF)r  r!  rP   r7  r  r_   Úgetitem_constrc  rd  rL   r$  )r•   r�   r  rÅ   r3  s       @r~   Ú
MATCH_KEYSz$InstructionTranslatorBase.MATCH_KEYSú
  sÛ   ø€ Ø�j‰j˜‰nˆØ�z‰z˜"‰~ˆÜ˜$Ô 1Ô2Ð2Ð2äÓ& #Ô&Ô&Ø�I‰I”mÈ#Ö$NÀQ T×%7Ñ%7¸¸aÕ%@Ò$NÓOÔPÜ×Ñ 'Ò)Ø—	‘	Ô*×1Ñ1°$Ó7Õ8ð *ð �I‰IÔ&×-Ñ-¨dÓ3Ô4Ü×Ñ 'Ò)Ø—	‘	Ô*×1Ñ1°%Ó8Õ9ð *ùò %Os   ÁDc                 ó&   — | j                  d«       y )Nr<  )rû  rk  s     r~   r  z.InstructionTranslatorBase.LOAD_ASSERTION_ERROR  s   € Ø×%Ñ%Ð&6Õ7r€   c                 óp   — |j                   dk(  r| j                  |«       d| _        y | j                  rJ ‚y )Nr   F)r½  Úappend_prefix_instr  rk  s     r~   ÚRESUMEz InstructionTranslatorBase.RESUME0  s5   € Ø�8‰8�qŠ=Ø×#Ñ# DÔ)Ø&+ˆDÕ#à×.Ò.Ð.Ð.Ð.r€   c                 ó4   — t        |j                     | |«      S rw   )Ú_binary_op_lookupr½  rk  s     r~   Ú	BINARY_OPz#InstructionTranslatorBase.BINARY_OP9  s   € Ü$ T§X¡XÑ.¨t°TÓ:Ð:r€   c                  ó   — y rw   rž   rk  s     r~   r  z!InstructionTranslatorBase.PRECALL<  rã  r€   c                 óä   — | j                   d   |j                     }t        |t        «      sJ ‚|D ]  }t        |t        «      rŒJ ‚ | j
                  �J ‚t        j                  |¬«      | _        y )NÚ	co_constsr¬  )rE  r½  r!  rú   rš   r¼  rL   r$  )r•   r�   r¼  r„   s       r~   r²  z"InstructionTranslatorBase.KW_NAMES?  sl   € Ø×$Ñ$ [Ñ1°$·(±(Ñ;ˆÜ˜(¤EÔ*Ð*Ð*Øò 	)ˆDÜ˜d¤CÕ(Ð(Ð(ð	)à�}‰}Ð$Ð$Ð$Ü(×/Ñ/°hÔ?ˆ�r€   c                 ó6   — | j                  t        «       «       y rw   )r  rc   rk  s     r~   rÁ  z#InstructionTranslatorBase.PUSH_NULLG  s   € Ø�	‰	”,“.Õ!r€   c                 óô  — |rXt         j                  dk\  sJ ‚| j                  «       }t        |t        «      r|j                  «       sJ ‚|j                  «       }n$| j                  r| j                  j                  n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}|rO||dt        |«        z   }|t        |«       d  }t        t        ||«      «      }t        |«      t        |«      k(  sJ ‚||dd  z   }i }	 | j                  |||«       d | _        y # d | _        w xY w)NrV  rž   rf  r   r   )rc  rd  r`  r!  r_   rw  rx  r¼  rg  r  r½  rc   r°   rÊ   rr  r  )	r•   r�   Úcall_kwr¼  Úcontentsr  r|   rt  r3  s	            r~   Ú_callzInstructionTranslatorBase._callJ  sn  € ñ ä×#Ñ# wÒ.Ð.Ð.Ø—x‘x“zˆHÜ˜h¬Ô6¸8×;VÑ;VÔ;XÐXÐXØ×2Ñ2Ó4‰Hà.2¯mªm�t—}‘}×*Ò*ÀˆHà—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Ü�v“;¤# h£-Ò/Ð/Ð/à˜( 1 2˜,Ñ&ˆDØˆFð	!ð ×Ñ˜r 4¨Ô0à ˆD�Mø˜DˆD�Mús   ÅE. Å.	E7c                 ó&   — | j                  |«       y rw   ©rD  rk  s     r~   r  zInstructionTranslatorBase.CALLs  s   € à�
‰
�4Õr€   c                 óV   — | j                  | j                  |j                      «       y rw   )r  r  r½  rk  s     r~   ÚCOPYzInstructionTranslatorBase.COPYw  s   € Ø�	‰	�$—*‘*˜dŸh™h˜YÑ'Õ(r€   c                 ó¢   — | j                   |j                      | j                   d   c| j                   d<   | j                   |j                   <   y r  )r  r½  rk  s     r~   ÚSWAPzInstructionTranslatorBase.SWAPz  s=   € Ø04·
±
¸D¿H¹H¸9Ñ0EÀtÇzÁzÐRTÁ~Ð-ˆ�
‰
�2‰˜Ÿ
™
 D§H¡H 9Ò-r€   c                  ó   — y rw   rž   rk  s     r~   ÚCACHEzInstructionTranslatorBase.CACHE…  rã  r€   c                 ó&   — | j                  |«       y rw   r
  rk  s     r~   ÚBEFORE_WITHz%InstructionTranslatorBase.BEFORE_WITHˆ  r  r€   c           	      óð  — | j                  «       }t        |t        t        f«      s&t	        dd|› �d|j                  «       › d�ddg¬«       t        |t        «      r+|j                  «       s| j                  j                  |«       t        |t        t        f«      sJ ‚t        ||j                  «      }t        j                  dk\  rk|j                  r>| j                  r/|j                  j                  | j                  d	   j                  urd }n-| j                  j                  j                  }n|j                  }| j!                  |«       |r„t        | t"        «      r;| j                  j                  t%        ||t'        | j(                  «      |«      «       n9| j                  j                  t%        ||t'        | j(                  «      «      «       | j!                  |j+                  | «      «       y )
NzUnsupported context managerz$Attempted SETUP_WITH/BEFORE_WITH on z%Dynamo does not know how to enter a `z` context manager.z,Avoid using the unsupported context manager.zŒFile an issue to PyTorch. Simple context managers can potentially be supported, but note that context managers can't be supported in generalrO  r°  r)  )r`  r!  rM   rN   r*   Úpython_type_nameÚsupports_graph_breaksr¤  r±   rO   rò   rc  rd  r¿  r¶  rb  r  r	  rñ   r°   r  Úenter)r•   r�   rù  rþ   rò   s        r~   r  z.InstructionTranslatorBase.setup_or_before_with‹  s¬  € Ø�h‰h‹jˆÜØÔ)Ô+IÐJô
ô Ø5Ø>¸s¸eÐDØCÀC×DXÑDXÓDZÐC[Ð[mÐnàBðSðõ		ô �sÔ:Ô;Ø×-Ñ-Ô/à×0Ñ0×7Ñ7¸Ô<ô ØÔ)Ô+IÐJô
ð 	
ð 
ô (ØØ�K‰Kó
ˆô
 ×Ñ˜wÒ&ð
 ×!Ò!Ø×$Ò$Ø×%Ñ%×,Ñ,°D×4DÑ4DÀRÑ4H×4OÑ4OÑOà‘à×.Ñ.×<Ñ<×CÑC‘à—[‘[ˆFà�	‰	�$ŒáÜ˜$Ô 5Ô6Ø× Ñ ×'Ñ'Ü# D¨&´#°d·j±j³/À3ÓGõð × Ñ ×'Ñ'¬¸¸fÄcÈ$Ï*É*ÃoÓ(VÔWà�	‰	�#—)‘)˜D“/Õ"r€   c                 óV   — | j                   sJ ‚| j                  j                  |«       y rw   )r  r  r±   rk  s     r~   r8  z,InstructionTranslatorBase.append_prefix_instÆ  s%   € Ø×&Ò&Ð&Ð&Ø×Ñ× Ñ  Õ&r€   c                 ó.  — t         j                  dk\  rq| j                  set        | j                  |j
                     t        «      sJ ‚| j                  j                  j                  «       | j                  |j
                  <   y | j                  |«       y r!  )rc  rd  r  r!  r
  r#  rc   rì   r/  Útrack_cell_newr8  rk  s     r~   Ú	MAKE_CELLz#InstructionTranslatorBase.MAKE_CELLÊ  ss   € Ü×Ñ˜wÒ&¨t×/FÒ/Fô ˜d×2Ñ2°4·;±;Ñ?ÄÔNÐNÐNà—‘×(Ñ(×7Ñ7Ó9ð × Ñ  §¡Ò-ð ×#Ñ# DÕ)r€   c                 ó&   — | j                  |«       y rw   ©r8  rk  s     r~   ÚCOPY_FREE_VARSz(InstructionTranslatorBase.COPY_FREE_VARSÕ  ó   € Ø×Ñ Õ%r€   c                 ó&   — | j                  |«       y rw   rX  rk  s     r~   ÚRETURN_GENERATORz*InstructionTranslatorBase.RETURN_GENERATORØ  rZ  r€   c                 ón   — t         j                  dk\  r| j                  «        y | j                  d«       y )NrV  rf  )rc  rd  r`  r  rk  s     r~   ÚEND_FORz!InstructionTranslatorBase.END_FORß  s$   € Ü×Ñ˜wÒ&Ø�H‰H�Jà�I‰I�a�Lr€   c                 óà   — t        | j                  |j                     t        «      r6t	        d|j                  d|j                  › �g t
        j                  ¢¬«       | j                  |«       y )Nz)LOAD_FAST_CHECK on uninitialized variablez/Attempted to load uninitialized local variable rO  )r!  r
  r#  rc   r*   r   r‚  r›  rk  s     r~   ÚLOAD_FAST_CHECKz)InstructionTranslatorBase.LOAD_FAST_CHECKå  sX   € Ü�d×*Ñ*¨4¯;©;Ñ7¼ÔFÜØCØŸ™ØMÈdÏkÉkÈ]Ð[Ø5Ô)×4Ñ4Ð5õ	ð 	�‰�tÕr€   c                 óÌ   — |j                   | j                  vr| j                  t        «       «       n| j	                  |«       t        «       | j                  |j                   <   y rw   )r#  r
  r  rc   r›  rk  s     r~   ÚLOAD_FAST_AND_CLEARz-InstructionTranslatorBase.LOAD_FAST_AND_CLEARï  sD   € Ø�;‰;˜d×2Ñ2Ñ2Ø�I‰I”l“nÕ%à�N‰N˜4Ô Ü,8«Nˆ×Ñ˜TŸ[™[Ò)r€   c                 ó´   — | j                  t        j                  |d¬«      «       |j                  dz  r| j	                  |«       y | j                  |«       y )Nrf  r³  r   )r  r¹   r™  r½  rx  rõ  rk  s     r~   ÚLOAD_SUPER_ATTRz)InstructionTranslatorBase.LOAD_SUPER_ATTRö  sB   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�8‰8�aŠ<Ø×Ñ˜TÕ"à�O‰O˜DÕ!r€   c                 óŠ  — |j                   dk(  r| j                  |«       y |j                   dk(  r| j                  |«       y |j                   dk(  r8| j                  t	        | j                  «       j                  | «      «      «       y t        dd|j                   › �d|j                   › d�g t        j                  ¢¬«       y )	NrW  é   é   z Missing CALL_INTRINSIC_1 handlerzCALL_INTRINSIC_1 operand: z,No handler implemented for CALL_INTRINSIC_1 z instruction.rO  )
r#  r  ÚUNARY_POSITIVEr  r_   r`  rj  r*   r   rÑ  rk  s     r~   ÚCALL_INTRINSIC_1z*InstructionTranslatorBase.CALL_INTRINSIC_1ý  s�   € Ø�;‰;˜!Òà×$Ñ$ TÕ*Ø�[‰[˜AÒà×Ñ Õ%Ø�[‰[˜AÒà�I‰I”m D§H¡H£J×$HÑ$HÈÓ$NÓOÕPäØ:Ø4°T·[±[°MÐBØJÈ4Ï;É;È-ÐWdÐeØ6Ô)×5Ñ5Ð6ö	r€   c                 óf   — | j                  «       }| j                  «        | j                  |«       y rw   ré  r  s      r~   ÚEND_SENDz"InstructionTranslatorBase.END_SEND  s!   € Ø�h‰h‹jˆØ�‰Œ
Ø�	‰	�#�r€   c                 ó*   — | j                  |d¬«       y )NT)rB  rF  rk  s     r~   ÚCALL_KWz!InstructionTranslatorBase.CALL_KW  s   € à�
‰
�4 ˆ
Õ&r€   c                 ó8   — | j                   j                  dv sJ ‚y )N)ÚPOP_JUMP_IF_TRUEÚPOP_JUMP_IF_FALSEr  )rb  r²   rk  s     r~   rY  z!InstructionTranslatorBase.TO_BOOL  s'   € ð ×$Ñ$×+Ñ+ð 0
ñ 
ð 	
ñ 
r€   c                 ó  — |j                   }| j                  «       }t        |t        «      sJ ‚| j                  «       }|dz  r||_        n&|dz  r||_        n|dz  r||_        n|dz  r||_        | j                  |«       y )NrË  r;  rf  r   )	r½  r`  r!  rU   rÐ  rÑ  rÒ  rÏ  r  )r•   r�   rÌ  r  Úattrs        r~   ÚSET_FUNCTION_ATTRIBUTEz0InstructionTranslatorBase.SET_FUNCTION_ATTRIBUTE%  su   € Ø—‘ˆØ�X‰X‹ZˆÜ˜"Ô8Ô9Ð9Ð9Ø�x‰x‹zˆà�4Š<ØˆB�JØ�TŠ\Ø!ˆB�NØ�TŠ\Ø ˆB�MØ�TŠ\ØˆBŒKà�	‰	�"�r€   c                 óv   — | j                  | j                  | j                  «       |j                  «      «       y rw   )r  rù  r`  r#  rk  s     r~   ÚCONVERT_VALUEz'InstructionTranslatorBase.CONVERT_VALUE6  s%   € Ø�	‰	�$×%Ñ% d§h¡h£j°$·+±+Ó>Õ?r€   c                 óN   — | j                  t        j                  d«      d«       y )Nr¬   r   )r  rL   r$  rk  s     r~   ÚFORMAT_SIMPLEz'InstructionTranslatorBase.FORMAT_SIMPLE9  s   € Ø×ÑÔ+×2Ñ2°2Ó6¸Õ:r€   c                 óD   — | j                  | j                  «       d«       y r¦   )r  r`  rk  s     r~   ÚFORMAT_WITH_SPECz*InstructionTranslatorBase.FORMAT_WITH_SPEC<  s   € Ø×Ñ˜4Ÿ8™8›: qÕ)r€   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>B  ó   � 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È   r2  r=  r\  r»   ry   )r•   Úadditional_stack_framess     r~   Úformat_frame_summaryz.InstructionTranslatorBase.format_frame_summaryF  sL   € Ø"Ð*Ø&(Ð#Ø�w‰wÜ×!Ñ!Ø×#Ñ#Ó%Ð&¬¬hÐ7NÓ.OÓ)PÑPóó
ð 	
r€   c           	      óœ   — t        j                  t        | j                  dd«      | j                  t        | j                  dd«      d¬«      S )Nr*  ú	<unknown>rH  F)Úlookup_line)r2  ÚFrameSummaryrÖ  rG  r�   r§   s    r~   r\  z'InstructionTranslatorBase.frame_summaryO  s?   € Ü×%Ñ%Ü�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Ö  rG  ÚreÚcompileÚmatch)r•   rŒ   Únn_modules_patterns      r~   Úis_co_filename_from_nn_modulesz8InstructionTranslatorBase.is_co_filename_from_nn_modulesW  s:   € Ü˜4Ÿ;™;¨°{ÓCˆÜŸZ™ZÐ(?Ó@ÐØ!×'Ñ'¨Ó1¸Ð=Ð=r€   c                 óÆ   — | j                   j                  |t        j                  |«      «      }t	        t        |«      j                  t        j                  «      «       |S rw   )	rì   Úinstall_global_by_idÚweakrefÚrefr.   r8   r†  r-   ÚWEAKREF_ALIVE)r•   rÛ  rg  Úglobal_names       r~   Ústore_global_weakref_by_idz4InstructionTranslatorBase.store_global_weakref_by_id\  sJ   € Ø—k‘k×6Ñ6°v¼w¿{¹{È5Ó?QÓRˆÜÜ Ó,×7Ñ7¼×8RÑ8RÓSô	
ð Ðr€   c                 óB   — | j                   j                  j                  S rw   )rì   Útracing_contextÚ	fake_moder§   s    r~   r•  z#InstructionTranslatorBase.fake_modec  s   € à�{‰{×*Ñ*×4Ñ4Ð4r€   Úcheck_fnc              #   ó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•   r–  Úpriors      r~   Ústrict_translation_modez1InstructionTranslatorBase.strict_translation_modeg  s3   è ø€ ð
 ×%Ñ%ˆØ (ˆÔð	*Ûà$)ˆDÕ!ø EˆDÕ!üs   ‚/—# ›/£	,¬/c                 ó  — | j                   €J ‚| j                   dkD  sJ ‚| j                  j                  | j                  j                  | j
                  | j                   dz
  | j                  | j                   dz
     «      S ró  )rŽ   rè   r·   rG  r*  r�   r"  r§   s    r~   r£  z#InstructionTranslatorBase.speculates  s|   € Ø×'Ñ'Ð3Ð3Ð3Ø×'Ñ'¨!Ò+Ð+Ð+Ø×#Ñ#×(Ñ(Ø�K‰K×#Ñ#Ø�K‰KØ×$Ñ$ qÑ(Ø×Ñ˜d×6Ñ6¸Ñ:Ñ;ó	
ð 	
r€   r"  r”  r±  r³  rE  rG  r‡  rè   Údistributed_staterÐ  c                 ó’  •— t         ‰| �  «        || _        || _        || _        || _        || _        |	| _        g | _        d| _	        d | _
        t        d«      | _        g | _        g | _        d| _        d | _        d| _        g | _        || _        || _        t+        | j(                  «      | _        || _        || _        || _        || _        |
| _        |�$t8        j:                  rt=        |
||¬«      | _        nd | _        i | _         i | _!        || _"        d| _#        d | _$        d | _%        tL        jN                  dk\  r>dd	l(m)}m*}m+}m,} |
jZ                  ||z  |z  |z  z  r| j]                  t_        d «      «       || _0        d| _1        d gte        |
jf                  «      z  | _4        tk        jl                  |
jn                  |«       y )
Nr   rh  r)  T)rÎ  rÐ  rE  F)rW  é
   r   )ÚCO_ASYNC_GENERATORÚCO_COROUTINEÚCO_GENERATORÚCO_ITERABLE_COROUTINE)8rÔ  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³  rE  rG  r   Úreplay_record_enabledr2   r  Únn_module_stackÚ	num_callsr‡  Ú	one_graphr  r  rc  rd  Úresume_executionrž  rŸ  r   r¡  Úco_flagsr  rK   r  r  r°   r?  r­  rN  Ú	lazycacher*  )r•   rì   r"  r”  r±  r³  rE  r
  r  r  rG  r‡  r  rè   r  r›  rÐ  rž  rŸ  r   r¡  rÞ  s                        €r~   rÕ  z"InstructionTranslatorBase.__init__}  sÕ  ø€ ô( 	‰ÑÔØ.ˆÔØ!2ˆÔð ˆŒØ.ˆÔØ 0ˆÔØ-JˆÔ*ØˆŒ
Ø#$ˆÔ ØˆÔÜ#5°eÓ#<ˆÔ ØˆÔàUWˆÔ,ØˆŒØˆŒØ"&ˆÔØˆÔØ(ˆÔð 0<ˆÔÜ/:¸4×;LÑ;LÓ/MˆŒàð 	Œð *3ˆŒØ*4ˆŒØ,8ˆÔØ&,ˆŒð Ð¤6×#?Ò#?Ü!2Ø W¸<ô"ˆDÕð "&ˆDÔð BDˆÔØ)+ˆŒàˆŒØˆŒà#'ˆÔ à $ˆÔä×Ñ˜wÒ&÷ó ð �‰Ø˜|Ñ+Ð.CÑCÐFXÑXòð —	‘	œ/¨$Ó/Ô0à(ˆÔØ).ˆÔ&ØBFÀÌ#Ø×ÑóK
ñ B
ˆÔô 	×Ñ˜F×.Ñ.°	Õ:r€   rw   )F(  r—   r˜   r™   r0   r›   rÊ   rš   rH   rj   r»   r   rœ   r    rñ   rL   r�   r‹   r   râ  r2   r   r  r[  r%  r*  r-  r2  r  r?  rD  rL  rS  rZ  rd  rc  rd  r`  Úpropertyrb  r^  rt  r†  r  r‹  r`  r  r›  r   r¤  r¦  rª  ÚLOAD_CLOSUREr®  r  r¹  r  Úcached_propertyr¿  rÂ  rÈ  r   r»  rÛ  rä  rò  rö  rû  r¶  ry  ÚJUMP_FORWARDÚJUMP_ABSOLUTEr�  r  Únot_rp  r   ro  ÚJUMP_IF_FALSE_OR_POPÚJUMP_IF_TRUE_OR_POPr  r  r  r  r  r  r  r  r  r  r  r'  r   r-  r  r5  r4  r*  r@  rb  rN  rP  rW  rY  r[  r]  r`  rË  r  rp  ru  rz  r|  rx  r�  rõ  r„  r‰  r†  rŽ  ra  rZ  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á  rh  ræ  rì  rï  rñ  rô  rô  rù  r  r  r  r  r  r  r  r  r   ÚDICT_UPDATEr"  r$  r*  r0  r5  r  r  Úposrh  Ú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_ORr9  r<  r  r²  rÁ  rD  r  rH  rJ  ri  ÚJUMP_BACKWARD_NO_INTERRUPTÚPOP_JUMP_FORWARD_IF_TRUEÚPOP_JUMP_BACKWARD_IF_TRUEÚPOP_JUMP_FORWARD_IF_FALSEÚPOP_JUMP_BACKWARD_IF_FALSErL  rN  r  r8  rV  rY  r\  r^  r`  rb  rd  ri  rk  rm  rY  rs  ru  rw  ry  r]  r�  r\  r‹  r’  r•  Ú
contextlibÚcontextmanagerr™  r£  rí  ÚCodeTyper    rÌ   rú   ÚCellTyperÕ  rß  rà  s   @r~   ræ   ræ     sc	  ø… ð ÓØ˜#˜Ð.Ñ/Ó/Ø˜3 Ð/Ñ0Ó0Ø#=Ó=Ø�Ñ Ó Ø! #™Ó&Ø$Ó$Ø�oÑ&Ó&ØƒKØÐ'Ñ(Ó(ØÓØ�{Ñ#Ó#ØÓØ#Ó#Ø!Ð"2Ñ3Ó3Ø˜‘IÓØ Ó ØÐ-Ñ.Ó.Ø˜x¨Ð(9¸4Ð(?Ñ@ÑAÓAØ˜#‘Óò.òò>òò'ò
=ð8àð8ð �?Ñ#ð8ð �S˜/Ð)Ñ*ó	8ò,4òUónòòWò+=ðZ ×Ñ˜7Ò"ó%	+òR	ð ñ;ó ð;ò
ò2ò%*ðN˜ Ñ1ó ð˜d ?Ñ3ó ð �_ó  ð;�cð ;˜d ?Ñ3ó ;ò!+òFVò/ò.ò/ð €Lòò*òJð, ×ÑñJó ðJò!òEð( ñ#ó ð#ò$
2òò:7òrò:ò3ò4ð €LØ€Má$ X§]¡]°EÓ:ÐÙ# H§N¡N°EÓ:ÐÙ'¨¯©°tÓ<ÐÙ& x§~¡~°tÓ<ÐòUòUòò(òUòòUòòòòòð("
°ó "
òHò@ò0ò.
ò3ò2y'òv<ò:$ò*OòbKòòPòDñ   QÔ'ñ)ó (ð)ñ
   QÔ'ñ_;ó (ð_;ñB   QÔ'ñ	-ó (ð	-òGòBòò )òòò0ò8
ò&
ò
ð

¨dó 
ñ
   QÔ'ñ=ó (ð=ò8ò(ò(òIò
ð +7ó @ò 8ð $6Ð òJò

ð "2Ðò
ò 9ò5ò1òò$
òLò:ò0òòòòòò
òòNò(3ò
ò@"ò!ò1òPò%ò 1ð €Kòò@ò6ò	6ò:ò8ñ ˜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Ø6Ñ.°AÔ6±xÀ×@PÒ@PÓ7QÓR€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ò/ð ×Ñ˜7Ò"ò	;òò@ò"ó'!ñR   QÔ'ñó (ðò)òVð €MØ!%Ðá+¨H¯N©N¸EÓBÐÙ ,¨X¯^©^¸UÓ CÐÙ ,¨X¯]©]¸EÓ BÐÙ!-¨h¯m©m¸UÓ!CÐòò(ò9#òv'ò	*ò&ò&òòò;ò"óó$ñ   QÔ'ñ'ó (ñ'ó
óó"@ó;ó*óô
ó
ó>ó
ð ñ5ó ñ5ñ ×Òð	*°¸/Ð9JÈDÐ9PÑ0Qò 	*ó ñ	*ð
Ð+ô 
ð8 48ñ%[;àð[;ð ˜;Ñ'ð[;ð �s˜C�x‘.ð	[;ð
 ˜˜S˜‘>ð[;ð ˜˜c˜‘Nð[;ð ˜3 ˜8‘nð[;ð ˜c ?Ð2Ñ3ð[;ð ˜s OÐ3Ñ4ð[;ð (Bð[;ñ —’ð[;ð ð[;ð ð[;ñ (ð[;ð %ð[;ð  $Ñ$4Ñ5ð![;ð$ ™%¡§¢Ñ/Ñ0ð%[;ð& 
÷'[;ó [;r€   )Ú	metaclassc            
       ó¼   ‡ — e Zd Zedd„«       Zej                  d„ «       Zdee	   de
dedee   ddf
ˆ fd	„Zd
„ Zdefd„Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )r	  r…   c                  ó"   — t         j                  S rw   )ÚtlsÚ
current_txrž   r€   r~   rü  z InstructionTranslator.current_txÜ  s   € ä�~‰~Ðr€   c              #   ó„   K  — t        t        dd «      }| t        _        	 d –— |t        _        y # |t        _        w xY w­w)Nrü  )rÖ  rû  rü  )r•   r˜  s     r~   Úset_current_txz$InstructionTranslator.set_current_txà  s1   è ø€ äœ˜\¨4Ó0ˆØŒŒð	#Ûà"ŒC�Nø˜UŒC�Nüs   ‚A  0 ¤A °=½A r"  rè   r  r›  Nc                 ó¤  •—  t        «       t        j                  d|j                  › d|d   › d|d   › �«       t        ‰| �  t        ||	| |||||||¬«
      ||||||i i d ||d|||¬«       | j                  «        t        | j                  j                  «      5  | j                  «       5  |
| _        || _        | j                  r| j                  sJ d	«       ‚i | _        t        | j!                  «       «      }t#        j$                  |«      j'                  d
d «      }|j)                  «       D ]h  \  }}||vsŒd }|r)t+        |j'                  |i «      j)                  «       «      }t-        j.                  |t1        |d|¬«      «      }|| j                  |<   Œj | j                  j2                  }| j5                  «       D ]x  }||v rL||   }t1        |dd¬«      }t-        j.                  ||«      }|j7                  «       }|j9                  ||«       n|j7                  «       }||_        || j                  |<   Œz t=        | j?                  «       |«      D ]g  \  }}tA        |«      }t1        |d¬«      }	 t-        j.                  |jB                  |«      }|jK                  |||«      }||_        || j                  |<   Œi tM        |«      | _'        g | _(        |r.tF        j,                  jS                  | j                  «      | _        d d d «       d d d «       y # tD        $ r tG        jH                  «       }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+  )Úlocal_scoperÒ  rG  Útorch_function_mode_stackr   )rì   r"  r”  r±  r³  rÐ  rE  r
  r  r  rG  r‡  r  rè   r  r›  z4Export without one graph - something has gone wrong.ÚdynamismT)Úis_inputr  )r  Úis_derefed_cell_contents)r  )*rå   r   ÚINFOrH  rÔ  rÕ  r0   Ú_throw_if_in_functorchr   rì   r”  rþ  r¥  r‡  r
  rß   r-  r#   Úget_contextrØ  rÉ   Ú	frozensetrZ   r$  r:   r/  r%  rU  r¨  r©  rr  r*  r9   Úcell_contentsÚ
ValueErrorr   ÚDeletedVariableÚtrack_cell_existingrj   r  Údebug_localsÚrealize_all)r•   r"  rG  r”  r±  r³  rÐ  r  rE  Úcompiler_fnr¥  r‡  Úexport_constraintsÚframe_staterè   r  r›  r-  r  r„   rg  Úlocal_dynamismÚvarr/  Úcontents_sourcerŸ  Úcell_varrž  Úcell_sourcerÞ  s                                €r~   rÕ  zInstructionTranslator.__init__é  s’  ø€ ð& 	Œ‹Ü�L‰LØ(¨¯©Ð(8¸¸,À}Ñ:UÐ9VÐVWÐXdÐeuÑXvÐWwÐxô	
ô 	‰ÑÜØØØØØ"ØØ$Ø&ØØ*Côð &ØØØ!ØØ%ØàØ*.ØØØØ+Ø%Ø/ð9 	ô 	
ð> 	×#Ñ#Ô%ô �T—[‘[×0Ñ0Ó1ñ `	°4×3FÑ3FÓ3Hñ `	Ø#,ˆDŒNØ ˆDŒKØ�{Š{Ø—~’~ð ØJó�~ð $&ˆDÔ ä*-¨d×.DÑ.DÓ.FÓ*GÐä#×/Ñ/°Ó7×;Ñ;¸JÈÓMˆHØ'Ÿ~™~Ó/ò 5‘��eØÐ0Ò0Ø%)�NÙÜ)2°8·<±<ÀÀbÓ3I×3OÑ3OÓ3QÓ)R˜Ü-×4Ñ4ØÜ#Ø Ø%)Ø%3ôó�Cð 25�D×(Ñ(¨Ò.ð5ð"  Ÿ;™;×3Ñ3ˆLØŸ™›ò #6�Ø˜8Ñ#à$ T™N�Eô* '2Ø tÀdô'�Oô 5H×4NÑ4NØ˜ó5�Lð  ,×:Ñ:Ó<�HØ ×+Ñ+¨H°lÕCà+×:Ñ:Ó<�HØ&*�Ô#Ø-5�×$Ñ$ TÒ*ðG#6ôN " $§-¡-£/°7Ó;ò 6‘
��dÜ-¨dÓ3�Ü"-¨dÈTÔ"R�ð?Ü#6×#=Ñ#=Ø×*Ñ*¨Oó$�Lð (×;Ñ;Ø  |ó�ð '+�Ô#Ø-5�×$Ñ$ TÒ*ð6ô  2LØ)ó2ˆDÔ.ð VXˆDÔÙô (1×'DÑ'D×'PÑ'PØ×(Ñ(ó(�Ô$÷}`	÷ `	ð `	øôZ "ò ?ä#,×#<Ñ#<Ó#>’Lð?ú÷[`	ð `	ú÷ `	ð `	úsQ   ÂMÂ,BL:Ä:D9L:É4 LÊA2L:ÌMÌL7	Ì4L:Ì6L7	Ì7L:Ì:M	Ì?MÍM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¬   rO  )r8  Ú_dynamoÚlookup_backendr  Úgetattr_staticrì   r  Ú_CÚ
_functorchÚpeek_interpreter_stackÚTransformTypeÚVmapÚGradÚJvpr—  r„   Úlowerr*   )r•   r  r  ÚciÚforbidden_keysr„   ri  s          r~   r  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€   r…  c                 ó²   — t        |t        «      r| j                  |j                     S t        |t        «      r| j
                  |j                     S t        ‚rw   )r!  r:   r”  r©  r7   r±  r‘  r—  )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                 ó"   •— t         ‰| �  «        y rw   )rÔ  r†  )r•   rÞ  s    €r~   r†  zInstructionTranslator.run«  s   ø€ Ü‰‰�r€   c                 ó0  — 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r | j                   S )Nr°  r)  Fc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrw   )rö   ©rÄ   rÇ  s     r~   rÇ   zEInstructionTranslator.should_compile_partial_graph.<locals>.<genexpr>·  s   è ø€ Ò: A�—‘—Ñ:ùr6  )	rc  rd  r  r¿  r¶  rò   r7  r¥  r¤  )r•   r´   s     r~   rZ  z2InstructionTranslator.should_compile_partial_graph®  s…   € Ü×Ñ˜wÒ&à×,Ñ,×:Ñ:ˆEÙØ×$Ò$¨¯©¸D×<LÑ<LÈRÑ<P×<WÑ<WÑ(WàäÑ:¨×)9Ñ)9Ô:Ó:ò 9Ø—N‘NÐ"ò9à×8Ñ8Ð8ð	
r€   c                 óZ  ‡ ‡— d ‰ _         |j                  dk(  rt        d«      gS |j                  dk(  rt        d|j                  ¬«      gS t	        ‰ j
                  |«      Št        ˆˆ fd„‰ j                  j                  «       D «       «      }t        ˆ fd„|D «       «      }t        ˆ fd„|D «       «      }t        j                  dk  rt        |«      dk(  sJ d	«       ‚t        ‰ «      }g }t        ‰ j                  «      D ]Ä  \  }}t        j!                  t"        |«      sŒ!t%        t"        |«      }	|	j&                  €d
nt        |	j&                  «      }
|j)                  ||
f«       |	j+                  |«       |j-                  t/        t        ‰ j                  «      |z
  dz   «      «       |j1                  t        d«      «       ŒÆ g }|D ]Ÿ  }t        j!                  t"        ‰ j                  |   x}«      sŒ-t%        t"        |«      }	|	j&                  €d
nt        |	j&                  «      }
|j)                  ||
f«       |	j+                  |«       |j1                  t        d|¬«      «       Œ¡ g }t        j                  dk\  rãt        ‰ j                  «      D ]1  \  }}t        j!                  t2        |«      sŒ!|j)                  |«       Œ3 d}t        t5        ‰ j                  «      «      D ]w  \  }}t        j!                  t2        |«      sŒ!t7        d|dz   |z
  «      D ]  }|j1                  t        d|¬«      «       Œ  |j-                  |j9                  «       «       |dz  }Œy t        ‰ j                  «      t        |«      z
  }|t        |«      z   }t;        d|j<                  › �«      }t?        j@                  ‰ jB                  ‰ jD                  |j<                  t        d„ ‰ jF                  D «       «      |||t        d„ ‰ jF                  D «       «      t        |«      t        |«      t        |«      «      } tI        jJ                  ‰ jB                  «      jM                  dd„ «      «       }|�+tO        jP                  |«      tI        jJ                  |«      d<   |jR                  r1‰ jT                  jW                  ||«       |jY                  ||d|«       n]‰ jT                  jW                  |t[        j\                  |‰ j^                  |«      «       |j-                  |ja                  |d|«      «       |j-                  |D �cg c]  }|jc                  |«      ‘Œ c}«       |j-                  te        |d«      «       |j1                  t        d«      «       |jg                  «       S c c}w )Nr  r  r³  c              3   óN   •K  — | ]  }|‰v r|‰j                  «       vr|–— Œ y ­wrw   )r-  )rÄ   rÅ   r1  r•   s     €€r~   rÇ   z>InstructionTranslator.create_call_resume_at.<locals>.<genexpr>Å  s0   øè ø€ ò 
àØ�E‰z˜a t×'=Ñ'=Ó'?Ñ?ô ñ
ùs   ƒ"%c              3   óp   •K  — | ]-  }t         j                  t        ‰j                  |   «      s|–— Œ/ y ­wrw   ©rõ  Ú__instancecheck__rc   r
  ©rÄ   rÅ   r•   s     €r~   rÇ   z>InstructionTranslator.create_call_resume_at.<locals>.<genexpr>Ë  s4   øè ø€ ò 
àÜ×)Ñ)¬,¸×8LÑ8LÈQÑ8OÔPô ñ
ùó   ƒ36c              3   óp   •K  — | ]-  }t         j                  t        ‰j                  |   «      r|–— Œ/ y ­wrw   r0  r2  s     €r~   rÇ   z>InstructionTranslator.create_call_resume_at.<locals>.<genexpr>Ð  s4   øè ø€ ò 
àÜ×%Ñ%¤l°D×4HÑ4HÈÑ4KÔLô ñ
ùr3  r´  r   z&variables should not be NULL in < 3.12rž   r   ræ  r¤  r°  rf  rJ  )r½  Ú__resume_at_c              3   óH   K  — | ]  }|j                   j                  –— Œ y ­wrw   )rò   r  r,  s     r~   rÇ   z>InstructionTranslator.create_call_resume_at.<locals>.<genexpr>  s   è ø€ Ò< a�!—(‘(—/•/Ñ<ùs   ‚ "c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrw   )rû   r,  s     r~   rÇ   z>InstructionTranslator.create_call_resume_at.<locals>.<genexpr>  s   è ø€ Ò: A�!—+‘+—-Ñ:ùr6  Úorig_graphmodulec                   ó   — y rw   rž   rž   r€   r~   r   z=InstructionTranslator.create_call_resume_at.<locals>.<lambda>$  r}  r€   TF)4rŽ   r²   r   r#  r   r"  rú   r
  rº  rc  rd  r°   r$   Ú	enumerater  rõ  r1  rM   r   rø   r±   r¹  r·  r   Úappend_outputrc   ry   rÄ  Úpop_nullr"   r  r3   ÚlookuprG  r�   r¶  r#   r  rØ  rŽ  r�  r)  rì   Úinstall_global_unsafeÚmake_function_with_closurerí  ÚFunctionTyper±  Úload_function_nameÚcreate_loadr   r»  )r•   r�   Úall_argnamesrs  Úargnames_nullrÅ  Ústack_ctx_varsrÝ  r  rù  rø   Úargnames_ctx_varsr„   Ú
null_idxesÚnull_cntÚjÚ	stack_lenr  Únew_codeÚorig_graphmodule_mayberÅ   r1  s   `                    @r~   ra  z+InstructionTranslator.create_call_resume_at¼  s   ù€ Ø#'ˆÔ à�;‰;˜.Ò(Ü& ~Ó6Ð7Ð7Ø�[‰[˜NÒ*Ü& ~¸d¿k¹kÔJÐKÐKä! $×"3Ñ"3°TÓ:ˆÜô 
à×)Ñ)×.Ñ.Ó0ô
ó 
ˆô ó 
à!ô
ó 
ˆô
 ó 
à!ô
ó 
ˆô
 ×Ñ˜gÒ%Ü�}Ó%¨Ò*ÐTÐ,TÓTÐ*ä�t‹_ˆð
 ˆÜ §
¡
Ó+ò 
	@‰FˆAˆsÜ×%Ñ%Ô&=¸sÕCÜÔ2°CÓ8�à×+Ñ+Ð3‘B¼¸s×?PÑ?PÓ9Qð ð ×%Ñ% q¨-Ð&8Ô9à×$Ñ$ RÔ(Ø× Ñ ¤¬S°·±«_¸qÑ-@À1Ñ-DÓ!EÔFØ× Ñ Ô!3°IÓ!>Õ?ð
	@ð ÐØò 	PˆDÜ×%Ñ%Ü'°×0DÑ0DÀTÑ0JÐ)J¨õô Ô2°CÓ8�à×+Ñ+Ð3‘B¼¸s×?PÑ?PÓ9Qð ð "×(Ñ(¨$°Ð)>Ô?à×$Ñ$ RÔ(Ø× Ñ Ô!3°LÈÔ!NÕOð	Pð$ !#ˆ
Ü×Ñ˜wÒ&ä# D§J¡JÓ/ò )‘��3Ü×)Ñ)¬,¸Õ<Ø×%Ñ% aÕ(ð)ð ˆHÜ#¤H¨T¯Z©ZÓ$8Ó9ò "‘��3Ü×)Ñ)¬,¸Õ<Ü" 1 a¨!¡e¨hÑ&6Ó7ò L˜Ø×(Ñ(Ô);¸FÈÔ)JÕKðLà×$Ñ$ R§[¡[£]Ô3Ø ‘M‘Hð"ô ˜Ÿ
™
“O¤c¨*£oÑ5ˆ	ØœC ›MÑ)ˆä˜<¨¯© }Ð5Ó6ˆä#9×#@Ñ#@Ø�K‰KØ�K‰KØ�K‰KÜÑ<¨4×+;Ñ+;Ô<Ó<ØØØÜÑ:¨×)9Ñ)9Ô:Ó:Ü�.Ó!ÜÐ#Ó$Ü�*Óó$
ˆð "
¤×!9Ñ!9¸$¿+¹+Ó!F×!JÑ!JØ¡ó"
ó "Ðð "Ð-ÜELÇ[Á[Ø&óFŒL×$Ñ$ XÓ.Ð/AÑBð ×Òà�K‰K×-Ñ-¨d°HÔ=Ø×)Ñ)¨$°¸$À	ÕJð �K‰K×-Ñ-Ø”e×(Ñ(¨°4·>±>À4ÓHôð ×Ñ˜R×2Ñ2°4¸¸yÓIÔJà
×Ñ°XÖ>°˜"Ÿ.™.¨Õ+Ò>Ô?Ø
×ÑÔ-¨e°UÓ;Ô<Ø
×ÑÔ+¨NÓ;Ô<Ø×"Ñ"Ó$Ð$ùò ?s   ÕV(c                 óÌ   — | j                   j                  «       D ]G  }t        |t        «      sŒt	        |j                  «       t        j                  j                  «      sŒG y y)NTF)	r
  r:  r!  rm   rR  rx  r8  Ú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                  «      rU| j                  d   x}rCt        |t        «      r2t	        |j                  | «      t        «       ¬«      | j                  d<   y y y y )Nr)  r¤  )r°   r  r!  rT   r\   rj  rG   )r•   r  s     r~   Ú"replace_tos_if_return_is_generatorz8InstructionTranslator.replace_tos_if_return_is_generatorC  s`   € ä�—
‘
ŒOØŸ
™
 2™Ð&�Ð&Ü˜3Ô <Ô=ä1Ø×-Ñ-¨dÓ3Ü.Ó0ôˆD�J‰J�rŠNð >ð 'ð r€   c                 ó”  — | j                  «        | j                  €J ‚| j                  €J ‚t        «       j	                  d| j                  | j                  z
  «       t
        j                  sf| j                  j                  «       dk(  rI| j                  s=| j                  «       s-| j                  s!| j                  st        j                  d«      ‚d | _         t        «       t         j"                  d| j$                  j&                  › d|j(                  › d�«       t*        j-                  d|j(                  «       | j                  j/                  | t1        d| j3                  «       gd	¬
«      ¬«       |j(                  dk(  rt5        d«      nt5        d|j6                  ¬«      }| j                  j9                  |g«       t:        ‚)Nrþ  r   z#because no content in function callztorchdynamo done tracing r¯   rF  z%s triggered compileÚreturn_valueF)r¢  rT  r  r  r³  )rR  rŽ   r  rA   rÿ  r   Úallow_empty_graphsrì   r~  r  rP  r‡  r¥  r   r^  rå   r   r  rG  rH  r²   rä   rD  r_  r/   r\  r   r#  re  r  )r•   r�   Úreturn_insts      r~   Ú_returnzInstructionTranslator._returnN  sy  € Ø×/Ñ/Ô1Ø×'Ñ'Ð3Ð3Ð3Ø×ÑÐ+Ð+Ð+ÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ô
 ×)Ò)Ø—‘×'Ñ'Ó)¨QÒ.Ø×2Ò2Ø×=Ñ=Ô?Ø—K’KØ—N’Nä—-‘-Ð EÓFÐFà#'ˆÔ ØŒ‹Ü�L‰LØ'¨¯©×(;Ñ(;Ð'<¸B¸t¿{¹{¸mÈ1ÐMô	
ô 	�	‰	Ð(¨$¯+©+Ô6Ø�‰×$Ñ$ØÜ%Ø ×!3Ñ!3Ó!5Ð 6ÀEôð 	%ô 	
ð �{‰{˜nÒ,ô ˜~Ô.ä# N¸4¿;¹;ÔGð 	ð
 	�‰×+Ñ+¨[¨MÔ:ÜÐr€   c                 ó&   — | j                  |«       y rw   ©rW  rk  s     r~   r  z"InstructionTranslator.RETURN_VALUEt  ó   € Ø�‰�TÕr€   c                 ó&   — | j                  |«       y rw   rY  rk  s     r~   r  z"InstructionTranslator.RETURN_CONSTw  rZ  r€   )r…   r	  )r—   r˜   r™   Ústaticmethodrü  rô  rõ  rþ  r»   r    r    râ  r   rÌ   rÕ  r  r;   r(  r†  rZ  ra  rP  rR  rW  r  r  rß  rà  s   @r~   r	  r	  Û  s²   ø„ Øòó ðð ×Ññ#ó ð#ðZà˜;Ñ'ðZð (ðZð  %ð!Zð" $Ð$4Ñ5ð#Zð$ 
õ%Zòxð>¨ó ôò
ò}%ò~ò	ò$òLör€   r	  r°  ÚINPLACErW  ÚBINARY_c                   ó  ‡ — e Zd ZU dZee   ed<   ed„ «       Ze	d„ «       Z
e	dedee   fd„«       Zd„ Zd	ed
ej                   deeef   deeef   dededdfˆ fd„Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zˆ fd„Zˆ xZ S )r#  z Trace and inline a called methodÚsymbolic_resultc                 ó¼   — t        j                  t        dt        d   i«      5  | j                  ||||«      }|j	                  «       cd d d «       S # 1 sw Y   y xY w)NÚunimplementedrC  )r	   rÊ   r>   Úbuild_inline_tracerÚinline_call_)rÖ   r$  Úfuncr|   r3  Útracers         r~   rC  z)InliningInstructionTranslator.inline_callŠ  sQ   € ä�Z‰Zœ ?´H¸]Ñ4KÐ"LÓMñ 	)Ø×,Ñ,¨V°T¸4ÀÓHˆFØ×&Ñ&Ó(÷	)÷ 	)ò 	)ús   ¤$AÁAc                 óN  — | j                  «       rt        dt        | «      dg ¬«       t        j                  | d¬«      }|j
                  rêddlm} t        t        | dd «      d	«      r/| j                  j                  |fv rt        j                  d
d«      S t        | d«      r| j                  j                  nd}d|› d�g}d| j                  «       vr|d|› d| j                  «       › d�dgz  }t        dd|› d| j                  «       › d| j                  «       › d|j                   › �d|› d�|¬«       t#        | t$        «      r_t'        j(                  | j+                  «       dd
«      r:t        dt        | j+                  «       «      d| j+                  «       › d�dg¬«       y |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.rO  T)Úis_inlined_callr   )Ú!produce_trampoline_autograd_applyr  Ú_originFz"allowlist in dynamo known functionr¬   zAvoid calling the function `rÐ  r  zRemove the function `z` or the file `zv` from torch/_dynamo/trace_rules.py. 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.Ú_torchdynamo_disablez2Skip inlining `torch.compiler.disable()`d functionzSkip inlining function z3 since it was wrapped with `torch.compiler.disable`z(Remove the `torch.compiler.disable` call)Úhas_selfr*   rš   r   Úcheck_verboseÚskippedÚtorch._dynamo.variables.miscri  rù   rÖ  r  rj  Ú
SkipResultr™   Úget_filenameÚget_namer‘   r!  rW   r  r  Úget_function)re  r”  ri  Úfn_qualnamerS  s        r~   Úcheck_inlineablez.InliningInstructionTranslator.check_inlineable�  sÒ  € à�=‰=Œ?ÜØ6Ü˜D›	ðkàõô ×*Ñ*¨4ÀÔFˆØ�>Š>ÝVô ”w˜t T¨4Ó0°)Ô<ÀÇÁÇÁØ1ðUñ Bô #×-Ñ-ØÐ?óð ô 3:¸$ÀÔ2E˜$Ÿ'™'×.Ò.È2ˆKà.¨{¨m¸2Ð>ðˆEð  × 1Ñ 1Ó 3Ñ3ØØ+¨K¨=¸È×HYÑHYÓH[ÐG\ð ]=ð =ð 7ð	ñ �ô ØHØ$ [ M°¸$¿-¹-»/Ð9Jð KØ"×/Ñ/Ó1Ð2Ð2BÀ6Ç=Á=À/ðSà]Ð^iÐ]jð k(ð (àõô �dÔ0Ô1´g×6LÑ6LØ×ÑÓÐ!7¸ô7
ô ØLÜ˜D×-Ñ-Ó/Ó0Ø5°d×6GÑ6GÓ6IÐ5JÐJ}Ð~à>ðö	ð ˆMr€   re  r|   c                 ó¾  ‡‡‡‡— t        |t        «      rt        dd|› �dg ¬«       t        |t        t        t
        t        f«      sJ ‚t        j                  |«      }|j                  du sJ ‚	 |j                  | ||«      }t)        j*                  |j-                  «       «      D ]8  }t        |t.        «      rŒt        dd|› d|› �dg t0        j2                  ¢¬«       Œ: |j#                  «       Š‰j4                  dv rL|rt        |d   t6        j8                  «      s-t        dd‰j4                  › d|› �d‰j4                  › d�g ¬«       d}	t:        j<                  j>                  j@                  jC                  d«      r&dtE        jF                  ‰«      jE                  «       › �}	tH        jJ                  dk\  re| jL                  Š| jN                  Š| jQ                  ‰jR                  jT                  ¬«      Šˆˆˆˆfd„}
tV        jY                  dt[        |
«      «       t\        jY                  d‰|	|j^                  «       |ržt        |d   t`        «      r‹| jb                  je                  |d   jf                  «      }t        |t:        jh                  jj                  «      r?tm        jn                  |«      tq        jr                  |jt                  jv                  «      d<   ty        ‰«      r&t{        | ‰|| j|                  | j~                  |«      }|S t        |t        «      rJ ‚t        | ‰|| j|                  | j~                  |«      }|S # t        $ r‹}t        dj                  t        |«      d|j                  «       › d|j!                  «       › d	|j#                  «       j$                  › �|D �cg c]  }|j'                  «       ‘Œ nc c}w c}|¬
«      «      ‚d }~ww xY w)NzEAttempted to inline function marked as skipped (SkipFunctionVariable)z+Attempted to inline a SkipFunctionVariable zdAttempted to inline a function that was previously determined to be marked as intentionally skipped.rO  Fz;{reason}.
  func = {func}, args = {args}, kwargs = {kwargs}ú'z' r­   )r‘   re  r|   r3  z:Encountered unconverted argument when attempting to inlinezfunc: z, arg: zWAn argument to an inlined function was not successfully converted to a VariableTracker.)r”  Ú__setattr__r   z2Unsupported __setitem__/__setattr__ inline attemptzcode name: z, args: zAttempted to inline z: where first argument (self) is not a user-defined object.r¬   ÚbytecoderÀ   r°  )r�   c                  ób   •— t        ‰‰«      j                  «       } d‰j                  › d‰› d| › �S )NzTRACE inlined call z from rÀ   )r@   rP  rH  )rR  rÎ  Úcur_instÚheaderÚparent_codes    €€€€r~   Úget_trace_call_log_strzQInliningInstructionTranslator.build_inline_tracer.<locals>.get_trace_call_log_str  s5   ø€ Ü1°+¸xÓH×OÑOÓQ�Ø,¨T¯\©\¨N¸&ÀÀÈÈ4È&ÐQÐQr€   rV  zINLINING %s%s, %sr8  )@r!  rV   r*   rW   rU   rS   rT   r#  ru  rn  Ú	bind_argsÚ	TypeErrorr%   rþ  rš   rr  rq  rB  r+  Úpython_typer8  r9  r:  rH   r   rE  rH  r   rp   r8  r>  Ú	_internalÚ	log_stateÚis_artifact_enabledrÀ  ÚBytecoderc  rd  r  rG  rL  Ú	positionsr�   Útrace_call_logrD  rD   rä   r‘   rf   rì   rˆ  r‰  r~  r}  rŽ  r�  r#   r  ÚforwardÚ__code__r!   Ú&InliningGeneratorInstructionTranslatorr  r  )r$  re  r|   r3  r”  Ú
sub_localsrš  r½  rÆ   rÜ  r~  Úmodulerf  rÎ  r{  r|  r}  s                @@@@r~   rc  z1InliningInstructionTranslator.build_inline_tracerË  s„  û€ ô �dÔ0Ô1ÜØ_ØEÀdÀVÐLð CØõ	ô Øä$Ü*Ü.Ü,ð	ô
ð 	
ð 
ô /×?Ñ?ÀÓEˆØ�~‰~ Ñ&Ð&Ð&ð	ØŸ™¨°°fÓ=ˆJô —‘ ×!2Ñ!2Ó!4Ó5ò 	ˆAÜ˜a¤Õ1Ü ØXØ$ T F¨'°!°Ð5Ø yØ9Ô-×8Ñ8Ð9ö	ð	ð  $Ÿ}™}›ˆØ�<‰<Ð9Ñ9Ù”Z  Q¡¬×)LÑ)LÔMäØLØ% 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Ø×3Ñ3¸8×;MÑ;M×;TÑ;TÐ3ÓUˆF÷Rô × Ñ  ¤zÐ2HÓ'IÔJÜ�	‰	Ð% t¨V°V·]±]ÔCñ ”J˜t A™wÔ(8Ô9Ø—]‘]×0Ñ0°°a±×1CÑ1CÓDˆFÜ˜&¤%§(¡(×"6Ñ"6Ô7ô
 —K‘K Ó'ô ×(Ñ(¨¯©×)@Ñ)@ÓAØ&ñô
 ˜ÔÜ;ØØØØ×'Ñ'Ø×4Ñ4ØóˆFð& ˆô " $Ô(DÔEÐEÐEÜ2ØØØØ×'Ñ'Ø×4Ñ4ØóˆFð ˆøôa ò 		ä#ØN×UÑUÜ˜q›6Ø˜TŸ]™]›_Ð-¨R°×0AÑ0AÓ0CÐ/DÀAÀdÇmÁmÃo×FdÑFdÐEeÐfØ7;Ö<°˜#Ÿ/™/Õ+Ñ<ùÔ<Ø!ð	 Vó óð ûð		ús%   Á/M Í	OÍAOÎ-OÏOÏOc                 ó  — | j                   }| j                  }t        j                  «       }|j                  r| j                  |j                  «      }	 |5  | j                  «        d d d «       | j                  €J ‚| j                  |j                  u r%|j                   j#                  | j                   «       |xj$                  | j$                  z  c_        t        j                  d|«       t&        j(                  st+        | t,        «      rl| j.                  r`t1        |«      rIt+        | t,        «      r9| j2                  r-t+        | t,        «      sJ ‚t        j4                  t6        | «       y | j                  S t1        |«      rMt+        | t,        «      sJ ‚| j                  j9                  «       �J ‚t;        | j<                  t?        «       ¬«      S | j                  S # 1 sw Y   �ŒzxY w# t        j                  $ r#}d|› d|› �}t        j                  |«       ‚ d }~wt        j                  $ r.}d|› d|› �}t        j                  |«       t        |«      |‚d }~wt        $ r t        j                  d|«       ‚ w xY w)Nz!Observed exception DURING INLING z : zSKIPPED INLINING rÂ   zFAILED INLINING %szDONE INLINING %sr¤  ) r$  rG  rô  Únullcontextr  r™  r†  r   ra  rä   rD  r^  r+   r‚  r`  r±  r  r·  r  r   rA  r!  rŠ  Úis_generator_from_ctx_managerr!   Úgenerator_exhaustedÚraise_observed_exceptionr$  rx  r\   Úgenerated_itemsrG   )r•   r$  rÎ  Ú
strict_ctxrš  ri  s         r~   rd  z*InliningInstructionTranslator.inline_call_8  s  € Ø—‘ˆØ�{‰{ˆä$×0Ñ0Ó2ˆ
Ø×"Ò"Ø×5Ñ5°f×6MÑ6MÓNˆJð	Øñ Ø—‘”
÷ð ×#Ñ#Ð/Ð/Ð/à�>‰>˜V×-Ñ-Ñ-à×#Ñ#×*Ñ*¨4×+@Ñ+@ÔAà×(Ò(¨D×,JÑ,JÑJÕ(ä�	‰	Ð$ dÔ+ä×4Ò4Ü�tÔCÔDØ×2Ò2ô ˜TÔ"Ü˜tÔ%KÔLØ×,Ò,ä! $Ô(NÔOÐOÐOä×,Ñ,¬]¸DÕAà×+Ñ+Ð+ä˜DÔ!Ü! $Ô(NÔOÐOÐOØ×+Ñ+×>Ñ>Ó@ÐHÐHÐHÜ+Ø×(Ñ(Ü"2Ó"4ôð ð
 ×+Ñ+Ð+÷_ñ ûä×$Ñ$ò 	Ø5°d°V¸3¸q¸cÐBˆCÜ�I‰I�cŒNàûÜ�}‰}ò 	*Ø% d V¨2¨a¨SÐ1ˆCÜ�I‰I�cŒNÜ˜cÓ"¨Ð)ûÜò 	Ü�I‰IÐ*¨DÔ1Øð	ús<   ÁG- ÁG Á(G- Ç G*Ç%G- Ç-JÈ HÈJÈ4)IÉ$Jr$  rÎ  r
  r  r  Úfuncvarr…   Nc                 óF  •— |j                  «       }|d   }t        |t        «      s|j                  }t	        |«      }	t        |	«       t        ‰| �  |j                  i ||||||	t        «       D �
ci c]  }
|
t        ||
«      “Œ c}
||j                  |j                  dz   |j                  |j                  |j                  ¬«       || _        || _        |j$                  | _        d | _        |j(                  j+                  «       | _        |j,                  | _        y c c}
w )NÚ__builtins__r   )rì   r”  r±  r³  r
  r  r  r"  rE  rG  r‡  r  rè   r  r›  )Úget_globalsr!  rÊ   Ú__dict__r   r   rÔ  rÕ  rì   r   rÖ  r‡  r  rè   r  r›  r”  r$  r¤  r`  r£  r¾  r¥  )r•   r$  rÎ  r
  r  r  r”  r±  r³  r"  rÅ   rÞ  s              €r~   rÕ  z&InliningInstructionTranslator.__init__q  s  ø€ ð ×'Ñ'Ó)ˆ	Ø˜~Ñ.ˆ
Ü˜*¤dÔ+Ø#×,Ñ,ˆJÜ+¨DÓ1ˆÜ˜LÔ)Ü‰ÑØ—=‘=ØØØ!Ø+Ø-Ø*GØ%Ü7D³ÖG°!˜!œW T¨1Ó-Ñ-ÒGØØ—=‘=Ø×,Ñ,¨qÑ0Ø"×2Ñ2Ø×,Ñ,Ø$×6Ñ6ð 	ô 	
ð" ˆŒØˆŒØ×)Ñ)ˆŒØ#ˆÔØ%×5Ñ5×:Ñ:Ó<ˆÔØ×)Ñ)ˆ�ùò Hs   Á0Dc                 ó.   — | j                   j                  S rw   )r$  r•  r§   s    r~   r•  z'InliningInstructionTranslator.fake_mode˜  s   € à�{‰{×$Ñ$Ð$r€   c                 ó\   — t        j                  | j                  j                  «       «      S rw   )r   rs  r$  r\  r§   s    r~   rt  z)InliningInstructionTranslator.run_ctx_mgrœ  s    € Ü×+Ñ+¨D¯K©K×,EÑ,EÓ,GÓHÐHr€   c                  ó   — yrë   rž   r§   s    r~   rZ  z:InliningInstructionTranslator.should_compile_partial_graphŸ  s   € Ør€   c                 ó"   — t        dddg ¬«       y )NzGraph break in inlined functionr¬   z2Graph breaks in an inlined call are not supported.rO  )r*   r‘  s     r~   ra  z3InliningInstructionTranslator.create_call_resume_at¢  s   € ÜØ5ØØLØö		
r€   c                 óF   — | j                  «       | _        d | _        t        ‚rw   )r`  r`  rŽ   r  rk  s     r~   r  z*InliningInstructionTranslator.RETURN_VALUEª  s   € Ø#Ÿx™x›zˆÔØ#'ˆÔ ÜÐr€   c                 óH   — | j                  |«      | _        d | _        t        ‚rw   )r®  r`  rŽ   r  rk  s     r~   r  z*InliningInstructionTranslator.RETURN_CONST¯  s#   € Ø#×/Ñ/°Ó5ˆÔØ#'ˆÔ ÜÐr€   c                 óÞ  — d| j                   v r{| j                   d   }| j                  |«      }d|v r(t        j                  j                  j
                  |   }nt        |«      }t        j                  | ||«      }t        ||«      }n`| j                  j                  d| j                   «      }t        |«      }| j                   }t        j                  | ||«      }t        ||«      }|||fS )Nr—   rÊ  Ú___unnamed_scope)r±  r»  r8  rÏ  rÐ  rÑ  r‰   rH   r·  r5   rì   r�  r7   r6   )	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ß   € Ø˜Ÿ™Ñ'ØŸ.™.¨Ñ4ˆKØ ×.Ñ.¨{Ó;ˆMØ +Ñ-ä—M‘M×2Ñ2×LÑLØ#ññ ô "0°Ó!<�Ü)×/Ñ/°°nÀmÓTˆKÜ& }°dÓ;‰MàŸ;™;×;Ñ;Ø" D§N¡NóˆLô *¨,Ó7ˆNØ!Ÿ^™^ˆNÜ)×/Ñ/°°nÀnÓUˆKÜ-¨n¸dÓCˆMØ˜{¨MÐ9Ð9r€   c                 ó  •— | j                   j                  | j                  u rt        ‰| �  |«       y |j
                  }| j                  |«      \  }}}| j                   j                  j                  ||«      r6| j                  | j                   j                  j                  ||«      «       y 	 | j                  |   }| j                  t        j                  | ||«      «       y # t        $ r | j                  |«      cY S w xY wrw   )rì   rÒ  r±  rÔ  r¹  r#  r¥  r/  Úhas_pending_mutation_of_attrr  Ú	load_attrr—  r¶  rH   r·  )r•   r�   r„   r}   r¡  r¢  rg  rÞ  s          €r~   r¹  z*InliningInstructionTranslator._load_globalÌ  sØ   ø€ Ø�;‰;×#Ñ# t§~¡~Ñ5ô ‰GÑ  Õ&à—;‘;ˆDà,0×,MÑ,MÈdÓ,SÑ)ˆAˆ{˜MØ�{‰{×'Ñ'×DÑDÀ[ÐRVÔWØ—	‘	˜$Ÿ+™+×2Ñ2×<Ñ<¸[È$ÓOÕPð3Ø ŸN™N¨4Ñ0�Eð —	‘	œ/×/Ñ/°°e¸]ÓKÕLøô  ò 3Ø×,Ñ,¨TÓ2Ò2ð3ús   Â2C( Ã(DÄD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Ä  rO  )rì   rÒ  r±  rÔ  rÈ  r`  r!  rl   r*   r#  r¥  r/  r‹  )r•   r�   rg  r„   Ú_fglobals_valuer¡  r}   rÞ  s          €r~   rÈ  z*InliningInstructionTranslator.STORE_GLOBALß  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¸   r   rH   r›   rà   rC  r\  ru  r»   rc  rd  ræ   rí  rö  rÊ   rš   rj   rR   rÕ  r©  r•  rt  rZ  ra  r  r  r¥  r¹  rÈ  rß  rà  s   @r~   r#  r#  …  s  ø… Ù*à˜oÑ.Ó.àñ)ó ð)ð
 ñ8ó ð8ðt ðjàðjð �?Ñ#òjó ðjòX7,ðr%*à)ð%*ð �n‰nð%*ð ˜c ?Ð2Ñ3ð	%*ð
 ˜s OÐ3Ñ4ð%*ð (Bð%*ð *ð%*ð 
õ%*ðN ñ%ó ð%òIòò
òò
ò
:ô0M÷&Jð Jr€   r#  c                   ód   ‡ — e Zd ZU ee   ed<   d
ˆ fd„Zdefd„Zd„ Z	ˆ fd„Z
ˆ fd„Zd„ Zd	„ Zˆ xZS )rŠ  r’  c                 óN   •— t        ‰| �  |i |¤Ž g | _        d| _        d| _        y rë   )rÔ  rÕ  r’  r�  r�  )r•   r|   r3  rÞ  s      €r~   rÕ  z/InliningGeneratorInstructionTranslator.__init__ö  s-   ø€ Ü‰Ñ˜$Ð) &Ò)Ø!ˆÔØ#(ˆÔ Ø-2ˆÕ*r€   r�   c                 ód  — | j                  «       }| j                  j                  |«       t        | j                  «      t        kD  rt        j                  dt        › �«      ‚| j                  t        j                  d «      «       t        j                  s| j                  r|| _        t        ‚y )NzqToo many yield values in generator. Maybe you are inlining an infinite generator. If not, please report a bug at )r`  r’  r±   r°   rY   r   ÚInfiniteGeneratorErrorÚPT2_ISSUE_TRACKER_URLr  rL   r$  r   rA  r�  r`  r  )r•   r�   Útops      r~   ÚYIELD_VALUEz2InliningGeneratorInstructionTranslator.YIELD_VALUEü  s˜   € Ø�h‰h‹jˆØ×Ñ×#Ñ# CÔ(Üˆt×#Ñ#Ó$Ô'9Ò9Ü×,Ñ,ð2Ü2GÐ1HðJóð ð 	�	‰	Ô"×)Ñ)¨$Ó/Ô0ä×5Ò5Ø×1Ò1à#&ˆDÔ äÐð	 2r€   c                 óÈ   — | j                   d   }t        |t        «      sC| j                  «        t	        t
        «      j                  | |gi «      }| j                  |«       y y r  )r  r!  r\   r`  rK   r_  r  r  )r•   r�   r  Úress       r~   ÚGET_YIELD_FROM_ITERz:InliningGeneratorInstructionTranslator.GET_YIELD_FROM_ITER  sN   € Ø�j‰j˜‰nˆÜ˜#Ô3Ô4Ø�H‰HŒJÜ!¤$Ó'×5Ñ5°d¸S¸EÀ2ÓFˆCØ�I‰I�c�Nð 5r€   c                 ó0   •— d| _         t        ‰| �	  |«      S r|  )r�  rÔ  r  ©r•   r�   rÞ  s     €r~   r  z3InliningGeneratorInstructionTranslator.RETURN_VALUE  ó   ø€ Ø#'ˆÔ Ü‰wÑ# DÓ)Ð)r€   c                 ó0   •— d| _         t        ‰| �	  |«      S r|  )r�  rÔ  r  r¶  s     €r~   r  z3InliningGeneratorInstructionTranslator.RETURN_CONST  r·  r€   c                 óÚ  — t        | j                  «      dk\  sJ ‚| j                  «       }| j                  d   }t        |t        «      r|j
                  �t        dddg ¬«       	 |j                  | «      }t        | j                  t        «      r| j                  dkD  sJ ‚| 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)	Nrf  r)  úUnreachable sub-generator coder¬   ú@Should only be encountered while implementing generator support.rO  r   r   )r°   r  r`  r!  rL   rg  r*   r#  rŽ   rœ   r  r±  r$  r   r%  rŒ  r$  ©r•   r�   rì  r  Úexs        r~   Ú
YIELD_FROMz1InliningGeneratorInstructionTranslator.YIELD_FROM  s*  € Ü�4—:‘:‹ !Ò#Ð#Ð#Ø�h‰h‹jˆØ�j‰j˜‰nˆÜ˜3Ô 0Ô1°c·i±iÐ6Gô Ø8ØØ^Øõ	ð	#Ø×#Ñ# DÓ)ˆCô ˜4×3Ñ3´SÔ9Ø×,Ñ,¨qÒ0ðð1ð ×$Ò$¨Ñ)Õ$à�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*Ã3A-E%Å%E*c                 ó  — t        | j                  «      dk\  sJ ‚| j                  «       }| j                  d   }t        |t        t
        f«      s>t        |t        «      r~t        |j                  t        j                  j                  «      rPt        |t        «      r0|j                  €$	 |j                  | «      }| j                  |«       y t+        dddg ¬«       y t+        dd	t-        |«      › �d
t-        |«      › d�g ¬«       y # t        t        j                   f$ rl}t"        j$                  dk  r| j                  «        | j                  t        j&                  |j                  «      «       | j)                  |«       Y d }~y d }~ww xY w)Nrf  r)  r´  rº  r¬   r»  rO  zSEND with bad typez
TOS type: z(Attempted to SEND with unsupported type r�  )r°   r  r`  r!  r\   rT   rp   rg  r'  r(  ÚIteratorrL   r#  r  r$  r   r%  rc  rd  r$  ry  r*   rF   r¼  s        r~   ÚSENDz+InliningGeneratorInstructionTranslator.SENDB  s>  € Ü�4—:‘:‹ !Ò#Ð#Ð#Ø�h‰h‹jˆØ�j‰j˜‰nˆÜ�cÔ0Ô2NÐOÔPÜ�sÔ5Ô6Ü˜3Ÿ9™9¤k§o¡o×&>Ñ&>Ô?ä˜#Ô/Ô0°S·Y±YÐ5Fð#Ø×+Ñ+¨DÓ1�Cð —I‘I˜c•Nô !Ø<ØØ bØö	ô Ø,Ø$¤W¨S£\ NÐ3ØFÄwÈsÃ|ÀnÐTUÐVØö	øô5 &¤s×'DÑ'DÐEò 
$ô ×'Ñ'¨'Ò1ØŸ™œ
Ø—I‘IÔ.×5Ñ5°b·h±hÓ?Ô@Ø—I‘I˜d—O‘Oûð
$ús   Â+D ÄFÄ A"FÆFrÞ   )r—   r˜   r™   r»   rH   r›   rÕ  r    r±  r´  r  r  r¾  rÁ  rß  rà  s   @r~   rŠ  rŠ  ò  s9   ø… Ø˜/Ñ*Ó*õ3ð ó ò"ô*ô*ò$#öL*r€   rŠ  )r{   ræ   )r¬   FN)àr¸   r'  Úcollections.abcrô  r¾  r¹   rÀ  r  r‡   r  r8  rN  r   r  r‡  rc  Ú	threadingr2  rí  ÚtypingrŽ  r   r   r   r   r   r   Úunittest.mockr	   r8  Útorch._loggingÚtorch._dynamo.excr
   Útorch._guardsr   r   Ú%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#   Úcodegenr$   r%   r&   r'   r(   r)   r*   r+   Úfuncname_cacher,   Úguardsr-   r.   Úoutput_graphr/   r0   Úreplay_recordr1   r2   r¦  r3   r4   r…  r5   r6   r7   r8   r9   r:   r;   r<   r=   Úutilsr>   r?   r@   rA   rB   rC   rD   rE   Úvariables.baserF   rG   rH   Úvariables.builderrI   rJ   Úvariables.builtinrK   Úvariables.constantrL   Úvariables.ctx_managerrM   rN   rO   Úvariables.dictsrP   rQ   Úvariables.functionsrR   rS   rT   rU   rV   rW   rX   Úvariables.iterrY   Úvariables.lazyrZ   Úvariables.listsr[   r\   r]   r^   r_   Úvariables.miscr`   ra   rb   rc   rd   re   Úvariables.nn_modulerf   Úvariables.tensorrg   rh   ri   Úvariables.torch_functionrj   rk   Úvariables.user_definedrl   rm   rn   ro   rp   Ú	getLoggerr—   rä   r>  ÚgetArtifactLoggerr@  r‡  rY  r_  Úlocalrû  rÉ   r  ru   rÊ   rš   r›   Úcontainsrx   r®  rƒ   r¯  Úcacherî  r‰   Ú	dataclassr‹   r    r½   rÌ   rÑ   Ú	lru_cacherå   rõ  ré   rï   rñ   r<  r³   r‚  r  r  rÅ  r  r�   r'  rC  rK  r�  rË  rõ  rÍ  râ  ræ   r	  rd  Ú_nb_opsrÖ  r;  r#  rŠ  )rÅ   rÆ   r²   r}   s   0000r~   ú<module>rê     sú  ðòó0 Û Û Û Û Û 
Û Û Û Û Û Û Û Û 	Û 
Û Û Û Û Û ß A× AÝ ã Û Ý <ß 1Ý <Ý /÷÷ ÷ó ÷
÷ 
õ 
õ 'Ý ÷÷ ñ õ )ß /ß 9ß 9ß A÷÷ ñ ÷ ;÷	÷ 	ó 	÷ GÑ Fß AÝ .Ý 0÷ñ ÷
 <÷÷ ñ õ /Ý /÷õ ÷÷ õ 2ß WÑ W÷÷õ ð €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Ó×'Ò'Ñ'ó'Ð �T˜#˜s˜(‘^ó ñ " (×"3Ò"3Ó4×BÒB€Ù˜XŸ]š]Ó+×9Ò9€
ñÐ �DÑ ñ!Ð �HÑ ð
 DÐ ð ‡‚ð)˜ð ) ×!1Ò!1ò )ó ð)ð ×Ò÷Lð Ló ðLð( ×Ò÷@ð @ó ð@ðF ×Ò÷
ð 
ó ð
ð ×Ò÷2ð 2ó ð2÷3ñ 3ð. €×Ò�TÓñ4ó ð4ð ×Òò)ó ð)ð" ×Òò$ó ð$ð ×Ò÷.ð .ó ð.ôB	˜~ô 	ô	�Iô 	ô�9ô ð�—‘  f Ñ-ó ð?Ø
%ð?à�o‰o˜v˜h¨˜nÑ-ð?ð ó?ðD €óI
ðXl˜6Ÿ?™?¨F¨8°T¨>Ñ:ð lÀ$ó lò^{ô|J ô Jð2 ×Ò÷Zð Zó ðZôzy";Ø(õy";ôxE]Ð5ô ]ð@ ×Ò�wÒð Ÿš÷ñ
 ˆF�Añ	 	Ø!Ø# vÑ-ˆF�1�2‰J°W¸VÀAÀB¸Z¸LÐ3Iõ	
óÐôjJÐ$=ô jJôZzÐ-Jõ zùóGz'ùóZns   É4S$Ò'"S*