Ë
    L²jŸp ã                  ó–
  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlZddlmZ ddlmZ ddlmZm Z m!Z!m"Z" ddlm#Z#m$Z$m%Z% ddl&m'Z' dd	lm(Z( ddl)Z)ddl*Z)dd
l+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7 ddl*m8Z8 ddl9m:Z:m;Z;m<Z< ddl=m>Z> ddl?m@Z@mAZA ddlBmCZD ddlEmFZF ddlGmHZH ddlImJZJmKZKmLZLmMZM ddlNmOZOmPZP ddlQmRZRmSZSmTZTmUZUmVZV ddlWmXZX ddlYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZa ddlbmcZcmdZdmeZemfZf ddlgmgZg ddlhmiZimjZjmkZkmlZlmmZmmnZnmoZo dd lTmpZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z| dd!l}m~Z~ dd"lm€Z€m�Z�m‚Z‚ dd#lƒm„Z„ dd$l…m†Z†m‡Z‡ dd%lˆ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)lVm–Z– dd*lm—Z—m˜Z˜m™Z™mšZš dd+l›mœZœm�Z�mžZžmŸZŸm Z m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZªm«Z«m¬Z¬m­Z­m®Z®m¯Z¯m°Z°m±Z± dd,l²m³Z³ d-e´d.<   	 ddlµZ¶e�jp                  r.dd/l¹mºZº dd0l»m¼Z¼ dd1lWm½Z½ dd2l¾m¿Z¿ dd3lÀmÁZÁ dd4lmÂZÂmÃZÃmÄZÄ dd5lÅmÆZÆ  e�jŽ                  eÈ«      ZÉe)�j”                  �j—                  eÈd6«      ZÌe)�j”                  �j—                  eÈd7«      ZÍ e�jœ                  «       ZÏ e%d8«      ZÐ e'd9«      ZÑ G d:„ d;«      ZÒ	 	 	 	 dd<„ZÓ G d=„ d>«      ZÔ eÔ«       ZÕ eÔ«       ZÖda×d?e´d@<    e�j°                  eD«      	 d€	 	 	 	 	 	 	 d�dA„«       ZÙd‚dƒdB„ZÚd„dC„ZÛeo�j¸                  d…dD„«       ZÝ	 	 d†	 	 	 	 	 	 	 	 	 d‡dF„ZÞdaß e�jÀ                  «       ZádGe´dH<   dˆdI„ZâdˆdJ„Zãe G dK„ dL«      «       Zä	 	 	 	 d‰dM„Zå G dN„ dO«      Zæ	 	 	 	 	 dŠ	 	 	 	 	 	 	 	 	 	 	 	 	 d‹dQ„ZçddRlmèZè ddSlémêZê  eè«       ZëdTe´dU<   dVZì	 	 	 	 dŒdW„Zíd�dX„ZîdŽdY„Zïd�dZ„ZðeÛdEddddd[œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d�d\„«       Zñe G d]„ d^«      «       Zòe G d_„ d`«      «       Zó edP¬a«       G db„ dc«      «       Zôd‘dd„Zõe G de„ df«      «       Zöe G dg„ dh«      «       Z÷d’di„Zød“dj„Zù	 d€	 	 	 	 	 	 	 d”dl„Zú	 d€ddEdmœ	 	 	 	 	 	 	 	 	 	 	 d•dn„Zûe G do„ dk«      «       ZüddEdmœ	 	 	 	 	 	 	 d–dp„Zýd—dr„ZþdEddddd[œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d˜ds„Zÿ	 	 d™ddddtœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dšdu„�Z  G dv„ dw«      �Z	 	 d™	 	 	 	 	 	 	 	 	 d›dx„�Zdœdy„�Zd�dz„�Z G d{„ dqe�j
                  «      �Z G d|„ d}«      �Z	 	 	 	 	 	 džd~„�Zy# e·$ r dZ¶Y �Œ=w xY w)ŸaÖ  
This module implements TorchDynamo's core frame conversion functionality, transforming Python
frames into FX graphs. It handles:

- Frame analysis and bytecode transformation
- Guard creation and management for dynamic behaviors
- Cache management for recompilation
- Error handling and fallback mechanisms

Key classes:
- ConvertFrame: Main entry point for frame conversion with error handling
- ConvertFrameAssert: Implements core frame to graph conversion logic
- Tracker: Tracks input/output code objects during conversion
- CatchErrorsWrapper: Provides error handling and suppression logic

The conversion process preserves program semantics while enabling optimizations
through torch.compile() and related systems.

NOTE: _torchdynamo_orig_backend is used for convert frame wrappers to identify the inner wrapped function.
By going down the _torchdynamo_orig_backend chain, one can recover the original unwrapped backend,
which is checked for during the Dynamo cache lookup.
é    )ÚannotationsN)Ú	dataclass)ÚPath)ÚCellTypeÚCodeTypeÚFunctionTypeÚ
ModuleType)ÚAnyÚNoReturnÚTypeVar)Ú	ParamSpec)ÚReferenceType)ÚGlobalStateGuard)ÚCallbackTrigger)Úget_compile_pg)ÚTensorifyState)Úcompile_contextÚCompileContextÚ	CompileIdÚtracing)Ú
structured)Úcompile_time_strobelight_metaÚ#maybe_upload_prof_stats_to_manifoldÚsignpost_event)Ú_use_lazy_graph_module)ÚConstraintViolationErrorÚGuardOnDataDependentSymNode)Ú_forward_from_src)Ú_WaitCounter)ÚDistributedDataParallel)Ú_disable_current_modesÚ any_torch_dispatch_mode_on_stackÚ/is_in_any_mode_without_ignore_compile_internalsÚis_traceable_wrapper_subclass)ÚCapturedTracebackÚformat_traceback_shorté   )ÚconfigÚ
decoratorsÚexcÚgraph_break_hintsÚtrace_rules)Ú_is_registered_backend)Úremove_dead_codeÚremove_pointless_jumps)Ú check_inst_exn_tab_entries_validÚInstructionÚis_generatorÚ propagate_inst_exn_table_entriesÚtransform_code_object)ÚCacheSizeRelevantForFrameÚcompute_cache_sizeÚexceeds_recompile_limitÚis_recompilation)Úcode_context)Úalways_optimize_code_objectsÚ
ConstraintÚ
dynamo_tlsÚinnermost_backendÚinnermost_fnÚ	skip_codeÚTorchPatcher)Úaugment_exc_messageÚBackendCompilerFailedÚFailOnRecompileLimitHitÚformat_error_msgÚInternalTorchDynamoErrorÚPackageErrorÚResumePrologueTracingErrorÚShortenTracebackÚTorchRuntimeErrorÚUncapturedHigherOrderOpErrorÚunimplementedÚUnsupportedÚ	UserError)Úreset_user_object_tracking)ÚCheckFunctionManagerÚ'get_and_maybe_log_recompilation_reasonsÚGuardedCode)ÚHooks)ÚDynamoTracerOutputÚOutputGraphCommon)Ú_log_size_mismatch_recompileÚlog_frame_dynamic_whitelistÚput_code_state)ÚExecutionRecord)ÚTORCH_DYNAMO_RESUME_IN_PREFIX)ÚDistributedStateÚExceptionStackÚInstructionTranslatorÚ
LocalStateÚSpeculationLog)Úis_numpy)ÚConvertFrameReturnÚFrameActionÚFrameExecStrategyÚwrap_guarded_code)Ú_get_error_on_graph_breakÚchromium_event_timedÚCleanupManagerÚCompileTimeInstructionCounterÚcountersÚdynamo_timedÚformat_bytecodeÚgen_record_file_nameÚ#get_hook_for_recompile_user_contextÚget_metrics_contextÚincrement_frameÚis_namedtupleÚistypeÚ
LazyStringÚmaybe_disable_inference_modeÚ*maybe_disable_inference_mode_for_fake_propÚorig_code_mapÚreset_graph_break_dup_checkerÚsetup_compile_debugÚ	to_int_usÚtroubleshooting_urlÚwrite_record_to_file)Ú#torch_function_mode_stack_state_mgrzModuleType | NoneÚnp)ÚCallable)ÚWeakIdKeyDictionary)Ú
CompilerFn)ÚCompilePackage)ÚWrapBackendDebug)ÚBytecodeHookÚ
CacheEntryÚDynamoFrameType)ÚFrameStateSizeEntryÚbytecodeÚgraph_breaksÚ_TÚ_Pc                  ó   — e Zd Zy)ÚTODO_UNKNOWNN)Ú__name__Ú
__module__Ú__qualname__© ó    úZ/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_dynamo/convert_frame.pyrŠ   rŠ   Ð   s   „ Ør�   rŠ   c                ó²   — | €y| j                   j                  j                  }|j                  j	                  «        |j
                  j	                  «        y)z:Clear WeakIdRef entries from a FakeTensorMode's describer.N)Úfake_tensor_converterÚmeta_converterÚ	describerÚlookup_tensorÚclearÚlookup_storage)Ú	fake_moder”   s     r�   Ú_clear_fake_mode_weakrefsr™   Ô   sH   € ð ÐØØ×/Ñ/×>Ñ>×HÑH€IØ×Ñ×!Ñ!Ô#Ø×Ñ×"Ñ"Õ$r�   c                  ó,   — e Zd Zdd„Zdd„Zdd„Zdd„Zy)	ÚTrackerc                ó0   — g | _         t        «       | _        y ©N)ÚseenÚsetÚseen_ids©Úselfs    r�   Ú__init__zTracker.__init__à   s   € Ø35ˆŒ	Ü"%£%ˆ�r�   c                óÜ   ‡ ‡— t        |«      Š‰‰ j                  vrQt        j                  |ˆˆ fd„«      }‰ j                  j                  |«       ‰ j                  j                  ‰«       y y )Nc                ó:   •— ‰j                   j                  ‰«      S r�   )r    Úremove)Ú_Úidxr¢   s    €€r�   ú<lambda>zTracker.add.<locals>.<lambda>ç   s   ø€ °D·M±M×4HÑ4HÈÓ4M€ r�   )Úidr    ÚweakrefÚrefrž   ÚappendÚadd)r¢   Ú
strong_objÚobjr¨   s   `  @r�   r®   zTracker.addä   sR   ù€ Ü�‹nˆØ�d—m‘mÑ#Ü—+‘+˜jÔ*MÓNˆCØ�I‰I×Ñ˜SÔ!Ø�M‰M×Ñ˜cÕ"ð $r�   c                ó0   — t        |«      | j                  v S r�   )rª   r    )r¢   Úitems     r�   Ú__contains__zTracker.__contains__ë   s   € Ü�$‹x˜4Ÿ=™=Ð(Ð(r�   c                ól   — | j                   j                  «        | j                  j                  «        y r�   )rž   r–   r    r¡   s    r�   r–   zTracker.clearî   s    € Ø�	‰	�‰ÔØ�‰×ÑÕr�   N©ÚreturnÚNone)r¯   r   r¶   r·   )r²   r   r¶   Úbool)r‹   rŒ   r�   r£   r®   r³   r–   rŽ   r�   r�   r›   r›   ß   s   „ ó(ó#ó)ôr�   r›   zGlobalStateGuard | NoneÚinitial_global_statec                óJ   — t        | ||«      }t        |j                  «       |S r�   )Úoriginal_forward_from_srcr?   Ú__code__)ÚsrcÚglobalsÚ	co_fieldsÚresults       r�   Úfx_forward_from_src_skip_resultrÁ   ù   s#   € ô ' s¨G°YÓ?€FÜˆf�o‰oÔØ€Mr�   c           	     óœ  ‡‡— t        j                  t        «      Št        j                  d|z   ¬«      j                  «       }t        j                  |«      }t        t        j                  ˆfd„|«      «      | j                  | j                  t        j                  | j                  «      dœgz   Št        j                  j                  dˆfd„«       |D �cg c]:  }|j                   ‰k7  r)d|j"                  › d|j$                  › d	|j                   › �‘Œ< c}d| j                  › d| j                  › d	| j                  › �gz   }|S c c}w )
Né   ©Úskipc                ó   •— | d   ‰k7  S )NÚfilenamerŽ   )ÚfÚconvert_frame_interns    €r�   r©   z"log_dynamo_start.<locals>.<lambda>  s   ø€ �a˜
‘mÐ';Ñ;€ r�   )ÚlineÚnamerÇ   Údynamo_startc                 ó   •— d‰ iS )NÚstackrŽ   )rÎ   s   €r�   r©   z"log_dynamo_start.<locals>.<lambda>  s   ø€ �˜%Ð € r�   zLine: z, Name: z, Filename: )r   Úintern_stringÚ__file__r%   ÚextractÚsummaryÚfrom_tracebackÚlistÚ	itertoolsÚ	takewhileÚco_firstlinenoÚco_nameÚco_filenameÚtorchÚ_loggingÚtrace_structuredrÇ   ÚlinenorË   )ÚcoderÅ   Úcaptured_tbÚframes_internedÚframeÚstack_stringsrÉ   rÎ   s         @@r�   Úlog_dynamo_startrã     s6  ù€ Ü%×3Ñ3´HÓ=ÐÜ#×+Ñ+°°T±Ô:×BÑBÓD€KÜ ×/Ñ/°Ó<€OäÜ×ÑÛ;Øó	
óð ×'Ñ'Ø—L‘LÜ"×0Ñ0°×1AÑ1AÓBñ	
ð	ñ€Eô 
‡N�N×#Ñ#ØÛ ôð !öàØ�>‰>Ð1Ò1ð �—‘�˜h u§z¡z l°,¸u¿~¹~Ð>NÒOòð
 �×$Ñ$Ð% X¨d¯l©l¨^¸<È×HXÑHXÐGYÐZð	ñ	€Mð Ðùòs   Ã?E	c                óR   ‡ — t        j                  ‰ «      dˆ fd„«       }‰ |_        |S )a@  
    Context manager to:
        1) Save/restore torch.is_grad_enabled() state
        2) Save/restore torch random state
        3) Monkey patch torch.fx.graph_module._forward_from_src

    NOTE: Python random state is preserved in eval_frame_cpp.cpp instead,
    so that it wraps more of the compilation pipeline.
    c                 ó¶  •— t        «       }t        j                  «       }t        j                  j	                  «       5  t        «       5  t        «       5  t        j                  «       }t        j                  «       }t        j                  «       }t        j                  j                  «       }t        j                  «       }t        j                  j                  «       }	d }
t        j                  j                  «       rEt        j                  j!                  «       5  t        j                  j                  «       }
d d d «       t        j                  j#                  dd«      }t        j$                  j&                  j(                  }t*        t        j$                  j&                  _        t-        «       }t/        j0                  «       }|j3                  t        j$                  j4                  j7                  «       «       t9        «        	  ‰| i |¤Ž|j;                  «        |j;                  «        t        j                  j=                  |«       t        j>                  j@                  jC                  |«       t        jD                  ||¬«       t        j                  jG                  |	«       t        jH                  |«       t        j                  j                  «       }||k7  rt        j                  jK                  «        |
�Ft        j                  j!                  «       5  t        j                  jG                  |
«       d d d «       t        j                  jM                  dd|«       |t        j$                  j&                  _        |jO                  «       sJ d|jQ                  «       › d�«       ‚cd d d «       cd d d «       cd d d «       S # 1 sw Y   �Œ™xY w# 1 sw Y   Œ›xY w# |j;                  «        |j;                  «        t        j                  j=                  |«       t        j>                  j@                  jC                  |«       t        jD                  ||¬«       t        j                  jG                  |	«       t        jH                  |«       t        j                  j                  «       }||k7  rt        j                  jK                  «        |
�St        j                  j!                  «       5  t        j                  jG                  |
«       d d d «       n# 1 sw Y   nxY wt        j                  jM                  dd|«       |t        j$                  j&                  _        |jO                  «       sJ d|jQ                  «       › d�«       ‚w xY w# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)NÚcudaÚmatmul)Ú	warn_onlyzGlobal z7state changed while dynamo tracing, please report a bug))r   rÚ   Úis_grad_enabledÚ_CÚ_PreserveDispatchKeyGuardrr   rs   Úis_inference_mode_enabledÚ$are_deterministic_algorithms_enabledÚ-is_deterministic_algorithms_warn_only_enabledÚ$_is_default_mobile_cpu_allocator_setÚget_default_dtypeÚrandomÚget_rng_stateræ   Úis_availableÚDisableTorchFunctionÚ_get_fp32_precision_getterÚfxÚgraph_moduler   rÁ   rv   Ú
contextlibÚ	ExitStackÚenter_contextÚ_symbolic_traceÚ_maybe_revert_all_patchesrN   ÚcloseÚ_set_grad_enabledÚautogradÚ	grad_modeÚ_enter_inference_modeÚuse_deterministic_algorithmsÚset_rng_stateÚset_default_dtypeÚ#_unset_default_mobile_cpu_allocatorÚ_set_fp32_precision_setterÚcheckÚreason)ÚargsÚkwargsÚguardsÚprior_grad_modeÚprior_inference_modeÚprior_deterministicÚprior_warn_onlyÚprior_mobile_allocator_stateÚprior_dtypeÚtorch_rng_stateÚcuda_rng_stateÚcuda_matmul_fp32_precÚprior_fwd_from_srcÚcleanupÚ
exit_stackÚcurr_mobile_allocator_stateÚfns                   €r�   Ú_fnz"preserve_global_state.<locals>._fn1  sU  ø€ ä!Ó#ˆÜ×/Ñ/Ó1ˆô �H‰H×.Ñ.Ó0ñ6	ä(Ó*ñ6	ô 7Ó8ñ6	ô
 $)×#BÑ#BÓ#DÐ Ü"'×"LÑ"LÓ"NÐÜ#×QÑQÓSˆOä—‘×=Ñ=Ó?ð )ô  ×1Ñ1Ó3ˆKÜ#Ÿl™l×8Ñ8Ó:ˆOØ!ˆNÜ�z‰z×&Ñ&Ô(Ü—X‘X×2Ñ2Ó4ñ @Ü%*§Z¡Z×%=Ñ%=Ó%?�N÷@ä$)§H¡H×$GÑ$GØ˜ó%Ð!ô "'§¡×!6Ñ!6×!HÑ!HÐÜ6UŒE�H‰H×!Ñ!Ô3Ü)Ó+ˆGÜ#×-Ñ-Ó/ˆJØ×$Ñ$Ü—‘×(Ñ(×BÑBÓDôô 'Ô(ðÙ˜4Ð* 6Ñ*à—‘”Ø× Ñ Ô"Ü—‘×*Ñ*¨?Ô;Ü—‘×(Ñ(×>Ñ>Ð?SÔTÜ×2Ñ2Ø'°?õô —‘×*Ñ*¨?Ô;Ü×'Ñ'¨Ô4ä—H‘H×AÑAÓCð ,ð 0Ð3NÒNÜ—H‘H×@Ñ@ÔBØ!Ð-ÜŸ™×6Ñ6Ó8ñ AÜŸ
™
×0Ñ0°Ô@÷Aä—‘×3Ñ3Ø˜HÐ&;ôð ;M”—‘×%Ñ%Ô7Ø—|‘|”~ð Ø˜fŸm™m›oÐ.Ð.eÐfó�~÷i6	÷ 6	÷ 6	ó 6	÷@ñ @ú÷>Að Aûð —‘”Ø× Ñ Ô"Ü—‘×*Ñ*¨?Ô;Ü—‘×(Ñ(×>Ñ>Ð?SÔTÜ×2Ñ2Ø'°?õô —‘×*Ñ*¨?Ô;Ü×'Ñ'¨Ô4ä—H‘H×AÑAÓCð ,ð 0Ð3NÒNÜ—H‘H×@Ñ@ÔBØ!Ð-ÜŸ™×6Ñ6Ó8ñ AÜŸ
™
×0Ñ0°Ô@÷A÷ Añ Aúä—‘×3Ñ3Ø˜HÐ&;ôð ;M”—‘×%Ñ%Ô7Ø—|‘|”~ð Ø˜fŸm™m›oÐ.Ð.eÐfó‘~ú÷i6	ð 6	ú÷ 6	÷ 6	ñ 6	ú÷ 6	÷ 6	ñ 6	ús§   ¾WÁ	V:ÁCV%ÄO	Ä>CV%ÈO.ÈDV%Ì( O"ÍA1V%Î9	V:Ï	WÏOÏV%Ï"O+Ï'V%Ï.DV"	Ô T,Ô#	V"	Ô,T5Ô1A1V"	Ö"V%Ö%V.Ö*V:Ö1	WÖ:W	Ö?W×W©r	  z_P.argsr
  z	_P.kwargsr¶   r‡   )Ú	functoolsÚwrapsÚ_torchdynamo_orig_backend)r  r  s   ` r�   Úpreserve_global_stater  &  s0   ø€ ô ‡_�_�RÓô>ó ð>ð@ %'€CÔ!Ø€Jr�   c                óp  ‡‡— | j                   t        v ry| j                   j                  D ]‚  }|| j                  v sŒ| j                  |   }t	        |t
        «      r%|j                  j                  d«      s|t        u r yt        sŒ]t        j                  sŒn|t        u st        |«      sŒ‚ y i Šdˆˆfd„Š| j                  j                  «       D ]  } ‰|«      sŒ y t        j!                  d| j                   j"                  | j                   j$                  | j                   j&                  «       y)z+Check if the frame has torch.* related bitsTztorch.c           	     ó˜  •‡ — t        ‰ «      }|‰v r‰|   S d‰|<   t        ‰ t        j                  t        j                  j
                  f«      s4t        ‰ t        «      r.t        ‰ t        j                  j
                  «      r
d‰|<   ‰|   S t        j                  rDt        r>t        ‰ t        j                  «      st        ‰ t        j                  «      r
d‰|<   ‰|   S t        ‰ t        t        f«      rt!        ˆfd„‰ D «       «      ‰|<   ‰|   S t        ‰ t"        «      r5t        ‰ j%                  «       «      }t!        ˆfd„|D «       «      ‰|<   ‰|   S t        ‰ t&        t(        t*        t        d«      t,        f«      r
d‰|<   ‰|   S t/        ‰ «      r3t1        ‰ d«      r't!        ˆˆ fd„‰ j2                  D «       «      ‰|<   ‰|   S y)z)Recursively check if the obj has a tensorFTc              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr�   rŽ   ©Ú.0ÚvÚ
has_tensors     €r�   ú	<genexpr>z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>Ÿ  s   øè ø€ Ò">°Q¡:¨a§=Ñ">ùó   ƒc              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr�   rŽ   r#  s     €r�   r'  z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>¦  s   øè ø€ Ò"A°Q¡:¨a§=Ñ"Aùr(  NÚ_fieldsc              3  óB   •K  — | ]  } ‰t        ‰|«      «      –— Œ y ­wr�   )Úgetattr)r$  r%  r&  r°   s     €€r�   r'  z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>¬  s   øè ø€ Ò"TÀ1¡:¬g°c¸1«o×#>Ñ"Tùs   ƒ)rª   Ú
isinstancerÚ   ÚTensorÚnnÚModulerp   ÚtypeÚ
issubclassr(   Útrace_numpyr{   ÚndarrayÚgenericrÔ   ÚtupleÚanyÚdictÚvaluesÚstrÚintÚfloatr¸   ro   Úhasattrr*  )r°   Úobj_idr9  r&  r    s   `  €€r�   r&  z'has_tensor_in_frame.<locals>.has_tensor‹  s‚  ù€ ä�C“ˆØ�XÑØ˜FÑ#Ð#Ø ˆ�Ñä�cœEŸL™L¬%¯(©(¯/©/Ð:Ô;Ü�3œÔ¤*¨S´%·(±(·/±/Ô"Bà#ˆH�VÑØ˜FÑ#Ð#ä×ÒÝÜ˜œRŸZ™ZÔ(¬J°s¼B¿J¹JÔ,Gà#ˆH�VÑØ˜FÑ#Ð#Ü�Cœ$¤˜Ô'Ü"Ó">¸#Ô">Ó>ˆH�VÑØ˜FÑ#Ð#Ü�CœÔô ˜#Ÿ*™*›,Ó'ˆFÜ"Ó"A¸&Ô"AÓAˆH�VÑØ˜FÑ#Ð#Ü�Cœ#œs¤E¬4°«:´tÐ<Ô=Ø$ˆH�VÑØ˜FÑ#Ð#Ü˜3Ô¤G¨C°Ô$;Ü"Ô"TÈÏÉÔ"TÓTˆH�VÑØ˜FÑ#Ð#ð r�   z0skipping because no torch.* %s             %s %sF)r°   Úobjectr¶   r¸   )Úf_coder:   Úco_namesÚ	f_globalsr-  r	   r‹   Ú
startswithrÚ   r{   r(   r3  r_   Úf_localsr9  ÚlogÚdebugrØ   rÙ   r×   )rá   rØ   r°   Úvaluer&  r    s       @@r�   Úhas_tensor_in_framerH  v  sþ   ù€ ð ‡|�|Ô3Ñ3Øð —<‘<×(Ñ(ò 	ˆØ�e—o‘oÒ%Ø—/‘/ 'Ñ*ˆCÜ˜#œzÔ*Ø—‘×'Ñ'¨Ô1°S¼E±\áæ”f×(Ó(¨c´R©i¼8ÀC½=Ùð	ð !#€Hö(ðV —‘×&Ñ&Ó(ò ˆÙ�eÕÙðô ‡I�Ið	à�‰×ÑØ�‰× Ñ Ø�‰×#Ñ#ôð r�   Fc                óŒ   — d }t        | d«      r)t        | |«      }t        || j                  «       || _        t        | |¬«       y )NÚexec_record©Úexport)r=  rk   ry   rJ  Úrecord_filenamerA   )ÚerÞ   rá   rL  rM  s        r�   Úexception_handlerrO  Å  s?   € ð €OÜˆq�-Ô Ü.¨q°$Ó7ˆÜ˜_¨a¯m©mÔ<Ø+ˆÔä˜ &Ö)r�   z)typing.Counter[int | FrameStateSizeEntry]ÚFRAME_COMPILE_COUNTERc                ó<   — t         j                  rt        | «      S | S r�   )r(   ÚcprofileÚcprofile_wrapper)Úfuncs    r�   Úmaybe_cprofilerU  Ø  s   € Ü‡‚Ü Ó%Ð%Ø€Kr�   c                óD   ‡ — t        j                  ‰ «      dˆ fd„«       }|S )Nc                 óü  •‡— t        j                  «       }|sJ d«       ‚t        t        j                  j                  t        j                  «       ‰j                  › dt        |«      j                  dd«      › d�«      «      }t        j                  «       }	 t        j                  «       } |j                  ‰g| ¢­i |¤Ž}t        j                  «       |z
  }t         j%                  d‰j                  ||«       t'        j(                  |«      }	 |j+                  |«       t         j%                  d	|«       |j/                  d
«      }		 t1        j2                  ddddddt        |«      gt0        j4                  ¬«      5 }
t1        j6                  dddt        |	«      g|
j8                  ¬«       t         j%                  d|	«       d d d «       tG        t        |«      «      xŠr#tH        jJ                  jM                  dˆfd„«       |S # t        $ r# t         j#                  d«       d} ‰| i |¤Ž}Y �ŒYw xY w# t,        $ r t         j#                  d|«       Y �Œ6w xY w# 1 sw Y   Œ™xY w# t:        $ r‰ t         j%                  d«       |j=                  t&        j>                  j@                  «      jC                  d«       |j=                  t&        j>                  jD                  «      jC                  d«       Y �Œ-w xY w)NzTrace id is Noner§   ú/z.profilezfailed to enable cProfiler   z7### Cprofile for %s trace id [%s] took %.3f seconds ###zCannot write to %szRaw profile at %sz.svgÚ	gprof2dotz-fÚpstatsz"--node-label=total-time-percentagez!--node-label=self-time-percentagez--node-label=total-time)ÚstdoutÚdotz-Tsvgz-o)Ústdinz Generated SVG from profile at %szxFailed to generate SVG from profile -- dumping stats instead.Try installing gprof2dot and dot for a better visualizationé   Úlinkc                 ó   •— d‰ dœS )NÚcprofile_manifold_url)rË   ÚurlrŽ   )Úmanifold_links   €r�   r©   z;cprofile_wrapper.<locals>.profile_wrapper.<locals>.<lambda>"  s   ø€ Ð!8ÀÑO€ r�   )'r   Úcurrent_trace_idr   ÚosÚpathÚjoinÚtempfileÚ
gettempdirr‹   r:  ÚreplaceÚcProfileÚProfileÚtimeÚruncallÚ
ValueErrorrE  Ú	exceptionÚwarningrZ  ÚStatsÚ
dump_statsÚOSErrorÚwith_suffixÚ
subprocessÚPopenÚPIPEÚ
check_callr[  ÚFileNotFoundErrorÚ
sort_statsÚSortKeyÚTIMEÚprint_statsÚ
CUMULATIVEr   rÚ   rÛ   rÜ   )r	  r
  Útrace_idÚprofile_pathÚprofÚstart_tsÚretvalÚprofile_latencyÚpsÚsvg_pathÚgprof2dot_processrc  rT  s              @€r�   Úprofile_wrapperz)cprofile_wrapper.<locals>.profile_wrapperß  s£  ù€ ä!×2Ñ2Ó4ˆÙÐ+Ð+Ó+ˆxÜÜ�G‰G�L‰LÜ×#Ñ#Ó%Ø—=‘=�/ ¤3 x£=×#8Ñ#8¸¸cÓ#BÐ"CÀ8ÐLóó
ˆô ×ÑÓ!ˆð	+Ü—y‘y“{ˆHð
 "�T—\‘\ $Ð8¨Ò8°Ñ8ˆFÜ"Ÿi™i›k¨HÑ4ˆOô
 	�‰ØEØ�M‰MØØô		
ô �\‰\˜$Óˆð	>Ø�O‰O˜LÔ)ô 	�‰Ð'¨Ô6Ø×+Ñ+¨FÓ3ˆð	EÜ×!Ñ!àØØØ8Ø7Ø-Ü˜Ó%ðô "—‘ôð Jð #Ü×%Ñ%Ø˜G T¬3¨x«=Ð9Ø+×2Ñ2õô —‘Ð>ÀÔI÷!Jô2 @Ü�Óó
ð 
ˆ=ð 
ô �N‰N×+Ñ+ØÛOôð ˆøôe ò 	+Ü�M‰MÐ5Ô6ØˆOÙ˜4Ð* 6Ñ*‹Fð	+ûô ò 	>Ü�M‰MÐ.°×=ð	>ú÷
Jð Jûô" !ò 	EÜ�K‰KðNôð �M‰Mœ&Ÿ.™.×-Ñ-Ó.×:Ñ:¸2Ô>Ø�M‰Mœ&Ÿ.™.×3Ñ3Ó4×@Ñ@À×Dð	EúsQ   ÂAH ÄH7 Å5I) Æ AIÇI) È(H4È3H4È7IÉIÉI&É"I) É)BK;Ë:K;r  )r  r  )rT  r‰  s   ` r�   rS  rS  Þ  s)   ø€ Ü‡_�_�TÓôDó ðDðL Ðr�   c                  ó   — e Zd ZU dZded<   y)ÚConvertFrameBoxNzbool | NoneÚerror_on_graph_break)r‹   rŒ   r�   rŒ  Ú__annotations__rŽ   r�   r�   r‹  r‹  )  s   … à(,Ð˜+Ô,r�   r‹  c                óô   — d| vrt         | d<   t         dz  a | d   }t        |t        «      sJ ‚t        |   }t        |xx   dz  cc<   d }t	        j
                  «       x}r|j                  }t        |||¬«      S )NÚ_idr'   )Úcompiled_autograd_idÚframe_idÚframe_compile_id)ÚFRAME_COUNTERr-  r;  rP  r   Úcurrent_compile_idr�  r   )Úframe_stater‘  r’  r�  Úpriors        r�   Úget_compile_idr—  .  s‘   € ð �KÑÜ*ˆ�EÑÜ˜ÑˆØ˜5Ñ!€HÜ�h¤Ô$Ð$Ð$ä,¨XÑ6ÐÜ˜(Ó# qÑ(Ó#àÐÜ×1Ñ1Ó3Ð3€uÐ3Ø$×9Ñ9ÐÜØ1ØØ)ôð r�   c                  óp   — e Zd Z	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zed	d„«       Zddœ	 	 	 	 	 	 	 	 	 	 	 d
d„Zy)ÚConvertFrameAssertNc                óŠ   — t        «        || _        || _        || _        || _        || _        || _        t        «       | _        y r�   )	ru   r  Ú
_one_graphÚ_exportÚ_export_constraintsÚ_packageÚ_recompile_limitr‹  Ú_box)r¢   Úcompiler_fnÚ	one_graphrL  Úexport_constraintsÚpackageÚrecompile_limits          r�   r£   zConvertFrameAssert.__init__F  sA   € ô 	&Ô'Ø)4ˆÔ&Ø#ˆŒØˆŒØ#5ˆÔ ØˆŒØ /ˆÔÜ#Ó%ˆ�	r�   c                ó   ‡ — ˆ fd„S )Nc                ót   •— t        | ‰j                  ‰j                  ‰j                  ‰j                  ¬«      S ©N©r¥  )Úconvert_frame_assertr›  rœ  r�  rŸ  ©Úbackendr¢   s    €r�   r©   z8ConvertFrameAssert._clone_with_backend.<locals>.<lambda>[  s0   ø€ Ô3ØØ�O‰OØ�L‰LØ×$Ñ$Ø ×1Ñ1ô 
€ r�   rŽ   r¡   s   `r�   Ú_clone_with_backendz&ConvertFrameAssert._clone_with_backendY  s   ø€ ó
ð 	
r�   r   rÄ   c               ó^	  — t        «        |j                  }t        ||«      }t        j	                  |«       |t
        v r
t        «       S t        j                  j                  d«      r6t        j                  j                  d«      |j                  k7  r
t        «       S |j                  dk(  r%|j                  j                  d«      r
t        «       S |j                  dk(  r
t        «       S |j                  dk(  rZ|j                  j                  t        j                  j                  t         j"                  j$                  «      «      r
t        «       S |j                  dk(  r|j                  dk(  r
t        «       S |j                  dk(  r.|j                  dk(  rt'        |j(                  «      s
t        «       S t+        |«      r t-        d	d
ddgt.        j0                  ¢¬«       t3        |«      s
t        «       S t5        j6                  «       }|r?d|j                  j                  v r'|j8                  }|rd|j                  j                  v rŒ'|r(|j                  t:        j<                  u rt        d¬«      S t>        }	tA        «       atC        |«      }
|
jD                  }tG        dd|j                  |tI        |
«      |j                  |jJ                  |jL                  |jN                  dœ«       |j                  j                  tP        «      sG|j                  › d|j                  › d|jJ                  › �}tR        jT                  jW                  |«       	 tY        t[        |
«      «      }| j\                  � t_        j`                  | j\                  ¬«      ntc        jd                  «       }|5  |5  tg        |j                  |jh                  |jj                  |j(                  |jl                  | jn                  | jp                  | jr                  | jt                  ||||||
|dz   | jv                  | jx                  ¬«      }d d d «       d d d «       |	at^        jz                  r-| jv                  �!ddl>m?} |j�                  | jv                  «       S # 1 sw Y   ŒRxY w# 1 sw Y   ŒVxY w# |	aw xY w)NÚTORCHDYNAMO_DEBUG_FUNCTIONz	<genexpr>)ztransformers/file_utils.pyztransformers/utils/generic.pyzdiffusers/utils/outputs.pyÚ__setattr__r£   z<module>ú<string>z<lambda>zAttempt to trace generatorÚ z<Generators cannot be compiled directly with `torch.compile`.zbCall a generator from inside of a non-generator Python function and compile that function instead.©Úgb_typeÚcontextÚexplanationÚhintsztorch/_dynamo/convert_frame.pyF)Úapply_to_codeÚdynamoz_convert_frame_assert._compile)rØ   r‘  Ú
compile_idrÙ   r×   Ú
cache_sizeÚaccumulated_cache_sizeú ú:r©  r'   )r•  rº  rÅ   r¤  Úconvert_frame_box)ÚDynamoCache)Arn   r@  r6   Úinput_codesr®   Úoutput_codesr`   re  ÚenvironÚgetrØ   rÙ   ÚendswithrC  rf  ÚdirnamerÚ   ÚoptimrÐ   r¸   Ú
f_builtinsr2   rK   r+   ÚFUNDAMENTALrH  ÚsysÚ	_getframeÚf_backr)   Ú"_nonrecursive_disable_wrapper_coder¹   r   r—  r‘  r   r:  r×   Ú+num_cache_entries_with_same_id_matched_objsÚnum_cache_entriesrY   r<   Útraced_frame_infosr­   r   r   rŸ  r(   Úpatchrø   ÚnullcontextÚ_compilerB  rD  Úclosurer  r›  rœ  r�  rž  r   Úcaching_precompiler¤  rÀ  Úrecord_package)r¢   rá   Úcache_entryÚhooksr•  rÅ   rÞ   r»  Ú
prev_frameÚprev_initial_global_staterº  r‘  ÚinfoÚcompile_ctxÚrecompile_ctxrÀ   rÀ  s                    r�   Ú__call__zConvertFrameAssert.__call__c  só  € ô 	ÔØ�|‰|ˆä'¨¨{Ó;ˆ
Ü�‰˜ÔØ”<ÑÜ%Ó'Ð'ä�J‰J�N‰NÐ7Ô8Ü—
‘
—‘Ð;Ó<ÀÇÁÒLä%Ó'Ð'Ø�<‰<˜;Ò&¨4×+;Ñ+;×+DÑ+Dðô,
ô &Ó'Ð'Ø�<‰<˜=Ò(ô &Ó'Ð'Ø�<‰<˜:Ò%¨$×*:Ñ*:×*EÑ*EÜ�G‰G�O‰OœEŸK™K×0Ñ0Ó1ô+
ô
 &Ó'Ð'ð
 �<‰<˜:Ò%¨$×*:Ñ*:¸jÒ*HÜ%Ó'Ð'ð �L‰L˜JÒ&Ø× Ñ  JÒ.Ü˜×)Ñ)Ô*ô &Ó'Ð'ä˜ÔÜØ4ØØZð5ðô '×2Ñ2ðõ		ô # 5Ô)Ü%Ó'Ð'ô —]‘]“_ˆ
ñ Ø0°J×4EÑ4E×4QÑ4QÑQà#×*Ñ*ˆJñ Ø0°J×4EÑ4E×4QÑ4QÒQñ Ø×!Ñ!¤Z×%RÑ%RÑRä%°EÔ:Ð:ô %9Ð!Ü/Ó1Ðä# KÓ0ˆ
Ø×&Ñ&ˆäØØ,àŸ<™<Ø$Ü! *›oØ#×/Ñ/Ø"&×"5Ñ"5Ø(×TÑTØ*4×*FÑ*Fñô	
ð �|‰|×&Ñ&Ô'DÔEØ—l‘l�^ 1 T×%5Ñ%5Ð$6°a¸×8KÑ8KÐ7LÐMˆDÜ×)Ñ)×0Ñ0°Ô6ð 	=Ü)¬.¸Ó*DÓEˆKð
 ×(Ñ(Ð4ô —‘¨T×-BÑ-BÕCä×+Ñ+Ó-ð ð
 ñ ˜mñ Ü!Ø—L‘LØ—O‘OØ—N‘NØ×$Ñ$Ø—M‘MØ×2Ñ2Ø—O‘OØ—L‘LØ×,Ñ,ØØØØØ +Ø)Ø ™Ø ŸM™MØ&*§i¡iô%�÷÷ ð. $=Ð ä×$Ò$¨¯©Ð)BÝ,ð ×&Ñ& t§}¡}Ô5Øˆ÷=ð ú÷ ð ûð. $=Ñ ús>   ÍAR( Î-RÎ0BRÐ?RÑR( ÒR	ÒRÒR%Ò!R( Ò(R,©TFNNN)r¡  r~   r¢  r¸   rL  r¸   r£  ú
Any | Noner¤  úCompilePackage | Noner¥  ú
int | Noner¶   r·   )r¶   z*Callable[[CompilerFn], ConvertFrameAssert]©rá   rƒ   r×  úCacheEntry | NonerØ  rR   r•  ú$dict[str, int | FrameStateSizeEntry]rÅ   r;  r¶   r`   ©r‹   rŒ   r�   r£   Úpropertyr­  rÞ  rŽ   r�   r�   r™  r™  E  s»   „ ð ØØ)-Ø)-Ø&*ð&àð&ð ð&ð ð	&ð
 'ð&ð 'ð&ð $ð&ð 
ó&ð& ò
ó ð
ð  ñZàðZð 'ðZð ð	Zð
 :ðZð ðZð 
ôZr�   r™  Tc                ó"   — t        | |||||«      S )zHFully convert a frame into an FX graph, raising an exception if we fail.)r™  )r¡  r¢  rL  r£  r¤  r¥  s         r�   rª  rª     s#   € ô ØØØØØØóð r�   )ÚOrderedDict)ÚRemovableHandlezdict[int, BytecodeHook]Ú_bytecode_hooksÚbytecode_hook_side_effectsc                óˆ   — t        j                  | «      syt        j                  | «      j                  t        «      }|€y|S )z±Return Dynamo's replayed Python side-effect sources for compiled code.

    Returns ``None`` when ``code`` was not produced by Dynamo or no metadata was
    attached to it.
    N)r9   Úhas_contextÚget_contextrÄ  Ú'_BYTECODE_HOOK_SIDE_EFFECTS_CONTEXT_KEY)rÞ   Úside_effectss     r�   Úget_compiled_code_side_effectsrò    sD   € ô ×#Ñ# DÔ)ØÜ×+Ñ+¨DÓ1×5Ñ5Ü/ó€Lð ÐØØÐr�   c                ó*   — t        t        | «      «      S )zNReturn whether Dynamo recorded replayed Python side effects for compiled code.)r¸   rò  ©rÞ   s    r�   Úcompiled_code_has_side_effectsrõ  /  s   € äÔ.¨tÓ4Ó5Ð5r�   c                ó²   — t        j                  | «      sy t        j                  | «      }t        |v r$|t           t        j                  |«      t        <   y y r�   )r9   rî  rï  rð  )Úsrc_codeÚdst_codeÚsrc_contexts      r�   Ú_copy_code_contextrú  4  sO   € Ü×#Ñ# HÔ-ØÜ×*Ñ*¨8Ó4€KÜ.°+Ñ=àÔ?Ñ@ô 	× Ñ  Ó*Ô+RÒSð >r�   c                óJ   — t        t        «      }| t        |j                  <   |S )a*  Register hooks for bytecode generated by Dynamo. The hook can do some
    logging, as well as return a new code object to be used. Hooks can query
    `get_compiled_code_side_effects(new_code)` for replayed Python side effect
    sources. Please refer to `BytecodeHook` for the hook signature.
    )rê  rë  rª   )ÚhookÚhandles     r�   Úregister_bytecode_hookrþ  >  s!   € ô œ_Ó-€FØ!%„O�F—I‘IÑØ€Mr�   ©rL  r£  r•  Údistributed_stater¤  c               óô  ‡‡‡‡— ddl mŠmŠ ‰j                  «        t	        «       }t        |	| ||||||
|||||‰|||¬«      Šdˆˆˆˆfd„}	  |«        t        ‰«      }|j                  }|€J ‚|j                  sJ ‚|j                  |	d d  |
j                  |j                  «       t        |	«       t        |	«       t        t        |	«      «      |	d d  |S # t        $ r}t        ‰d¬«      |_        ‚ d }~ww xY w)Nr   )ÚbisectÚtranslation_validation_enabled)r•  Úspeculation_logÚexn_vt_stackr   r¤  c                 ó¨  •— 	 ‰j                   j                  «        t        ‰j                   j                  «      5  ‰j	                  «       5  ‰j                  «        d d d «       d d d «       ‰j                   j                  «        i ‰_        y # 1 sw Y   Œ3xY w# 1 sw Y   Œ7xY w# t        j                  $ r ‰j                  «        ‚ t        j                  t        j                  t        j                  f$ r ‚ t        $ r%  ‰«       r ‰ ‰j                   j                  «       ‚ w xY w# ‰j                   j                  «        i ‰_        w xY wr�   )ÚoutputÚmark_bytecode_tracing_startr   Útracing_contextÚset_current_txÚrunr*   ÚUnspecializeRestartAnalysisr–   ÚSpeculationRestartAnalysisÚTensorifyScalarRestartAnalysisÚ	SkipFrameÚ	ExceptionÚ	shape_envÚcall_cleanup_hooksrD  )r  r  Útracerr  s   €€€€r�   Ú
run_tracerztrace_frame.<locals>.run_tracerx  s	  ø€ ð	!Ø�M‰M×5Ñ5Ô7Ü˜Ÿ™×6Ñ6Ó7ñ ¸×9NÑ9NÓ9Pñ Ø—
‘
”÷÷ ð  �M‰M×,Ñ,Ô.Ø ˆF�O÷#ð ú÷ ð ûä×.Ñ.ò 	Ø×!Ñ!Ô#Øä×*Ñ*Ü×.Ñ.Ü�M‰Mð
ò 	ð
 Üò 	Ù-Ô/Ù�v—}‘}×.Ñ.Ô/Øð	ûð
 �M‰M×,Ñ,Ô.Ø ˆF�OúsG   ƒ9B( ¼BÁBÁBÁ&B( ÂB	ÂBÂB%Â!B( Â(BD+Ä+D. Ä.#ET)Úerrorrµ   )Útorch.fx.experimental.validatorr  r  Úrestartr[   r\   rS   Úoutput_graphÚoutput_instructionsÚupdateÚcode_optionsr3   r0   r/   r.   r  Ú_torch_dynamo_tracer_output)rÞ   r¾   ÚlocalsÚbuiltinsrÔ  r¡  Útf_mode_stackr¢  r  Úinstructionsr  rL  r£  r•  r   r¤  r  r  Útracer_outputr  rN  r  r  r  s           `            @@@r�   Útrace_framer"  L  s  û€ ÷( Wà×ÑÔÜ!Ó#€LÜ"ØØØØØØØØØØØØØØ'Ø!Ø+Øô#€F÷(!ð !ð,ÙŒÜ*¨6Ó2ˆØ×+Ñ+ˆØÐ!Ð!Ð!Ø×)Ò)Ð)Ð)Ø ×4Ñ4ˆ‘QˆØ×Ñ˜F×/Ñ/Ô0Ü(¨Ô6Ü(¨Ô6Ü0Ô1AÀ,Ó1OÓPˆ‘Qˆð Ðøô ò Ü(:¸6ÈÔ(NˆÔ%Øûðús   ÁBC Ã	C7ÃC2Ã2C7c                  óp   — e Zd ZU dZded<   ded<   ded<   	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd	„Z	 	 d	 	 	 	 	 dd
„Zy)ÚDynamoOutputao  
    Represents the core data returned from a single dynamo run, including:
      - Guards, wrapped inside tracer_output.output_graph.guards
      - Generated bytecode
      - Other information needed for compilation.
    This data structure should capture all the "interesting" information dynamo
    produces on the frontend side before it enters user backend.
    rS   r!  útypes.CodeTyper…   zfloat | NoneÚlast_attempt_start_timeNc           	     ó’   — | j                   j                  }|€J ‚t        ||||r|j                  nd |r|j                  nd ||¬«      S ©N)Úsave_guardsÚstrict_error)r!  r  rO   Úguard_fail_fnÚguard_filter_fn)r¢   rÞ   rØ  Úsaver×  r*  r  s          r�   Úbuild_guardszDynamoOutput.build_guards®  sW   € ð ×)Ñ)×6Ñ6ˆØÐ'Ð'Ð'Ü#ØØØÙ#(ˆE×Ò¨dÙ%*ˆE×!Ò!°ØØ%ô
ð 	
r�   c           
     ól  — | j                   j                  }|€J ‚t        t        |j	                  «       |j
                  |j                  |j                  |j                  «      |j
                  |j                  | j                  | j                   j                  ||| j                   j                  «      S r�   )r!  r  ÚGraphCaptureOutputrT   Údump_guards_stateÚimport_sourcesr  Úexport_metadataÚtracked_fakes_id_to_sourceÚtraced_coder…   rÔ  rB  )r¢   ÚargdefsÚ
kwdefaultsr  s       r�   Úgraph_capture_outputz!DynamoOutput.graph_capture_outputÂ  s¥   € ð
 ×)Ñ)×6Ñ6ˆØÐ'Ð'Ð'Ü!ÜØ×.Ñ.Ó0Ø×+Ñ+Ø×&Ñ&Ø×,Ñ,Ø×7Ñ7óð ×'Ñ'Ø×$Ñ$Ø�M‰MØ×Ñ×&Ñ&ØØØ×Ñ×(Ñ(ó
ð 	
r�   ©NFNF©rÞ   r%  rØ  zHooks | Noner-  r¸   r×  rä  r*  r¸   r¶   rO   ©NN)r6  útuple[Any, ...] | Noner7  údict[str, Any] | Noner¶   r0  )r‹   rŒ   r�   Ú__doc__r�  r.  r8  rŽ   r�   r�   r$  r$  Ÿ  s‘   … ñð &Ó%ØÓØ)Ó)ð
 #ØØ)-Ø"ð
àð
ð ð
ð ð	
ð
 'ð
ð ð
ð 
ó
ð, +/Ø,0ð
à'ð
ð *ð
ð 
ô	
r�   r$  c                  óD   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   y)ÚBackendInputa   
    Represents core data structure that dynamo will pass to a backend, including:
      - Graph module
      - Example inputs
      - The FakeTensorMode used for compiling graph.
    This data structure should capture all the information dynamo produces
    on for the user backend.
    r:  Ú
backend_idútorch.fx.GraphModuler÷   r
   Úexample_inputsz,torch._subclasses.fake_tensor.FakeTensorModer˜   r}   Útensor_to_contextN)r‹   rŒ   r�   r>  r�  rŽ   r�   r�   r@  r@  Û  s&   … ñð ƒOØ&Ó&ØÓØ;Ó;Ø*Ô*r�   r@  )Úfrozenc                  ó¢   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
Zded<    ej                  e¬«      Zded<   d
dœ	 	 	 	 	 	 	 dd„Z	dd„Z
y
)ÚGraphRuntimeEnvr%  r…   údict[str, str]r2  údict[str, Any]Úused_globalsr<  rÔ  r6  Nr=  r7  )Údefault_factoryúset[str]Úexternal_refs©Úextra_globalsc               ó�  — | j                   j                  «       D ��ci c]  \  }}|t        j                  |«      “Œ }}}i |¥| j                  ¥|xs i ¥||i¥}| j                  |«       t        j                  | j                  || j                  | j                  ¬«      }| j                  r| j                  |_        |S c c}}w )N)rÔ  r6  )r2  ÚitemsÚ	importlibÚimport_modulerJ  Ú_check_external_refsÚtypesr   r…   rÔ  r6  r7  Ú__kwdefaults__)	r¢   rA  Úcompiled_fnrO  ÚaliasÚmodule_namer2  rB  r  s	            r�   Úforward_callablez GraphRuntimeEnv.forward_callable÷  sÓ   € ð '+×&9Ñ&9×&?Ñ&?Ó&A÷
á"��{ð ”9×*Ñ*¨;Ó7Ñ7ð
ˆñ 
ð
Øð
à×Ñð
ð Ò" ð
ð ˜ñ	
ˆ	ð 	×!Ñ! )Ô,ä×ÑØ�M‰MØØ—L‘LØ—L‘Lô	
ˆð �?Š?Ø $§¡ˆBÔØˆ	ùó-
s   ž Cc                óx   — g }| j                   D ]  }||vsŒ|j                  |«       Œ |rt        d|› d�«      ‚y )Nz&Missing required external references: zM. Please load AOT compiled function with `f_globals=<enclosing global scope>`)rM  r­   ÚRuntimeError)r¢   rB  Úmissing_refsr¬   s       r�   rT  z$GraphRuntimeEnv._check_external_refs  s]   € àˆØ×%Ñ%ò 	)ˆCØ˜)Ò#Ø×#Ñ# CÕ(ð	)ñ ÜØ8¸¸ð G^ð ^óð ð r�   )rA  r:  rW  úCallable[..., Any]rO  r=  r¶   r^  )rB  rI  r¶   r·   )r‹   rŒ   r�   r�  r7  ÚdataclassesÚfieldrŸ   rM  rZ  rT  rŽ   r�   r�   rG  rG  í  sw   … àÓØ"Ó"Ø Ó Ø#Ó#Ø#Ó#Ø(,€JÐ%Ó,Ø/˜k×/Ñ/ÀÔD€M�8ÓDð 04ñàðð (ðð
 -ðð 
óô>r�   rG  c                óŽ   — ddl }i }| j                  «       D ]  \  }}	 |j                  |«       |||<   Œ |S # t        $ r Y Œ,w xY w)zCFilter a builtins dict to only picklable entries for serialization.r   N)ÚpicklerQ  Údumpsr  )Úbuiltins_dictrb  rÀ   Úkr%  s        r�   Ú_safe_builtins_dictrf  $  sZ   € ãà€FØ×#Ñ#Ó%ò ‰ˆˆ1ð	Ø�L‰L˜ŒOØˆF�1ŠIðð €Møô ò 	Ùð	ús   ž8¸	AÁAc                  ó¤   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   d
ed<   ded<   ded<   	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zedd„«       Zy)r0  z)
    Minimal version of DynamoOutput
    rT   r  rH  r2  zlist[CodeType]r5  r   r…   r<  rÔ  r6  r=  r7  rI  rB  Nc           	     ór   — t        || j                  ||r|j                  nd |r|j                  nd ||¬«      S r(  )rO   r  r+  r,  )r¢   rÞ   rØ  r-  r×  r*  s         r�   r.  zGraphCaptureOutput.build_guardsA  s@   € ô $ØØ×ÑØÙ#(ˆE×Ò¨dÙ%*ˆE×!Ò!°ØØ%ô
ð 	
r�   c           	     ó\  — ddl m} i }| j                  j                  j                  j                  «       D ].  } ||«      }|€Œ|| j                  v sŒ| j                  |   ||<   Œ0 | j                  | j                  «      }dd l	}|D ]^  }||vsŒ|j                  d«      r*|| j                  v rt        | j                  |   «      ||<   ŒCt        ||«      sŒPt        ||«      ||<   Œ` t        | j                  | j                  || j                   | j"                  | j$                  |¬«      S )Nr   )Úget_global_source_nameÚ__builtins_dict__)r…   r2  rJ  rÔ  r6  r7  rM  )Útorch._dynamo.sourcerj  r  r3  Úgraph_input_idx_to_local_sourcer9  rB  Ú_get_external_refsr…   r  rC  rf  r=  r,  rG  r2  rÔ  r6  r7  )r¢   rj  rJ  ÚsourceÚglobal_namerM  Ú	_builtinsr¬   s           r�   Úget_runtime_envz"GraphCaptureOutput.get_runtime_envS  s$  € Ý?àˆð ×Ñ×.Ñ.×NÑN×UÑUÓWò	HØá0°Ó8ˆKØÐ"ØØ˜dŸn™nÒ,Ø,0¯N©N¸;Ñ,G�˜[Ò)ð	Hð ×/Ñ/°·±Ó>ˆó 	%à ò 	@ˆCØ˜,Ò&Ø—>‘>Ð"5Ô6¸3À$Ç.Á.Ñ;PÜ(;¸D¿N¹NÈ3Ñ<OÓ(P�L Ò%Ü˜Y¨Õ,Ü(/°	¸3Ó(?�L Ò%ð	@ô Ø—]‘]Ø×.Ñ.Ø%Ø—L‘LØ—L‘LØ—‘Ø'ô
ð 	
r�   c                ó0  — dd l }t        «       } |j                  | «      D ]r  }|j                  dk(  r)|j                  sŒ|j                  |j                  «       Œ;|j                  dk(  sŒK|j                  sŒX|j                  |j                  «       Œt |S )Nr   ÚLOAD_GLOBALÚ	LOAD_NAME)ÚdisrŸ   Úget_instructionsÚopnameÚargvalr®   )r…   rv  rM  Úinstructions       r�   rn  z%GraphCaptureOutput._get_external_refsx  sˆ   € ãä"%£%ˆð 0˜3×/Ñ/°Ó9ò 	:ˆKà×!Ñ! ]Ò2Ø×%Ó%Ø!×%Ñ% k×&8Ñ&8Õ9à×#Ñ# {Ó2Ø×%Ó%Ø!×%Ñ% k×&8Ñ&8Õ9ð	:ð Ðr�   r9  r:  )r¶   rG  )r…   r%  r¶   rL  )	r‹   rŒ   r�   r>  r�  r.  rr  Ústaticmethodrn  rŽ   r�   r�   r0  r0  2  s    … ñð $Ó#Ø"Ó"ØÓØÓØ#Ó#Ø#Ó#Ø%Ó%ØÓð
 #ØØ)-Ø"ð
àð
ð ð
ð ð	
ð
 'ð
ð ð
ð 
ó
ó$#
ðJ òó ñr�   r0  c                  ó@   — e Zd ZU dZded<   ded<   dddœ	 	 	 	 	 d	d„Zy)
ÚCaptureOutputaÐ  
    CaptureOutput should represent all the information produced from torch
    compiler for a single graph capture. This intends to be consumed by
    various compiler frontends so that we can share as much compiler internals
    as possible and avoid great divergence between different stacks.
    This data structure should eventually contain all the information compiler
    produces as more refactors happens to converge different compiler
    frontends.
    r0  r8  zBackendInput | NoneÚbackend_inputN)rW  rO  c               óÚ   — | j                   j                  «       }| j                  €J ‚| j                  j                  }|xs | j                  j                  }|j                  |||¬«      S )NrN  )r8  rr  r~  rA  r÷   rZ  )r¢   rW  rO  Úruntime_envrA  s        r�   rZ  zCaptureOutput.forward_callableœ  sr   € ð ×/Ñ/×?Ñ?ÓAˆØ×!Ñ!Ð-Ð-Ð-Ø×'Ñ'×2Ñ2ˆ
Ø!ÒD T×%7Ñ%7×%DÑ%DˆØ×+Ñ+ØØØ'ð ,ó 
ð 	
r�   )rW  zCallable[..., Any] | NonerO  r=  r¶   r^  )r‹   rŒ   r�   r>  r�  rZ  rŽ   r�   r�   r}  r}  Œ  s@   … ñð -Ó,à&Ó&ð
 26Ø/3ñ	
ð /ð
ð -ð	
ð
 
ô
r�   r}  c                ó:  — ddl }t        | t        j                  j                  «      �r+| j
                  }t        |d«      r|j                  }| j                  }t        |d«      r|j                  }t        | j                  «      dk(  �r�t        | j                  «      dk(  �rtt        t        j                  j                  j                  j                  «      dk(  �r9t        t        j                  j                  j                  j                  «      dk(  rÿt        | j                   «      dk(  rçt        | j"                  «      dk(  rÏt        t        j                  j                  j                  j$                  «      dk(  r•t        t        j                  j                  j                  j&                  «      dk(  r[|t        j                  j                  j
                  k7  r4|t        j                  j                  j                  k(  r| j
                  } n=t        | t        j(                  j*                  «      r| j,                  } n| j                  } t        | d«      r| j                  | j.                  fS  |j0                  | «      r| dfS t3        d| › �«      ‚)z’
    Utility function to get the function to trace, and optionally a bound self
    object, from a callable (nn.Module, function, or method).
    r   NÚ__self__zUnsupported model code type )Úinspectr-  rÚ   r/  r0  Úforwardr=  Ú__func__rÞ  ÚlenÚ_forward_pre_hooksÚ_forward_hooksÚmodulesÚmoduleÚ_global_forward_pre_hooksÚ_global_forward_hooksÚ_backward_pre_hooksÚ_backward_hooksÚ_global_backward_pre_hooksÚ_global_backward_hooksrö   ÚGraphModuleÚ
_call_implr‚  Ú
isfunctionr\  )Úmodrƒ  Úresolved_forwardÚresolved_calls       r�   Úget_traced_fnr—  ­  sÙ  € ó
 ä�#”u—x‘x—‘Õ'ØŸ;™;ÐÜÐ# ZÔ0à/×8Ñ8ÐàŸ™ˆÜ�= *Ô-Ø)×2Ñ2ˆMô
 �×&Ñ&Ó'¨1Ó,Ü�C×&Ñ&Ó'¨1Ó,Ü”E—H‘H×$Ñ$×+Ñ+×EÑEÓFÈ!ÓKÜ”E—H‘H×$Ñ$×+Ñ+×AÑAÓBÀaÒGÜ�C×+Ñ+Ó,°Ò1Ü�C×'Ñ'Ó(¨AÒ-Ü”E—H‘H×$Ñ$×+Ñ+×FÑFÓGÈ1ÒLÜ”E—H‘H×$Ñ$×+Ñ+×BÑBÓCÀqÒHØ ¤E§H¡H§O¡O×$;Ñ$;Ò;Ø¤§¡§¡×!9Ñ!9Ò9ð —+‘+‰CÜ˜œUŸX™X×1Ñ1Ô2Ø—.‘.‰Cà—,‘,ˆCäˆs�JÔØ�|‰|˜SŸ\™\Ð)Ð)Ø	ˆ×	Ñ	˜CÔ	 Ø�DˆyÐäÐ9¸#¸Ð?Ó@Ð@r�   c                ó0   — t        j                  | d¬«      S )NF)Úfollow_wrapped)rƒ  Ú	signature)r  s    r�   Ú_get_signaturer›  Þ  s   € Ü×Ñ˜R°Ô6Ð6r�   Ú	FrameInfoc           	     óX  — ddl }t        | «      \  }}|�|f|z   }|€i }t        |«      } |j                  |i |¤Ž}|j	                  «        |j
                  }|j                  xs d}	|j                  j                  }
|
s|	rRt        |	«      t        |
«      k(  sJ ‚|j                  t        |
|	«      D ��ci c]  \  }}||j                  “Œ c}}«       t        |j                  |j                  ||j                  |j                  xs d|j                   |j"                  ¬«      S c c}}w )zL
    Create a frame to trace, given a model, args, and optional kwargs.
    r   NrŽ   )rÔ  r6  r7  )r  r—  r›  ÚbindÚapply_defaultsÚ	argumentsÚ__closure__r¼   Úco_freevarsr†  r  ÚzipÚcell_contentsrœ  Ú__globals__Ú__dict__Ú__defaults__rV  )r”  r	  r
  r  r  Úself_optrš  Úbound_argumentsrD  rÔ  ÚfreevarsrË   Úcells                r�   Ú
_get_framer¬  â  s  € ó ä  Ó%�L€BˆØÐØˆ{˜TÑ!ˆØ€~Øˆä˜rÓ"€IØ$�i—n‘n dÐ5¨fÑ5€OØ×"Ñ"Ô$Ø×(Ñ(€Hà�n‰nÒ" €GØ�{‰{×&Ñ&€HÙ‘7Ü�7‹|œs 8›}Ò,Ð,Ð,Ø�‰Ü8;¸HÀgÓ8N×O©*¨$°ˆT�4×%Ñ%Ñ%ÓOô	
ô Ø
�‰Ø
�‰ØØ×ÑØ—‘Ò$ "Ø—‘Ø×$Ñ$ôð ùó Ps   Â5D&
©ÚconstraintsÚ _is_export_deprecated_do_not_usec               óž   — t        | ||«      }t        t        t        i «      «      «      5  t	        |||¬«      cddd«       S # 1 sw Y   yxY w)a�  
    This API captures a full graph for a model, given example inputs to trace with.

    Specifically, it takes a callable (nn.Module, method, or function), args, and
    optional kwargs, and returns Dynamo-captured graph along with other important
    compile-time information. This serves as the common graph-capture mechanism
    for different torch compiler AOT frontends (e.g. AOT precompile, export).

    Note that this API doesn't apply context managers like metrics context,
    and the expectation is that the caller will apply them depending
    on the use case.

    The CaptureOutput is separated into two parts:
    1. Frontend specific information, which includes:
        - guards
        - generated bytecode
        - other information tracked by OutputGraphCommon.
    2. Backend specific information (indexed by unique backend id) such as:
        - fx graph
        - example inputs
    r­  N)r¬  r   r   r—  Ú_fullgraph_capture_frame)r”  r	  r
  r®  r¯  rá   s         r�   Úfullgraph_capturer²  
  sJ   € ô: �s˜D &Ó)€Eä	œ¬°rÓ(:Ó;Ó	<ñ 
Ü'ØØ#Ø-Mô
÷
÷ 
ò 
ús   «AÁAc                  óT   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   ded<   y)rœ  r%  rÞ   údict[str, object]r¾   r  r  útuple[CellType]rÔ  r<  r6  r=  r7  N)r‹   rŒ   r�   r�  rŽ   r�   r�   rœ  rœ  1  s,   … à
ÓØÓØÓØÓØÓØ#Ó#Ø%Ô%r�   c               ó\  ‡‡— ddl mŠ d Š	 	 	 	 	 	 dˆˆfd„}	 t        | j                  | j                  | j
                  | j                  | j                  |||dt        «       ¬«
      }t#        |j%                  | j&                  | j(                  «      ‰«      S # t        t        t        f$ r}t        |«       t        j                  r‚ |}|j                  �4|j                  j!                  d «       |j                  }|j                  �Œ4|j!                  d «      |j                  ‚d }~ww xY w)Nr   )ÚTracingContextc                óÖ   •— ‰j                  «       }|j                  }|j                  }|€J ‚t        | j                  d   t
        «      sJ ‚t        | j                  d   | |||«      Š| S )NrA  )rÄ  r˜   rD  r-  Úmetar:  r@  )ÚgmrC  r	  r˜   rD  r·  r~  s        €€r�   Úfullgraph_compilerz4_fullgraph_capture_frame.<locals>.fullgraph_compilerF  su   ø€ ð )×,Ñ,Ó.ˆØ#×-Ñ-ˆ	Ø+×=Ñ=ÐØÐ$Ð$Ð$Ü˜"Ÿ'™' ,Ñ/´Ô5Ð5Ð5Ü$Ø�G‰G�LÑ! 2 ~°yÐBSó
ˆð ˆ	r�   T)r¡  rL  r£  r¢  Úrestart_reasons)rº  rB  rC  zlist[torch.Tensor]r¶   rB  )Útorch._guardsr·  Úcompile_framerÞ   r¾   r  r  rÔ  rŸ   rL   rJ   rM   rA   r(   ÚverboseÚ	__cause__Úwith_tracebackr}  r8  r6  r7  )	rá   r®  r¯  r»  Údynamo_outputrN  Úcur_exnr·  r~  s	          @@r�   r±  r±  <  s  ù€ õ -à)-€MðØ ðØ2Dðà	öð6Ü%Ø�J‰JØ�M‰MØ�L‰LØ�N‰NØ�M‰MØ*Ø3Ø*ØÜ›Eô
ˆô2 Ø×*Ñ*¨5¯=©=¸%×:JÑ:JÓKØóð øô Ô5´yÐAò 
6Ü˜AÔÜ�>Š>Øà!"ˆØ×ÑÐ+Ø×Ñ×,Ñ,¨TÔ2Ø×'Ñ'ˆGð ×ÑÑ+ð ×Ñ˜tÓ$¨!¯+©+Ð5ûð
6ús   ™AB ÂD+Â,AD&Ä
D&Ä&D+ÚConvertFrameProtocolc                óP   ‡ ‡— t        ‰ dd «      }|�|S dd„Šdˆ ˆfd„}|‰ _        |S )NÚ_dynamo_fail_callbackc                 ó   — t        d«      ‚)Nz¨Dynamo: expected not to compile nested code - this happens because a Dynamo callback was triggered and succeeded in compiling when running fullgraph=True compiled code.)r\  )r	  r
  s     r�   Úcompile_frame_errorz.get_fail_callback.<locals>.compile_frame_errorz  s   € Üð9ó
ð 	
r�   c                 óz   •— t        j                  t        dz   ‰«      5   ‰| i |¤Žcd d d «       S # 1 sw Y   y xY w)Nz.compile_frame)ÚmockrÑ  r‹   )r	  r
  ÚcallbackrÈ  s     €€r�   Úfail_callbackz(get_fail_callback.<locals>.fail_callback�  s:   ø€ Ü�Z‰ZœÐ#3Ñ3Ð5HÓIñ 	-Ù˜TÐ, VÑ,÷	-÷ 	-ò 	-ús   Ÿ1±:)r	  r
   r
  r
   r¶   r   )r	  r
   r
  r
   r¶   r`   )r,  rÆ  )rË  rÌ  rÈ  s   ` @r�   Úget_fail_callbackrÍ  u  s8   ù€ Ü˜HÐ&=¸tÓD€MØÐ ØÐó
ö-ð
 &3€HÔ"ØÐr�   c               ó~  ‡ ‡‡‡‡‡‡‡‡	‡
‡‡‡— t        «       Š	 	 	 	 	 	 dˆˆˆ ˆˆˆˆ	ˆ
ˆˆˆˆˆfd„}d}t        j                  «       D ]X  }|t        j                  «       _        	 t        d|› �d¬«      5  t        ‰ |«      \  }}|€J ‚t        |||¬«      cddd«       c S  y# 1 sw Y   nxY wŒi# t        j                  $ rß}t        |t        j                  «      st        j                  «        t        j!                  dt#        t$        |j&                  «      «       t)        |dd«      }|r|j+                  «        |j-                  |j.                  xs t1        t3        |«      «      «       t5        j4                  «       }|d	kD  rt7        d
ddg ¬«       Y d}~�ŒVd}~wt        j8                  $ rŠ}t        |t        j                  «      st        j                  «        t)        |dd«      }|r|j+                  «        t        j;                  d|‰ j<                  ‰ j>                  ‰ j@                  «       ‚ d}~ww xY w)a  
    A helper function taking a frame and backend, then return the generated bytecode
    and guards as a common data structure.
    This is a shared interface for multiple compiler frontends (e.g. torch.compile,
    torch.export) that needs to capture a graph out of python code.
    c                óx   •— t        t        j                  «      }t        ‰‰‰‰‰‰|‰‰| |‰	‰
‰‰‰¬«      }|€J ‚|S )Nrÿ  )rÔ   rz   rÎ   r"  )r   r  r  r!  r  rÔ  rÞ   r¡  r   rL  r£  r•  r¾   r  r¢  r¤  r  s       €€€€€€€€€€€€€r�   Ú	transformz compile_frame.<locals>.transform¤  sk   ø€ ô BFÜ/×5Ñ5óB
ˆô $ØØØØØØØØØØØØØ1Ø#Ø/Øô!
ˆð& Ð(Ð(Ð(ØÐr�   NÚcompile_attempt_T©Úlog_pt2_compile_event)r!  r…   r&  zRestarting analysis due to %sr  éd   z!Excessive RestartAnalysis() callsr²  z’Dynamo attempted to trace the same frame 100+ times. Giving up on compiling as the compile time tradeoff is likely not worth the performance gain.r³  zPReceived signal to skip frame (without graph break): %s %s                 %s %s)r   úlist[Instruction]r  r´  r¶   rS   )!r^   rÕ   Úcountr   rÄ  Úattemptri   r4   r$  r*   ÚRestartAnalysisr-  r  r   r–   rE  rÛ  rq   r&   Ú__traceback__r,  Ú_cleanup_output_graphr®   Úrestart_reasonr:  r1  rm  rK   r  rF  rØ   rÙ   r×   )rÞ   r¾   r  r  rÔ  r¡  r¢  r¼  rL  r£  r•  r   r¤  rÐ  r&  r×  r…   r!  rN  Úfailed_tracer_outputr  s   ``````` `````       @r�   r¾  r¾  Š  s  ÿü€ ô0 %Ó&€OðØ'ðØ7Hðà	÷÷ ñ ð8 #ÐÜ—?‘?Ó$ò 3ˆØ'.Œ×ÑÓÔ$ð0	ÜÐ 0°°	Ð:ÐRVÔWñ Ü*?ÀÀiÓ*PÑ'�˜-Ø$Ð0Ð0Ð0Ü#Ø"/Ø%Ø,Cô÷ó ñ	3÷ð úð øô ×"Ñ"ò 	Ü˜a¤×!CÑ!CÔDÜ×$Ñ$Ô&Ü�H‰HØ/ÜÔ1°1·?±?ÓCôô
 $+¨1Ð.KÈTÓ#RÐ Ù#Ø$×:Ñ:Ô<à×Ñ × 0Ñ 0Ò @´C¼¸Q»³LÔAä&*§i¡i£kÐ#Ø˜Š}ÜØ?Øð!2ð õÿùô �}‰}ò 	Ü˜a¤×!CÑ!CÔDÜ×$Ñ$Ô&ä#*¨1Ð.KÈTÓ#RÐ Ù#Ø$×:Ñ:Ô<Ü�I‰IðàØ—‘Ø× Ñ Ø×#Ñ#ôð ûð	ús>   Á#B/Á3!B"Â	B/Â"B+	Â'B/Â/H<ÃCFÆH<Æ2BH7È7H<)rÅ   r¤  r¿  c               ó²  ‡‡‡‡‡‡‡‡
‡‡‡‡?‡@‡A‡B‡C— ddl m}m} dŠAt        d¬«      	 	 	 	 	 	 	 	 dAˆ?fd„«       }t        	 	 	 	 	 	 	 	 dBˆˆ
ˆˆˆˆ@ˆAˆˆˆˆˆˆˆCfd„«       Š?t        «       }‰�‰j                  | «      nt        j                  «       }t        t        j                  «      5  t        t        ‰«      «      5  t        dd	d	¬
«      5  t        d«      j!                  «       5  |5  t#        ddd¬«      5  |5  t%        «       ŠCt'        «       x}rt)        |t+        «       «      Š@nd Š@d }t-        |«      r!|rt/        ‰
|t1        ‰«      «      }|sdn|d   }|j3                  |ddœ«       t5        «       }|r)|D �ch c]  } |«       d d ’Œ }}|j%                  d|«       t7        |‰«      \  }ŠB|rDdCd„}t8        j;                  d‰Bt=        t        ‰B«       || «      |t>        «       dDˆBfd„}	  |«        t8        jO                  d| jP                  | jR                  | jT                  |dz   djW                  tY        jZ                  d|z   ¬«      j]                  «       «      «       t_        | |«      }!ta        jb                  «       }"d }#d }$d }%d }&d }'td        jf                  jh                  jj                  jm                  «        d }(d })t        jn                  s t        jp                  st        jr                  rsddl:m;}*m<}+m=},  |*t        jn                  «      x}-rt}        |-«      ‚ |+t        jp                  «      x}-rt}        |-«      ‚ |,t        jr                  «      x}-rt}        |-«      ‚	  || ||	«      \  }(})t        «        |)r9|)j€                  x}.r+|.jƒ                  «       rt…        | «       |rd |v r
t‡        «        |(td        jf                  j                  jˆ                  r@t#        d!d"¬#«      5  t8        j‹                  d$«       t�        jŽ                  d«       d d d «       d }/|)r|)j€                  }/|/ri |/_H        |/j’                  x}0ri |0_J        dd%l4mK}1 t™        |1«      }2|$�€|/��t›        |/jœ                  «      }3t›        |/jž                  jœ                  «      }4|/j¡                  «       }5t›        |/j¢                  j¤                  «      }6|/j§                  «       }7t›        |/j¨                  «      }8|/jª                  D �9ch c]  }9|9j¬                  ’Œ }:}9|/j®                  D �9ch c]  }9|9j¬                  ’Œ };}9td        jf                  jh                  jj                  j9                  «        nFd }3d }4d }5d }6i }7d }8t%        i «      }:t%        i «      };t%        «       ŠCta        jb                  «       |"z
  d&z  ŠAi d'|2“d(| jP                  “d)| jR                  “d*| jT                  “d+|j°                  “d,|j²                  “d-|3“d.|4“d/|5“d0|6“d1|8“d2|#“d3|$“d4|&“d5|'“d6|:“d7|;“‰C‰A|(d ut        j´                  d	t·        ‰A«      |!t™        |7«      |%d8œ	¥}<|j3                  |<«       |r|)r|)j¸                  n	t»        «       |_\        |)�Z|)j€                  �N|)j€                  j¼                  s8|)j€                  j¾                  jÀ                  jÂ                  jm                  «        t        jÄ                  }=|=€tÇ        tÉ        ‰«      «      }=|=rˆ|)r†|)j€                  rz|)j€                  j¾                  }>|>jÊ                  jm                  «        tÍ        |>jÎ                  «       tÑ        |)j€                  d9«      rtÍ        |)j€                  jÒ                  «       cd d d «       cd d d «       cd d d «       cd d d «       cd d d «       cd d d «       cd d d «       S c c}w # t@        $ r]} t        jB                  rtE        d«      | ‚|rtE        d«      | ‚tG        tH        jJ                  tH        jJ                  «      | _&        ‚ d } ~ ww xY w# 1 sw Y   �ŒxY wc c}9w c c}9w # tÔ        $ �r } t×        | «      j¬                  }#t™        | «      }$tÙ        jÚ                  «       g}%tÝ        | | |‰¬:«       td        jÞ                  já                  d;d<„ d=„ ¬>«       tã        jä                  | ‰«      \  }&}'t=        | d?d «      })tç        | t@        tè        tê        tì        tî        tð        tò        |tô        |tö        tø        tú        f«      r‚ tý        t×        | «      j¬                  › d@t™        | «      › �«      jÿ                  | �j                   «      d ‚d } ~ ww xY w# td        jf                  j                  jˆ                  rMt#        d!d"¬#«      5  t8        j‹                  d$«       t�        jŽ                  d«       d d d «       n# 1 sw Y   nxY wd }/|)r|)j€                  }/|/ri |/_H        |/j’                  x}0ri |0_J        dd%l4mK}1 t™        |1«      }2|$�€|/��t›        |/jœ                  «      }3t›        |/jž                  jœ                  «      }4|/j¡                  «       }5t›        |/j¢                  j¤                  «      }6|/j§                  «       }7t›        |/j¨                  «      }8|/jª                  D �9ch c]  }9|9j¬                  ’Œ nc c}9w }:}9|/j®                  D �9ch c]  }9|9j¬                  ’Œ nc c}9w };}9td        jf                  jh                  jj                  j9                  «        nFd }3d }4d }5d }6i }7d }8t%        i «      }:t%        i «      };t%        «       ŠCta        jb                  «       |"z
  d&z  ŠAi d'|2“d(| jP                  “d)| jR                  “d*| jT                  “d+|j°                  “d,|j²                  “d-|3“d.|4“d/|5“d0|6“d1|8“d2|#“d3|$“d4|&“d5|'“d6|:“d7|;“‰C‰A|(d ut        j´                  d	t·        ‰A«      |!t™        |7«      |%d8œ	¥}<|j3                  |<«       |r|)r|)j¸                  n	t»        «       |_\        |)�Z|)j€                  �N|)j€                  j¼                  s8|)j€                  j¾                  jÀ                  jÂ                  jm                  «        t        jÄ                  }=|=€tÇ        tÉ        ‰«      «      }=|=rŒ|)r‰|)j€                  r||)j€                  j¾                  }>|>jÊ                  jm                  «        tÍ        |>jÎ                  «       tÑ        |)j€                  d9«      r tÍ        |)j€                  jÒ                  «       w w w w w xY w# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)ENr   )ÚBisectValidationExceptionÚValidationExceptiong        Úcompile_inner)Ú
phase_namec           
     ó  •— t        j                  «       5 }|j                  t        j                  j
                  j                  t        j                  t        t        j                  «       «      «      «       |j                  t        j                  «       «       |j                  t        «        ‰| ||«      }t        j                  j!                  «       dk(  sJ d«       ‚|cd d d «       S # 1 sw Y   nxY wt#        «       d fS )Nr   zQTorch function mode stack state changed while dynamo tracing, please report a bug)rø   rù   rú   rÚ   Ú_dynamoÚcallback_handlerÚinstall_callbacksr   ÚDYNAMOr:  r   r”  rg   Úrecordrz   rê   Ú_len_torch_function_stackr`   )rÞ   r¢  rØ  rÎ   rÀ   Ú_compile_inners        €r�   rà  z_compile.<locals>.compile_inner  sÝ   ø€ ô ×!Ñ!Ó#ð 	 uØ×ÑÜ—‘×.Ñ.×@Ñ@Ü#×*Ñ*¬C´×0QÑ0QÓ0SÓ,Tóôð
 ×ÑÔ =× DÑ DÓ FÔGØ×ÑÔ CÔDÙ# D¨)°UÓ;ˆFÜ—8‘8×5Ñ5Ó7¸1Ò<ð ØcóÐ<ð ÷	÷ 	ò 	úô Ó Øð
ð 	
s   –CC.Ã.C7c                ó„  •‡ ‡— t        j                   «       x}}	 	 	 	 	 	 	 	 	 	 	 	 d%d„} |d‰ j                  ‰ j                  ‰ j                  ‰ «       d‰ j                  v }|r(t        j
                  j                  dˆ fd„ˆ fd„¬«       d Šdd	lm}  |‰t        j                  «      }	 |rt        j                  |«      nt        j                  «       5  t        ‰ ‰&‰'‰‰‰ |‰)‰#‰$‰%‰!‰(¬
«      }	d d d «       ‰!�‰!j*                  €J d«       ‚	j,                  Š|	j.                  }|	j0                  �|	j0                  }‰€J ‚ |d‰ j                  ‰ j                  ‰ j                  ‰«       |r(t        j
                  j                  dˆ fd„ˆfd„¬«       |j2                  €J ‚|j2                  }t5        |j7                  «       «      t9        j:                  ‰«      t<        <   t?        t@        jC                  «       «      D ];  \  }}tE        d|› �d¬«      5   |‰ ‰«      }|�|‰urtG        ‰|«       |Šd d d «       Œ= ‰ tH        ‰<   tJ        jM                  ‰«       ||z
  Š"ddl'm(} |‰jR                  v rddl*m+}  |‰«       d&d„}‰€J ‚ |‰ «      } |‰«      }d}|d‰ jX                  d | › d�z  }|d‰jX                  d | › �z  }‰ jX                  d | ‰jX                  d | k(  sJ |«       ‚d}|d‰ jZ                  › d�z  }|d‰jZ                  › �z  }‰ jZ                  ‰jZ                  k(  sJ |«       ‚d}|d‰ j\                  › d�z  }|d ‰j\                  › �z  }‰ j\                  ‰j\                  k(  sJ |«       ‚|j^                  r|ja                  «       rt)        «       |fS |jb                  €J ‚|jd                  tf        jh                  ‰<   t        jj                  «       }tl        jn                  r#|jq                  tm        jr                  «       «       tE        d!d¬«      5  |5  |	ju                  ‰ |‰(d u‰¬"«      }d d d «       d d d «       ‰(�tjv                  €J ‚‰(jy                  |jv                  ‰«       ‰(j{                  |j|                  j~                  «       ‰(j�                  |j‚                  j„                  «       ‰�t‡        ‰«      nd#}d$|z   }t‰        ‰jŠ                  ‰|«      }|ja                  «       s'|jŒ                  �|j�                  |jb                  «       t�        |«      |fS # 1 sw Y   �ŒExY w# t        j                   $ rE}
|rt"        j%                  d«       |
j&                  €J ‚t)        «       |
j&                  fcY d }
~
S d }
~
ww xY w# 1 sw Y   �Œ¦xY w# 1 sw Y   �ŒmxY w# 1 sw Y   �ŒrxY w)'Nc           	     ó�   — t         j                  t        j                  «      r#t         j	                  t        | ||||«      «       y y r�   )Úbytecode_logÚisEnabledForÚloggingÚDEBUGrF  rj   )ÚprefixrË   rÇ   Úline_norÞ   s        r�   Úlog_bytecodez6_compile.<locals>._compile_inner.<locals>.log_bytecode7  s9   € ô ×(Ñ(¬¯©Ô7Ü×"Ñ"Ü# F¨D°(¸GÀTÓJõð 8r�   zORIGINAL BYTECODEÚtorch_dynamo_resume_inÚartifactc                 ó(   •— ‰ j                   dz   ddœS )NÚ_ORIGINAL_BYTECODEÚstring©rË   Úencoding©rØ   rô  s   €r�   r©   z2_compile.<locals>._compile_inner.<locals>.<lambda>L  ó   ø€ Ø ŸL™LÐ+?Ñ?Ø (ñ%€ r�   c                 óJ   •— t        j                  ‰ «      j                  «       S r�   ©rv  ÚBytecoderô  s   €r�   r©   z2_compile.<locals>._compile_inner.<locals>.<lambda>P  s   ø€ ¤3§<¡<°Ó#5×#9Ñ#9Ó#;€ r�   ©Úmetadata_fnÚ
payload_fnr'   )Ú)get_dynamo_config_override_for_compile_idrÿ  z,No graph captured with export/fullgraph=Truez;compiler collective wasn't run before compilation completedzMODIFIED BYTECODEc                 ó(   •— ‰ j                   dz   ddœS )NÚ_MODIFIED_BYTECODEr÷  rø  rú  rô  s   €r�   r©   z2_compile.<locals>._compile_inner.<locals>.<lambda>ˆ  rû  r�   c                 óJ   •— t        j                  ‰ «      j                  «       S r�   rý  )Úout_codes   €r�   r©   z2_compile.<locals>._compile_inner.<locals>.<lambda>Œ  s   ø€ ¤3§<¡<°Ó#9×#=Ñ#=Ó#?€ r�   Úbytecode_hooks_TrÒ  )ÚBREAKPOINT_MARKERr   )Úregister_breakpoint_codec                óÈ   — dd l }| j                  | j                  z   t        | j                  |j
                  z  «      z   t        | j                  |j                  z  «      z   S )Nr   )rƒ  Úco_argcountÚco_kwonlyargcountr¸   Úco_flagsÚ
CO_VARARGSÚCO_VARKEYWORDS)rÞ   rƒ  s     r�   Ú
count_argsz4_compile.<locals>._compile_inner.<locals>.count_args­  s]   € Ûð × Ñ Ø×(Ñ(ñ)ä�t—}‘} w×'9Ñ'9Ñ9Ó:ñ;ô �t—}‘} w×'=Ñ'=Ñ=Ó>ñ?ðr�   zarg mismatch: zold code object has args z, znew code object has args zfree var mismatch: zold code object has free var znew code object has free var zcell var mismatch: zold code object has cell var znew code object has cell var r.  )rØ  r-  r×  ÚUnknownzTorch-Compiled Region: )rð  r:  rË   r:  rÇ   r:  rñ  r;  rÞ   r   r¶   r·   ©rÞ   r   r¶   r;  )Hrm  rØ   rÙ   r×   rÚ   rÛ   rÜ   Úgraph_id_filterr  r(   Údebug_dynamo_config_overriderÑ  rø   rÒ  r¾  r*   r  rE  rF  r  r`   Ú
all_statesr…   r!  r&  r  r6  Ú$get_replayed_side_effect_source_refsr9   rï  rð  Ú	enumeraterë  r9  ri   rú  rt   rÂ  r®   Úbytecode_debuggerr  Ú	co_constsÚtorch._C._dynamo.eval_framer	  Úco_varnamesr¢  Úco_cellvarsrL  Úis_empty_graphr  Úcleanupsrf   Úinstancerù   rz   rÎ   rú   Útemp_restore_stackr.  Úguards_stateÚadd_guarded_codeÚadd_inlined_sourcer	  r5  Úupdate_device_typeÚcurrent_tracerÚgraphr:  rQ   Úguard_managerÚguard_export_fnrc   )*rÞ   r¢  rØ  r&  Ú
start_timerò  Úis_resumption_framer  Údynamo_config_overriderÂ  rN  r!  r  r¨   rü  Úhook_outputr  r	  r  Útotal_argcount_oldÚtotal_argcount_newÚmsgÚbuild_guards_ctxÚcheck_fnÚcompile_id_strÚannotation_strÚguarded_coder  r  r×  rÔ  rº  r¡  r   Údynamo_time_before_restartrL  r£  r•  r¾   r  r¤  r¼  s*   `                          @€€€€€€€€€€€€€€r�   ré  z _compile.<locals>._compile_inner.  sM  ú€ ô 04¯y©y«{Ð:Ð *ð	Øð	Ø"ð	Ø.1ð	Ø<?ð	ØGOð	àó	ñ 	ØØ�L‰LØ×ÑØ×ÑØô	
ð 7¸$¿,¹,ÐFÐÙÜ�N‰N×+Ñ+Øóó <ð ,ô ð ˆÝNá!JØœ×;Ñ;ó"
Ðð	Gñ *ô —‘Ð3Ô4ä×+Ñ+Ó-ñô
 !.ØØØØØØØØ#Ø!Ø'9Ø +Ø&7Ø#ô!�÷ð4 !Ð(Ð,=×,HÑ,HÐ,Tð 	
ØIó	
ÐTð !×)Ñ)ˆØ%×3Ñ3ˆØ×0Ñ0Ð<Ø&3×&KÑ&KÐ#àÐ#Ð#Ð#ÙØØ�L‰LØ×ÑØ×ÑØô	
ñ Ü�N‰N×+Ñ+Øóó @ð ,ô ð ×)Ñ)Ð5Ð5Ð5Ø×+Ñ+ˆä�&×=Ñ=Ó?Ó@ô 	× Ñ  Ó*Ô+RÑSô #¤?×#9Ñ#9Ó#;Ó<ò 	+‰IˆC�Ü °¨uÐ5ÈTÔRñ +Ù" 4¨Ó2�ØÐ*Ø"¨(Ñ2Ü*¨8°[ÔAØ*�H÷+ð +ð	+ð #'Œ�hÑÜ×Ñ˜Ô"Ø%<¸zÑ%IÐ"å8à × 2Ñ 2Ñ2ÝLá$ XÔ.ó	ð Ð#Ð#Ð#á'¨Ó-ÐÙ'¨Ó1ÐØˆØÐ*¨4×+;Ñ+;Ð<OÐ=OÐ+PÐ*QÐQSÐTÑTˆØÐ*¨8×+?Ñ+?Ð@SÐASÐ+TÐ*UÐVÑVˆà×ÑÐ0Ð0Ð1Ø×#Ñ#Ð$7Ð%7Ð8ò9ð	ð ó	ð9ð $ˆØÐ.¨t×/?Ñ/?Ð.@ÀÐCÑCˆØÐ.¨x×/CÑ/CÐ.DÐEÑEˆØ×Ñ 8×#7Ñ#7Ò7Ð<¸Ó<Ð7à#ˆØÐ.¨t×/?Ñ/?Ð.@ÀÐCÑCˆØÐ.¨x×/CÑ/CÐ.DÐEÑEˆØ×Ñ 8×#7Ñ#7Ò7Ð<¸Ó<Ð7ð �=Š=˜V×2Ñ2Ô4Ü%Ó'¨Ð6Ð6à�}‰}Ð(Ð(Ð(Ø,2¯O©OŒ×Ñ Ñ)ô &×/Ñ/Ó1ÐÜ.×4Ò4Ø×*Ñ*Ü3×FÑFÓHôô ˜.ÀÔEñ 	ÐGWñ 	Ø$×1Ñ1ØØØ DÐ(Ø'ð	 2ó ˆH÷	÷ 	ð ÐØ×(Ñ(Ð4Ð4Ð4Ø×$Ñ$ X×%:Ñ%:¸HÔEØ×&Ñ& v×'=Ñ'=×'IÑ'IÔJØ×&Ñ& v×'<Ñ'<×'BÑ'BÔCà,6Ð,Bœ˜ZœÈ	ˆØ2°^ÑCˆÜ"ØØ×"Ñ"ØØó	
ˆð ×$Ñ$Ô&¨5×+@Ñ+@Ð+Lð ×!Ñ! &§-¡-Ô0ä  Ó.°Ð=Ð=÷Qñ ûô( �}‰}ò 	GÙÜ—	‘	ÐHÔIØ×0Ñ0Ð<Ð<Ð<Ü%Ó'¨×)FÑ)FÐFÕFûð		Gú÷R+ñ +ú÷X	ñ 	ú÷ 	ñ 	úsf   Â,+U  ÃT3Ã0U  ÈVÐ"V5Ð%V(Ð=V5Ô3T=Ô8U  Õ VÕ:VÖVÖVÖV%	Ö(V2	Ö-V5Ö5V?r¹  T)Úreset_event_log_on_exitrÓ  z+pytorch.wait_counter.entire_forward_compilez_compile.compile_innerÚentire_frame_compileÚ!dynamo_cumulative_compile_time_us)rá  Údynamo_compile_column_usz$Unable to find recompilation reasonsF)Úrecompile_reasonÚ#inline_inbuilt_nn_modules_candidateé   Úrecompile_user_contextsc                óV   — d| j                   › d| j                  › d| j                  › d�S )Nú'z' (r¾  ú))rØ   rÙ   r×   rô  s    r�   Úformat_func_infoz"_compile.<locals>.format_func_info8  s0   € Ø˜4Ÿ<™<˜.¨¨D×,<Ñ,<Ð+=¸Q¸t×?RÑ?RÐ>SÐSTÐUÐUr�   z«torch._dynamo hit config.%s (%s)
   function: %s
   last reason: %s
To log all recompilation reasons, use TORCH_LOGS="recompiles".
To diagnose recompilation issues, see %sc                 óp   •— t        dd‰ › �d‰ › dt        t        ‰ «      › d�d‰ › d�dt        › d	�g¬
«       y )NzDynamo recompile limit exceededzLimit type: zLDynamo attempted to recompile the code object too many times, exceeding the z$ cache size limit (currently set to zj). Excessive recompilations can degrade performance due to the compilation overhead of each recompilation.z‚To monitor recompilations, enable TORCH_LOGS=recompiles. If recompilations are expected, consider increasing torch._dynamo.config.z to an appropriate value.zSee z) for tips on dealing with recompilations.r³  )rK   r,  r(   rx   )Ú
limit_types   €r�   Ú(raise_unimplemented_cache_limit_exceededz:_compile.<locals>.raise_unimplemented_cache_limit_exceededJ  sj   ø€ ÜØ=Ø*¨:¨,Ð7ð!%Ø%/ LÐ0TÔU\Ô]cÐeoÓUpÐTqð rYð!Yð
;à;E¸,ÐF_ðað Ô2Ð3Ð3\Ð]ð	ör�   z/Hard failure due to fail_on_recompile_limit_hitz"Hard failure due to fullgraph=TruezBtorchdynamo start compiling %s %s:%s, stack (elided %s frames):
%sé   r²  rÄ   r'   )Ú_validate_backend_namesÚ_validate_dynamo_config_keysÚ_validate_inductor_config_keyszsize mismatch at indexÚgcÚ
gc_time_us)r9  z run_gc_after_compile: running gc)Ú
curr_frameg    eÍÍAÚ	frame_keyrØ   rÙ   r×   r»  r¼  Úguard_countÚshape_env_guard_countÚgraph_op_countÚgraph_node_countÚgraph_input_countÚ	fail_typeÚfail_reasonÚfail_user_frame_filenameÚfail_user_frame_linenoÚnon_compliant_opsÚcompliant_custom_ops)	r¼  Údynamo_time_before_restart_sÚhas_guarded_codeÚspecialize_floatÚ
is_forwardÚ%dynamo_compile_time_before_restart_usÚstack_traceÚgraph_node_shapesÚexception_stack_traceÚ_old_fake_moderK  rô  c                 ó   — dddœS )NÚdynamo_errorr÷  rø  rŽ   rŽ   r�   r�   r©   z_compile.<locals>.<lambda>Ê  s   € Ø*Ø (ñ%€ r�   c                 ó*   — t        j                  «       S r�   ©Ú	tracebackÚ
format_excrŽ   r�   r�   r©   z_compile.<locals>.<lambda>Î  s   € ¤9×#7Ñ#7Ó#9€ r�   rÿ  r  z: )rÞ   r   r¢  r¸   rØ  rR   r¶   z4tuple[ConvertFrameReturn, DynamoTracerOutput | None])rÞ   r   r¢  r¸   rØ  rR   r¶   z-tuple[ConvertFrameReturn, DynamoTracerOutput])rÞ   r   r¶   r:  )r¶   r   )�r  rÞ  rß  r   rU  rm   r9   rø   rÒ  r   r(   Úuse_lazy_graph_moduler   r   re   r   Úguardri   rŸ   r   rZ   r]   r8   rP   r>   Úupdate_outerrl   r7   rE  rq  r,  rx   rL   Úfail_on_recompile_limit_hitrC   rb   ra   ÚRUN_ONLYÚframe_exec_strategyrF  rØ   rÙ   r×   rg  r%   rÑ   Úformatrã   rm  Útime_nsrÚ   rã  ÚutilsÚReinplaceCountersr–   Údebug_backend_overrider  Údebug_inductor_config_overrider  rF  rG  rH  ro  rW   r  Úhas_outputsrV   rU   Úrun_gc_after_compilerÛ  rI  ÚcollectÚlocal_scopeÚroot_txrD  rK  r:  r†  r  r  Úcount_callsr&  ÚnodesÚget_graph_sizes_structuredÚplaceholdersrV  r�   rW  rÎ  rÏ  rZ  rw   rŒ  rd   rL  r	  Úguards_contextÚdynamo_guardsÚ#invalidate_compile_context_weakrefsr-   r=   rD  r™   r˜   r=  r`  r  r1  re  rf  rO  rÛ   rÜ   r*   Úget_exc_messager-  rM   rI   rB   ÚAssertionErrorr   r   rJ   rH   rF   rG   rE   rÁ  rÙ  )DrÞ   r¾   r  r  rÔ  r¡  r¢  rL  r£  rØ  r×  r»  rá   r•  rº  rÅ   r¤  r¿  rÞ  rß  rà  Úmetrics_contextÚpackage_code_contextÚ
compile_pgr:  Úreasonsr=  Úuser_contextÚuser_contexts_msgÚexceededrA  rD  rN  r]  Ústart_time_nsrR  rS  r_  rT  rU  r4  r!  rF  rG  rH  Úerrr  r  r  rK  rL  rM  rN  rO  rP  r^  rQ  ÚoprV  rW  ÚmetricsÚshould_clearÚtcré  r   r5  rC  r¼  sD    ````` `` `  `` `                                              @@@@@r�   rÓ  rÓ  ÷  sR  ÿÿ€ ÷.ð ),Ðä"¨oÔ>ð
Øð
Ø#'ð
Ø05ð
à	=ô
ó ?ð
ô, ðR>ØðR>àðR>ð ðR>ð 
7÷	R>÷ R>ñ R>ó ðR>ôh *Ó+€Oà&-Ð&9ˆ×Ñ˜TÔ"¼z×?UÑ?UÓ?Wð ô 	œv×;Ñ;Ó<ñaäœ zÓ2Ó3ñaô 	Ø¨dÈ$ô	
ñaô 	ÐBÓC×IÑIÓKñað 	ñaô 	Ø$Ø-Ø%Hô	
ñað 	ñaô %(£EˆÜ'Ó)Ð)ˆ:Ð)Ü 0°¼Z»\Ó JÑà $Ðð (,ÐÜ˜JÔ'©EÜ=Ø˜U¤L°Ó$=óˆGñ ?FÑ6È7ÐSTÉ:ð ð 	×$Ñ$à$4Ø7<ñô	
ô #FÓ"GÐÙ"ð :Qö!Ø)5‘“˜t Ò$ð!Ðð !ð ×ÑÐ 9Ð;LÔMä6°zÀ:ÓNÑˆ�*ÙóVô
 �K‰Kð;ð
 Üœ 
Ó+Ù  Ó&Ø Ü#ôõð Ù8Ô:ô" 	�	‰	ØQØ�L‰LØ×ÑØ×ÑØ�1‰Hà�G‰GÔ%×-Ñ-°1°t±8Ô<×CÑCÓEÓFô	
ô4 ' t¨TÓ2ˆÜŸ™›ˆØ $ˆ	Ø"&ˆØ26ÐØ/3Ð Ø-1ÐÜ�‰×Ñ×-Ñ-×3Ñ3Ô5ØˆØˆô ×)Ò)Ü×2Ò2Ü×4Ò4÷
ñ ñ .¬f×.KÑ.KÓLÐLˆsÐLÜ  “oÐ%Ù2´6×3VÑ3VÓWÐWˆsÐWÜ  “oÐ%Ù4Ü×5Ñ5óð ˆsð ô ! “oÐ%ð@	Ù*7¸¸iÈÓ*OÑ'ˆL˜-ô ÔáØ%2×%?Ñ%?Ð?�\Ð?Ø ×,Ñ,Ô.ä+¨DÔ1Ù#Ð(@ÐDTÑ(TÜ0Ô2àôh �}‰}×#Ñ#×8Ò8Ü! $ÀÔNñ "Ü—H‘HÐ?Ô@Ü—J‘J˜q”M÷"ð ˆFÙØ&×3Ñ3�Ùà%'�Ô"à#Ÿ^™^Ð+�6Ð+à&(�F”Oå)ä˜J›ˆIØÑ" vÑ'9Ü! &§-¡-Ó0�Ü(+¨F×,<Ñ,<×,CÑ,CÓ(DÐ%Ø!'×!3Ñ!3Ó!5�Ü#& v§|¡|×'9Ñ'9Ó#:Ð Ø$*×$EÑ$EÓ$GÐ!Ü$'¨×(;Ñ(;Ó$<Ð!Ø?E×?WÑ?WÖ$X¸ R§_£_Ð$XÐ!Ð$Xà.4×.IÑ.Iö(Ø(*�B—O“Oð(Ð$ð (ô —‘×#Ñ#×5Ñ5×9Ñ9Õ;à"�Ø(,Ð%Ø!%�Ø#'Ð à$&Ð!Ø$(Ð!Ü$'¨£GÐ!Ü'*¨2£wÐ$Ü"%£%�ä.2¯l©l«n¸}Ñ.LÐPSÑ-SÐ*ðØ˜Yðà˜4Ÿ<™<ðð ˜t×/Ñ/ðð ! $×"5Ñ"5ð	ð
 ˜j×TÑTðð )¨*×*FÑ*Fðð ˜{ðð (Ð)>ðð ! .ðð #Ð$4ðð $Ð%6ðð ˜Yðð ˜{ðð +Ð,Dðð )Ð*@ðð  $Ð%6ð!ð" 'Ð(<ð#ð$ $3Ø0JØ$0¸Ð$<Ü$*×$;Ñ$;Ø"Ü9BØ.ó:ð  +Ü%(Ð):Ó%;Ø)>ò9ˆGðB ×(Ñ(¨Ô1ñ !ñ %ð "×6Ò6ä2Ó4ð "Ô6ð Ð)Ø!×.Ñ.Ð:Ø%×2Ñ2×9Ò9à×*Ñ*×:Ñ:×IÑI×WÑW×]Ñ]Ô_ô "×EÑEˆLØÐ#ô  6Ô6GÈÓ6TÓU�ÙÙ  ]×%?Ò%?Ø&×3Ñ3×CÑC�BØ×(Ñ(×.Ñ.Ô0ô .¨b¯l©lÔ;Ü˜}×9Ñ9Ð;KÔLÜ1Ø)×6Ñ6×EÑEô÷
a÷ a÷ a÷ a÷ a÷ a÷ a÷ aùòR!øôX ò Ü×5Ò5Ü1ØIóàðñ Ü1Ø<óàðô
 ->Ü#×,Ñ,¬k×.BÑ.Bó-�AÔ)ð ûðú÷n"ñ "üò2 %Yùò(øô] ó ,	<ô ˜Q›×,Ñ,ˆIÜ˜a›&ˆKÜ%.×%9Ñ%9Ó%;Ð$<Ð!Ü˜a  u°VÕ<ä�N‰N×+Ñ+Øññ :ð ,ô ô @C×?RÑ?RØ�:ó@Ñ<Ð$Ð&<ô $ AÐ'DÀdÓKˆMÜØäÜÜ%Ü)Ü"Ü,Ü/Ø'Ü0Ø-Ü$Ü Ü.ðôð$ ô /Ü˜A“w×+Ñ+Ð,¨B¬s°1«v¨hÐ7óç ‘. §¢Ó1°tð<ûðU,	<ûôf �}‰}×#Ñ#×8Ò8Ü! $ÀÔNñ "Ü—H‘HÐ?Ô@Ü—J‘J˜q”M÷"÷ "ñ "úð ˆFÙØ&×3Ñ3�Ùà%'�Ô"à#Ÿ^™^Ð+�6Ð+à&(�F”Oå)ä˜J›ˆIØÑ" vÑ'9Ü! &§-¡-Ó0�Ü(+¨F×,<Ñ,<×,CÑ,CÓ(DÐ%Ø!'×!3Ñ!3Ó!5�Ü#& v§|¡|×'9Ñ'9Ó#:Ð Ø$*×$EÑ$EÓ$GÐ!Ü$'¨×(;Ñ(;Ó$<Ð!Ø?E×?WÑ?WÖ$X¸ R§_£_Ñ$XùÒ$XÐ!Ð$Xà.4×.IÑ.Iö(Ø(*�B—O“Oñ(ùò (Ð$ð (ô —‘×#Ñ#×5Ñ5×9Ñ9Õ;à"�Ø(,Ð%Ø!%�Ø#'Ð à$&Ð!Ø$(Ð!Ü$'¨£GÐ!Ü'*¨2£wÐ$Ü"%£%�ä.2¯l©l«n¸}Ñ.LÐPSÑ-SÐ*ðØ˜Yðà˜4Ÿ<™<ðð ˜t×/Ñ/ðð ! $×"5Ñ"5ð	ð
 ˜j×TÑTðð )¨*×*FÑ*Fðð ˜{ðð (Ð)>ðð ! .ðð #Ð$4ðð $Ð%6ðð ˜Yðð ˜{ðð +Ð,Dðð )Ð*@ðð  $Ð%6ð!ð" 'Ð(<ð#ð$ $3Ø0JØ$0¸Ð$<Ü$*×$;Ñ$;Ø"Ü9BØ.ó:ð  +Ü%(Ð):Ó%;Ø)>ò9ˆGðB ×(Ñ(¨Ô1ñ !ñ %ð "×6Ò6ä2Ó4ð "Ô6ð Ð)Ø!×.Ñ.Ð:Ø%×2Ñ2×9Ò9à×*Ñ*×:Ñ:×IÑI×WÑW×]Ñ]Ô_ô "×EÑEˆLØÐ#ô  6Ô6GÈÓ6TÓU�ÙÙ  ]×%?Ò%?Ø&×3Ñ3×CÑC�BØ×(Ñ(×.Ñ.Ô0ô .¨b¯l©lÔ;Ü˜}×9Ñ9Ð;KÔLÜ1Ø)×6Ñ6×EÑEõð Mð &@�=ð ú÷o
að aú÷ a÷ añ aú÷ a÷ añ aú÷ a÷ añ aú÷ a÷ añ aú÷ a÷ añ aú÷ a÷ añ aúsŠ  Â&wÂ;v8Ã
v#Ã$v	Ã'u9Ã6u$Ã9B uÅ9^:Æ
A!uÇ,^?Ç3E2uÍ&A`?Î91uÏ*+`(ÐC#uÓ8`5ÔuÔ`:Ô.IuÝ:	u$Þ	u9Þ	v	Þ	v#Þ	v8Þ'	wÞ:uÞ?	`%ßA` à `%à%uà(`2à-uà?
e)á	De$å$e)å)e,å,2uæ+gç		uçgçC"uê9këuë"k6ë5Iuõuõuõu$õ	u9õ$u-õ)u9õ0	v	õ9võ>v	ö	v#övöv#ö	v8ö#v,ö(v8ö/	wö8w	ö=w÷wc                  ó`   — e Zd Z	 	 d	 	 	 	 	 	 	 	 	 dd„Zedd„«       Z	 d	 	 	 	 	 	 	 	 	 	 	 d	d„Zy)
ÚConvertFrameNc                óV   — || _         t        |d||¬«      | _        || _        || _        y )NF)r¢  r¤  r¥  )r  rª  Ú_inner_convertÚ_hooksrŸ  )r¢   r¡  rØ  r¤  r¥  s        r�   r£   zConvertFrame.__init__l  s6   € ð *5ˆÔ&Ü2ØØØØ+ô	
ˆÔð ˆŒØ /ˆÕr�   c                ó   ‡ — ˆ fd„S )Nc                óH   •— t        | ‰j                  ‰j                  ¬«      S r¨  )Úconvert_framer’  rŸ  r«  s    €r�   r©   z2ConvertFrame._clone_with_backend.<locals>.<lambda>  s   ø€ œ}ØØ�K‰KØ ×1Ñ1ô 
€ r�   rŽ   r¡   s   `r�   r­  z ConvertFrame._clone_with_backend}  s   ø€ ó
ð 	
r�   c                óª  ‡— t         j                  |j                  «       t        d   dxx   dz  cc<   	 | j	                  |||||dz   ¬«      }t        d   dxx   dz  cc<   |S # t
        $ �rc}t        |t        «      r‚ | j                  j                  j                  d u}|€J ‚| j                  j                  j                  r‚ t        |t        «      r‚ t        |t        t        f«      }	|j                  }
|	�rt        |dd«      �st        j                  t         j"                  «      råt%        |d«      rÙt%        |d	«      rÍt'        t)        |j*                  «      «      5  |j,                  }d
j/                  t1        j2                  |«      «      }t5        j6                  |
«      }d|› d|› �Št8        j:                  j=                  dd„ ˆfd„¬«       t        j?                  ‰dt@        jB                  ¬«       d d d «       n# 1 sw Y   nxY wt@        jD                  s|	s‚ t        |dd «      }|j                  }
tG        ||
||«      }|	rtH        jK                  |d¬«       ntH        jM                  |d¬«       t        |t4        jN                  «      r'|jP                  �tS        |jP                  ¬«      cY d }~S Y d }~tS        «       S d }~ww xY w)NÚframesÚtotalr'   rÄ   ÚokÚloggedFrº  Ú
real_stackr²  zŒGraph break: torch.compile cannot properly resume from this graph break, which results in a skip.
torch.compile will skip tracing the frame zN and fall back to eager.
The graph break occurred in the following user code:
rô  c                 ó   — dddœS )NÚdynamo_graph_break_reasonr÷  rø  rŽ   rŽ   r�   r�   r©   z'ConvertFrame.__call__.<locals>.<lambda>Õ  s   € Ø(CØ,4ñ1€ r�   c                 ó6   •— ‰ › dt        j                  «       › �S )Nú
rd  )Úuser_stack_traces   €r�   r©   z'ConvertFrame.__call__.<locals>.<lambda>Ù  s   ø€ Ð2BÐ1CÀ2Äi×FZÑFZÓF\ÐE]Ð/^€ r�   rÿ  T)Úexc_infoÚ
stack_inforM  )r¡  )rl  )*rÁ  r®   r@  rh   r‘  r  r-  rG   r   rŒ  rJ   rL   rM   r,  Úgraph_break_logrí  rî  rï  r=  r   r   rº  r›  rg  re  Úformat_listr*   Úformat_frame_inforÚ   rÛ   rÜ   rF  r(   r¿  Úsuppress_errorsrD   rE  rÛ  rq  ÚTorchDynamoExceptionrl  r`   )r¢   rá   r×  rØ  r•  rÅ   rÀ   rN  rŒ  Ú	soft_failrÞ   Ú
user_stackÚuser_stack_formattedÚ
frame_inforM  Ú	error_msgr   s                   @r�   rÞ  zConvertFrame.__call__…  sž  ø€ ô 	�‰˜Ÿ™Ô%Ü�Ñ˜7Ó# qÑ(Ó#ðg	UØ×(Ñ(Ø�{ E¨;¸TÀA¹Xð )ó ˆFô �XÑ˜tÓ$¨Ñ)Ó$ØˆMøÜó a	Uä˜!Ô7Ô8Øð ×#Ñ#×(Ñ(×=Ñ=ÀTÐIð !ð (Ð3Ð3Ð3Ø×"Ñ"×'Ñ'×<Ò<ð ô  ˜!Ô9Ô:Øä" 1¤{´IÐ&>Ó?ˆIØ—<‘<ˆDò Ü  8¨UÕ3Ü#×0Ñ0´·±Ô?ô
 ˜1˜lÔ+´¸¸<Ô0HÜ(¬¸¿¹Ó)EÓFñ Ø%&§\¡\˜
Ø/1¯w©wÜ%×1Ñ1°*Ó=ó0Ð,ô &)×%:Ñ%:¸4Ó%@˜
ðIØISÈð UUà3Ð4ð6ð )ô Ÿ™×7Ñ7Ø&ñ)ó (_ð 8ô ô (×-Ñ-Ø,Ø%)Ü'-§~¡~ð .ô ÷)÷ ñ úô4 ×)Ò)±)Øô & aÐ):¸DÓAˆOØ—<‘<ˆDÜ(¨¨D°/À5ÓIˆIáÜ—‘˜¨T�Õ2ä—‘˜I°�Ô5ô ˜1œc×6Ñ6Ô7Ø×)Ñ)Ð5ä)¸a×>SÑ>SÔTÕTûä!Ó#Ð#ûðGa	Uús8   ¶.A% Á%
KÁ/C5KÅ$BHÇ>	KÈH	ÈB-KÊ9KËKr;  )
r¡  r~   rØ  rR   r¤  rá  r¥  râ  r¶   r·   )r¶   z*Callable[[WrapBackendDebug], ConvertFrame]©r   rã  ræ  rŽ   r�   r�   r�  r�  k  sž   „ ð
 *.Ø&*ð0àð0ð ð0ð 'ð	0ð
 $ð0ð 
ó0ð" ò
ó ð
ð ðs$àðs$ð 'ðs$ð ð	s$ð
 :ðs$ð ðs$ð 
ôs$r�   r�  c                ó    — t        | |||¬«      S )zHTry to convert a frame into an FX graph, if error leave frame unmodified)r¤  r¥  )r�  )r¡  rØ  r¤  r¥  s       r�   r•  r•  û  s   € ô Ø�U G¸_ôð r�   c                ó¶  — ddl m} t        j                  }dt        _        t	        | d«      5 }t        j                  |«      }d d d «       t        t        j                  j                  j                  «       t        «       j                  «       «      «      |_
        t        j                  d«      5  	 t        |j                  |j                  |j                   |j"                  |j$                  |ddd t'        «       t)        dd«      d d i t+        dd¬«      ¬	«       |t        _        	 d d d «       y # 1 sw Y   ŒðxY w# |t        _        w xY w# 1 sw Y   y xY w)
Nr'   )ÚeagerFÚrbr   é*   iç  )r‘  r’  )
r¡  r¢  rL  r£  rØ  r»  r×  rá   r•  rº  )Úbackends.debuggingr°  r(   Úreplay_record_enabledÚopenrX   Úloadr8  rÕ   Úchainr¾   rQ  r)   rŒ  rÓ  rÞ   r  r  rÔ  rR   r5   r   )rÇ   r°  Úoriginal_replay_valÚin_filerç  s        r�   Úreplayrº  	  s  € Ý)ä ×6Ñ6ÐØ#(„FÔ Ü	ˆh˜Ó	ð / Ü ×%Ñ% gÓ.ˆ÷/äœ)Ÿ/™/¨&¯.©.×*>Ñ*>Ó*@Ä'Ã)Ç/Á/ÓBSÓTÓU€F„Nä	×	(Ñ	(¨Ó	/ñ ?ð	?ÜØ—‘Ø—‘Ø—‘Ø—‘Ø—‘Ø!ØØØ#'Ü“gÜ4°Q¸Ó:Ø ØØÜ$¨bÀ3ÔGõð$ ,?ŒFÕ(÷)?ð ?÷	/ð /ûð0 ,?ŒFÕ(ú÷)?ð ?ús0   ®D3Â3EÂ5A)D?ÄEÄ3D<Ä?EÅEÅEc                ó´   — t         j                  dk  ryt        j                  | «      D ]"  }|j                  dk(  sŒ|j
                  dz  c S  t        d«      ‚)N)é   é   r   ÚRESUMErE  z$RESUME instruction not found in code)rÊ  Úversion_inforv  rw  rx  Úoffsetr\  )rÞ   Úinsts     r�   Úfirst_real_inst_idxrÂ  (	  sV   € Ü
×Ñ˜'Ò!ØÜ×$Ñ$ TÓ*ò $ˆØ�;‰;˜(Ó"Ø—;‘; !Ñ#Ò#ð$ô Ð=Ó
>Ð>r�   c                  ó0   — e Zd Zddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zy)rÄ  r   rÄ   c                ó   — y r�   rŽ   )r¢   rá   r×  rØ  r•  rÅ   s         r�   rÞ  zConvertFrameProtocol.__call__2	  s   € ð !r�   Nrã  )r‹   rŒ   r�   rÞ  rŽ   r�   r�   rÄ  rÄ  1	  sF   „ ð ñ!àð!ð 'ð!ð ð	!ð
 :ð!ð ð!ð 
ô!r�   c                  ó,   — e Zd Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)ÚCatchErrorsWrapperc                óV   —  t        j                  |«      | «       || _        || _        y r�   )r  r  r  rØ  )r¢   rË  rØ  s      r�   r£   zCatchErrorsWrapper.__init__>	  s$   € Ø!Œ	�‰˜Ó! $Ô'Ø)1ˆÔ&Øˆ�
r�   c           	     ó¸  — |€J ‚t         j                  |j                  «       t        j                  |j                  |¬«      }t
        j                  dk\  r#|j                  t        |j                  «      kD  }n"|j                  t        |j                  «      k\  }t        j                  rt        «       }n
t        «       }|s+|s)t        j                  s|r´t        | j                  dd«      s�t         j#                  t$        j&                  «      rp|rd}n+t        j                  |j                  |¬«      rd}n|rd}nd}t         j)                  d	|j                  j*                  ||j                  j,                  «       t/        «       S |j                  j,                  d
k(  r|j                  j*                  dk(  s>|j                  j,                  j1                  d«      r#|j                  j*                  dk(  r
t/        «       S |j                  j*                  dk(  rt|j                  j2                  dkD  r[|j                  j4                  rEt7        |j8                  j;                  |j                  j4                  d   «      «      r
t/        «       S t<        j>                  j@                  jC                  «       dk(  r«tE        jF                  «       }|r•tH        5  ddl%m&}	  |	|jN                  | j                  j                  ¬«      }
tQ        | j                  d«      sJ d«       ‚| j                  jS                  |
jT                  «      } |||| jV                  |«      cd d d «       S tH        5  tY        «       5  | j                  ||| jV                  |d¬«      }|cd d d «       cd d d «       S # 1 sw Y   ŒOxY w# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)N)rá   )r¼  é   rœ  Fztraced frame alreadyzin skipfileszSnon-infra torch dispatch mode present, this is not supported today in torch.compilezdynamo tracing is disabledz#skipping: %s (reason: %s, file: %s)r±  Ú__new__zcollections/__init__.pyÚ_maker£   r   Úddp_optimizer)ÚDDPOptimizer)Úbucket_bytes_capÚbackend_compile_fnr­  zJDDPOptimizer only supports callback fns that know how to clone themselves.r'   rÄ   )-rÁ  r®   r@  r,   r  rÊ  r¿  Úf_lastirÂ  r(   Ú#inline_torch_dispatch_torch_compiler"   r#   Údisabler,  r  rE  rí  rî  rï  rF  rØ   rÙ   r`   rÅ  r  r  r$   rD  rÄ  rÚ   rã  ro  Úget_optimize_ddp_moder    Ú_get_active_ddp_moduleÚcompile_lockÚ"torch._dynamo.backends.distributedrÍ  rÎ  r=  r­  Ú
compile_fnrØ  r!   )r¢   rá   r×  r•  Úis_skipfileÚhas_started_executionÚshould_skip_for_dispatch_modeÚskip_reasonÚ
ddp_modulerÍ  rÌ  Úhijacked_callbackrÀ   s                r�   rÞ  zCatchErrorsWrapper.__call__C	  s3  € ð Ð&Ð&Ð&Ü�‰˜Ÿ™Ô%ä!×'Ñ'¨¯©¸EÔBˆÜ×Ñ˜wÒ&Ø$)§M¡MÔ4GÈÏÉÓ4UÑ$UÑ!à$)§M¡MÔ5HÈÏÉÓ5VÑ$VÐ!ô ×5Ò5Ü,LÓ,NÑ)ô @ÓAð *ñ "ÙÜ�~Š~á-Ü × >Ñ >À	È5ÔQô ×Ñ¤§¡Ô.Ù(Ø"8‘KÜ ×&Ñ& u§|¡|¸5ÕAØ"0‘KÙ2Ø"w‘Kà">�Kä—	‘	Ø9Ø—L‘L×(Ñ(ØØ—L‘L×,Ñ,ô	ô &Ó'Ð'ð �L‰L×$Ñ$¨
Ò2°u·|±|×7KÑ7KÈyÒ7Xà�L‰L×$Ñ$×-Ñ-Ð.GÔHØ—‘×$Ñ$¨Ò/ô &Ó'Ð'ð �L‰L× Ñ  JÒ.Ø—‘×(Ñ(¨1Ò,Ø—‘×(Ò(Ü-Ø—‘×"Ñ" 5§<¡<×#;Ñ#;¸AÑ#>Ó?ôô &Ó'Ð'ä�=‰=×Ñ×4Ñ4Ó6¸/ÒIÜ0×GÑGÓIˆJÙÜ!ñ ÝOá$0Ø)3×)DÑ)DØ+/×+IÑ+I×+cÑ+cô%�Mô #Ø×6Ñ6Ð8Môð ð eóð ð ×6Ñ6×JÑJØ)×4Ñ4óð &ñ
 -Ø˜{¨D¯J©J¸ó÷#ñ ô* ñ 	Ô1Ó3ñ 	à×3Ñ3Ø�{ D§J¡J°À!ð 4ó ˆFð ÷	÷ 	ò 	÷+ð ú÷*	ð 	ú÷ 	÷ 	ñ 	ús1   ËBN/Í/OÍ:"N;Î	OÎ/N8Î;O	Ï OÏON)rË  rÄ  rØ  rR   r¶   r·   )rá   rƒ   r×  rä  r•  rå  r¶   r`   )r‹   rŒ   r�   r£   rÞ  rŽ   r�   r�   rÆ  rÆ  =	  s7   „ óð
jàðjð 'ðjð :ð	jð
 
ôjr�   rÆ  c                ó   — t        | |«      S r�   )rÆ  )rË  rØ  s     r�   Úcatch_errors_wrapperrß  °	  s   € ô ˜h¨Ó.Ð.r�   )r˜   z3torch._subclasses.fake_tensor.FakeTensorMode | Noner¶   r·   r�   )r½   r:  r¾   rI  r¿   zdict[str, str] | Noner¶   r   r­  )rÞ   r   rÅ   r;  r¶   z	list[str])r  úCallable[_P, _T]r¶   rà  )rá   rƒ   r¶   r¸   )NF)
rN  r  rÞ   r   rá   úDynamoFrameType | NonerL  r¸   r¶   r·   )rT  rà  r¶   rà  )r•  rå  r¶   r   rß  )r¡  r~   r¢  r¸   rL  r¸   r£  rà  r¤  rá  r¥  râ  r¶   r™  )rÞ   r%  r¶   ztuple[str, ...] | None)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  z'list[torch.overrides.TorchFunctionMode]r¢  r¸   r  r^   r   rÕ  r  r´  rL  r¸   r£  rà  r•  ú+dict[str, int | FrameStateSizeEntry] | Noner   úDistributedState | Noner¤  rá  r¶   rS   )rd  rI  r¶   rI  )r”  r
   r¶   z"tuple[FunctionType, object | None])r  r
   r¶   zinspect.Signature)r”  r
   r	  útuple[Any, ...]r
  r=  r¶   rœ  )r”  r
   r	  rä  r
  r=  r®  úlist[Constraint] | Noner¯  r¸   r¶   r}  )rá   rœ  r®  rå  r¯  r¸   r¶   r}  )rË  rÄ  r¶   rÄ  )rÞ   r%  r¾   r´  r  r´  r  r´  rÔ  rµ  r¡  r~   r¢  r¸   r¼  rL  rL  r¸   r£  rà  r•  râ  r   rã  r¤  rá  r¶   r$  r;  )&rÞ   r   r¾   r´  r  r´  r  r´  rÔ  rµ  r¡  r~   r¢  r¸   rL  r¸   r£  rà  rØ  rR   r×  rä  r»  r5   rá   rá  r•  râ  rº  r   rÅ   r;  r¤  rá  r¿  zConvertFrameBox | Noner¶   r`   )
r¡  r~   rØ  rR   r¤  rá  r¥  râ  r¶   r�  )rÇ   r:  r¶   r·   r  )rË  rÄ  rØ  rR   r¶   rÆ  (	  r>  Ú
__future__r   Úcollectionsrø   rk  r_  rv  r  rI  rR  rƒ  rÕ   rî  re  rZ  rñ   rv  rÊ  rh  Ú	threadingrm  re  rU  ÚtypingÚunittest.mockrÊ  r«   r   Úpathlibr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   rÚ   Útorch._loggingÚtorch._C._dynamo.guardsr   Útorch._dynamo.callbackr   Útorch._dynamo.distributedr   Útorch._dynamo.symbolic_convertr   r½  r   r   r   r   r   Útorch._utils_internalr   r   r   Útorch.fx._lazy_graph_moduler   Ú%torch.fx.experimental.symbolic_shapesr   r   Útorch.fx.graph_moduler   r»   Útorch.monitorr   Útorch.nn.parallel.distributedr    Útorch.utils._python_dispatchr!   r"   r#   r$   Útorch.utils._tracebackr%   r&   r²  r(   r)   r*   r+   r,   Úbackends.registryr-   Úbytecode_analysisr.   r/   Úbytecode_transformationr0   r1   r2   r3   r4   r»  r5   r6   r7   r8   r9   Ú
eval_framer:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   Úgraph_bytecode_inputsrN   r  rO   rP   rQ   rØ  rR   r  rS   rT   ÚpgorU   rV   rW   Úreplay_recordrX   Úresume_executionrY   Úsymbolic_convertrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   ro  rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   Úvariables.torch_functionrz   r�  Únumpyr{   ÚModuleNotFoundErrorÚTYPE_CHECKINGÚcollections.abcr|   Útorch.utils.weakr}   r~   r¤  r   Úrepro.after_dynamor€   r�   r‚   rƒ   Úvariables.builderr„   Ú	getLoggerr‹   rE  rÛ   ÚgetArtifactLoggerrì  r£  ÚRLockrÕ  r‡   rˆ   rŠ   r™   r›   rÁ  rÂ  r¹   r  rÁ   rã   r  Ú#suppress_torch_distributed_warningsrH  rO  r“  ÚCounterrP  rU  rS  r‹  r—  r™  rª  ré  Útorch.utils.hooksrê  rë  rð  rò  rõ  rú  rþ  r"  r$  r@  rG  rf  r0  r}  r—  r›  r¬  r²  rœ  r±  rÍ  r¾  rÓ  r�  r•  rº  rÂ  ÚProtocolrÄ  rÆ  rß  rŽ   r�   r�   ú<module>r     sp  ðòõ. #ã Û Û Û Û 
Û Û 	Û Û Û Û Û 	Û Û Û Û 
Û Û Û Û Û Û Ý Û Ý !Ý ß >Ó >ß )Ñ )Ý 'Ý !ã Û Ý 4Ý 2Ý 4Ý 9ß MÓ MÝ %÷ñ õ
 ?÷õ QÝ &Ý A÷ó ÷ Mç EÕ EÝ 5ß G÷õ ÷ó õ '÷÷ ñ ÷÷ ÷ õ õ >÷ñ õ
 ß ?÷ñ õ
 +Ý ;÷õ õ "ß XÓ X÷÷ ÷ ÷ ÷ ÷ õ0 Jð Ó ðÛð
 
×ÓÝ(å4å-Ý'Ý4ß@Ñ@Ý6ð €g×Ò˜Ó!€Ø�~Š~×/Ò/°¸*ÓE€Ø—.’.×2Ò2°8¸^ÓL€ð ˆy�ŠÓ €áˆTƒ]€Ùˆtƒ_€÷	ñ 	ð%ØBð%à	ó%÷ñ ñ( ‹i€Ù‹y€à04Ð Ð-Ó 4ð €‡‚Ð*Ó+àJNðØ	ðØ%ðØ2Gðàòó ,ðôóDMð` ×1Ò1òKó 2ðKðb %)Øð	*Øð*à
ð*ð "ð*ð ð	*ð
 
ó*ð €ØCVÀ;×CVÒCVÓCXÐ Ð@Ó XóóHðV ÷-ð -ó ð-ðØ5ðàó÷.xñ xðz ØØ%)Ø%)Ø"&ðØðàðð ðð #ð	ð
 #ðð  ðð óõ& $å -ñ ,7«=€Ð(Ó 8Ø*FÐ 'ðØ
ðàóó$6ó

óð ð Ø%)Ø?CØ15Ø%)ñ#OØ
ðOàðOð ðOð  ð	Oð
 ðOð ðOð ;ðOð ðOð $ðOð $ðOð $ðOð ðOð #ðOð =ðOð  /ð!Oð" #ð#Oð$ ò%Oó ðOðd ÷8
ð 8
ó ð8
ðv ÷+ð +ó ð+ñ" �$Ô÷3ð 3ó ð3ólð ÷Vð Vó ðVðr ÷
ð 
ó ð
ó@.Aób7ð %)ð%Ø	ð%à
ð%ð "ð%ð ó	%ðV %)ð$
ð
 ,0Ø-2ñ$
Ø	ð$
à
ð$
ð "ð$
ð
 )ð$
ð '+ð$
ð ó$
ðN ÷&ð &ó ð&ð ,0Ø-2ñ	5Øð5ð )ð5ð '+ð	5ð
 ó5órð> Ø%)Ø?CØ15Ø%)ñjØ
ðjàðjð ðjð  ð	jð
 ðjð ðjð ðjð ðjð ðjð #ðjð =ðjð /ðjð #ðjð  ó!jðt %)Ø?Cðq	ð" Ø%)ð 15ñ+q	Ø
ðq	àðq	ð ðq	ð  ð	q	ð
 ðq	ð ðq	ð ðq	ð ðq	ð #ðq	ð ðq	ð #ðq	ð *ðq	ð "ðq	ð =ðq	ð  ð!q	ð" ð#q	ð$ #ð%q	ð* .ð+q	ð, ô-q	÷hM$ò M$ðf &*Ø"&ð		Øð	àð	ð #ð	ð  ð		ð
 ô	ô?ô@?ô	!˜6Ÿ?š?õ 	!÷pò pðf/Ø"ð/Ø+0ð/àõ/øðwG ò Ø	ƒBðús   ÈT= Ô=UÕU