Ë
    ÃÓ^j@s ã                  óÎ  — 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m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%Z%ddl&Z%ddl'Z%dd
l(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZR ddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ ddl]m^Z^ ddl_m`Z` ddlambZbmcZc ddldmeZe ddlfmgZg ddlhmiZimjZjmkZkmlZlmmZm ddlnmoZp ddlqmrZr ddlsmtZtmuZu ddlvmwZw ddlxmyZymzZzm{Z{ ddl|m}Z} ddl~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒm�Z�mŽZŽm�Z�m�Z�m‘Z‘m’Z’m“Z“m”Z”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœm�Z�mžZžmŸZŸm Z m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZªm«Z« ddlm¬Z¬m­Z­m®Z®m¯Z¯m°Z°m±Z±m²Z² ddl³m´Z´mµZµm¶Z¶m·Z·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Ä erddlÅmÆZÆ dZÇd eÈd!<    eÉ e�j”                  «       «      ZË	 ddlÌZÍer$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Ø dd&lÙmÚZÚ  e#d'«      ZÛ e�j¸                  eÝ«      ZÞe%�j¾                  �jÁ                  eÝd(«      Záe%�j¾                  �jÁ                  eÝd)«      Zâe%�j¾                  �jÁ                  eÝd*«      Zãe%�j¾                  �jÁ                  eÝd+«      Zäd,ZådŽd-„Zæ G d.„ d/e^«      Zç G d0„ d1«      Zèd�d2„Zée�jÔ                  d�d3„«       Zëdaìd4eÈd5<   d‘d6„Zíd’d7„Zîe%�jÞ                  �jà                  �jâ                  Zñd“d8„Zòd”d:„Zó	 d•	 	 	 	 	 	 	 d–d;„Zôd—d<„Zõd˜d=„Zöd™d>„Z÷	 	 	 	 	 	 	 	 	 	 	 	 	 	 dšd?„Zød›d@„ZùdœdA„Zúd�dB„ZûdždC„Zü e�jú                  dD¬E«       G dF„ dG«      «       Zþ	 	 	 	 	 	 	 	 	 	 	 	 dŸdI„Zÿd dJ„�Z e�jú                   G dK„ dL«      «       �Z G dM„ dHe�j                  «      �Ze�jÔ                  d¡dN„«       �Z G dO„ dPe«      �Z �e«       �Zd¢dQ„�Zd£dR„�Z	d¤dS„�Z
d¥dT„�Zd¦dU„�Zd¥dV„�Zd¦dW„�Zd¥dX„�Zd¦dY„�Zd§dZ„�Zd[„ �Zd\„ �Z G d]„ d^«      �Zd_„ �Z G d`„ daeX«      �Z G db„ dc«      �Zd dd„�Z G de„ dfeè«      �Ze�jú                   G dg„ dh«      «       �Ze�jú                   G di„ dj«      «       �Z G dk„ dl«      �Ze�jÔ                  d¨dm„«       �Z G dn„ doe�j<                  «      �Zd©dp„�Z 	 	 	 	 	 	 dªdq„�Z! G dr„ ds«      �Z"d«dt„�Z#d¬du„�Z$d¬dv„�Z%	 	 	 	 d­dw„�Z& e"dx�e'�e(�ef   «      �Z)	 	 	 	 	 	 d®dy„�Z*d¯dz„�Z+	 	 	 	 d°d{„�Z,d±d|„�Z-	 	 	 	 	 	 	 	 	 	 d²d}„�Z.	 d³	 	 	 	 	 	 	 	 	 	 	 	 	 d´d~„�Z/	 d³	 	 	 	 	 	 	 	 	 dµd„�Z0	 	 	 	 d¶d€„�Z1	 	 	 	 	 	 	 	 	 	 	 	 d·d�„�Z2 e}�e2«       d¸d‚„�Z3	 	 	 	 	 	 d¹dƒ„�Z4dd„œdºd…„�Z5 �e6�e«      D � �ci c]"  }  �e7 �e7�e| «      d†d«      x�a8	 �| �tp        “Œ$ c}} �Z9d‡eÈdˆ<    �e6�e«      D ���cg c]“  }|d   �ju                  «       r}|�jw                  d‰«      sk �e< �e7�e|d«      x�a=«      rU �e> �e? e
�j€                  �tz        «      �j‚                  «      x�aB«      dŠk\  r�t„        d   d9k(  r �eC�tz        d†«      s|‘Œ• c}}}�ZD�eDr �eEd‹dŒ�j�                  �eD«      › d��«      ‚y# eÎ$ r dZÍY �Œ¸w xY wc c}} w c c}}}w )»aî  
Core guard system for Dynamo that detects when compiled code needs to be recompiled due to
changes in program state. Guards are conditions that must remain true for previously-compiled
code to be valid for reuse.

This module provides the infrastructure for creating, managing and checking guards, including:
- Guard creation and composition
- Guard state management and invalidation
- Guard checking and failure handling
- Utilities for guard optimization and debugging
- Integration with Dynamo's compilation caching

The guard system is critical for Dynamo's ability to efficiently reuse compiled code while
maintaining correctness by detecting when recompilation is necessary due to changes in
program state, tensor properties, or control flow.
é    )ÚannotationsN)Úcontextmanager©Údeepcopy)Úcurrentframe)ÚAnyÚ
NamedTupleÚNoReturnÚTYPE_CHECKING)ÚLiteralStringÚTypeAliasTypeÚTypeVar)ÚReferenceType)Úcode_framelocals_names)Úcheck_obj_idÚcheck_type_idÚClosureGuardAccessorÚCodeGuardAccessorÚdict_versionÚDictGetItemGuardAccessorÚDictGuardManagerÚFuncDefaultsGuardAccessorÚFuncKwDefaultsGuardAccessorÚGetAttrGuardAccessorÚGetGenericDictGuardAccessorÚGuardAccessorÚGuardDebugInfoÚGuardManagerÚ install_no_tensor_aliasing_guardÚinstall_object_aliasing_guardÚ!install_storage_overlapping_guardÚinstall_symbolic_shape_guardÚ	LeafGuardÚprofile_guard_managerÚRelationalGuardÚRootGuardManagerÚTupleGetItemGuardAccessorÚTypeDictGuardAccessorÚTypeGuardAccessorÚTypeMROGuardAccessor)
Úget_global_source_nameÚget_local_source_nameÚIndexedSourceÚ$is_from_flatten_script_object_sourceÚis_from_local_sourceÚis_from_optimizer_sourceÚis_from_skip_guard_sourceÚ.is_from_unspecialized_builtin_nn_module_sourceÚTensorPropertyÚTensorPropertySource)ÚCompileEventLoggerÚget_metrics_context)	ÚCompileContextÚ	CompileIdÚDuplicateInputsÚGuardÚGuardBuilderBaseÚGuardEnvExprÚGuardSourceÚSourceÚStorageOverlap©ÚIndentedBuffer)ÚFakeScriptObject)Úget_opaque_obj_infoÚis_opaque_value_type)Ú
structured)Újustknobs_check)Ú_CppShapeGuardsHelperÚ_ShapeGuardsHelperÚEqualityConstraintÚis_symbolicÚSYMPY_INTERP)Ú_pytree)Ú
OrderedSet)Úformat_frameÚreport_compile_source_on_error)ÚTensorWeakRefé   )ÚconfigÚconvert_frameÚexc)Úset_guard_error_hook)-ÚAttrProxySourceÚ
AttrSourceÚCallFunctionNoArgsSourceÚCallMethodItemSourceÚCellContentsSourceÚChainedSourceÚClosureSourceÚ
CodeSourceÚConstantSourceÚConstDictKeySourceÚCurrentStreamSourceÚDataclassFieldsSourceÚDefaultsSourceÚDictGetItemSourceÚDictSubclassGetItemSourceÚDynamicScalarSourceÚFlattenScriptObjectSourceÚFloatTensorSourceÚFSDPNNModuleSourceÚGenericAttrSourceÚGetItemSourceÚGlobalSourceÚGlobalStateSourceÚGlobalWeakRefSourceÚ
GradSourceÚImportSourceÚListGetItemSourceÚLocalSourceÚNamedTupleFieldsSourceÚNNModuleSourceÚNonSerializableSetGetItemSourceÚNumpyTensorSourceÚOptimizerSourceÚScriptObjectQualifiedNameSourceÚShapeEnvSourceÚSubclassAttrListSourceÚTorchFunctionModeStackSourceÚTupleIteratorGetItemSourceÚTypeDictSourceÚTypeMROSourceÚ
TypeSourceÚ"UnspecializedBuiltinNNModuleSourceÚUnspecializedNNModuleSourceÚUnspecializedParamBufferSourceÚWeakRefCallSource)Ú
CacheEntryÚDynamoFrameTypeÚ
ExtraStateÚGuardedCodeÚ	GuardFailÚGuardFilterEntryÚGuardFn)Úbuiltin_dict_keysÚcommon_constant_typesÚdataclass_fieldsÚ	dict_keysÚget_current_streamÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_count_iterÚnormalize_range_iterÚorig_code_mapÚtuple_iterator_getitemÚtuple_iterator_lenÚverify_guard_fn_signature)ÚCallablez%Callable[[Any, Any, Any], Any] | NoneÚguard_manager_testing_hook_fn)Ú	GeneratorÚKeysViewÚSequence)ÚSymbol)ÚDispatchKeySet)ÚOutputGraphCommonÚOutputGraphGuardsState©ÚSerializedCodeÚTÚguardsÚ
recompilesÚrecompiles_verboseÚverbose_guards)Ú__defaults__Ú__kwdefaults__Ú__code__Ú__closure__Ú__annotations__Ú__func__Ú__mro__c                ó\   — t        | «      }t        |«      |j                  |«      z
  dz
  }|S ©NrQ   )Ú&code_framelocals_names_reversed_cachedÚlenÚindex)ÚcodeÚvar_nameÚframelocals_names_reversedÚframelocals_idxs       ú_/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/guards.pyÚget_framelocals_idxr¼   ñ   s=   € ô "HÈÓ!MÐäÐ&Ó'Ð*D×*JÑ*JÈ8Ó*TÑTÐWXÑXð ð Ðó    c                  ó*   ‡ — e Zd Zdd„Zddˆ fd„Zˆ xZS )ÚIndentedBufferWithPrefixc                ó:   — d| j                   | j                  z  z  S )Nz| )Ú_indentÚtabwidth©Úselfs    r»   ÚprefixzIndentedBufferWithPrefix.prefix   s   € Ø�t—|‘| d§m¡mÑ3Ñ4Ð4r½   c                óN   •— |rt         ‰| �  |«       y t         ‰| �  d|z   «       y )Nz+- )ÚsuperÚ	writeline)rÄ   ÚlineÚskip_prefixÚ	__class__s      €r»   rÈ   z"IndentedBufferWithPrefix.writeline  s$   ø€ ÙÜ‰GÑ˜dÕ#ä‰GÑ˜e d™lÕ+r½   ©ÚreturnÚstr©F)rÉ   rÎ   rÊ   ÚboolrÍ   ÚNone)Ú__name__Ú
__module__Ú__qualname__rÅ   rÈ   Ú__classcell__©rË   s   @r»   r¿   r¿   ÿ   s   ø„ ó5÷,ò ,r½   r¿   c                  óÊ   — e Zd ZdZddd„Zedd„«       Zdd„Zdd„Zdd„Z	dd„Z
dd	„Z	 	 	 	 dd
„Zdd„Z	 d	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zy) ÚGuardManagerWrappera  
    A helper class that contains the root guard manager. An instance of this
    class is stored in the Dynamo cache entry, so that the cache entry can
    access the RootGuardManager stored in the "root" attribute and directly call
    the check_nopybind from C++.
    Nc                ó  — |€t        «       | _        n|| _        d | _        d | _        d | _        g | _        d | _        d | _        d | _        d | _	        d | _
        i | _        g | _        t        «       | _        t        «       | _        y ©N)r&   ÚrootÚdiff_guard_rootÚclosure_varsÚargsÚ
code_partsÚverbose_code_partsÚglobal_scopeÚguard_fail_fnÚcache_entryÚextra_stateÚid_matched_objsÚno_tensor_aliasing_sourcesÚsetÚprinted_relational_guardsrM   Údiff_guard_sources)rÄ   rÛ   s     r»   Ú__init__zGuardManagerWrapper.__init__  s‚   € Øˆ<Ü(Ó*ˆD�IàˆDŒIà8<ˆÔØ37ˆÔØ&*ˆŒ	Ø%'ˆŒØ48ˆÔØ37ˆÔØAEˆÔØ.2ˆÔØ.2ˆÔØACˆÔØ57ˆÔ'ä?B»uˆÔ&ä3=³<ˆÕr½   c              #  óz   K  — t        «       | _        	 d –— t        «       | _        y # t        «       | _        w xY w­wrÚ   )rç   rè   rÃ   s    r»   Ú#_preserve_printed_relational_guardsz7GuardManagerWrapper._preserve_printed_relational_guards(  s,   è ø€ ä),«ˆÔ&ð	3Ûä-0«UˆDÕ*ø¬S«UˆDÕ*üs   ‚;“' —;§8¸;c                óp   ‡ ‡‡‡— dˆ ˆfd„Šdˆ ˆfd„Šdˆˆfd„Š ‰‰ j                   «       ‰ j                  S )Nc                óL  •— | j                  «       ‰j                  v xs | j                  «       dkD  }t        | j	                  «       j                  «       «      D ]  \  }\  }}| ‰|«       ‰|«      z  z  }Œ |r)‰j                  j                  | j                  «       «       |S ©Nr   )Ú
get_sourceré   Ú
fail_countÚsortedÚget_key_value_managersÚitemsÚadd)ÚnodeÚis_diff_guard_nodeÚ_idxÚkey_mgrÚval_mgrrÄ   Úvisits        €€r»   Úvisit_dict_managerzJGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_dict_manager;  s¦   ø€ à—‘Ó! T×%<Ñ%<Ð<ÒUÀÇÁÓ@QÐTUÑ@Uð ô -3Ø×+Ñ+Ó-×3Ñ3Ó5ó-ò FÑ(�Ñ(�w ð #¡e¨G£n±u¸W³~Ñ&EÑEÑ"ðFñ
 "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r½   c                óN  •— t        | t        «      rt        dt        | «      › �«      ‚| j	                  «       ‰j
                  v xs | j                  «       dkD  }| j                  «       D ]  }| ‰|«      z  }Œ |r)‰j
                  j                  | j	                  «       «       |S )Nú(Expected non-DictGuardManager node, got r   )	Ú
isinstancer   ÚAssertionErrorÚtyperð   ré   rñ   Úget_child_managersrõ   )rö   r÷   Ú	child_mgrrÄ   rû   s      €€r»   Úvisit_managerzEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerI  s§   ø€ Ü˜$Ô 0Ô1Ü$Ø>¼tÀD»z¸lÐKóð ð
 —‘Ó! T×%<Ñ%<Ð<ÒUÀÇÁÓ@QÐTUÑ@Uð ð "×4Ñ4Ó6ò 7�	Ø"¡e¨IÓ&6Ñ6Ñ"ð7ñ "Ø×'Ñ'×+Ñ+¨D¯O©OÓ,=Ô>à%Ð%r½   c                óJ   •— | €yt        | t        «      r ‰| «      S  ‰| «      S ©NF©rÿ   r   ©rö   rü   r  s    €€r»   rû   z=GuardManagerWrapper.collect_diff_guard_sources.<locals>.visitZ  s,   ø€ Øˆ|ØÜ˜$Ô 0Ô1Ù)¨$Ó/Ð/Ù  Ó&Ð&r½   )rö   r   rÍ   rÐ   )rö   r   rÍ   rÐ   )rÛ   ré   )rÄ   rû   rü   r  s   `@@@r»   Úcollect_diff_guard_sourcesz.GuardManagerWrapper.collect_diff_guard_sources1  s,   û€ ö	&ö	&ö"	'ñ 	ˆd�i‰iÔà×&Ñ&Ð&r½   c                óz   — t         j                  rt        d«      r| j                  «        | j	                  «        y )Nz3pytorch/compiler:use_recursive_dict_tags_for_guards)rR   Ú"use_recursive_dict_tags_for_guardsrF   Úfind_tag_safe_rootsÚprepare_diff_guard_managerrÃ   s    r»   ÚfinalizezGuardManagerWrapper.finalizee  s/   € Ü×4Ò4¼ØAô:
ð ×$Ñ$Ô&Ø×'Ñ'Õ)r½   c                óD   — | j                  «        | j                  «        y rÚ   )r	  Úpopulate_diff_guard_managerrÃ   s    r»   r  z.GuardManagerWrapper.prepare_diff_guard_managerl  s   € Ø×'Ñ'Ô)Ø×(Ñ(Õ*r½   c                ó   ‡‡‡‡— 	 	 	 	 	 	 dd„Šdˆfd„Šdˆˆfd„Šdˆˆfd„Š ‰| j                   «      }|D ]E  }t        |j                  «       t        j                  j
                  «      sŒ6|j                  «        ŒG y)	uB  
        Identify ``tag safe nodes`` and ``tag safe roots`` within a guard tree.

        -----------------------------------------------------------------------
        tag safe node
        -----------------------------------------------------------------------
        A *tag safe node* is a ``GuardManager`` whose guarded value satisfies one
        of the following conditions:

        1. Immutable value - The value is intrinsically immutable according to
        ``is_immutable_object``. Tensors are considered immutable. To ensure
        that symbolic guards run, we also check that the GuardManager has no
        accessors.

        2. Nested tag safe dictionary - The value is a ``dict`` whose keys and
        values are all tag safe nodes  (checked recursively).  Such dictionaries
        allow entire nested structures to be skipped once their identity tag
        matches.

        3. Pure ``nn.Module`` - The value is an ``nn.Module`` whose sole
        accessor is ``GetGenericDictGuardAccessor``â€”i.e., it only exposes its
        ``__dict__`` and nothing else that could mutate between runs.

        For every tag safe node, verifying the identity/tag of just the top-level
        dictionary is enough to guarantee the entire subtree is unchanged, enabling
        a *fast-path* guard check.

        -----------------------------------------------------------------------
        tag safe root
        -----------------------------------------------------------------------
        A ``tag safe root`` is a tag safe node whose parent is not tag safe.
        These boundary nodes mark the points where guard evaluation can safely
        prune traversal: if a tag-safe root's dictionary tag matches, the entire
        subtree beneath it is skipped.

        One strong requirement for tag safe root is for the guarded object to
        support weakref. Refer to more details in the Recursive dict tag
        matching note. In short, we need to save the weakref of the object on
        first invocation, and check if it is still valid in later iterations, to
        apply recursive dict tag optimizations. `dict` objects do NOT support
        weakref. Therefore, as of now, we only mark nn module related guard
        managers as tag safe roots.

        Algorithm
        ---------
        The search runs in post-order traversal

        1. Visit leaves and classify them as tag safe or not.
        2. Propagate tag-safety upward: a parent dictionary becomes tag safe only if
        all of its children are already tag-safe.
        3. Propagate tag-safe-rootness upward: if the whole subtree is tag safe,
        the current node becomes the new tag safe root, otherwise propagate the
        subtree tag safe roots.
        4. Collect every tag safe node and, by inspecting parent tags, label the
        subset that are tag safe roots.
        c                ó€   ‡— | j                  «       }| j                  «       }t        ˆfd„t        ||«      D «       «      S )Nc              3  ó`   •K  — | ]%  \  }}t        |‰«      xr |j                  «       –— Œ' y ­wrÚ   )rÿ   Úis_tag_safe)Ú.0ÚaccessorÚmgrÚaccepted_accessorss      €r»   ú	<genexpr>zTGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safety.<locals>.<genexpr>¯  s4   øè ø€ ò á!�H˜cô ˜8Ð%7Ó8ÒN¸S¿_¹_Ó=NÓNñùs   ƒ+.)Úget_accessorsr  ÚallÚzip)rö   r  Ú	accessorsÚ
child_mgrss    `  r»   Úcheck_tag_safetyzAGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safetyª  sB   ø€ ð ×*Ñ*Ó,ˆIØ×0Ñ0Ó2ˆJÜó ä%(¨°JÓ%?ôó ð r½   c                óö  •— t        | j                  «       t        «      st        d| j                  «       › �«      ‚g }d}t	        | j                  «       j                  «       «      D ],  \  }\  }}|� ‰|«       |€Œ|j                   ‰|«      «       Œ. | j                  «       j                  «       D ]0  \  }}|r||j                  «       z  }|sŒ||j                  «       z  }Œ2 |r| j                  «        |S )NzExpected dict subclass, got T)Ú
issubclassÚget_type_of_guarded_valueÚdictr   rò   ró   rô   ÚextendÚvaluesr  Úmark_tag_safe)rö   Útag_safe_rootsÚis_subtree_tag_saferø   rù   rú   rû   s         €r»   rü   zCGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_dict_manager´  s  ø€ ô ˜d×<Ñ<Ó>ÄÔEÜ$Ø2°4×3QÑ3QÓ3SÐ2TÐUóð ð  ˆNØ"&Ðô -3Ø×+Ñ+Ó-×3Ñ3Ó5ó-ò :Ñ(�Ñ(�w ð Ð&Ù˜'”NØÑ&Ø"×)Ñ)©%°«.Õ9ð:ð %)×$?Ñ$?Ó$A×$HÑ$HÓ$Jò AÑ �˜ÙØ'¨7×+>Ñ+>Ó+@Ñ@Ð'âØ'¨7×+>Ñ+>Ó+@Ñ@Ñ'ðAñ #Ø×"Ñ"Ô$Ø!Ð!r½   c                óH  •— t        | t        «      rt        dt        | «      › �«      ‚g }| j	                  «       D ]  }|j                   ‰|«      «       Œ | j                  «       r�t        | j                  «       t        j                  «      r2| j                  «       rU| j                  «       sE| j                  «        |S t        d„ | j                  «       D «       «      r	 |S | j                  «        |S t        | j                  «       t         «      rP| j                  «       }| j	                  «       }t#        d„ t%        ||«      D «       «      }|r| j                  «        |S t        | j                  «       t        j&                  j(                  «      r* ‰| t*        t,        f«      }|r| j                  «        | gS |S | j                  «       t.        j0                  t.        j2                  t4        t6        fv r…t8        j:                  ru ‰| t<        t>        t@        tB        tD        f«      }| j                  «       D ],  }t        |tD        «      sŒ||jG                  «       tH        v z  }Œ. |r| j                  «        |S t        | j                  «       t.        jJ                  «      rE ‰| tD        f«      }|t#        d„ | j                  «       D «       «      z  }|r| j                  «        |S t        | j                  «       tL        «      rU| jO                  «       jQ                  tH        «      r2t8        j:                  r" ‰| tR        f«      }|r| j                  «        |S t        | j                  «       t        «      r% ‰| tT        tV        f«      }|r| j                  «        |S )Nrþ   c              3  óB   K  — | ]  }|j                  «       d k(  –— Œ y­w)ÚPythonLambdaGuardAccessorN)Úrepr)r  Úas     r»   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>å  s$   è ø€ ò àð —F‘F“HÐ ;Õ;ñùs   ‚c              3  óf   K  — | ])  \  }}t        |t        «      xr |j                  «       –— Œ+ y ­wrÚ   )rÿ   r   r  )r  r  r  s      r»   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>ó  s3   è ø€ ò *á%˜ #ô ˜xÔ)AÓBÒXÀsÇÁÓGXÓXñ*ùó   ‚/1c              3  óf   K  — | ])  }t        |t        «      xr |j                  «       d k(  –— Œ+ y­w)Úcell_contentsN)rÿ   r   Úget_attr_name)r  r  s     r»   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>*  s?   è ø€ ò +ð !ô ˜xÔ)=Ó>ò DØ ×.Ñ.Ó0°OÑCóDñ+ùr/  ),rÿ   r   r   r  r  r$  Úis_guarded_value_immutabler!  r"  ÚtorchÚTensorÚhas_no_accessorsÚhas_object_aliasing_guardr&  Úanyr  r#  r  r  ÚnnÚModuler   r)   ÚtypesÚFunctionTypeÚ
MethodTypeÚstaticmethodÚclassmethodrR   Ú)assume_dunder_attributes_remain_unchangedr   r   r   r   r   r2  Údunder_attrs_assumed_constantsÚCellTypeÚtuplerð   Úendswithr'   r(   r*   )	rö   r'  r  r  r  r(  r  r  rû   s	          €€r»   r  z>GuardManagerWrapper.find_tag_safe_roots.<locals>.visit_managerÓ  sŽ  ø€ Ü˜$Ô 0Ô1Ü$Ø>¼tÀD»z¸lÐKóð ð
  ˆNØ!×4Ñ4Ó6ò 8�	Ø×%Ñ%¡e¨IÓ&6Õ7ð8ð ×.Ñ.Ô0ô ˜d×<Ñ<Ó>ÄÇÁÔMØ×,Ñ,Ô.°t×7UÑ7UÔ7WØ×*Ñ*Ô,ðN "Ð!ôM ñ à!×/Ñ/Ó1ôô ð ð| "Ð!ðy ×&Ñ&Ô(ðx "Ð!ôw ˜D×:Ñ:Ó<¼dÔCØ ×.Ñ.Ó0�	Ø!×4Ñ4Ó6�
Ü&)ñ *ä),¨Y¸
Ó)Cô*ó 'Ð#ñ 'Ø×&Ñ&Ô(ðf "Ð!ôe ˜D×:Ñ:Ó<¼e¿h¹h¿o¹oÔNÙ&6ØÔ6Ô8IÐJó'Ð#ñ 'Ø×&Ñ&Ô(ð ðð ðT "Ð!ðM ×.Ñ.Ó0ä×&Ñ&Ü×$Ñ$Ü Üð	ñô ×DÒDñ '7Øä)Ü,Ü1Ü3Ü,ðó	'Ð#ð !%× 2Ñ 2Ó 4ò �HÜ! (Ô,@ÕAØ+Ø$×2Ñ2Ó4Ô8VÐVñÑ+ðñ 'Ø×&Ñ&Ô(ðJ "Ð!ôI ˜D×:Ñ:Ó<¼e¿n¹nÔMÙ&6°tÔ>RÐ=TÓ&UÐ#à#¤sñ +ð %)×$6Ñ$6Ó$8ô+ó (ñ Ð#ñ
 'Ø×&Ñ&Ô(ð6 "Ð!ô3 ˜4×9Ñ9Ó;¼UÔCØ—O‘OÓ%×.Ñ.Ô/MÔNÜ×DÒDñ '7ØÔ4Ð6ó'Ð#ñ 'Ø×&Ñ&Ô(ð "Ð!ô ˜D×:Ñ:Ó<¼dÔCÙ&6ØÔ0Ô2FÐGó'Ð#ñ 'Ø×&Ñ&Ô(à!Ð!r½   c                óL   •— | €g S t        | t        «      r ‰| «      S  ‰| «      S rÚ   r  r  s    €€r»   rû   z6GuardManagerWrapper.find_tag_safe_roots.<locals>.visitM  s.   ø€ Øˆ|Ø�	Ü˜$Ô 0Ô1Ù)¨$Ó/Ð/Ù  Ó&Ð&r½   N)rö   r   r  ztuple[type[GuardAccessor], ...]rÍ   rÐ   )rö   r   rÍ   úlist[GuardManager])rö   r   rÍ   rF  )rÛ   r!  r"  r4  r9  r:  Úmark_tag_safe_root)rÄ   r'  rö   r  rû   rü   r  s      @@@@r»   r  z'GuardManagerWrapper.find_tag_safe_rootsp  sx   û€ ðt	Øð	Ø4Sð	àó	õ	"ö>x	"öt	'ñ ˜tŸy™yÓ)ˆØ"ò 	*ˆDÜ˜$×8Ñ8Ó:¼E¿H¹H¿O¹OÕLØ×'Ñ'Õ)ñ	*r½   c                ó’   — | j                  | j                  «      | _        | j                  r| j                  j	                  «        y y rÚ   )Úclone_with_chosen_sourcesré   rÜ   rã   Úupdate_diff_guard_root_managerrÃ   s    r»   r  z/GuardManagerWrapper.populate_diff_guard_managerY  s=   € Ø#×=Ñ=¸d×>UÑ>UÓVˆÔð ×ÒØ×Ñ×;Ñ;Õ=ð r½   c                óF   ‡— dˆfd„}| j                   j                  |«      S )Nc                ó(   •— | j                  «       ‰v S rÚ   )rð   )Únode_mgrÚchosen_sourcess    €r»   Ú	filter_fnz@GuardManagerWrapper.clone_with_chosen_sources.<locals>.filter_fni  s   ø€ Ø×&Ñ&Ó(¨NÐ:Ð:r½   )rM  r   rÍ   rÐ   )rÛ   Úclone_manager)rÄ   rN  rO  s    ` r»   rI  z-GuardManagerWrapper.clone_with_chosen_sourcesf  s   ø€ õ	;ð �y‰y×&Ñ& yÓ1Ð1r½   c                ó†   — |j                   j                  }|j                  «       }|D �cg c]
  }|dz   |z   ‘Œ }}|S c c}w )Nú: )rË   rÒ   rà   )rÄ   ÚguardÚ
guard_nameÚpartsÚparts        r»   Úget_guard_linesz#GuardManagerWrapper.get_guard_linesn  sF   € Ø—_‘_×-Ñ-ˆ
Ø×(Ñ(Ó*ˆØ6;Ö<¨d�˜dÑ" TÓ)Ð<ˆÐ<Øˆùò =s   «>c                óò   — |j                  «       }|j                  j                  }|dz   |z   }|r|d|z   z  }|d|j                  «       › �z  }|d|j	                  «       › d|j                  «       › d�z  }|S )Nz	: source=ú, z, type=z, tag_safe=(ú))rð   rË   rÒ   r"  r  Úis_tag_safe_root)rÄ   Úguard_managerÚaccessor_strÚsourceÚtÚss         r»   Úget_manager_linez$GuardManagerWrapper.get_manager_linet  s‘   € ð ×)Ñ)Ó+ˆØ×#Ñ#×,Ñ,ˆØ�‰O˜fÑ$ˆÙØ�˜Ñ$Ñ$ˆAØ	ˆw�}×>Ñ>Ó@ÐAÐBÑBˆØ	ˆ|˜M×5Ñ5Ó7Ð8¸¸=×;YÑ;YÓ;[Ð:\Ð\]Ð^Ñ^ˆØˆr½   c                ó¶  — t        |j                  «       j                  «       «      D ]£  \  }\  }}|j                  d|› �«       |j	                  «       5  |r5|j                  d| j                  |«      › �«       | j                  ||«       |r5|j                  d| j                  |«      › �«       | j                  ||«       d d d «       Œ¥ y # 1 sw Y   Œ°xY w)NzKeyValueManager pair at index=zKeyManager: zValueManager: )rò   ró   rô   rÈ   Úindentra  Úconstruct_manager_string)rÄ   r  ÚbodyÚidxrù   rú   s         r»   Úconstruct_dict_manager_stringz1GuardManagerWrapper.construct_dict_manager_string€  sÖ   € ô (.¨c×.HÑ.HÓ.J×.PÑ.PÓ.RÓ'Sò 		AÑ#ˆCÑ#�'˜7Ø�N‰NÐ;¸C¸5ÐAÔBØ—‘“ñ AÙØ—N‘N \°$×2GÑ2GÈÓ2PÐ1QÐ#RÔSØ×1Ñ1°'¸4Ô@áØ—N‘N ^°D×4IÑ4IÈ'Ó4RÐ3SÐ#TÔUØ×1Ñ1°'¸4Ô@÷Að Añ		A÷Að Aús   ÁA/CÃC	c           
     óè  — |j                  «       5  |j                  «       D ]£  }t        |t        «      rq|| j                  vr<| j                  j                  |«       |j                  | j                  |«      «       Œ]|j                  |j                  j                  g«       Œ„|j                  | j                  |«      «       Œ¥ t        |t        «      r| j                  ||«       t        |j                  «       |j                  «       «      D ]I  \  }}|j                  | j!                  |d|j#                  «       › �«      «       | j%                  ||«       ŒK 	 d d d «       y # 1 sw Y   y xY w)Nzaccessed_by=)rc  Úget_leaf_guardsrÿ   r%   rè   rõ   Ú
writelinesrW  rË   rÒ   r   rg  r  r  r  rÈ   ra  r,  rd  )rÄ   r  re  rS  r  r  s         r»   rd  z,GuardManagerWrapper.construct_manager_stringŽ  sC  € ð �[‰[‹]ñ 	?Ø×,Ñ,Ó.ò A�Ü˜e¤_Ô5Ø D×$BÑ$BÑBØ×6Ñ6×:Ñ:¸5ÔAàŸ™¨×(<Ñ(<¸UÓ(CÕDàŸ™à %§¡× 8Ñ 8ðõð —O‘O D×$8Ñ$8¸Ó$?Õ@ðAô  ˜#Ô/Ô0Ø×2Ñ2°3¸Ô=ô (+Ø×!Ñ!Ó# S×%;Ñ%;Ó%=ó(ò ?Ñ#�˜)ð —‘Ø×)Ñ)¨)°|ÀHÇMÁMÃOÐCTÐ5UÓVôð ×-Ñ-¨i¸Õ>ñ?÷+	?÷ 	?ñ 	?ús   ‘EE(Å(E1c                óà  — | j                  «       5  t        «       }d|_        |j                  dd¬«       |j                  dd¬«       |j                  d«       | j	                  | j
                  |«       t        | j
                  d«      r?| j
                  j                  «       D ]"  }|j                  | j                  |«      «       Œ$ |j                  «       cd d d «       S # 1 sw Y   y xY w)NrQ   Ú T)rÊ   zTREE_GUARD_MANAGER:r&   Úget_epilogue_lambda_guards)rì   r¿   rÂ   rÈ   rd  rÛ   Úhasattrrm  rj  rW  Úgetvalue)rÄ   re  rS  s      r»   Ú__str__zGuardManagerWrapper.__str__®  sÁ   € Ø×5Ñ5Ó7ñ 
	#Ü+Ó-ˆDØˆDŒMØ�N‰N˜2¨4ˆNÔ0Ø�N‰NÐ0¸dˆNÔCØ�N‰NÐ-Ô.Ø×)Ñ)¨$¯)©)°TÔ:Ü�t—y‘yÐ">Ô?Ø!ŸY™Y×AÑAÓCò A�EØ—O‘O D×$8Ñ$8¸Ó$?Õ@ðAà—=‘=“?÷
	#÷ 
	#ò 
	#ús   ‘C	C$Ã$C-c                ó8   — | j                   j                  |«      S rÚ   )rÛ   Úcheck©rÄ   Úxs     r»   rr  zGuardManagerWrapper.check»  s   € à�y‰y�‰˜qÓ!Ð!r½   c                ó8   — | j                   j                  |«      S rÚ   )rÛ   Úcheck_verbosers  s     r»   rv  z!GuardManagerWrapper.check_verbose¿  s   € à�y‰y×&Ñ& qÓ)Ð)r½   c                ó^   ‡ ‡‡‡— t        «       Šdd„Šdˆˆˆ ˆfd„Š ‰‰ j                  «       y )Nc                óš   — g }| j                  «       D ]5  }|j                  d«      d   j                  «       }|j                  |«       Œ7 |S )Nú#r   )rà   ÚsplitÚrstripÚappend)Ú
leaf_guardrß   Úverbose_code_partÚ	code_parts       r»   Úget_code_partszMGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.get_code_partsÇ  sT   € ØˆJØ%/×%BÑ%BÓ%Dò -Ð!Ø-×3Ñ3°CÓ8¸Ñ;×BÑBÓD�	Ø×!Ñ! )Õ,ð-ð Ðr½   c                ó<  •— | j                  «       D ]k  }t        |t        «      r8|‰vsŒ‰j                  j	                   ‰|«      «       ‰j                  |«       ŒK‰j                  j	                   ‰|«      «       Œm | j                  «       D ]
  } ‰|«       Œ y rÚ   )ri  rÿ   r%   rß   r$  rõ   r  )r  rS  r  r€  Úrelational_guards_seenrÄ   rû   s      €€€€r»   rû   zDGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.visitÎ  sŽ   ø€ à×,Ñ,Ó.ò B�Ü˜e¤_Ô5ØÐ$:Ò:ØŸ™×.Ñ.©~¸eÓ/DÔEØ.×2Ñ2°5Õ9à—O‘O×*Ñ*©>¸%Ó+@ÕAðBð !×3Ñ3Ó5ò !�	Ù�iÕ ñ!r½   )r}  r#   rÍ   ú	list[str])r  r   rÍ   rÑ   )rç   rÛ   )rÄ   r€  r‚  rû   s   `@@@r»   Ú!populate_code_parts_for_debuggingz5GuardManagerWrapper.populate_code_parts_for_debuggingÃ  s(   û€ ä!$£Ðó	÷	!ð 	!ñ 	ˆd�i‰iÕr½   rÚ   )rÛ   zRootGuardManager | NonerÍ   rÑ   )rÍ   zGenerator[None, None, None])rÍ   úOrderedSet[str]©rÍ   rÑ   )rN  r…  rÍ   r&   )rS  r#   rÍ   rƒ  )r\  r   r]  ú
str | NonerÍ   rÎ   )r  r   re  r¿   rÍ   rÑ   )r  r   re  r¿   rÍ   rÑ   rÌ   ©rt  r   rÍ   rÐ   )rt  r   rÍ   r   )rÒ   rÓ   rÔ   Ú__doc__rê   r   rì   r	  r  r  r  r  rI  rW  ra  rg  rd  rp  rr  rv  r„  © r½   r»   rØ   rØ   
  sÎ   „ ñô@ð, ò3ó ð3ó2'óh*ó+óg*óR>ð2Ø-ð2à	ó2óð GKð
Ø)ð
Ø9Cð
à	ó
ðAØ#ðAØ+CðAà	óAð?Øð?Ø'?ð?à	ó?ó@#ó"ó*ôr½   rØ   c                óì   — t         j                  j                  «       5  t        | t        j
                  t        j                  f«      rt        j                  | «      n| cd d d «       S # 1 sw Y   y xY wrÚ   )r4  Ú	overridesÚ_enable_torch_functionrÿ   ÚnpÚgenericÚndarrayÚ	as_tensor)r-  s    r»   Ú
from_numpyr’  Þ  sR   € ô 
�‰×	/Ñ	/Ó	1ñ Tä%/°´B·J±JÄÇ
Á
Ð3KÔ%LŒu�‰˜qÔ!ÐRS÷T÷ Tò Tús   ŸAA*Á*A3c                 óè   — dd l } dd l} | j                  j                  | j                  j                  g}ddlm} |j                  |«       |D �ch c]  }t        j                  |«      ’Œ c}S c c}w )Nr   )ÚPOLYFILLED_MODULES)
Útorch._dynamo.external_utilsÚtorch._dynamo.polyfillsÚ_dynamoÚexternal_utilsÚ	polyfillsÚtorch._dynamo.polyfills.loaderr”  r$  ÚinspectÚgetfile)r4  Úmodsr”  Úms       r»   Úuninteresting_filesrŸ  è  sU   € ã'Û"à�M‰M×(Ñ(¨%¯-©-×*AÑ*AÐB€DåAð 	‡K�KÐ"Ô#à(,Ö- 1ŒG�O‰O˜AÕÒ-Ð-ùÒ-s   ÁA/údict[str, object] | NoneÚ_CLOSURE_VARSc            	     ó  — t         �€ i dt        “dt        “dt        j                  j
                  “dt        “dt        “dd„ “dt        “d	t        “d
t        “dt        “dt        “dd„ “dt        “dt        “dt        j                   “dt"        €d nt"        j                   “dt%        d«      “t&        j(                  t*        j,                  j.                  t*        j0                  t2        t*        j4                  t*        t6        dœ¥a t         S )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó.   — t         j                  || «      S rÚ   )r#  Ú__contains__)r-  Úbs     r»   ú<lambda>z#_get_closure_vars.<locals>.<lambda>  s   € ¬T×->Ñ->¸qÀ!Ó-D€ r½   Ú___tuple_iterator_lenÚ___normalize_count_iterÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ___dataclass_fieldsÚ___namedtuple_fieldsc                ó   — | j                   S rÚ   ©Ú_fields©rt  s    r»   r¬  z#_get_closure_vars.<locals>.<lambda>	  s
   € ¨a¯i©i€ r½   Ú#___get_torch_function_mode_stack_atÚ___get_current_streamÚ__math_isnanÚ__numpy_isnanÚinf)Ú__load_moduleÚutils_deviceÚdeviceÚ___from_numpyÚ___as_tensorr4  r›  )r¡  r   r   ÚcollectionsÚOrderedDictÚ__getitem__r”   r   r™   r•   r–   r˜   rŒ   r�   rŽ   ÚmathÚisnanrŽ  ÚfloatÚ	importlibÚimport_moduler4  ÚutilsÚ_devicer¾  r’  Ú_as_tensor_fullprecr›  rŠ  r½   r»   Ú_get_closure_varsrÌ  ú  s<  € äÑð
Ø¤ð
àœ|ð
ð ¤× 7Ñ 7× CÑ Cð
ð œIð	
ð
 œ|ð
ð Ñ Dð
ð $Ô%7ð
ð &Ô';ð
ð &Ô';ð
ð (Ô)?ð
ð "Ô#3ð
ð #Ñ$7ð
ð 2Ô3Sð
ð $Ô%7ð
ð œDŸJ™Jð
ð  ¤R Z™T´R·X±Xð!
ð" ”5˜“<ð#
ô$ '×4Ñ4Ü!ŸK™K×/Ñ/Ü—l‘lÜ'Ü!×5Ñ5ÜÜò1
ˆô4 Ðr½   c                óL   — t        j                  | «      j                  dd«      S )Nú
rl  )ÚastÚunparseÚreplace)rö   s    r»   Ú_ast_unparserÒ    s   € Ü�;‰;�tÓ×$Ñ$ T¨2Ó.Ð.r½   c                ó,   — t         j                  | «      S rÚ   )r  Ú__repr__©r_  s    r»   Ú_safe_type_reprrÖ  !  s   € Ü�=‰=˜ÓÐr½   rS  c                ó~  — d}|�³|j                   r_t        |j                   «      D ]F  }|j                  t        «       vsŒdt	        |d¬«      › �}t        |«      dkD  rdt	        |«      › �} nJ nH|j                  r<|j                  j                  «       }t        |«      dkD  rdt	        |d   «      › �}nd}| d	›|› �S )
Nrl  z  # T)rÉ   i   r   éÿÿÿÿz  # <unknown>z<60)Ú
user_stackÚreversedÚfilenamerŸ  rN   rµ   ÚstackÚsummary)r  rS  ÚextraÚfsrÝ  s        r»   Úget_verbose_code_partrà  %  sÊ   € Ø€EØÐØ×ÒÜ˜u×/Ñ/Ó0ò 
�Ø—;‘;Ô&9Ó&;Ò;Ø"¤<°¸Ô#>Ð"?Ð@�EÜ˜5“z DÒ(ð #'¤|°BÓ'7Ð&8Ð 9˜Ùñ
ð �[Š[Ø—k‘k×)Ñ)Ó+ˆGÜ�7‹|˜aÒØœ|¨G°B©KÓ8Ð9Ð:‘à'�Ø˜ˆ_˜U˜GÐ$Ð$r½   c                óè   — t        | t        «      s| g} | D �cg c]  }t        ||«      ‘Œ }}|�"t        |j                  «      }|r|r|› d|› �n|}|r|D �cg c]
  }|› d|› d�‘Œ }}|S c c}w c c}w )NrY  ú (HINT: rZ  )rÿ   Úlistrà  Ú_get_closure_var_hintÚoriginating_source)rß   rS  Úrecompile_hintr  rà   Úclosure_hintrV  s          r»   Úget_verbose_code_partsrè  =  s¯   € ô
 �j¤$Ô'Ø �\ˆ
ð BLöØ4=Ô˜i¨Õ/ðÐð ð ÐÜ,¨U×-EÑ-EÓFˆÙá7E�<�.  >Ð"2Ñ3È<ð ñ à;Mö
Ø37ˆtˆf�H˜^Ð,¨AÒ.ð
Ðð 
ð Ðùò'ùò
s   ˜A*ÁA/c                óø   — | €y| j                   }| }|�gt        |t        «      r6|j                  r*|t	        |j                   «      d }d|j                  › d|› �S t        |t
        «      r|j                  nd}|�Œgy)z‘
    Walk up the source chain to find a CellContentsSource ancestor.
    Returns a hint like 'guard on "varname".attr' or None if not found.
    Nz
guard on "ú")Únamerÿ   rZ   Úfreevar_namerµ   r[   Úbase)r^  Ú	full_nameÚcurrentÚpath_suffixs       r»   rä  rä  [  s†   € ð
 €~Øà—‘€IØ#€GØ
Ð
Ü�gÔ1Ô2°w×7KÒ7Kð
 $¤C¨¯©Ó$5Ð$7Ð8ˆKØ × 4Ñ 4Ð5°Q°{°mÐDÐDÜ",¨W´mÔ"D�'—,’,È$ˆð Ñ
ð r½   c                ó¸   — | €y t        | «      s| S t        | t        j                  «      st	        dt        | «      › �«      ‚| j                  j                  «       S )NzExpected torch.SymInt, got )rJ   rÿ   r4  ÚSymIntr   r  rö   Úmaybe_as_int)Údims    r»   Úconvert_int_to_concrete_valuesrõ  q  sO   € Ø
€{ØÜ�sÔØˆ
ä˜#œuŸ|™|Ô,Ü Ð#>¼tÀC»y¸kÐ!JÓKÐKØ�x‰x×$Ñ$Ó&Ð&r½   c                ó>   — | D �cg c]  }t        |«      ‘Œ c}S c c}w rÚ   )rõ  )Úsize_or_striderô  s     r»   Úconvert_to_concrete_valuesrø  |  s   € Ø;IÖJ°CÔ*¨3Õ/ÒJÐJùÒJs   …c                ó,  — |t         j                  j                  «       z  t         j                  j                  «       z
  }| j                  }| j
                  j                  }| j                  }	d|› d|j                  › d|› d|› d|› d|	› d|› d|› d�}
|
S )Nzcheck_tensor(rY  z	, device=z, requires_grad=z, size=z	, stride=rZ  )	r4  Ú_CÚ_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setÚdtyper¾  r¶   Úrequires_gradrÔ   )Úvaluerë  ÚsizesÚstridesÚpytypeÚdispatch_keysÚdispatch_keyrý  Údevice_indexrþ  Ú	guard_strs              r»   Úget_tensor_guard_code_partr  €  s«   € ð 	œŸ™×@Ñ@ÓBÑBÜ�‰×0Ñ0Ó2ñ3€Lð �K‰K€EØ—<‘<×%Ñ%€LØ×'Ñ'€Mà
˜�v˜R × 3Ñ 3Ð4°B°|°nÀBÀuÀgð NØ�Ð/°¨¸gÀeÀWÈIÐV]ÐU^Ð^_ð	að ð Ðr½   c                óH   — t        t        | «      «      j                  |«      S rÚ   )rã  rŠ   r¶   )ÚdctÚkeys     r»   Úget_key_indexr  •  s    € ô
 Ô! #Ó&Ó'×-Ñ-¨cÓ2Ð2r½   c                ó   — d| › d|› d�S )Núlist(dict.keys(ú))[ú]rŠ  )r^  r¶   s     r»   Úget_key_index_sourcer  �  s   € Ø˜V˜H C¨ w¨aÐ0Ð0r½   c                óD   — t        dt        | «      › d| › d�dz   dz   «      ‚)NúType ú for object ú cannot be saved ú@into torch.compile() package since it's defined in local scope. ú@Please define the class at global scope (top level of a module).)Ú	TypeErrorr  )Úobjs    r»   Úraise_local_type_errorr  ¡  s8   € Ü
Ø
”�S“	ˆ{˜, s eÐ+<Ð=Ø
Lñ	Mà
Lñ	Móð r½   c                óJ   — t        | t        j                  j                  «      S rÚ   )rÿ   r4  r9  r:  )rÿ  s    r»   Ú$should_optimize_getattr_on_nn_moduler  ©  s   € Ü�eœUŸX™XŸ_™_Ó-Ð-r½   T)Úfrozenc                  ó8   — e Zd ZU dZded<   dZded<   dZded<   y)ÚNNModuleAttrAccessorInfoFrÐ   Úpresent_in_generic_dictNr‡  Úl1_keyÚl2_key)rÒ   rÓ   rÔ   r  r¯   r   r!  rŠ  r½   r»   r  r  ­  s'   … ð %*Ð˜TÓ)ð €FˆJÓð €FˆJÔr½   r  ÚGuardManagerTypec                ó˜  — | j                   j                  }t        | j                  t        «      r| j                  j                  }n=t        |t
        «      st        dt        |«      › �«      ‚t        || j                  «      }t        ||«      }t        t        |«      «      |   }t        |t        t        f«      r	|› d|›d�}	n|› d|› d�}	t        | j                  t        «      sN|j                  ||| j                  t        j                   ¬«      j#                  | j                  |› d|›�gd «       |j%                  ||	||¬«      S )NúExpected dict, got ú[r  ©r¶   r^  Úexample_valueÚguard_manager_enumú == )rí  rë  rÿ   r¶   r_   r#  r   r  r  r  rã  rŠ   ÚintrÎ   Úget_key_managerr"  ÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)
r^  Úbase_guard_managerÚbase_example_valuer'  r(  Úbase_source_namer¶   Ú
key_sourceÚkey_example_valueÚvalue_sources
             r»   Úgetitem_on_dict_managerr5  ¼  sM  € ð —{‘{×'Ñ'ÐÜ�&—,‘,Ô 2Ô3Ø—‘×"Ñ"‰äÐ,¬dÔ3Ü Ð#6´tÐ<NÓ7OÐ6PÐ!QÓRÐRÜÐ0°&·,±,Ó?ˆä%Ð&6¸Ó>€Jô Ô.Ð/AÓBÓCÀEÑJÐÜÐ#¤c¬3 ZÔ0Ø*Ð+¨1Ð->Ð,AÀÐC‰à*Ð+¨1¨Z¨L¸Ð:ˆÜ�f—l‘lÔ$6Ô7ð 	×*Ñ*ØØØ Ÿ,™,Ü/×=Ñ=ð	 	+ó 	
÷
 !Ñ
 Ø�L‰L˜j˜\¨Ð.?Ð-BÐCÐDÀdô
ð ×/Ñ/ØØØ#Ø-ð	 0ó ð r½   c                ó¤   — | j                   }t        |t        «      ry| j                  «       ry|j	                  «       xr t        |t
        «       S ©NFT)rå  rÿ   ru   Úis_specialized_nn_moduleÚis_dict_keyrn   )rS  r^  s     r»   Úmatch_on_id_for_tensorr:  ê  sJ   € Ø×%Ñ%€Fô �&Ô+Ô,Øà×%Ñ%Ô'Øà×ÑÓÒF¬
°6¼:Ó(FÐ$FÐFr½   c                  ó"   — e Zd ZU ded<   ded<   y)ÚGuardCodeListrƒ  Ú	code_listr:   rS  N©rÒ   rÓ   rÔ   r¯   rŠ  r½   r»   r<  r<  ù  s   … àÓØ„Lr½   r<  c                  ó   — e Zd ZdZdZy)r"  rQ   é   N)rÒ   rÓ   rÔ   r,  ÚDICT_GUARD_MANAGERrŠ  r½   r»   r"  r"  ÿ  s   „ Ø€MØÑr½   c                ó<   — t        t        t        | «      «      «      S rÚ   )rã  rÚ  r   )r·   s    r»   r´   r´     s   € ä”Ô/°Ó5Ó6Ó7Ð7r½   c                  ó&   — e Zd ZU dZded<   ded<   y)ÚGuardCheckSpecu^  Lightweight guard evaluation for subgraph reuse during tracing.

    WHY IS THIS NEEDED?
    Normal guards are collected during tracing, installed via GuardBuilder, and
    evaluated in C++ at runtime. GuardCheckSpec serves a different purpose: we
    want to evaluate a guard *during tracing* to check whether a previously
    traced partial subgraph can be reused. The guard is collected during the
    first trace of subgraph and then evaluated with a new source value before we
    begin tracing the second subgraph.

    Existing C++ guards don't satisfy this need because they're designed for
    runtime evaluation, not mid-trace comparisons with different source values.

    NB - This separate spec table *increases maintenance burden*, but each
    handler is small and the number of guard types is finite, so it's tractable.

    get_metadata_fn: (guard, value) -> metadata  â€” captures the minimum
        information from the guarded value at build time.
    eval_fn: (value, metadata) -> bool  â€” re-evaluates the guard at lookup
        time using a fresh value and the previously saved metadata.
    r   Úget_metadata_fnÚeval_fnN)rÒ   rÓ   rÔ   r‰  r¯   rŠ  r½   r»   rD  rD  	  s   … ñð, ÓØ„Lr½   rD  c                ó|   — | j                   | j                  «       | j                  | j                  | j                  fS rÚ   )ÚshapeÚstriderý  r¾  rþ  rÕ  s    r»   Úextract_tensor_metadatarJ  (  s)   € Ø�G‰G�Q—X‘X“Z §¡¨!¯(©(°A·O±OÐDÐDr½   c                ór   — t        |j                  «       d   «      }t        |«      }t        |d«      }|||fS )NrQ   Ú__metadata_guard__)r   Ú__tensor_flatten__r  rn  )rS  rÿ  ÚmetadataÚclsÚhas_custom_guards        r»   Úextract_subclass_metadatarQ  -  s?   € Ü˜×0Ñ0Ó2°1Ñ5Ó6€HÜ
ˆu‹+€CÜ˜uÐ&:Ó;ÐØ�cÐ+Ð,Ð,r½   c                ó„   — |\  }}}|r#|j                  || j                  «       d   «      S | j                  «       d   |k(  S r³   ©rL  rM  )rÿ  rN  Úsaved_metadatarO  rP  s        r»   Úcheck_subclass_metadatarU  5  sM   € Ø,4Ñ)€N�CÐ)ÙØ×%Ñ% n°e×6NÑ6NÓ6PÐQRÑ6SÓTÐTØ×#Ñ#Ó% aÑ(¨NÑ:Ð:r½   c                ó   — t        |«      S rÚ   r   ©rS  rÿ  s     r»   Úextract_dtensor_specrX  =  s   € Ü�E‹?Ðr½   c                ó(   — | j                  |d¬«      S )NT)Úskip_shapes)Ú_check_equals©rÿ  rN  s     r»   Úcheck_dtensor_specr]  B  s   € Ø×Ñ˜x°TÐÓ:Ð:r½   c                ó|   — t        t        |«      «      }|r|j                  sy t        |j                  |«      «      S rÚ   )rC   r  Úguard_fnr   )rS  rÿ  Úopaque_infos      r»   Úextract_opaque_objra  G  s4   € Ü%¤d¨5£kÓ2€KÙ˜k×2Ò2ØÜ�K×(Ñ(¨Ó/Ó0Ð0r½   c                ó|   — |€yt        t        | «      «      }|r|j                  s|d u S |j                  | «      |k(  S ©NT)rC   r  r_  )rÿ  rN  r`  s      r»   Úcheck_opaque_objrd  O  sE   € ØÐØÜ%¤d¨5£kÓ2€KÙ˜k×2Ò2Ø˜4ÐÐØ×Ñ Ó&¨(Ñ2Ð2r½   c                ó~   — t        |«      t        j                  u rt        |d«      r|j                  S t        |«      S ©Nr­   ©r  r;  r<  rn  r­   ÚidrW  s     r»   Úextract_closureri  Y  s1   € ÜˆEƒ{”e×(Ñ(Ñ(¬W°U¸JÔ-GØ�~‰~ÐÜˆe‹9Ðr½   c                óˆ   — t        | «      t        j                  u rt        | d«      r| j                  |u S t        | «      |k(  S rf  rg  r\  s     r»   Úcheck_closurerk  `  s;   € ÜˆEƒ{”e×(Ñ(Ñ(¬W°U¸JÔ-GØ�~‰~ Ð)Ð)Üˆe‹9˜Ñ Ð r½   c                óv   — ddl m} |D ]  }t        | |«      sŒ || «      c S  t        dt	        | «      › �«      ‚)zBExtract the base constant value from a constant subclass instance.rQ   ©Ú_CONSTANT_BASE_TYPESzNot a constant subclass: )Úvariables.user_definedrn  rÿ   r  r  )rÿ  rn  r_  s      r»   Ú_constant_subclass_base_valuerp  f  s@   € å<à!ò ˆÜ�e˜QÕÙ�U“8ŠOðô Ð/´°U³¨}Ð=Ó
>Ð>r½   c                ó,   ‡— t        | |¬«      Šˆfd„}|S )z<Attach a GuardCheckSpec to a guard method for auto-dispatch.©rE  rF  c                ó   •— ‰| _         | S rÚ   )Úguard_check_spec)ÚfnÚhandlers    €r»   Ú	decoratorz,register_guard_check_spec.<locals>.decoratorw  s   ø€ Ø%ˆÔØˆ	r½   )rD  )rE  rF  rw  rv  s      @r»   Úregister_guard_check_specrx  p  s   ø€ ô
 ¨_ÀgÔN€Gôð Ðr½   c                ó   — t         | _        | S )z:Mark a guard method as skipped during auto-cache dispatch.)Ú
SKIP_GUARDrt  ©ru  s    r»   Úskip_guard_check_specr|  ~  s   € ä$€BÔØ€Ir½   c                  ó8   — e Zd ZdZdd„Zed„ «       Zed„ «       Zy)ÚUnsupportedGuardCheckSpecz„Sentinel for guards with no check spec yet.

    Raises NotImplementedError if get_metadata_fn/eval_fn are accidentally called.
    c                ó   — || _         y rÚ   )Ú_name)rÄ   rë  s     r»   rê   z"UnsupportedGuardCheckSpec.__init__Š  s	   € Øˆ�
r½   c                ó2   — t        d| j                  › �«      ‚©Nz%Guard check spec not implemented for ©ÚNotImplementedErrorr€  rÃ   s    r»   rE  z)UnsupportedGuardCheckSpec.get_metadata_fn�  ó   € ä!Ð$IÈ$Ï*É*ÈÐ"VÓWÐWr½   c                ó2   — t        d| j                  › �«      ‚r‚  rƒ  rÃ   s    r»   rF  z!UnsupportedGuardCheckSpec.eval_fn‘  r…  r½   N)rë  rÎ   rÍ   rÑ   )rÒ   rÓ   rÔ   r‰  rê   ÚpropertyrE  rF  rŠ  r½   r»   r~  r~  „  s8   „ ñó
ð ñXó ðXð ñXó ñXr½   r~  c                ó:   — t        | j                  «      | _        | S )z;Mark a guard method as unsupported for auto-cache dispatch.)r~  rÒ   rt  r{  s    r»   Úunsupported_guard_check_specr‰  –  s   € ä3°B·K±KÓ@€BÔØ€Ir½   c                  óT  — e Zd Z	 	 	 d~	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 d€d„Zd�d„Zed‚d„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dƒd„Zd„d„Z		 	 	 	 	 	 d…d„Z
d†d	„Zd‡d
„Zdˆd„Zd‰d„Z	 	 dŠ	 	 	 	 	 	 	 	 	 d‹d„Z	 dŒ	 	 	 	 	 d�d„ZdŽd„Z	 	 	 	 	 	 	 	 d�d„Z ed„ d„ ¬«      dŒd�d„«       Z ed„ d„ ¬«      	 dŒ	 	 	 	 	 d‘d„«       Z ed„ d„ ¬«      d’d„«       Z ed„ d„ ¬«      d’d„«       Zed’d„«       Z ed„ d „ ¬«      d“d!„«       Z ed"„ d#„ ¬«      d“d$„«       Z ed%„ d&„ ¬«      d”d'„«       Z ed(„ d)„ ¬«      d”d*„«       Z ed+„ d,„ ¬«      d’d-„«       Z ed.„ d/„ ¬«      d’d0„«       Z ed1„ d2„ ¬«      dŒd•d3„«       Z 	 dŒ	 	 	 	 	 d•d4„Z! ed5„ d6„ ¬«      dŒd–d7„«       Z" ed8„ d9„ ¬«      d’d:„«       Z#e$d’d;„«       Z%e$d’d<„«       Z&e$d’d=„«       Z' ee(e)¬«      d’d>„«       Z* ee+e,¬«      d’d?„«       Z- ee.e/¬«      d’d@„«       Z0 edA„ dB„ ¬«      dŒd•dC„«       Z1 edD„ dE„ ¬«      d’dF„«       Z2 edG„ dH„ ¬«      d’dI„«       Z3 edJ„ dK„ ¬«      d’dL„«       Z4 edM„ dN„ ¬«      d’dO„«       Z5 edP„ dQ„ ¬«      d’dR„«       Z6 edS„ dT„ ¬«      d’dU„«       Z7 ee8e9¬«      d’dV„«       Z: edW„ dX„ ¬«      d’dY„«       Z; edZ„ d[„ ¬«      d’d\„«       Z< ed]„ d^„ ¬«      d’d_„«       Z= ed`„ da„ ¬«      d’db„«       Z> edc„ dd„ ¬«      d’de„«       Z?e$d—df„«       Z@ edg„ dh„ ¬«      d’di„«       ZA edj„ dk„ ¬«      d’dl„«       ZB edm„ dn„ ¬«      d’do„«       ZC edp„ dq„ ¬«      d’dr„«       ZDe$d’ds„«       ZEe$d’dt„«       ZFe$d’du„«       ZGe$d’dv„«       ZHe$d’dw„«       ZIe$d’dx„«       ZJe$d’dy„«       ZK edz„ d{„ ¬«      dŒd–d|„«       ZL	 	 d˜	 	 	 	 	 	 	 	 	 d™d}„ZMy)šÚGuardBuilderNc                ó.  — || _         || _        || _        || _        ||dœ| _        i | _        |
xs || _        t        j                  j                  «       | j                  d<   t        j                  j                  j                  j                  «       D ]X  \  }}|j                  dd«      j                  dd«      j                  dd«      }|| j                  d   |<   || j                  |<   ŒZ || _        g | _        g | _        g | _        g | _        g | _        || _        i | _        |	| _        || _        t5        «       | _        | j,                  j8                  €t;        d«      ‚| j,                  j8                  j<                  D ]7  }| j?                  |«      }| j6                  jA                  tC        |«      «       Œ9 i | _"        i | _#        t5        «       | _$        g | _%        tL        jN                  xr tQ        d	«      | _'        tS        «       | _*        y )
N©ÚLÚGÚ__builtins__ú>Ú_ú<ú.Ú_dot_ú.check_fn_manager.output_graph must not be Noneú!pytorch/compiler:guard_nn_modules)+Úf_codeÚid_refÚ
source_refÚlookup_weakrefsÚscopeÚsrc_get_value_cacheÚruntime_global_scopeÚbuiltinsÚ__dict__Úcopyr4  ÚpackageÚpackage_importerÚ_package_imported_modulesrô   rÑ  r\  Úargnamesr·   Úshape_env_codeÚno_tensor_aliasing_namesÚ!no_tensor_aliasing_guard_managersÚcheck_fn_managerÚguard_tree_valuesÚsave_guardsÚguard_filter_fnrç   Úkey_order_guarded_dict_idsÚoutput_graphr   Úguard_on_key_orderÚgetrõ   rh  rå   Ú_cached_guard_managersÚ_cached_duplicate_input_guardsÚobject_aliasing_guard_codesrR   Úguard_nn_modulesrF   rM   Úalready_added_code_parts)rÄ   r˜  r™  rš  r›  Úlocal_scoperá   r\  r©  r«  rž  r¬  rë  Úpackage_moduler^  Údict_objs                   r»   rê   zGuardBuilder.__init__�  sö  € ð ˆŒØˆŒØ$ˆŒØ.ˆÔØ9DÈ<Ñ3XˆŒ
Ø9;ˆÔ Ø$8Ò$H¸LˆÔ!Ü%-×%6Ñ%6×%;Ñ%;Ó%=ˆ�
‰
�>Ñ"ô �]‰]×+Ñ+×EÑE×KÑKÓMò	.ñ 
ØØà—<‘<  SÓ)×1Ñ1°#°sÓ;×CÑCÀCÈÓQˆDà/=ˆD�J‰J�~Ñ& tÑ,à-ˆD�J‰J�tÒð	.ð +ˆÔà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØEGˆÔ.à6FˆÔà13ˆÔØ&ˆÔØ.ˆÔô +.«%ˆÔ'Ø× Ñ ×-Ñ-Ð5Ü Ð!QÓRÐRØ×+Ñ+×8Ñ8×KÑKò 	>ˆFØ—x‘x Ó'ˆHØ×+Ñ+×/Ñ/´°8³Õ=ð	>ð BDˆÔð @BˆÔ#ÜDGÃEˆÔ+ØBDˆÔ(Ü &× 7Ñ 7ò !
¼OØ/ó=
ˆÔô :D»ˆÕ%r½   c                óT  — | j                  |«      }t        |t        «      rt        d|j                  › �«      ‚|j
                  j                  }t        |«      D ]K  }||   }t        |j
                  |¬«      }| j                  ||«      }|j                  ||› d|›d�||¬«       ŒM y )NzsNot expecting a DictGuardManager. Seems like Dynamo incorrectly added the dict to tx.output.guard_on_key_order for )r¶   r%  r  ©r
  r^  r'  r(  )
Úget_guard_managerrÿ   r   r„  rë  rå  rŠ   rc   Úget_guard_manager_typeÚdict_getitem_manager)	rÄ   r'  rS  Údict_mgrÚdict_sourcer
  rÿ  r4  r(  s	            r»   Ú#guard_on_dict_keys_and_ignore_orderz0GuardBuilder.guard_on_dict_keys_and_ignore_orderì  sÊ   € ð ×)Ñ)¨%Ó0ˆÜ�hÔ 0Ô1Ü%ðFØFKÇjÁjÀ\ðSóð ð ×.Ñ.×3Ñ3ˆô % ]Ó3ò 	ˆCØ! #Ñ&ˆEÜ,¨U×-EÑ-EÈSÔQˆLØ!%×!<Ñ!<Ø˜mó"Ðð ×)Ñ)ØØ%˜ a¨ w¨aÐ0Ø#Ø#5ð	 *õ ñ	r½   c                ó^  — | j                  |«      }t        |t        «      st        d|j                  › �«      ‚t        |t        «      st        dt        |«      › �«      ‚t        t        |«      «      D ]¶  \  }}t        |j                  |«      }|j                  |||t        j                  ¬«      }t        |«      rA| j                  ||«      }|j                  |t!        d|› d|› d�|«      |j"                  «       Œ‹|j%                  |t!        |› d|›�|«      |j"                  «       Œ¸ y )Nz_Expecting a DictGuardManager. Seems like Dynamo forgot to set the right guard manager enum for zExpected DictGuardManager, got r&  z__check_obj_id(rY  rZ  r)  )r»  rÿ   r   r„  rë  r   r  Ú	enumeraterŠ   r  r+  r"  r,  r“   r™  Úadd_id_match_guardrè  rÙ  r-  )	rÄ   rÿ  rS  r¾  rf  r
  r2  Úkey_managerÚid_vals	            r»   Úguard_on_dict_keys_and_orderz)GuardBuilder.guard_on_dict_keys_and_order
  s>  € ð ×)Ñ)¨%Ó0ˆÜ˜(Ô$4Ô5Ü%ð;Ø;@¿:¹:¸,ðHóð ô ˜(Ô$4Ô5Ü Ð#BÄ4ÈÃ>ÐBRÐ!SÓTÐTô "Ô"3°EÓ":Ó;ò 	‰HˆC�Ü-¨e¯j©j¸#Ó>ˆJØ"×2Ñ2ØØ!Ø!Ü#3×#AÑ#Að	 3ó ˆKô ˜Œ~àŸ™ S¨*Ó5�Ø×.Ñ.ØÜ*Ø)¨*¨°R¸°x¸qÐAÀ5óð ×$Ñ$õð ×2Ñ2ØÜ*¨j¨\¸¸c¸WÐ+EÀuÓMØ×$Ñ$õñ)	r½   c                ó¨   — t         j                  rAt        j                  dk\  r.t        j                  dk  rt	        j
                  dt        «       y | S )N)é   é   )rÈ  rÉ  rQ   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)rR   Úissue_3_13_0_warningÚsysÚversion_infoÚwarningsÚwarnÚRuntimeWarning)r'  s    r»   Ú'_get_generic_dict_manager_example_valuez4GuardBuilder._get_generic_dict_manager_example_value4  sF   € ô ×'Ò'Ü× Ñ  GÒ+Ü× Ñ  :Ò-ä�M‰MØ_Üôð ØÐr½   c                óD  — 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„}|j                   }	|j                  }
t        «       }t        j                  |j
                  «      D ]+  }|j                  |j                  j                  «       «       Œ- t        ddd«      }|	|
v rt        d|	d«      }nNd|
v r|	|
d   v rt        dd|	«      }n5d|
v r|	|
d   v rt        dd|	«      }n|	|vrd|
v r|	|
d   v rt        dd|	«      }|j                  s|j                  |j                   |||¬«      S |j                  st        d	«      ‚|j                  }|j                  }|› d
�}dx}}dx}}dx}}|rPt        |j                  |«      }|j                   }|
|   }| j#                  ||«      }|}|}| j#                  ||«      }n|}|}| j#                  ||«      }|j%                  || j'                  |
«      t(        j*                  ¬«      } |||||
||¬«      }|r|�|€t        d«      ‚ |||||||¬«      S |S )a(  
        This tries to avoid calling the expensive nn module custom getattr method by
        checking if the attribute is accessible via __dict__. For attributes that
        are not accessible via __dict__ (like descriptors), we fallback to
        PyObject_GetAttr.

        There are two cases that we optimize for
        1) attributes present directly in __dict__, e.g training.
        2) parameters/buffers/modules - they can be accessed via _parameters,
        _buffers, _modules keys in __dict__. For example, mod.linear can be
        accessed as mod.__dict__["_parameters"]["linear"]

        The most common and expensive case for nn module guards is of type
        mod.submod1.submod2.submod3.training. We avoid the python getattr of nn
        modules by going through the __dict__.
        c                ó  — t        | t        «      rdt        ||«      }d|› d|›d�}| j                  |||t        j
                  ¬«      j                  ||› d|›�gd «       | j                  ||||¬«      S | j                  ||||¬«      S )Nr  r  r  r&  r)  rº  )	rÿ   r   r  r+  r"  r,  r-  r.  r½  )r  r
  Úsource_namer0  r'  r(  r¶   r2  s           r»   Úgetitem_on_dict_mgrz>GuardBuilder.getattr_on_nn_module.<locals>.getitem_on_dict_mgra  sÄ   € ô ˜#Ô/Ô0ô &Ð&8¸#Ó>�ð  /¨{¨m¸3¸u¸iÀqÐI�
Ø×#Ñ#ØØ%Ø"%Ü'7×'EÑ'Eð	 $ó ÷
 )Ñ(¨°*°¸TÀ#ÀÐ/IÐ.JÈDÔQð ×,Ñ,ØØ&Ø"/Ø'9ð	 -ó ð ð ×/Ñ/ØØ&Ø"/Ø'9ð	 0ó ð r½   FNTÚ_parametersÚ_buffersÚ_modules©Úattrr^  r'  r(  z&accessor_info.l1_key must not be emptyú	.__dict__©r^  r'  r(  )r  r
  rÓ  r0  r'  r(  z9l2_source_name and l2_guard_manager_enum must not be None)r  r   r
  r   rÓ  rÎ   r0  r   r'  r   r(  r"  rÍ   r   )Úmemberr   rç   r›  ÚgetmrorË   ÚupdateÚkeysr  r  Úgetattr_managerr   r   r!  rW   rí  rë  r¼  Úget_generic_dict_managerrÐ  r"  r,  )rÄ   r^  r/  r0  r'  r1  rÓ  r(  rÔ  Ú	attr_nameÚmod_dictÚall_class_attribute_namesrt  Úaccessor_infor   r!  Úmod_dict_sourceÚl1_source_nameÚl2_source_nameÚl1_valueÚl2_valueÚl1_guard_manager_enumÚl2_guard_manager_enumÚ	l1_sourceÚmod_generic_dict_managerÚl1_mgrs                             r»   Úgetattr_on_nn_modulez!GuardBuilder.getattr_on_nn_moduleF  sà  € ð6#	Øð#	àð#	ð ð#	ð !$ð	#	ð
 ð#	ð !1ð#	ð ó#	ðJ —M‘Mˆ	Ø%×.Ñ.ˆä.1«eÐ!Ü—‘Ð 2× <Ñ <Ó=ò 	@ˆAØ%×,Ñ,¨Q¯Z©Z¯_©_Ó->Õ?ð	@ô 1°¸¸dÓCˆà˜Ñ Ü4°T¸9ÀdÓK‰MØ˜hÑ&¨9¸ÀÑ8OÑ+OÜ4°T¸=È)ÓT‰MØ˜8Ñ#¨	°X¸jÑ5IÑ(IÜ4°T¸:ÀyÓQ‰MàÐ6Ñ6Ø˜hÑ&Ø˜X jÑ1Ñ1ô 5°T¸:ÀyÓQˆMà×4Ò4ð &×5Ñ5Ø—]‘]Ø"Ø+Ø#5ð	 6ó ð ð !×'Ò'Ü$Ð%MÓNÐNØ"×)Ñ)ˆFØ"×)Ñ)ˆFð "2Ð 2°)Ð<ˆOØ.2Ð2ˆN˜^Ø"&Ð&ˆH�xØ<@Ð@Ð!Ð$9ÙÜ& v§{¡{°FÓ;�	Ø!*§¡�Ø# FÑ+�ð )-×(CÑ(CÀIÈxÓ(XÐ%à!,�Ø(�Ø(,×(CÑ(CØ˜Mó)Ñ%ð "-�Ø(�Ø(,×(CÑ(CØ˜Mó)Ð%ð (:×'RÑ'RØ&Ø"×JÑJÈ8ÓTÜ#3×#AÑ#Að (Só (Ð$ñ )Ø,ØØ*Ø#+Ø&Ø#8ôˆFñ Ø!Ð)Ð-BÐ-JÜ(ØSóð ñ +ØØØ .Ø'/Ø"*Ø'<ôð ð ˆMr½   c                óv   — |j                   }|dk(  ryt        | j                  |«      «      }|| j                  v S )Nrl  F)rë  rh  r°  r­  )rÄ   r^  rÓ  Úobj_ids       r»   Úrequires_key_order_guardingz(GuardBuilder.requires_key_order_guardingå  s:   € Ø—k‘kˆØ˜"ÒØÜ�D—H‘H˜VÓ$Ó%ˆØ˜×8Ñ8Ð8Ð8r½   c                óJ  — t         j                  }| j                  |«      r�t        |t        «      rt         j
                  }|S t        |t        t        f«      rt         j                  }|S t        |t        «      st        dt        |«      › �«      ‚t         j
                  }|S )Nr$  )r"  r,  ró  rÿ   r�   rA  rç   Ú	frozensetr#  r   r  )rÄ   r^  r'  r(  s       r»   r¼  z#GuardBuilder.get_guard_manager_typeì  sš   € ô .×;Ñ;ÐØ×+Ñ+¨FÔ3ä˜-¬Ô3Ü%5×%HÑ%HÐ"ð "Ð!ô ˜M¬C´Ð+;Ô<ô &6×%CÑ%CÐ"ð
 "Ð!ô " -´Ô6Ü(Ð+>¼tÀMÓ?RÐ>SÐ)TÓUÐUÜ%5×%HÑ%HÐ"Ø!Ð!r½   c                ó(   — |t         j                  k(  S rÚ   )r"  rA  )rÄ   Úmgr_enums     r»   Úmanager_guards_on_keysz#GuardBuilder.manager_guards_on_keys  s   € ØÔ+×>Ñ>Ñ>Ð>r½   c                óž   — | j                   j                  j                  | j                  d| j                  d   t
        j                  ¬«      S )Nr�  )Ú	f_globalsr^  r'  r(  )r\  rÛ   Úglobals_dict_managerrž  rœ  r"  r,  rÃ   s    r»   Úget_global_guard_managerz%GuardBuilder.get_global_guard_manager  sF   € Ø×!Ñ!×&Ñ&×;Ñ;Ø×/Ñ/ØØŸ*™* S™/Ü/×=Ñ=ð	 <ó 
ð 	
r½   c           	     ó¬  ‡— | j                   j                  }d }‰j                  }|dk7  r|| j                  v r| j                  |   S |dk7  r)| j	                  ‰«      }|| j
                  t        |«      <   | j                  ‰|«      }d }d }d }t        j                  }	t        ‰t        «      rh‰j                  j                  }| j	                  ‰j                  «      }| j                  ‰j                  «      }| j                  ‰j                  |«      }	t        ‰t        «      rCt!        | j"                  ‰j$                  «      }
|j'                  ‰j$                  |
f|||¬«      }�
nÒt        ‰t(        «      r/| j+                  «       j-                  ‰j.                  |||¬«      }�
n“t        ‰t0        «      r/| j+                  «       j3                  ‰j.                  |||¬«      }�
nTt        ‰t4        «      r|S t        ‰t6        «      r|S t        ‰t8        «      r#|st;        d«      ‚|j=                  |||¬«      }�	nýt        ‰t>        «      r#|st;        d«      ‚|jA                  |||¬«      }�	nÊt        ‰tB        «      r#|st;        d«      ‚|jE                  |||¬«      }�	n—t        ‰tF        tH        tJ        tL        tN        f«      r|st;        d«      ‚|}�	nat        ‰tP        «      r9tS        jT                  ‰jV                  «      }|jY                  |fd„|||¬«      }�	nt        ‰tZ        «      r|jY                  ˆfd„|||¬«      }�nît        ‰t\        «      r|jY                  ˆfd	„|||¬«      }�nÄt        ‰t^        «      r#|st;        d«      ‚|ja                  |||¬«      }�n‘t        ‰tb        «      r.|st;        d«      ‚|je                  ‰jf                  |||¬
«      }�nSt        ‰th        tj        tl        f«      r†|st;        d«      ‚t        ‰th        «      st;        dto        ‰«      › �«      ‚tq        |«      r&|st;        d«      ‚| js                  ‰||||||«      }�nÓ|ju                  ‰jf                  |||¬
«      }�n²t        ‰tv        tx        f«      rô|st;        d«      ‚t        |tz        t|        j~                  f«      st;        dto        |«      › �«      ‚t        ‰tv        tx        f«      st;        dto        ‰«      › �«      ‚t        |t€        «      r-| jƒ                  |	«      st;        d«      ‚t…        ‰||||«      }�nît        ‰j†                  tˆ        «      rt‹        d«      ‚|j-                  ‰j†                  |||¬«      }�n¨t        ‰tŒ        «      rH t�        |d‰j�                  j                  j“                  «       › d�«      ‰j”                  |||¬«      }�nPt        ‰t–        «      r.|st;        d«      ‚|j™                  ‰j”                  |||¬«      }�nt        ‰tš        «      r.|st;        d«      ‚|j�                  ‰j†                  |||¬«      }�nÔt        ‰tž        «      rñ|st;        d«      ‚t        |tz        t|        j~                  f«      rt;        d«      ‚t        |t         «      r-‰j¢                  s!|j�                  ‰j†                  |||¬«      }�nOt        |t¤        «      r-‰j¢                  s!|j§                  ‰j†                  |||¬«      }�n‰j†                  }‰j¢                  r‰j©                  «       }|j«                  ||||¬«      }�nÓt        ‰t¬        «      �r|st;        d«      ‚|st;        d«      ‚t¯        |«      st;        d«      ‚‰j°                  sK|j³                  ||j´                  t        j                  ¬«      j«                  ‰j¶                  |||¬«      }�n;|j¸                  }|€t;        d«      ‚|dz   }|j»                  ||t        j                  ¬«      }t        |t€        «      rt;        d«      ‚|j-                  ‰j¶                  |||¬«      }�n¿t        ‰t¼        «      r(|st;        d«      ‚|jY                  t¾        |||¬«      }�n‡t        ‰tÀ        «      r%|st;        d«      ‚|jY                  d„ |||¬«      }�nRt        ‰tÂ        «      r%|st;        d«      ‚|jY                  d„ |||¬«      }�nt        ‰tÄ        «      r%|st;        d«      ‚|jY                  d„ |||¬«      }�nèt        ‰tÆ        «      r%|st;        d«      ‚|jY                  d„ |||¬«      }�n³t        ‰tÈ        «      r%|st;        d«      ‚|jY                  d„ |||¬«      }�n~t        ‰tÊ        «      r%|st;        d«      ‚|jY                  d„ |||¬«      }�nIt        ‰tÌ        «      r.|st;        d«      ‚|jÏ                  ‰j†                  |||¬«      }�nt        ‰tˆ        «      r<t        |t€        «      st;        d «      ‚|jÑ                  ‰j†                  |||¬«      }�n¿t        ‰tÒ        «      r.|st;        d«      ‚|jÕ                  ‰j†                  |||¬«      }�n�t        ‰tÖ        «      r#|st;        d«      ‚|jÙ                  |||¬«      }�nNt        ‰tÚ        «      r#|st;        d«      ‚|jÝ                  |||¬«      }�nt        ‰tÞ        «      r$|st;        d«      ‚|jY                  d!„ |||¬«      }nçt        ‰tà        «      r$|st;        d«      ‚|jY                  d"„ |||¬«      }n³t        ‰tâ        «      r"|st;        d«      ‚|jå                  |||¬«      }n�t        ‰tæ        «      r"|st;        d«      ‚|jé                  |||¬«      }nOt        ‰tê        «      r$|st;        d«      ‚|jY                  d#„ |||¬«      }nt;        d$‰› d%‰j                  › �«      ‚|| j                  ‰j                  <   |S )&Nrl  rº  )Úglobal_namer^  r'  r(  z#base_guard_manager must not be NonerÛ  c                ó   — |S rÚ   rŠ  )r’  rž  s     r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>t  s   € °!€ r½   )Úpython_lambdar^  r'  r(  c                ó6   •— t        ‰j                  «       «      S rÚ   )r�   Ú
_get_index©r’  r^  s    €r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>{  s   ø€ Ô(HØ×%Ñ%Ó'ó)€ r½   c                ó.   •— t        ‰j                  «      S rÚ   )rŽ   r¾  r  s    €r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>„  s   ø€ Ô(:¸6¿=¹=Ó(I€ r½   rØ  zExpected AttrSource, got z"base_source_name must not be emptyz"Expected dict or OrderedDict, got z=Expected DictGetItemSource or DictSubclassGetItemSource, got z#DictGuardManager must guard on keyszUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderÚtensor_property_Ú_manager)rf  r^  r'  r(  zUse DictGetItemSourcez#base_example_value must be callablez!base_source_name must not be Nonez.__kwdefaults__z,Expected non-DictGuardManager for kwdefaultsc                ó(   — | j                  «       d   S rï   ©rM  r¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>D  s   € ¨×(<Ñ(<Ó(>¸qÑ(A€ r½   c                ó"   — | j                  «       S rÚ   )Ú__obj_flatten__r¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>M  s   € ¨×(9Ñ(9Ó(;€ r½   c                ó>   — | j                  «       j                  «       S rÚ   )Ú_typeÚqualified_namer¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>V  s   € ¨¯©«	×(@Ñ(@Ó(B€ r½   c                ó"   — | j                  «       S rÚ   )Úget_baser¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>_  s   € ¨¯
©
«€ r½   c                ó"   — | j                  «       S rÚ   )Úitemr¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>h  s   € ¨¯©«€ r½   c                ó,   — t        j                  | «      S rÚ   )r4  rË  r¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>q  s   € ¬×(AÑ(AÀ!Ó(D€ r½   r&  z4ConstDictKeySource can only work on DictGuardManagerc                ó   — t        | «      S rÚ   )rŒ   r¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>§  s   € Ô(8¸Ó(;€ r½   c                ó   — | j                   S rÚ   r´  r¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>°  s
   € ¨¯	©	€ r½   c                ó   — t        | «      S rÚ   )r*  r¶  s    r»   r¬  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>É  s
   € ¬¨A«€ r½   zmissing guard manager builder z - )vr\  rÛ   rë  r±  r°  rª  rh  r¼  r"  r,  rÿ   r[   rí  Úget_guard_manager_from_sourcer’   rq   r¼   r˜  Ú
local_nameÚframelocals_managerrk   rü  r½  rþ  rm   Úglobal_weakref_managerrl   rx   r~   r   Útype_managerr|   Útype_dict_managerr}   Útype_mro_managerrv   rs   r€   r   rh   ro   rÇ  rÈ  Úmodule_nameÚlambda_managerrz   r`   rn   Úgrad_managerri   Úgeneric_getattr_managerrÜ  rW   rZ   r�   r  r  rð  rà  rc   rd   r#  rÁ  rÂ  r   rø  r5  r¶   r_   ÚRuntimeErrorr4   ÚgetattrÚpropÚlowerrf  r-   Úindexed_managerrp   Úlist_getitem_managerrj   rã  Úindex_is_slicerC  Útuple_getitem_managerÚunpack_sliceÚgetitem_managerrb   ÚcallableÚis_kwÚfunc_defaults_managerr«   Úidx_keyr¬   Úfunc_kwdefaults_managerru   r’  ry   rf   rw   rV   rY   rg   r{   Útuple_iterator_getitem_managerr+  rt   Úset_getitem_managerr‚   Úweakref_call_managerrX   Úcall_function_no_args_managerra   rr   r]   Úcode_managerr\   Úclosure_managerre   )rÄ   r^  Úroot_guard_managerr'  rÓ  r(  r1  r0  r/  Úbase_guard_manager_enumrº   ÚoutÚmoduler¶   Ú
kwdefaultsÚ	kw_sourcer¾  s    `               r»   r  z*GuardBuilder.get_guard_manager_from_source  sø  ø€ Ø!×/Ñ/×4Ñ4ÐàˆØ—k‘kˆà˜"Ò °×0KÑ0KÑ!KØ×.Ñ.¨{Ñ;Ð;à˜"ÒØ ŸH™H VÓ,ˆMØ8EˆD×"Ñ"¤2 mÓ#4Ñ5à!×8Ñ8¸ÀÓOÐð  ÐØ!ÐØ!ÐÜ"2×"@Ñ"@ÐÜ�fœmÔ,Ø%Ÿ{™{×/Ñ/ÐØ!%§¡¨&¯+©+Ó!6ÐØ!%×!CÑ!CÀFÇKÁKÓ!PÐØ&*×&AÑ&AØ—‘Ð/ó'Ð#ô
 �&œ+Ô&Ü1°$·+±+¸v×?PÑ?PÓQˆOØ$×8Ñ8Ø×&Ñ&¨Ð8Ø"Ø+Ø#5ð	 9ó ŠCô �FœLÔ)ð ×/Ñ/Ó1×FÑFØ×&Ñ&Ø"Ø+Ø#5ð	 Gó ŠCô �FÔ/Ô0Ø×/Ñ/Ó1×HÑHØ"×.Ñ.Ø"Ø+Ø#5ð	 Ió ŠCô �FÔ-Ô.ð &Ð%Ü�FœNÔ+Ø%Ð%Ü�FœJÔ'Ù%Ü$Ð%JÓKÐKØ$×1Ñ1Ø"Ø+Ø#5ð 2ó ŠCô
 �FœNÔ+Ù%Ü$Ð%JÓKÐKØ$×6Ñ6Ø"Ø+Ø#5ð 7ó ŠCô
 �FœMÔ*Ù%Ü$Ð%JÓKÐKØ$×5Ñ5Ø"Ø+Ø#5ð 6ó ŠCô
 ØäÜÜ+Ü2Ü"ðô	
ñ &Ü$Ð%JÓKÐKØ$ŠCÜ�FœLÔ)Ü×,Ñ,¨V×-?Ñ-?Ó@ˆFØ$×3Ñ3Ø*0Ò3Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ8Ô9Ø$×3Ñ3óð #Ø+Ø#5ð 4ó ŠCô �FÔ/Ô0Ø$×3Ñ3ÛIØ"Ø+Ø#5ð	 4ó ŠCô �FœJÔ'Ù%Ü$Ð%JÓKÐKØ$×1Ñ1Ø"Ø+Ø#5ð 2ó ŠCô
 �FÔ-Ô.Ù%Ü$Ð%JÓKÐKØ$×<Ñ<Ø—]‘]Ø"Ø+Ø#5ð	 =ó ŠCô Ø”ZÔ!3Ô5SÐTô
ñ &Ü$Ð%JÓKÐKÜ˜f¤jÔ1Ü$Ð'@ÄÀfÃÀÐ%OÓPÐPÜ3Ð4FÔGÙ'Ü(Ð)MÓNÐNØ×/Ñ/ØØ&Ø&Ø!Ø$ØØ&ó’ð )×8Ñ8ØŸ™Ø&Ø"/Ø'9ð	 9ó ’ô �FÔ.Ô0IÐJÔKÙ%Ü$Ð%JÓKÐKÜÐ0´4¼×9PÑ9PÐ2QÔRÜ$Ø8¼Ð>PÓ9QÐ8RÐSóð ô ˜fÔ'8Ô:SÐ&TÔUÜ$ØSÔTXÐY_ÓT`ÐSaÐbóð ô Ð,Ô.>Ô?Ø×2Ñ2Ð3JÔKÜ(Ð)NÓOÐOÜ-ØØ&Ø&Ø!Ø&ó’ô ˜fŸl™lÔ,>Ô?Ü&ð8óð ð )×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ó ’ô �FÔ0Ô1ð”'Ø"Ø" 6§;¡;×#3Ñ#3×#9Ñ#9Ó#;Ð"<¸HÐEóð —J‘JØ"Ø+Ø#5ôŠCô �FœMÔ*Ù%Ü$Ð%JÓKÐKà$×4Ñ4Ø—J‘JØ"Ø+Ø#5ð	 5ó ŠCô �FÔ-Ô.Ù%Ü$Ð%JÓKÐKØ$×9Ñ9Ø—L‘LØ"Ø+Ø#5ð	 :ó ŠCô �FœMÔ*Ù%Ü$Ð%JÓKÐKÜÐ,¬t´[×5LÑ5LÐ.MÔNÜ$Ð%<Ó=Ð=ÜÐ,¬dÔ3¸F×<QÒ<QØ(×=Ñ=ØŸ™Ø&Ø"/Ø'9ð	 >ó ’ô Ð.´Ô6¸v×?TÒ?TØ(×>Ñ>ØŸ™Ø&Ø"/Ø'9ð	 ?ó ’ð Ÿ™�Ø×(Ò(Ø"×/Ñ/Ó1�EØ(×8Ñ8ØØ&Ø"/Ø'9ð	 9ó ’ô �FœNÕ+Ù%Ü$Ð%JÓKÐKÙ#Ü$Ð%IÓJÐJÜÐ.Ô/Ü$Ð%JÓKÐKØ—<’<Ø(×>Ñ>Ø+Ø"4×"AÑ"AÜ'7×'EÑ'Eð ?ó ÷ "‘/ØŸ™Ø&Ø"/Ø'9ð	 "ó ò	 ð 0×>Ñ>�
Ø#Ð+Ü(Ð)LÓMÐMØ,Ð/@Ñ@�	ð .×EÑEØ$Ø",Ü'7×'EÑ'Eð Fó �ô
 ˜hÔ(8Ô9Ü(Ð)WÓXÐXà×3Ñ3ØŸ™Ø&Ø"/Ø'9ð	 4ó ’ô �FÔ-Ô.Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ü(Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ2Ô3Ù%Ü$Ð%JÓKÐKØ$×3Ñ3ÙAØ"Ø+Ø#5ð	 4ó ŠCô �FÔ5Ô6Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ;Ô<Ù%Ü$Ð%JÓKÐKØ$×3Ñ3ÙBØ"Ø+Ø#5ð	 4ó ŠCô �FœOÔ,Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ù4Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ0Ô1Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ù0Ø"Ø+Ø#5ð	 4ó ŠCô �FÔ-Ô.Ù%Ü$Ð%JÓKÐKØ$×3Ñ3ÙDØ"Ø+Ø#5ð	 4ó ŠCô �FÔ6Ô7Ù%Ü$Ð%JÓKÐKØ$×CÑCØ—l‘lØ"Ø+Ø#5ð	 Dó ŠCô ˜Ô 2Ô3ÜÐ0Ô2BÔCÜ$ØJóð ð %×4Ñ4Ø—l‘lØ"Ø+Ø#5ð	 5ó ŠCô �FÔ;Ô<Ù%Ü$Ð%JÓKÐKØ$×8Ñ8Ø—l‘lØ"Ø+Ø#5ð	 9ó ŠCô �FÔ-Ô.Ù%Ü$Ð%JÓKÐKØ$×9Ñ9Ø"Ø+Ø#5ð :ó ŠCô
 �FÔ4Ô5Ù%Ü$Ð%JÓKÐKØ$×BÑBØ"Ø+Ø#5ð Có ŠCô
 �FÔ1Ô2Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ù;Ø"Ø+Ø#5ð	 4ó ‰Cô �FÔ2Ô3Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ù1Ø"Ø+Ø#5ð	 4ó ‰Cô �FœJÔ'Ù%Ü$Ð%JÓKÐKØ$×1Ñ1Ø"Ø+Ø#5ð 2ó ‰Cô
 �FœMÔ*Ù%Ü$Ð%JÓKÐKØ$×4Ñ4Ø"Ø+Ø#5ð 5ó ‰Cô
 �FÔ/Ô0Ù%Ü$Ð%JÓKÐKØ$×3Ñ3Ù.Ø"Ø+Ø#5ð	 4ó ‰Cô !Ø0°°¸¸F¿K¹K¸=ÐIóð ð 47ˆ×#Ñ# F§K¡KÑ0Øˆ
r½   c                ó8   — | j                  |j                  «      S rÚ   )r  rå  ©rÄ   rS  s     r»   r»  zGuardBuilder.get_guard_managerÖ  s   € Ø×1Ñ1°%×2JÑ2JÓKÐKr½   c                ó²  — |€
t        «       }dj                  |j                  «       «      }t        ||«      \  }}i }d| j                  d   i}	t
        j                  d|«       t        ||	|«        |d   |j                  «       Ž }
|r(| j                  j                  j                  |
|d «       y | j                  j                  j                  |
|d «       y )NrY  r�  zPython shape guard function:
%sÚ___make_guard_fn)rÌ  Újoinrß  Úbuild_guard_functionrœ  Ú
guards_logÚdebugÚexecr%  r\  rÛ   Úadd_epilogue_lambda_guardÚadd_lambda_guard)rÄ   rß   rà   rÝ   Úis_epilogueÚmake_guard_fn_argsÚ_guard_bodyÚpycoder8  Úglobals_for_guard_fnr_  s              r»   Ú$add_python_lambda_leaf_guard_to_rootz1GuardBuilder.add_python_lambda_leaf_guard_to_rootÙ  sÙ   € ð ÐÜ,Ó.ˆLð "ŸY™Y |×'8Ñ'8Ó':Ó;ÐÜ2°:Ð?QÓRÑˆ�VØ ˆØ # T§Z¡Z°¡_Ð5ÐÜ×ÑÐ;¸VÔDÜˆVÐ)¨3Ô/Ø*�3Ð)Ñ*¨L×,?Ñ,?Ó,AÐBˆÙð ×Ñ×#Ñ#×=Ñ=ØØ"Øõð ×Ñ×#Ñ#×4Ñ4°XÐ?QÐSWÕXr½   c                óª   — t        |t        «      r|}n|j                  }|€
t        «       }|j	                  | j
                  || j                  «      }|S rÚ   )rÿ   r>   rå  rÌ  Ú	get_valuerœ  r�  )rÄ   Úguard_or_sourcerÝ   ÚsrcÚrets        r»   r°  zGuardBuilder.getþ  sM   € ô
 �o¤vÔ.Ø!‰Cà!×4Ñ4ˆCØÐÜ,Ó.ˆLØ�m‰m˜DŸJ™J¨°d×6NÑ6NÓOˆØˆ
r½   c                ó8  — t        |t        «      r|}n|j                  }t        |«      }|| j                  vrat
        j                  j                  j                  |«      }|r6|dk(  rt        j                  d|«       | j                  j                  |«       |S )Nr@  zinvalid var name: %s)rÿ   rÎ   rë  Ústrip_function_callr¥  r4  rú  r—  Úis_valid_var_nameÚlogÚwarningr|  )rÄ   rS  rë  rí  Úis_valids        r»   Úarg_refzGuardBuilder.arg_ref  sz   € ä�eœSÔ!Ø‰Dà—:‘:ˆDÜ" 4Ó(ˆØ�t—}‘}Ñ$Ü—x‘x×'Ñ'×9Ñ9¸$Ó?ˆHÙØ˜q’=Ü—K‘KÐ 6¸Ô>Ø—‘×$Ñ$ TÔ*àˆr½   c                óÎ   — |dk(  rt        |j                  «      }nt        |j                  |«      }t        |||j                  |j
                  ¬«      }|j                  | «       y )Nr­   )rÜ  rÙ  )r]   rå  rW   r:   rÜ  rÙ  Úcreate)rÄ   rS  râ  r_  Úattr_sourceÚ	new_guards         r»   Ú_guard_on_attributez GuardBuilder._guard_on_attribute!  s[   € ð ˜
Ò"Ü$ U×%=Ñ%=Ó>‰Kä$ U×%=Ñ%=¸yÓIˆKäØ˜¨¯©À×AQÑAQô
ˆ	ð 	×Ñ˜Õr½   c                óz   — | j                   j                  d   t        || j                   j                  d   «      fS ©NrÙ  )Ú	create_fnÚkeywordsrn  rW  s     r»   r¬  zGuardBuilder.<lambda>4  s4   € Ø�O‰O×$Ñ$ VÑ,Ü�E˜5Ÿ?™?×3Ñ3°FÑ;Ó<ð.
€ r½   c                ó,   — t        | |d   «      |d   k(  S ©Nr   rQ   )rn  r\  s     r»   r¬  zGuardBuilder.<lambda>8  s   € ¬°°xÀ±{Ó(CÀxÐPQÁ{Ñ(R€ r½   rr  c           	     ó2  — |€t        d«      ‚|j                  }t        |t        «      r|j                  }| j                  |«      }t        | j                  |«      |«      }d }|r
d|› d|›d�}n	d|› d|›d�}|| j                  v ry | j                  ||g| j                  |«      ¬«       | j                  |«      }|r—t        ||«      }| j                  |«      }	| j                  |«      }
| j                  ||	«      }t        |
«      r,| j                  |||
|	|j                  |j                  |«       nG|j!                  ||j                  |	|¬«       n'|j#                  |t%        ||«      |j&                  «       | j                  j)                  |«       y )Nz'attr must not be None for HASATTR guardúhasattr(rY  rZ  znot hasattr()Úprovided_guarded_objectrØ  )r   rå  rÿ   rs   rí  rX  rn  r°  rµ  Ú_set_guard_export_infor  rW   r¼  r  rð  rë  rà  Úadd_no_hasattr_guardrè  rÙ  rõ   )rÄ   rS  rÙ  r^  ÚrefÚvalr·   Úbase_managerr[  r'  r0  r(  s               r»   ÚHASATTRzGuardBuilder.HASATTR3  s¤  € ð ˆ<Ü Ð!JÓKÐKØ×)Ñ)ˆÜ�fœnÔ-Ø—[‘[ˆFà�l‰l˜5Ó!ˆÜ�d—h‘h˜u“o tÓ,ˆØˆÙØ˜c˜U " T H¨AÐ.‰Dà! #  b¨¨°Ð2ˆDà�4×0Ñ0Ñ0Øà×#Ñ#Ø�D�6°4·8±8¸E³?ð 	$ô 	
ð ×9Ñ9¸&ÓAˆÙô % V¨TÓ2ˆKØ ŸH™H [Ó1ˆMØ!%§¡¨%£ÐØ!%×!<Ñ!<¸[È-Ó!XÐô 4Ð4FÔGØ×)Ñ)ØØ Ø&Ø!Ø—K‘KØ×$Ñ$Ø&õð ×,Ñ,ØØ Ÿ:™:Ø"/Ø'9ð	 -õ ð ×-Ñ-ØÔ,¨T°5Ó9¸5×;KÑ;Kôð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r_  ©r`  ra  rW  s     r»   r¬  zGuardBuilder.<lambda>s  s   € ¨U¯_©_×-EÑ-EÀfÑ-M€ r½   c                ó   — || j                   vS rÚ   )r   r\  s     r»   r¬  zGuardBuilder.<lambda>t  s   € ¨¸¿¹Ð(F€ r½   c                óÎ  — |€t        d«      ‚| j                  |«      }| j                  |«      }| j                  |«      }d|›d|› d�}|| j                  v ry |j
                  › d�}|j                  || j                  |j                  «      t        j                  ¬«      }|j                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nz;attr must not be None for NOT_PRESENT_IN_GENERIC_DICT guardúnot ___dict_contains(rY  z
.__dict__)rÚ  rÛ  F)r   rX  r°  r»  rµ  rë  rá  rÐ  r   r"  r,  Úadd_dict_contains_guardrè  rÙ  rõ   )	rÄ   rS  rÙ  ri  rj  rk  r·   ræ  rî  s	            r»   ÚNOT_PRESENT_IN_GENERIC_DICTz(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICTr  sï   € ð ˆ<Ü ØMóð ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆà×-Ñ-¨eÓ4ˆà& t h¨b°°°ZÐ@ˆØ�4×0Ñ0Ñ0Øà"ŸZ™Z˜L¨	Ð2ˆØ#/×#HÑ#HØ"Ø×FÑFÀsÇ|Á|ÓTÜ/×=Ñ=ð $Ió $
Ð ð 	!×8Ñ8ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó   — t        |«      S rÚ   ©r  rW  s     r»   r¬  zGuardBuilder.<lambda>–  s
   € ¬T°%«[€ r½   c                ó   — t        | «      |u S rÚ   ru  r\  s     r»   r¬  zGuardBuilder.<lambda>—  s   € ¬¨U«°xÐ(?€ r½   c           	     ó0  — | j                  |«      }t        |t        j                  j                  «      r|j
                  r|j
                  }nt        |«      }|j                  |j                  k7  rd|_	        | j                  |d|j                  › d�«      }t        |«      }d| j                  |«      › d|› d|› �}| j                  ||g«       | j                  |«      j!                  |t#        ||d|j                  › �¬«      |j$                  «       y )	NTútype(rZ  z___check_type_id(rY  ú), type=útype ©ræ  )r°  rÿ   r4  Ú_subclassesÚ
FakeTensorr  r  rÔ   rÒ   Ú_unserializabler™  rë  rÖ  rX  rg  r»  Úadd_type_match_guardrè  rÙ  ©rÄ   rS  rÿ  r_  rò  Ú	type_reprr·   s          r»   Ú
TYPE_MATCHzGuardBuilder.TYPE_MATCH•  sö   € ð —‘˜“ˆÜ�eœU×.Ñ.×9Ñ9Ô:¸u¿|º|Ø—‘‰Aä�U“ˆAà�>‰>˜QŸZ™ZÒ'ð %)ˆEÔ!à—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆÜ# AÓ&ˆ	Ø" 4§<¡<°Ó#6Ð"7°r¸&¸ÀÈ)ÈÐUˆØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×:Ñ:ØÜ"Ø�e¨e°A·N±NÐ3CÐ,Dôð ×Ñõ	
r½   c                óX   — t        t        |t        «      r|j                  «      S |«      S rÚ   ©r  rÿ   rB   Úreal_objrW  s     r»   r¬  zGuardBuilder.<lambda>´  s&   € ¬TÜ(¨Ô0@ÔAˆE�N‰Nó.
€ ØGLó.
€ r½   c                ó`   — t        t        | t        «      r| j                  «      |u S | «      |u S rÚ   r„  r\  s     r»   r¬  zGuardBuilder.<lambda>·  s:   € ¬Ü(¨Ô0@ÔAˆE�N‰Nó)
ð ð)€ ØGLó)
ð ð)€ r½   c           
     ó  — | j                  |«      }t        |t        «      rt        |j                  «      }nt        |«      }|j
                  |j                  k7  rd|_        | j                  |d|j                  › d�«      }t        |«      }d| j                  |«      › d|› d|› �}| j                  ||g«       | j                  |«      j                  t        |t        ||d|j
                  › �¬«      |j                   «       y )	NTrx  rZ  z___check_fake_script_type(rY  ry  rz  r{  )r°  rÿ   rB   r  r…  rÔ   rÒ   r~  r™  rë  rÖ  rX  rg  r»  Ú add_fake_script_type_match_guardrè  rÙ  r€  s          r»   ÚFAKE_SCRIPT_TYPE_MATCHz#GuardBuilder.FAKE_SCRIPT_TYPE_MATCH³  sí   € ð —‘˜“ˆÜ�eÔ-Ô.Ü�U—^‘^Ó$‰Aä�U“ˆAà�>‰>˜QŸZ™ZÒ'Ø$(ˆEÔ!à—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆÜ# AÓ&ˆ	Ø+¨D¯L©L¸Ó,?Ð+@ÀÀ6À(È(ÐS\ÐR]Ð^ˆØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×FÑFÜØÜ"Ø�e¨e°A·N±NÐ3CÐ,Dôð ×Ñõ	
r½   c                ó  — | j                  |«      }| j                  |«      }t        | j                  |«      «      }d|› d|› �}| j                  ||g«       | j	                  |«      j                  |t        ||«      |j                  «       y )Nz___dict_version(ú) == )rX  r°  r   rg  r»  Úadd_dict_version_guardrè  rÙ  )rÄ   rS  ri  rj  Úversionr·   s         r»   ÚDICT_VERSIONzGuardBuilder.DICT_VERSIONÚ  s…   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜tŸx™x¨›Ó/ˆØ! #  e¨G¨9Ð5ˆØ×#Ñ# E¨D¨6Ô2ð 	×Ñ˜uÓ%×<Ñ<ØÔ'¨¨eÓ4°e×6FÑ6Fõ	
r½   c                ó4   — | j                   j                  d   S ©Nr
  rn  rW  s     r»   r¬  zGuardBuilder.<lambda>ê  ó   € ¨U¯_©_×-EÑ-EÀeÑ-L€ r½   c                ó
   — || v S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>ë  ó   € ¨°EÐ(9€ r½   c                ó   — | j                  |«      }d|›d|› d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nz___dict_contains(rY  rZ  T©rX  rµ  rg  r»  rr  rè  rÙ  rõ   ©rÄ   rS  r
  Údict_refr·   s        r»   ÚDICT_CONTAINSzGuardBuilder.DICT_CONTAINSé  s‘   € ð
 —<‘< Ó&ˆà" 3 '¨¨H¨:°QÐ7ˆØ�4×0Ñ0Ñ0ØØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×=Ñ=ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r�  rn  rW  s     r»   r¬  zGuardBuilder.<lambda>þ  r‘  r½   c                ó
   — || vS rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>ÿ  ó   € ¨¸Ð(=€ r½   c                ó   — | j                  |«      }d|›d|› d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nrq  rY  rZ  Fr•  r–  s        r»   ÚDICT_NOT_CONTAINSzGuardBuilder.DICT_NOT_CONTAINSý  s‘   € ð
 —<‘< Ó&ˆà& s g¨R°¨z¸Ð;ˆØ�4×0Ñ0Ñ0ØØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×=Ñ=ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r�  rn  rW  s     r»   r¬  zGuardBuilder.<lambda>	  r‘  r½   c                ó
   — || v S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>	  r“  r½   c                ó$  — | j                  |«      }|}d|› d|›d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nzset.__contains__(rY  rZ  T©rX  rµ  rg  r»  Úadd_set_contains_guardrè  rÙ  rõ   ©rÄ   rS  r
  Úset_refr  r·   s         r»   ÚSET_CONTAINSzGuardBuilder.SET_CONTAINS	  s–   € ð
 —,‘,˜uÓ%ˆØˆà" 7 )¨2¨d¨X°QÐ7ˆØ�4×0Ñ0Ñ0Øà×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×<Ñ<ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó4   — | j                   j                  d   S r�  rn  rW  s     r»   r¬  zGuardBuilder.<lambda>(	  r‘  r½   c                ó
   — || vS rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>)	  r›  r½   c                ó$  — | j                  |«      }|}d|› d|›d�}|| j                  v ry | j                  ||g«       | j                  |«      j	                  d|t        ||«      |j                  «       | j                  j                  |«       y )Nznot set.__contains__(rY  rZ  Fr¡  r£  s         r»   ÚSET_NOT_CONTAINSzGuardBuilder.SET_NOT_CONTAINS'	  s–   € ð
 —,‘,˜uÓ%ˆØˆà& w i¨r°$°¸Ð;ˆØ�4×0Ñ0Ñ0Øà×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×<Ñ<ØØÜ" 4¨Ó/Ø×Ñô		
ð 	×%Ñ%×)Ñ)¨$Õ/r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>>	  ó   € ¨U€ r½   c                ó   — | |k(  S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>?	  ó   € ¨°Ñ(9€ r½   c                ó¤  — | j                  |«      }| j                  |«      }t        |t        «      st	        dt        |«      › �«      ‚|› d|›�g}| j                  ||«       |r6| j                  |«      j                  t        ||«      |j                  «       y | j                  |«      j                  t        ||«      |j                  «       y )NzExpected bool, got r)  )rX  r°  r’   rÐ   r   r  rg  r»  Úadd_true_match_guardrè  rÙ  Úadd_false_match_guard©rÄ   rS  ri  rj  r·   s        r»   Ú
BOOL_MATCHzGuardBuilder.BOOL_MATCH=	  s¾   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ�cœ4Ô Ü Ð#6´t¸C³y°kÐ!BÓCÐCØ�%�t˜C˜7Ð#Ð$ˆØ×#Ñ# E¨4Ô0áØ×"Ñ" 5Ó)×>Ñ>Ü& t¨UÓ3°U×5EÑ5Eõð ×"Ñ" 5Ó)×?Ñ?Ü& t¨UÓ3°U×5EÑ5Eõr½   c                 ó   — y rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>T	  ó   � r½   c                ó
   — | d u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>U	  s
   € ¨°¨€ r½   c                ó  — | j                  |«      }| j                  |«      }|�t        dt        |«      › �«      ‚|› d�g}| j	                  ||«       | j                  |«      j                  t        ||«      |j                  «       y )NzExpected None, got z is None)	rX  r°  r   r  rg  r»  Úadd_none_match_guardrè  rÙ  r±  s        r»   Ú
NONE_MATCHzGuardBuilder.NONE_MATCHS	  s…   € ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØˆ?Ü Ð#6´t¸C³y°kÐ!BÓCÐCØ�%�xÐ Ð!ˆØ×#Ñ# E¨4Ô0à×Ñ˜uÓ%×:Ñ:Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>e	  r«  r½   c                ó
   — | |u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>f	  ó   € ¨°Ð(9€ r½   c                ó&   — | j                  ||«      S rÚ   )Úid_match_unchecked)rÄ   rS  ræ  s      r»   ÚID_MATCHzGuardBuilder.ID_MATCHd	  s   € ð ×&Ñ& u¨nÓ=Ð=r½   c                ó$  — t        |j                  t        «      r=| j                  t	        |j                  j
                  t        j                  «      «      S | j                  |«      }| j                  |«      }| j                  ||j                  «      }t        t        j                  |«      r|n
t        |«      «      }d|› d|› d|› �}| j                  ||gd¬«       | j!                  |«      j#                  |t%        |||«      |j&                  «       t        |j                  t(        «      r_t        |t*        j,                  j.                  «      r:|j                  j0                  }| j3                  |«      }	|	�|	| j4                  |<   y y y y )Nz___check_obj_id(rY  ry  r¾  )Úprovided_func_name)rÿ   rå  r~   r‚  r:   rí  r‹  rX  r°  r™  rë  rÖ  r›  Úisclassr  rg  r»  rÃ  rè  rÙ  rq   r4  r9  r:  r  r›  rå   )
rÄ   rS  ræ  ri  rj  rÅ  r�  r·   r  Úweak_ids
             r»   r½  zGuardBuilder.id_match_uncheckedq	  sY  € ô �e×.Ñ.´
Ô;à—?‘?Ü�e×.Ñ.×3Ñ3´\×5LÑ5LÓMóð ð �l‰l˜5Ó!ˆØ�h‰h�u‹oˆØ—‘˜S %§*¡*Ó-ˆÜ#¬7¯?©?¸3Ô+?¡CÄTÈ#ÃYÓOˆ	Ø! #  b¨¨°¸¸ÐDˆØ×#Ñ# E¨D¨6ÀjÐ#ÔQØ×Ñ˜uÓ%×8Ñ8ØÜ" 4¨°Ó?Ø×Ñô	
ô �e×.Ñ.´Ô<ô ˜#œuŸx™xŸ™Ô/Ø"×5Ñ5×@Ñ@�
Ø×.Ñ.¨sÓ3�ØÐ&Ø7>�D×(Ñ(¨Ò4ð 'ð 0ð	 =r½   c                 ó   — y rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>”	  r´  r½   c                ó
   — | d uS rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>•	  ó   € ¨°TÐ(9€ r½   c                óD  — | j                  |«      }| j                  |«      }t        |t        j                  «      st        dt        |«      › �«      ‚|› d�}| j                  ||g«       | j                  |«      j                  t        ||«      |j                  «       y )NúExpected torch.Tensor, got ú is not None)rX  r°  rÿ   r4  r5  r   r  rg  r»  Úadd_not_none_guardrè  rÙ  )rÄ   rS  rÿ  ri  rj  r·   s         r»   ÚNOT_NONE_MATCHzGuardBuilder.NOT_NONE_MATCH“	  s�   € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸ|™|Ô,Ü Ð#>¼tÀC»y¸kÐ!JÓKÐKØ��lÐ#ˆØ×#Ñ# E¨D¨6Ô2à×Ñ˜uÓ%×8Ñ8Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó"   — |j                  «       S rÚ   ©Úraw_reprrW  s     r»   r¬  zGuardBuilder.<lambda>¤	  s   € ¨U¯^©^Ó-=€ r½   c                ó(   — | j                  «       |k(  S rÚ   rÌ  r\  s     r»   r¬  zGuardBuilder.<lambda>¥	  s   € ¨¯©Ó(8¸HÑ(D€ r½   c                ó:  — | j                  |«      }| j                  |«      }t        |t        j                  j
                  «      st        dt        |«      › �«      ‚|› d|›d�}| j                  |«      j                  |t        ||«      |j                  «       y )NzExpected DispatchKeySet, got z.raw_repr() == z.raw_repr())rX  r°  rÿ   r4  rú  r¡   r   r  r»  Úadd_dispatch_key_set_guardrè  rÙ  )rÄ   rS  ri  rj  rß   s        r»   ÚDISPATCH_KEY_SET_MATCHz#GuardBuilder.DISPATCH_KEY_SET_MATCH£	  s‹   € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÜ˜#œuŸx™x×6Ñ6Ô7Ü Ð#@ÄÀcÃÀÐ!LÓMÐMØ�u˜O¨C¨7°+Ð>ˆ
à×Ñ˜uÓ%×@Ñ@ØÜ" :¨uÓ5Ø×Ñõ	
r½   c                ó,  — | j                   j                  €t        d«      ‚| j                   j                  j                  }d|› �g}| j	                  ||«       | j
                  j                  j                  |t        ||«      |j                  «       y )Nr–  z,torch.autograd.forward_ad._current_level == )
r©  r®  r   Ú
dual_levelrg  r\  rÛ   Úadd_dual_level_match_guardrè  rÙ  )rÄ   rS  rÓ  r·   s       r»   Ú
DUAL_LEVELzGuardBuilder.DUAL_LEVELµ	  sˆ   € ð × Ñ ×-Ñ-Ð5Ü Ð!QÓRÐRØ×*Ñ*×7Ñ7×BÑBˆ
Ø>¸z¸lÐKÐLˆØ×#Ñ# E¨4Ô0Ø×Ñ×Ñ×:Ñ:ØÜ" 4¨Ó/Ø×Ñõ	
r½   c                óÎ  ‡‡— | j                   j                  €t        d«      ‚| j                   j                  j                  }|D �cg c]  }|j	                  «       ‘Œ c}Šd‰› d�g}| j                  ||«       t        j                  j                  j                  Šdˆˆfd„}| j                  j                  j                  |t        ||«      |j                  «       y c c}w )Nr–  z5torch._functorch.pyfunctorch.compare_functorch_state(rZ  c                ó   •—  ‰‰«      S rÚ   rŠ  )rt  Ú
compare_fnÚstatess    €€r»   ru  z.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fnÓ	  s   ø€ Ù˜fÓ%Ð%r½   rˆ  )r©  r®  r   Úfunctorch_layersÚ	get_staterg  r4  Ú
_functorchÚpyfunctorchÚcompare_functorch_stater\  rÛ   rF  rè  rÙ  )rÄ   rS  ÚcisÚcir·   ru  rØ  rÙ  s         @@r»   ÚFUNCTORCH_STACK_MATCHz"GuardBuilder.FUNCTORCH_STACK_MATCHÅ	  sÅ   ù€ ð × Ñ ×-Ñ-Ð5Ü Ð!QÓRÐRØ×#Ñ#×0Ñ0×AÑAˆØ+.Ö/ R�"—,‘,•.Ò/ˆØGÈÀxÈqÐQÐRˆØ×#Ñ# E¨4Ô0ô ×%Ñ%×1Ñ1×IÑIˆ
ö	&ð 	×Ñ×Ñ×0Ñ0ØÔ& t¨UÓ3°U×5EÑ5Eõ	
ùò 0s   ÁC"c                ó¨  ‡‡‡‡— t         j                  j                  j                  j                  Št         j                  j                  j                  j
                  Š	 	 	 	 dˆfd„Š ‰ ‰«       «      Šd‰› �g}| j                  ||«       dˆˆˆfd„}| j                  j                  j                  |t        ||«      |j                  «       y )Nc                óH   •—  ‰| «      sy t        t        t        | «      «      S rÚ   )rC  Úmaprh  )ÚhooksÚare_inline_hookss    €r»   Úhooks_ids_fnz?GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.hooks_ids_fnâ	  s!   ø€ ñ $ EÔ*ØäœœR ›Ó(Ð(r½   zCtorch._functorch.aot_autograd.utils.top_saved_tensors_hooks ids == c                ó$   •— ‰ ‰ ‰«       «      k(  S rÚ   rŠ  )rt  Ú	get_hooksÚguard_hooks_idsrç  s    €€€r»   ru  z5GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.fnñ	  s   ø€ Ø"¡l±9³;Ó&?Ñ?Ð?r½   )rå  zCtuple[Callable[[torch.Tensor], Any], Callable[[Any], torch.Tensor]]rÍ   ztuple[int, ...] | Nonerˆ  )r4  rÜ  Ú_aot_autogradrÉ  Útop_saved_tensors_hooksÚ"saved_tensors_hooks_are_inlineablerg  r\  rÛ   rF  rè  rÙ  )rÄ   rS  r·   ru  ræ  ré  rê  rç  s       @@@@r»   ÚAUTOGRAD_SAVED_TENSORS_HOOKSz)GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKSÛ	  sÂ   û€ ä×$Ñ$×2Ñ2×8Ñ8×PÑPˆ	ä×Ñ×*Ñ*×0Ñ0×SÑSð 	ð	)ØVð	)à#õ	)ñ '¡y£{Ó3ˆð RÐRaÐQbÐcð
ˆð 	×#Ñ# E¨4Ô0÷	@ð 	×Ñ×Ñ×0Ñ0ØÔ& t¨UÓ3°U×5EÑ5Eõ	
r½   c                óÚ  ‡‡‡— | j                  |«      } G d„ d«      Š|j                  «       d   }t        t        j                  t
        j                  ˆfd„|«      «      Št        |d«      rt        |«       t        |«      Šd
ˆˆfd„}nd
ˆfd„}dt        |«      › d	t        j                  «       › �}| j                  |«      j                  |t        ||«      |j                   «       y )Nc                  ó   — e Zd Zdd„Zdd„Zy)ú@GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyComparec                 ó   — yrc  rŠ  ©rÄ   Úothers     r»   Ú__eq__zGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__eq__
  s   € Ør½   c                 ó   — yr  rŠ  ró  s     r»   Ú__ne__zGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__ne__
  s   € Ør½   N)rô  ÚobjectrÍ   rÐ   )rÒ   rÓ   rÔ   rõ  r÷  rŠ  r½   r»   Ú_AnyComparerñ  
  s   „ óôr½   rù  rQ   c                ó   •—  ‰«       S rÚ   rŠ  )r’  rù  s    €r»   r¬  z=GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.<lambda>

  s	   ø€ ¹»€ r½   rL  c                óJ   •— ‰j                  ‰| j                  «       d   «      S r³   rS  )rt  rO  Úoriginal_metadatas    €€r»   Úmetadata_checkerzEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checker
  s)   ø€ Ø×-Ñ-Ø% q×';Ñ';Ó'=¸aÑ'@óð r½   c                ó0   •— | j                  «       d   ‰k(  S r³   r  )rt  rü  s    €r»   rý  zEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checker
  s   ø€ Ø×+Ñ+Ó-¨aÑ0Ð4EÑEÐEr½   Ú___check_metadata_Ú_crˆ  )r°  rM  r   ÚpytreeÚtree_map_onlyr4  rò  rn  rš   r  rh  r7   Úcurrent_compile_idr»  rF  rè  rÙ  )	rÄ   rS  rÿ  rN  rý  rþ  rù  rO  rü  s	         @@@r»   ÚTENSOR_SUBCLASS_METADATA_MATCHz+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCHø	  sÐ   ú€ ð
 —‘˜“ˆ÷	ñ 	ð ×+Ñ+Ó-¨aÑ0ˆÜ$Ü× Ñ ¤§¡Ó/FÈÓQó
Ðô �5Ð.Ô/Ü% eÔ,Ü�u“+ˆC÷õFð +¬2Ð.>Ó+?Ð*@ÀÄ>×CdÑCdÓCfÐBgÐhˆØ×Ñ˜uÓ%×6Ñ6ØÜ" ;°Ó6Ø×Ñõ	
r½   c                óÐ   ‡— t        || j                  |«      «      Šdˆfd„}dt        |«      › �}| j                  |«      j	                  |t        ||«      |j                  «       y )Nc                ó   •— t        | ‰«      S rÚ   )r]  )rt  Úexpecteds    €r»   r_  z1GuardBuilder.DTENSOR_SPEC_MATCH.<locals>.guard_fn*
  s   ø€ Ü% a¨Ó2Ð2r½   Ú__dtensor_spec_rˆ  )rX  r°  rh  r»  rF  rè  rÙ  )rÄ   rS  r_  r·   r  s       @r»   ÚDTENSOR_SPEC_MATCHzGuardBuilder.DTENSOR_SPEC_MATCH!
  s^   ø€ ô (¨¨t¯x©x¸«Ó?ˆõ	3ð !¤ H£ Ð/ˆØ×Ñ˜uÓ%×6Ñ6ØÔ,¨T°5Ó9¸5×;KÑ;Kõ	
r½   c                ó  ‡— | j                  |«      }t        ||«      Š‰€ydˆfd„}dt        |«      › dt        j                  «       › �}| j                  |«      j                  |t        ||«      |j                  «       y)z=Guard on the values returned by the opaque object's guard_fn.Nc                ó   •— t        | ‰«      S rÚ   )rd  )rt  Úoriginal_valuess    €r»   Úopaque_guard_checkerzDGuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH.<locals>.opaque_guard_checker?
  s   ø€ Ü# A Ó7Ð7r½   Ú___check_opaque_guard_fn_r   rˆ  )	r°  ra  rh  r7   r  r»  rF  rè  rÙ  )rÄ   rS  rÿ  r  rþ  r  s        @r»   ÚOPAQUE_OBJ_GUARD_FN_MATCHz&GuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH2
  s€   ø€ ð —‘˜“ˆÜ,¨U°EÓ:ˆàÐ"Øõ	8ð 2´"Ð5IÓ2JÐ1KÈ2Ìn×NoÑNoÓNqÐMrÐsˆØ×Ñ˜uÓ%×6Ñ6Ø Ü" ;°Ó6Ø×Ñõ	
r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>J
  r«  r½   c                ó   — | |k(  S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>K
  r­  r½   c                óØ  — | j                  |«      }| j                  |«      }t        r¨t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  f}nd}t        t        f}t!        t"        t$        t         t&        t(        t*        t,        t.        j0                  t.        j2                  t.        j4                  j6                  j2                  h	|£|£z  «      }t.        j8                  j;                  «       rddlm}m }	 ddl!m"}
m#}m$}m%} |||||	|
|fz   }ddl&m'} ||fz   }dd l(m)c m*} tW        ||«      sF |jX                  t%        |«      «      s+t[        t%        |«      «      st]        dt%        |«      › �«      ‚t_        |t`        «      rgtc        jd                  |«      rRd|› d|› d	�g}| jg                  ||«       | ji                  |«      jk                  tm        ||«      |jn                  «       y t_        |tp        «      rgt        jd                  |«      rRd|› d
|› d	�g}| jg                  ||«       | ji                  |«      js                  tm        ||«      |jn                  «       y |› d|›�g}t_        ||«      rtu        |«      }tm        ||«      }|r|D �cg c]
  }|› d|› d�‘Œ }}| ji                  |«      jw                  |||jn                  «       | jg                  ||«       y c c}w )NrŠ  r   )Ú_MeshLayoutÚ
DeviceMesh)Ú_StridedShardÚPartialÚ	ReplicateÚShard)Ú_IntWrapperzUnexpected type z(type(z) is float and __math_isnan(z))z) is complex and __numpy_isnan(r)  râ  rZ  )<rX  r°  rŽ  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64rã  rç   rC  r‹   r  rõ  ÚsliceÚranger�   r4  ÚSizeÚStreamÚcudaÚstreamsÚdistributedÚis_availableÚtorch.distributed.device_meshr  r  Ú(torch.distributed.tensor.placement_typesr  r  r  r  Útorch.export.dynamic_shapesr  Útorch.utils._pytreerÉ  rL   rÿ   Úis_constant_classrD   r   r’   rÆ  rÄ  rÅ  rg  r»  Úadd_float_is_nan_guardrè  rÙ  ÚcomplexÚadd_complex_is_nan_guardr   r-  )rÄ   rS  ræ  ri  rj  Únp_typesÚok_mutable_typesÚok_typesr  r  r  r  r  r  r  r  r·   rà   rV  s                      r»   ÚEQUALS_MATCHzGuardBuilder.EQUALS_MATCHI
  s  € ð
 �l‰l˜5Ó!ˆØ�h‰h�u‹oˆÝä—‘Ü—‘Ü—‘Ü—‘Ü—‘Ü—	‘	Ü—	‘	Ü—	‘	Ü—
‘
Ü—
‘
Ü—
‘
ð/‰Hð ˆHä ¤#˜;ÐäÜ!äÜÜÜÜÜÜ—
‘
Ü—‘Ü—
‘
×"Ñ"×)Ñ)ðð ðð "ðñó
ˆô" ×Ñ×)Ñ)Ô+ßM÷ó ð  ØØØØØØð#ñ ˆHõ 	<à˜{˜nÑ,ˆç,Ð,ô �s˜HÔ%Ø'ˆv×'Ñ'¬¨S«	Ô2Ü#¤D¨£IÔ.ä Ð#3´D¸³I°;Ð!?Ó@Ð@ô �#”uÔ¤$§*¡*¨S¤/Ø˜S˜EÐ!=¸c¸UÀ"ÐEÐFˆDØ×'Ñ'¨¨tÔ4à×"Ñ" 5Ó)×@Ñ@Ü& t¨UÓ3Ø× Ñ ôð ô �#”wÔ¤B§H¡H¨S¤MØ˜S˜EÐ!@ÀÀÀRÐHÐIˆDØ×'Ñ'¨¨tÔ4à×"Ñ" 5Ó)×BÑBÜ& t¨UÓ3Ø× Ñ ôð ð �%�t˜C˜7Ð#Ð$ˆÜ�#Ð'Ô(ô ˜3“-ˆCä3°D¸%Ó@ÐÙà?Qö"Ø7;�4�&˜ Ð 0°Ò2ð"Ðð "ð 	×Ñ˜uÓ%×<Ñ<ØÐ# U×%5Ñ%5ô	
ð 	×#Ñ# E¨4Ô0Øùò"s   ÌM'c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>¿
  r«  r½   c                ó   — | |k(  S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>À
  r­  r½   c                ó  — | j                  |«      }t        |t        «      r| j                  |«       y |€| j	                  |«       y t        |t
        j                  «      r| j                  |«       y | j                  |«       y rÚ   )	r°  r’   rÐ   r²  r¸  r;  ÚCodeTyper¾  r8  ©rÄ   rS  rj  s      r»   ÚCONSTANT_MATCHzGuardBuilder.CONSTANT_MATCH¾
  s`   € ð
 �h‰h�u‹oˆÜ�#”tÔØ�O‰O˜EÕ"Øˆ[Ø�O‰O˜EÕ"Ü�CœŸ™Ô(Ø�M‰M˜%Õ à×Ñ˜eÕ$r½   c                ó   — t        |«      S rÚ   ©rp  rW  s     r»   r¬  zGuardBuilder.<lambda>Î
  s   € Ô-JÈ5Ó-Q€ r½   c                ó   — t        | «      |k(  S rÚ   r@  r\  s     r»   r¬  zGuardBuilder.<lambda>Ï
  s   € Ô(EÀeÓ(LØñ)€ r½   c                óp  ‡‡	— ddl m} | j                  |«      }| j                  |«      }dŠ|D ]  }t	        ||«      sŒ|Š n ‰€t        dt        |«      › �«      ‚ ‰|«      Š	‰j                  › d|› d‰	›�g}dˆˆ	fd„}| j                  |«      j                  |t        ||«      |j                  «       y)	zÎGuard for subclasses of constant types (int, float, str, etc.).

        Extracts the base value using the base type's converter (e.g.,
        int.__int__) to avoid calling user-overridden __eq__.
        rQ   rm  Nz No constant base type found for ú(r‹  c                ó   •—  ‰| «      ‰k(  S rÚ   rŠ  )rt  Ú	base_typeÚ
base_values    €€r»   Úcheck_fnz6GuardBuilder.CONSTANT_SUBCLASS_MATCH.<locals>.check_fné
  s   ø€ Ù˜Q“< :Ñ-Ð-r½   rˆ  )ro  rn  r°  rX  rÿ   r   r  rÒ   r»  rF  rè  rÙ  )
rÄ   rS  rn  rj  ri  r_  r·   rG  rE  rF  s
           @@r»   ÚCONSTANT_SUBCLASS_MATCHz$GuardBuilder.CONSTANT_SUBCLASS_MATCHÍ
  sÊ   ù€ õ 	Aà�h‰h�u‹oˆØ�l‰l˜5Ó!ˆð ˆ	Ø%ò 	ˆAÜ˜#˜qÕ!Ø�	Ùð	ð ÐÜ Ð#CÄDÈÃIÀ;Ð!OÓPÐPá˜s“^ˆ
Ø×%Ñ%Ð& a¨ u¨E°*°Ð@ÐAˆö	.ð 	×Ñ˜uÓ%×6Ñ6ØÜ" 4¨Ó/Ø×Ñõ	
r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>ó
  r«  r½   c                ó
   — | |u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>ô
  r»  r½   c                ó„  — | j                  |d«       | j                  |«      }t        |d«      rjt        |j                  t
        «      s!t        dt        |j                  «      › �«      ‚| j                  s"| j                  |dt        j                  «       y y t        j                  dddt        |«      › d�dg¬	«       y )
Nz%[inline-inbuilt-nn-modules-candidate]Útrainingz&Expected val.training to be bool, got z-Attempted to guard on uninitialized nn.Modulerl  zKAttempted to setup an NN_MODULE guard on uninitialized nn.Module subclass `z`.zIEnsure the `nn.Module` subclass instance has called `super().__init__()`.)Úgb_typeÚcontextÚexplanationÚhints)r¾  r°  rn  r’   rL  rÐ   r   r  r´  r]  r‹  r>  rT   Úunimplementedr=  s      r»   Ú	NN_MODULEzGuardBuilder.NN_MODULEò
  s·   € ð 	�‰�eÐDÔEØ�h‰h�u‹oˆÜ�3˜
Ô#Ü˜#Ÿ,™,¬Ô-Ü$Ø<¼TÀ#Ç,Á,Ó=OÐ<PÐQóð ð ×(Ò(à×(Ñ(¨°
¼L×<WÑ<WÕXð )ô ×ÑØGØð'Ü'+¨C£y k°ð5ð `ðör½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>  r«  r½   c                ó
   — | |u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>  r»  r½   c                ó$   — | j                  |«      S )z0things like torch.add and user defined functions)r¾  r=  s     r»   ÚFUNCTION_MATCHzGuardBuilder.FUNCTION_MATCH  s   € ð �}‰}˜UÓ#Ð#r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>  r«  r½   c                ó
   — | |u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>  r»  r½   c                ó¢   — | j                  |«      }t        j                  |«      st        |j                  › d�«      ‚| j                  |«       y)zNEquals ID_MATCH on classes - better readability than directly calling ID_MATCHz( is not a class, but CLASS_MATCH is usedN)r°  r›  rÁ  r   rë  r½  r=  s      r»   ÚCLASS_MATCHzGuardBuilder.CLASS_MATCH  sI   € ð �h‰h�u‹oˆÜ�‰˜sÔ#Ü Ø—:‘:�,ÐFÐGóð ð 	×Ñ Õ&r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>$  r«  r½   c                ó
   — | |u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>%  r»  r½   c                ó¢   — | j                  |«      }t        j                  |«      st        |j                  › d�«      ‚| j                  |«       y)zNEquals ID_MATCH on modules - better readability than directly calling ID_MATCHz* is not a module, but MODULE_MATCH is usedN)r°  r›  Úismoduler   rë  r½  r=  s      r»   ÚMODULE_MATCHzGuardBuilder.MODULE_MATCH#  sK   € ð �h‰h�u‹oˆÜ×Ñ Ô$Ü Ø—:‘:�,ÐHÐIóð ð 	×Ñ Õ&r½   c                óÚ   — | j                  |«      }t        |«      t        j                  u r.t	        |d«      r"| j                  |dt        j                  «       y| j                  |«       y)z!matches a closure by __code__ id.r­   N)	r°  r  r;  r<  rn  r]  r‹  r>  rV  r=  s      r»   ÚCLOSURE_MATCHzGuardBuilder.CLOSURE_MATCH0  sT   € ð �h‰h�u‹oˆä�‹9œ×*Ñ*Ñ*¬w°s¸JÔ/Gð ×$Ñ$ U¨J¼×8SÑ8SÕTà×Ñ Õ&r½   c                ó   — |S rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>A  r«  r½   c                ó
   — | |u S rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>B  r»  r½   c                óâ   — | j                   rSt        |j                  t        «      r9| j                  j
                  j                  |j                  j                  «       | j                  |«      S rÚ   )	r«  rÿ   rå  rc   r©  Úused_builtin_varsrõ   r¶   r½  r=  s     r»   ÚBUILTIN_MATCHzGuardBuilder.BUILTIN_MATCH@  sZ   € ð
 ×Òä˜%×2Ñ2Ô4EÔFØ×%Ñ%×7Ñ7×;Ñ;Ø×,Ñ,×2Ñ2ôð ×&Ñ& uÓ-Ð-r½   c                ó   — t        |«      S rÚ   ©rµ   rW  s     r»   r¬  zGuardBuilder.<lambda>N  s
   € ¬S°«Z€ r½   c                ó   — t        | «      |k(  S rÚ   rh  r\  s     r»   r¬  zGuardBuilder.<lambda>O  s   € ¬¨E«
°hÑ(>€ r½   c                óV  — | j                  |«      }| j                  |«      }t        |t        «      s| j	                  |«       g }t        |«      dk(  r|j                  d|› �«       n |j                  d|› dt        |«      › �«       | j                  ||«       t        |t        «      r@| j                  |«      j                  t        |«      t        ||«      |j                  «       y | j                  |«      j                  t        |«      t        ||«      |j                  «       y )Nr   znot zlen(r‹  )rX  r°  rÿ   r#  r‚  rµ   r|  rg  r»  Úadd_dict_length_check_guardrè  rÙ  Úadd_length_check_guard©rÄ   rS  ri  rÿ  r·   s        r»   ÚSEQUENCE_LENGTHzGuardBuilder.SEQUENCE_LENGTHM  sö   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆä˜%¤Ô&à�O‰O˜EÔ"àˆÜˆu‹:˜Š?Ø�K‰K˜$˜s˜e˜Õ%à�K‰K˜$˜s˜e 5¬¨U«¨Ð5Ô6à×#Ñ# E¨4Ô0Ü�eœTÔ"Ø×"Ñ" 5Ó)×EÑEÜ�E“
Ü& t¨UÓ3Ø× Ñ õð ×"Ñ" 5Ó)×@Ñ@Ü�E“
Ü& t¨UÓ3Ø× Ñ õr½   c                ó   — t        |«      S rÚ   ©r™   rW  s     r»   r¬  zGuardBuilder.<lambda>p  s   € Ô-?ÀÓ-F€ r½   c                ó   — t        | «      |k(  S rÚ   rp  r\  s     r»   r¬  zGuardBuilder.<lambda>q  s   € Ô(:¸5Ó(AÀXÑ(M€ r½   c                óœ  — | j                  |«      }| j                  |«      }t        |«      }g }|j                  d|› dt	        |«      › �«       | j                  ||«       t        |«      }| j                  |d|j                  › d�«      }| j                  |«      j                  t	        |«      |t        ||«      |j                  «       y )Nz___tuple_iterator_len(r‹  rx  rZ  )rX  r°  r  r|  r™   rg  r™  rë  r»  Úadd_tuple_iterator_length_guardrè  rÙ  )rÄ   rS  ri  rÿ  r_  r·   rò  s          r»   ÚTUPLE_ITERATOR_LENzGuardBuilder.TUPLE_ITERATOR_LENo  s»   € ð
 �l‰l˜5Ó!ˆØ—‘˜“ˆÜ�‹KˆàˆØ�‰Ð,¨S¨E°Ô7IÈ%Ó7PÐ6QÐRÔSØ×#Ñ# E¨4Ô0ä�‹KˆØ—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆà×Ñ˜uÓ%×EÑEÜ˜uÓ%ØÜ" 4¨Ó/Ø×Ñõ		
r½   c                ó   — t        |«      S rÚ   ©r–   rW  s     r»   r¬  zGuardBuilder.<lambda>‡  s   € Ô-AÀ%Ó-H€ r½   c                ó   — t        | «      |k(  S rÚ   rv  r\  s     r»   r¬  zGuardBuilder.<lambda>ˆ  s   € Ô(<¸UÓ(CÀxÑ(O€ r½   c           
     óž  — | j                  |«      }| j                  |«      }t        |«      }g }t        |«      }|j	                  d|› d|› �«       | j                  ||«       t        |«      }| j                  |d|j                  › d�«      }|\  }}	}
| j                  |«      j                  ||	|
|t        ||«      |j                  «       y )Nz___normalize_range_iter(r‹  rx  rZ  )rX  r°  r  r–   r|  rg  r™  rë  r»  Úadd_range_iterator_match_guardrè  rÙ  )rÄ   rS  ri  rÿ  r_  r·   Únormalized_range_iterrò  ÚstartÚstopÚsteps              r»   ÚRANGE_ITERATOR_MATCHz!GuardBuilder.RANGE_ITERATOR_MATCH†  sÎ   € ð
 �l‰l˜5Ó!ˆØ—‘˜“ˆÜ�‹KˆàˆÜ 4°UÓ ;ÐØ�‰Ð.¨s¨e°5Ð9NÐ8OÐPÔQØ×#Ñ# E¨4Ô0ä�‹KˆØ—‘˜Q %¨¯
©
 |°1Ð 5Ó6ˆà1Ñˆˆt�TØ×Ñ˜uÓ%×DÑDØØØØÜ" 4¨Ó/Ø×Ñõ	
r½   c                ó.   — t        |«      t        |«      fS rÚ   ©r  r•   rW  s     r»   r¬  zGuardBuilder.<lambda>¢  s   € ¬d°5«kÔ;OÐPUÓ;VÐ-W€ r½   c                óH   — t        | «      |d   u xr t        | «      |d   k(  S rc  r€  r\  s     r»   r¬  zGuardBuilder.<lambda>£  s,   € Ü�‹K˜8 A™;Ð&ÒUÔ+?ÀÓ+FÈ(ÐSTÉ+Ñ+Uð r½   c                ó(  ‡‡— | j                  |«      }| j                  |«      }t        |«      Št        |«      Šdˆˆfd„}d|› d‰› �g}| j	                  ||«       | j                  |«      j                  |t        ||«      |j                  «       y )Nc                ó>   •— t        | «      ‰u xr t        | «      ‰k(  S rÚ   r€  )rt  Ú
count_typeÚnormalized_count_iters    €€r»   r_  z3GuardBuilder.COUNT_ITERATOR_MATCH.<locals>.guard_fn­  s(   ø€ ä�Q“˜:Ð%ò EÜ(¨Ó+Ð/DÑDðr½   z___normalize_count_iter(r‹  rˆ  )	rX  r°  r  r•   rg  r»  rF  rè  rÙ  )rÄ   rS  ri  rÿ  r_  r·   r„  r…  s         @@r»   ÚCOUNT_ITERATOR_MATCHz!GuardBuilder.COUNT_ITERATOR_MATCH¡  s�   ù€ ð �l‰l˜5Ó!ˆØ—‘˜“ˆÜ˜%“[ˆ
Ü 4°UÓ ;Ðö	ð +¨3¨%¨uÐ5JÐ4KÐLÐMˆØ×#Ñ# E¨4Ô0Ø×Ñ˜uÓ%×6Ñ6ØÔ,¨T°5Ó9¸5×;KÑ;Kõ	
r½   c                ó’  — t        |j                  «      st        |«      ry | j                  rdt        |«      x}r%| j                  j
                  j                  |«       t        |«      x}r%| j                  j                  j                  |«       | j                  |«      }| j                  |j                  «      }t        |j                  «      st        |«      ry ||f}|| j                  v ry | j                  j                  ||f«       | j                  j                  ||f«       |› d|› �g}| j                  ||«       t        j                  r2|d   }t!        ||«      d   }	| j"                  j%                  ||	f«       y t'        | j)                  |«      | j+                  |«      t!        ||«      |j,                  «       y )Nú is r   )r1   rå  r«  r,   r©  Úadditional_used_local_varsrõ   r+   Úadditional_used_global_varsrX  rë  r0   r²  rg  rR   Ú#use_lamba_guard_for_object_aliasingrè  r³  r|  r    r»  r  rÙ  )
rÄ   rS  Úsource_brë  Úref_aÚref_br
  r·   r  r~  s
             r»   ÚDUPLICATE_INPUTzGuardBuilder.DUPLICATE_INPUT¼  s�  € ä$Ø×$Ñ$ô
ä& xÔ0Øà×ÒÜ,¨XÓ6Ð6ˆtÐ6Ø×%Ñ%×@Ñ@×DÑDÀTÔJÜ-¨hÓ7Ð7ˆtÐ7Ø×%Ñ%×AÑA×EÑEÀdÔKà—‘˜UÓ#ˆØ—‘˜XŸ]™]Ó+ˆä#Ø×$Ñ$ô
ä% hÔ/Øð �eˆnˆØ�$×5Ñ5Ñ5Øà×+Ñ+×/Ñ/°¸°Ô?Ø×+Ñ+×/Ñ/°¸°Ô?à�'˜˜e˜WÐ%Ð&ˆØ×#Ñ# E¨4Ô0ä×5Ò5ð ˜Q™ˆIÜ 6°yÀ%Ó HÈÑ KÐØ×,Ñ,×3Ñ3°YÐ@QÐ4RÕSä)Ø×&Ñ& uÓ-Ø×2Ñ2°8Ó<Ü& t¨UÓ3Ø× Ñ õ	r½   c                 ó   — y rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>ì  r´  r½   c                ó
   — | d uS rÚ   rŠ  r\  s     r»   r¬  zGuardBuilder.<lambda>í  rÅ  r½   c                ó¼   — | j                  |«      › d�g}| j                  ||«       | j                  |«      j                  t	        ||«      |j
                  «       y )NrÈ  )rX  rg  r»  rÉ  rè  rÙ  ©rÄ   rS  r·   s      r»   ÚWEAKREF_ALIVEzGuardBuilder.WEAKREF_ALIVEë  sX   € ð
 —<‘< Ó&Ð' |Ð4Ð5ˆà×#Ñ# E¨4Ô0Ø×Ñ˜uÓ%×8Ñ8Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                ó4   — t        |j                  «       «      S rÚ   ©rã  rß  rW  s     r»   r¬  zGuardBuilder.<lambda>ø  s   € ¬T°%·*±*³,Ó-?€ r½   c                ó:   — t        | j                  «       «      |k(  S rÚ   r–  r\  s     r»   r¬  zGuardBuilder.<lambda>ù  s   € ¬¨U¯Z©Z«\Ó(:¸hÑ(F€ r½   c           	     ó$  — | j                  |«      }| j                  |«      }g }|j                  d|› dt        |j	                  «       «      › �«       | j                  ||«       | j                  |«      j                  |||j                  «       y)z7Guard on the key order of types.MappingProxyType objectzlist(z.keys()) == N)	rX  r°  r|  rã  rß  rg  r»  Úadd_mapping_keys_guardrÙ  rm  s        r»   ÚMAPPING_KEYS_CHECKzGuardBuilder.MAPPING_KEYS_CHECK÷  s   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆàˆØ�‰�e˜C˜5 ¬T°%·*±*³,Ó-?Ð,@ÐAÔBØ×#Ñ# E¨4Ô0Ø×Ñ˜uÓ%×<Ñ<Ø�4˜×)Ñ)õ	
r½   c                ó>   — t        t        j                  |«      «      S rÚ   ©rã  r#  rß  rW  s     r»   r¬  zGuardBuilder.<lambda>  s   € ¬T´$·)±)¸EÓ2BÓ-C€ r½   c                óD   — t        t        j                  | «      «      |k(  S rÚ   rœ  r\  s     r»   r¬  zGuardBuilder.<lambda>	  s   € ¬¬T¯Y©Y°uÓ-=Ó(>À(Ñ(J€ r½   c           
     óÔ  — | j                  |«      }| j                  |«      }|t        j                  j                  j
                  u r| j                  |«       y| j                  |«       g }|j                  d|› dt        t        |«      «      ›�«       | j                  ||«       | j                  |j                  «      r| j                  ||«       y| j                  ||«       y)z6Insert guard to check that the keys of a dict are sameNr  z)) == )rX  r°  r4  rÉ  rL   ÚSUPPORTED_NODESrŽ  rn  r|  rã  rŠ   rg  ró  rå  rÆ  rÀ  rm  s        r»   ÚDICT_KEYS_MATCHzGuardBuilder.DICT_KEYS_MATCH  sÆ   € ð �l‰l˜5Ó!ˆØ—‘˜“ˆà”E—K‘K×'Ñ'×7Ñ7Ñ7à×Ñ˜eÔ$Øà×Ñ˜UÔ#àˆð
 	�‰�o c U¨&´Ô6GÈÓ6NÓ1OÐ0RÐSÔTØ×#Ñ# E¨4Ô0à×+Ñ+¨E×,DÑ,DÔEØ×-Ñ-¨e°UÕ;à×4Ñ4°U¸EÕBr½   c                 ó   — y rÚ   rŠ  rW  s     r»   r¬  zGuardBuilder.<lambda>%  r´  r½   c                ó   — t        | «      dk(  S rï   rh  r\  s     r»   r¬  zGuardBuilder.<lambda>&  s   € ¬¨E«
°a©€ r½   c                óH   — t         j                  ry| j                  |«       y)z\Special guard to skip guards on empty hooks. This is controlled by skip_nnmodule_hook_guardsN)rR   Úskip_nnmodule_hook_guardsrn  r=  s     r»   ÚEMPTY_NN_MODULE_HOOKS_DICTz'GuardBuilder.EMPTY_NN_MODULE_HOOKS_DICT$  s   € ô ×+Ò+àØ×Ñ˜UÕ#r½   c                 ó   — y rÚ   rŠ  r=  s     r»   Ú	GRAD_MODEzGuardBuilder.GRAD_MODE0  ó   € àr½   c                 ó   — y rÚ   rŠ  r=  s     r»   ÚDETERMINISTIC_ALGORITHMSz%GuardBuilder.DETERMINISTIC_ALGORITHMS5  r¨  r½   c                 ó   — y rÚ   rŠ  r=  s     r»   ÚFSDP_TRAINING_STATEz GuardBuilder.FSDP_TRAINING_STATE:  r¨  r½   c                ó6  — | j                   j                  }|€t        d«      ‚|j                  }|| j                   _        d| j                   j                  j                  «       › �g}| j                  j                  j                  |||j                  «       y )Núoutput_graph must not be Nonez ___check_global_state() against )
r©  r®  r   Úglobal_state_guardÚglobal_stateÚ__getstate__r\  rÛ   Úadd_global_state_guardrÙ  )rÄ   rS  r®  r°  r·   s        r»   ÚGLOBAL_STATEzGuardBuilder.GLOBAL_STATE?  s�   € à×,Ñ,×9Ñ9ˆØÐÜ Ð!@ÓAÐAØ#×6Ñ6ˆØ-9ˆ×ÑÔ*ð /¨t×/DÑ/D×/QÑ/Q×/^Ñ/^Ó/`Ð.aÐbð
ˆð 	×Ñ×Ñ×6Ñ6Ø˜$ × 0Ñ 0õ	
r½   c                ó.  — | j                   j                  €t        d«      ‚t        | j                   j                  «      | j                   _        | j
                  j                  j                  | j                   j                  dg|j                  «       y )Nz*torch_function_mode_stack must not be Nonez$___check_torch_function_mode_stack())	r©  Útorch_function_mode_stackr   Ú$make_torch_function_mode_stack_guardÚ"torch_function_mode_stack_check_fnr\  rÛ   Ú#add_torch_function_mode_stack_guardrÙ  r=  s     r»   ÚTORCH_FUNCTION_STATEz!GuardBuilder.TORCH_FUNCTION_STATEP  s   € à× Ñ ×:Ñ:ÐBÜ Ð!MÓNÐNä0Ø×%Ñ%×?Ñ?óð 	×ÑÔ@ð
 	×Ñ×Ñ×CÑCØ×!Ñ!×;Ñ;Ø3Ð4Ø×Ñõ	
r½   c                ó„  — |j                   t        j                  urt        d|j                   › �«      ‚| j                  j
                  €t        d«      ‚d| j                  j
                  j                  ›�g}| j                  ||«       | j                  |«      j                  t        ||«      |j                  «       y)z/Guard on CURRENT_DEVICE per torch.utils._devicez!Expected GuardSource.GLOBAL, got Nr–  zutils_device.CURRENT_DEVICE == )r^  r=   ÚGLOBALr   r©  r®  Úcurrent_devicerg  r»  Úadd_default_device_guardrè  rÙ  r“  s      r»   ÚDEFAULT_DEVICEzGuardBuilder.DEFAULT_DEVICE`  s¬   € ð �<‰<œ{×1Ñ1Ñ1Ü Ð#DÀUÇ\Á\ÀNÐ!SÓTÐTà× Ñ ×-Ñ-Ð5Ü Ð!QÓRÐRà-¨d×.CÑ.C×.PÑ.P×._Ñ._Ð-bÐcð
ˆð 	×#Ñ# E¨4Ô0à×Ñ˜uÓ%×>Ñ>Ü" 4¨Ó/°×1AÑ1Aõ	
r½   c                óŠ  ‡ ‡%‡&‡'‡(— ddl m} |j                  dk7  rt        d|j                  ›�«      ‚‰ j                  j
                  Š(‰(€t        d«      ‚‰ j                  j                  �T‰ j                  j                  }|j                  }|j                  }|j                  �|j                  }|j                  }�n’t        ‰(|«      st        dt        ‰(«      › �«      ‚‰(j                  €t        d«      ‚‰(j                  j                  xs g Š&‰&D �cg c]  }|j                  ‘Œ c}Š'd#ˆ(fd„}	‰(j                   r³i }
g }g }i }t#        «       }‰(j                   D ]j  }|j$                  ‰(j&                  v r;t(        j*                  j,                  j/                  ||	‰(j                  |
||||«       ŒVt0        j3                  d	«       Œl t5        ||t7        |j9                  «       «      |d
¬«      Š%nd Š%d$ˆ%ˆ&ˆ'ˆ(ˆ fd„}t:        j<                  r	  |d«      \  }}}d
}nd} |d«      \  }}‰(j*                  s‰(j                  jA                  «        ‰ jB                  rˆtE        «       jG                  d«      }|�'t        |tH        «      st        dt        |«      › �«      ‚|€g n"t7        |jJ                  jM                  «       «      }tO        |||||¬«      ‰ j                  _        |jP                  D ]  }‰ jS                  ||g«       Œ tU        jV                  «       x}r%|jX                  j[                  |jP                  «       g }g }|sÀst        d«      ‚|jP                  |jJ                  }}|sy |j]                  «       D ]…  \  }}t        |t^        «      rd}Œ‰ jG                  |i t`        ¥tc        «       ¥¬«      }t        |td        «      r|jg                  ||f«       Œ`t        |th        «      r|jg                  ||f«       Œ„d}Œ‡ |�sœdd l5}ddl6m7} st        d«      ‚|jP                  |jJ                  }}tq        ||z   «      }	 ts        |«      D ��cg c]   \  }}‰ ju                  tw        ||«      «      ‘Œ" }}}djy                  d„ ts        |«      D «       «      } djy                  d„ ts        |«      D «       «      }!| rd| › d�} |!rd|!› d�}!t{        j|                  d| › d|!› ddjy                  |«      › d �«      }"t~        j�                  d!|"|jP                  «       |jƒ                  |"«      }#|j…                  |#j†                  |jˆ                  «      jŠ                  }$|$st        d"«      ‚	 t�        |t�        |«      t�        |«      |$|#|jP                  |j�                  «       y |jP                  r9‰ j™                  |jP                  |jP                  i t`        ¥tc        «       ¥¬«       y y c c}w # t>        $ r d} |d«      \  }}Y �Œâw xY wc c}}w # t(        j’                  j”                  j–                  $ r Y Œ—w xY w)%Nr   ©r¢   rl  zExpected empty guard name, got r®  ú Expected OutputGraphCommon, got z'output_graph.shape_env must not be Nonec                óz   •— ‰j                   |    D �cg c]  }t        |t        j                  |«      ‘Œ c}S c c}w rÚ   )Útracked_fakes_id_to_sourcer4   r3   ÚSIZE)Út_idrô  r^  r®  s      €r»   Úget_sourcesz+GuardBuilder.SHAPE_ENV.<locals>.get_sources�  sA   ø€ ð #/×"IÑ"IÈ$Ñ"Oöð ô )¨´×1DÑ1DÀcÕJòð ùò s   “"8z+Untracked tensor used in export constraintsF)Úsource_pairsÚderived_equalitiesÚphantom_symbolsÚrelaxed_sourcesÚ	warn_onlyc           	     óæ   •— ‰j                   j                  ‰D �cg c]  }|j                  ‘Œ c}‰D �cg c]  }|j                  ‘Œ c}‰‰‰j                  ‰j
                   | ¬«      S c c}w c c}w )N)Úinput_contextsÚequalities_inputsrš  Úignore_staticÚlangs)Ú	shape_envÚproduce_guards_verboseÚfaker^  rš  Úexport)rÐ  r-  rÎ  rß  rÍ  r®  rÄ   s     €€€€€r»   Ú_get_code_partsz/GuardBuilder.SHAPE_ENV.<locals>._get_code_parts¹  sj   ø€ à#×-Ñ-×DÑDØ%'Ö( �Q—V“VÒ(Ø')Ö* !�Q—X“XÒ*Ø#1Ø&7Ø#Ÿ™ð (4×':Ñ':Ð#:Øð Eó 
ð 
ùÚ(ùÚ*s
   ›A)´A.
)ÚpythonÚverbose_pythonÚcppT)rÖ  r×  Úcpp_code_partsz,Expected None or _CppShapeGuardsHelper, got )Úpython_code_partsrà   rÙ  Úpython_fallbackÚshape_env_sourcesz9cpp_code_parts must be set when not using python_fallback)rÝ   )ÚCppCodeCacherY  c              3  ó8   K  — | ]  \  }\  }}|› d |› d�–— Œ y­w)z = int_values[r  NrŠ  ©r  Úir’  Úsymbols       r»   r  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>7  s-   è ø€ ò ,á&˜™;˜A˜vð �h˜n¨Q¨C¨qÔ1ñ,ùó   ‚c              3  ó8   K  — | ]  \  }\  }}|› d |› d�–— Œ y­w)z = float_values[r  NrŠ  rß  s       r»   r  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>;  s.   è ø€ ò .á&˜™;˜A˜vð �hÐ.¨q¨c°Ô3ñ.ùrâ  zint64_t ú;zdouble aä  
                #include <algorithm>
                #include <cstdint>
                #include <cmath>
                #include <c10/util/generic_math.h>

                #if defined(_MSC_VER)
                #  define EXTERN_DLL_EXPORT extern "C" __declspec(dllexport)
                #else
                #  define EXTERN_DLL_EXPORT extern "C"
                #endif

                EXTERN_DLL_EXPORT int8_t guard(int64_t *int_values, double *float_values) {
                  z
                  z
                  return (z) && (z%);
                }
                zC++ shape guard function: %s %sz'Failed to load C++ shape guard function)rÅ  r*  rô  r*  rÍ   úlist[Source])rÐ  útuple[str, ...]rÍ   zlist[_ShapeGuardsHelper])MÚtorch._dynamo.output_graphr¢   rë  r   r©  r®  Úshape_code_partsrÚ  rà   rÙ  rÛ  rÿ   r  rÑ  Útracked_fakesÚsymbolic_contextÚexport_constraintsrç   rÅ  rÃ  r4  rÔ  Údynamic_shapesÚ_process_equalitiesrU  rV  rI   rã  r%  rR   Ú enable_cpp_symbolic_shape_guardsÚOverflowErrorÚfreezer«  Úlocalsr°  rG   Úsource_to_symbolrß  ÚShapeCodePartsÚexprsrg  r7   Útry_getÚshape_env_guardsr$  rô   r^   rK   rÌ  r*  r|  rÆ  ÚctypesÚtorch._inductor.codecacherÝ  r#  rÂ  r  r-   r@  ÚtextwrapÚdedentrB  rC  ÚloadÚcastrS  Úc_void_prÿ  r"   rµ   rÙ  Ú	_inductorrT   ÚInvalidCxxCompilerrL  ))rÄ   rS  r¢   rè  rÚ  rà   rÙ  rÛ  r-  rÆ  ÚnamesrÇ  rÈ  rÉ  rÊ  Ú
constraintrÕ  Úmaybe_cpp_code_partsÚmaybe_shape_env_sourcesr·   Úcompile_contextÚint_source_to_symbolÚfloat_source_to_symbolrß   rò  r^  rá  r'  r÷  rÝ  rà  Úguard_managersÚint_symbols_strÚfloat_symbols_strÚfunc_strÚclibÚcguardrÎ  rß  rÍ  r®  s)   `                                    @@@@r»   Ú	SHAPE_ENVzGuardBuilder.SHAPE_ENVq  s±  ü€ å@à�:‰:˜ÒÜ Ð#BÀ5Ç:Á:À.Ð!QÓRÐRØ×,Ñ,×9Ñ9ˆØÐÜ Ð!@ÓAÐAØ× Ñ ×1Ñ1Ð=Ø#×4Ñ4×EÑEÐØ 0× BÑ BÐØ!1×!DÑ!DÐØ×.Ñ.Ð:Ø!1×!@Ñ!@�Ø.×>Ñ>ŠOô ˜lÐ,=Ô>Ü$Ø6´t¸LÓ7IÐ6JÐKóð ð ×%Ñ%Ð-Ü$Ð%NÓOÐOØ×'Ñ'×5Ñ5Ò;¸ˆBØ:<Ö=°Q˜a×0Ó0Ò=ˆNõð ×.Ò.Ø46�Ø<>�ð ð #ð 68�Ü/2«u�Ø".×"AÑ"Aò S�JØ!—‘¨,×*QÑ*QÑQÜŸ™×3Ñ3×GÑGØ&Ø'Ø(×2Ñ2Ø!Ø(Ø.Ø+Ø+õ	ô Ÿ™Ð$QÕRðSô %7Ø!-Ø'9Ü$(¨×)?Ñ)?Ó)AÓ$BØ$3Ø#ô%Ñ!ð %)Ð!÷ñ ô ×6Ò6ðñ (Ð(KÓLñ JÐ%Ð'9¸>ð ',‘Oð #'�Ù8GØ0ó9Ñ5Ð!Ð#5ð  ×&Ò&Ø×&Ñ&×-Ñ-Ô/à×Òô $*£8§<¡<Ð0@Ó#AÐ Ø#Ð/¼
Ø$Ô&;ô9ô %ØBÄ4ÐH\ÓC]ÐB^Ð_óð ð
 (Ð/ñ äÐ.×?Ñ?×DÑDÓFÓGð $ô
 6DØ"3Ø#5Ø3Ø /Ø"9ô6ˆD×!Ñ!Ô2ð &×+Ñ+ò 	7ˆDØ×'Ñ'¨°¨vÕ6ð	7ô -×4Ñ4Ó6Ð6ˆ?Ð6Ø×,Ñ,×3Ñ3Ð4F×4LÑ4LÔMà!ÐØ!#ÐáÙ!Ü$ØOóð ð
 ×$Ñ$à×/Ñ/ð	 )ˆJñ Øà"2×"8Ñ"8Ó":ò /‘�˜Ü˜f¤nÔ5Ø&*‘Oà$(§H¡HØØ%L¬Ð%LÔ8IÓ8KÐ%Lð %-ó %�Mô " -´Ô5Ø,×3Ñ3°V¸VÐ4DÕEÜ# M´5Ô9Ø.×5Ñ5°v¸vÐ6FÕGð +/™ð/ò" Ûå>á!Ü$ØOóð ð
 ×$Ñ$à×/Ñ/ð	 )ˆJô  $Ð$8Ð;QÑ$QÓRÐð>ô &/Ð/?Ó%@÷"á!˜˜6ð ×6Ñ6´}ÀVÈQÓ7OÕPð"�ñ "ð
 #'§)¡)ñ ,ä*3Ð4HÓ*Iô,ó #�ð %)§I¡Iñ .ä*3Ð4JÓ*Kô.ó %Ð!ñ
 #Ø(0°Ð0AÀÐ&C�OÙ$Ø*1Ð2CÐ1DÀAÐ(FÐ%ä#Ÿ?™?ðð #Ð#ð $Ø$Ð%ð &Ø#Ÿ=™=¨Ó4Ð5ð 6ðó�ô( × Ñ Ø5ØØ&×,Ñ,ôð
 $×(Ñ(¨Ó2�ØŸ™ T§Z¡Z°·±ÓA×GÑG�ÙÜ(Ð)RÓSÐSð ô -Ø"ÜÐ,Ó-ÜÐ.Ó/ØØØ&×,Ñ,Ø×$Ñ$ôð ð
 ×"Ò"Ø×5Ñ5Ø!×'Ñ'Ø"×(Ñ(ØD¤ÐDÔ0AÓ0CÐDð 6õ ð #ùòO >øôB %ò à&*�OÙ<KØ4ó=Ñ9Ð%Ó'9ðüóH"øô` —?‘?×&Ñ&×9Ñ9ò áðús=   ÄW0ÈW5 ÑX Ñ%XÑ?C2X ×5XØXØX Ø'YÙYc                ó   — t        |«      S rÚ   )rJ  rW  s     r»   r¬  zGuardBuilder.<lambda>|  s   € Ô-DÀUÓ-K€ r½   c                óV   — t        | t        j                  «      xr t        | «      |k(  S rÚ   )rÿ   r4  r5  rJ  r\  s     r»   r¬  zGuardBuilder.<lambda>}  s'   € Ü�uœeŸl™lÓ+ò ;Ü'¨Ó.°(Ñ:ð r½   c                ó,  — t         j                  r|j                  «       ry t        |«      r| j	                  |«       y t        |t        «      r |«       }|�|n| j                  |«      }t        |«      }t        j                  j                  |«      }t        |t        j                  j                  «      r0|j                  �|j                  }|j                  �|j                  }t        |t        j                   «      st#        dt        |«      › �«      ‚t         j$                  rŒt        |t        j&                  j(                  «      rht+        «       }|j-                  «       rN|j/                  d|j1                  «       «       |j/                  d|j2                  «       |j/                  dd«       | j5                  |«      }g }| j6                  j8                  €t#        d«      ‚| j6                  j8                  j:                  r¾| j=                  |«       g d¢}|D ]¢  }	t?        |j@                  |	«      }
|	dk(  rd	}	tC        |
«      }
| j                  |
«      }tE        |t        jF                  t        jH                  f«      r$|jK                  d
|› d|	› dtM        |«      ›�«       ŒŠ|jK                  |› d|	› d|› �«       Œ¤ �n†| jO                  |«      }t         jP                  r9tE        |t        j&                  j(                  «      setS        |j@                  «      sPt        |j@                  tT        «      s6| jV                  jK                  |«       | jX                  jK                  |«       | j6                  j8                  }|jZ                  |j@                     }t]        |d   «      }t]        |d   «      }t_        ta        ||||||«      |«      }|jb                  }|je                  ||||||||«       t        |t        j&                  j(                  «      s/| jf                  jh                  jk                  |jl                  «       |jn                  €t#        d«      ‚d}i }g }|D ]v  }tq        ||«      r=ts        ||«      ||<   d|› d|› dts        ||«      ›d|› d|› d�}|jK                  |«       ŒL|jK                  |«       d|› d|› d�}|jK                  |«       Œx i }d}d}tq        ||«      r>|D ]9  }ts        ||d «      }||f||<   d|› d|› d|›d|› d|› d�}|jK                  |«       Œ; |s|s|r8| jO                  |«      ju                  |||t_        ||«      |jb                  «       tw        |«      dkD  r| jy                  ||«       y y )NrÇ  Úparam_numelÚparam_bytesÚparam_countrQ   r–  )rý  r¾  rþ  Ú
ndimensionr  zndimension()zstr(r”  r‹  r)  ÚsizerI  zguard.source must not be None)Ú_dynamo_dynamic_indicesÚ_dynamo_weak_dynamic_indicesÚ_dynamo_unbacked_indicesÚ_dynamo_strict_unbacked_indicesÚ_dynamo_static_indicesz
((getattr(z, 'z', set()).issubset(z)) if hasattr(z') else True)re  z') == False)Ú_dynamo_shape_idsÚ_dynamo_unbacked_boundsr  z', None) == z) if hasattr(r   )=rR   Ú_unsafe_skip_fsdp_module_guardsÚis_fsdp_moduler:  r¾  rÿ   rP   r°  r  r4  rú  Ú_dispatch_keysr|  r}  r  r  r5  r   Úlog_compilation_metricsr9  Ú	Parameterr6   Úin_progressÚ	incrementÚnumelÚnbytesrX  r©  r®  rÔ  r‚  rW   rå  rX   r’   r¾  rý  r|  rÎ   r»  Ú,skip_no_tensor_aliasing_guards_on_parametersr2   ru   r§  r¨  Úinput_source_to_sizes_stridesrø  rè  r  rÙ  Úadd_tensor_match_guardr\  ré   rõ   rë  r^  rn  r"  Úadd_dimension_marking_guardrµ   rg  )rÄ   rS  rÿ  r  r  Úmetrics_contextÚtensor_namer·   ÚtermsÚtermÚterm_srcÚ
real_valuer\  r®  rN  r  rI  rà   rÙ  Údim_marking_attrsÚexpected_attrsÚabsent_attrsrâ  r  Údependent_attrsÚdep_attr_namesÚ	gate_attrÚ
attr_values                               r»   ÚTENSOR_MATCHzGuardBuilder.TENSOR_MATCH{  ss  € ô ×1Ò1°e×6JÑ6JÔ6LØô " %Ô(Ø�M‰M˜%Õ ä˜%¤Ô/Ù›�à"Ð.‘E°D·H±H¸U³OˆEä˜%“[ˆFÜ!ŸH™H×3Ñ3°EÓ:ˆMÜ˜%¤×!2Ñ!2×!=Ñ!=Ô>Ø—<‘<Ð+Ø"Ÿ\™\�FØ×&Ñ&Ð2Ø$)×$7Ñ$7�Mä˜e¤U§\¡\Ô2Ü$Ð'BÄ4ÈÃ;À-Ð%PÓQÐQä×-Ò-´*¸UÄEÇHÁH×DVÑDVÔ2WÜ"5Ó"7�Ø"×.Ñ.Ô0Ø#×-Ñ-¨m¸U¿[¹[»]ÔKØ#×-Ñ-¨m¸U¿\¹\ÔJØ#×-Ñ-¨m¸QÔ?àŸ,™, uÓ-ˆKð, !ˆDØ×$Ñ$×1Ñ1Ð9Ü$Ð%UÓVÐVØ×$Ñ$×1Ñ1×8Ò8Ø—‘ Ô&ò�ð "ò 
M�DÜ)¨%×*BÑ*BÀDÓI�HØ˜|Ò+Ø-˜Ü#;¸HÓ#E˜Ø!%§¡¨(Ó!3�JÜ˜j¬5¯<©<¼¿¹Ð*EÔFàŸ™ d¨;¨-°q¸¸¸eÄCÈ
ÃOÐCVÐ$WÕXàŸ™ { m°1°T°F¸$¸z¸lÐ$KÕLò
Mð !%× 6Ñ 6°uÓ =�ô ×GÒGä˜u¤e§h¡h×&8Ñ&8Ô9ÜIØ!×4Ñ4ôô % U×%=Ñ%=Ô?PÔQð ×1Ñ1×8Ñ8¸ÔEØ×:Ñ:×AÑAÀ-ÔPà#×4Ñ4×AÑA�Ø'×EÑEØ×,Ñ,ñ�ô 2°(¸6Ñ2BÓC�Ü3°H¸XÑ4FÓG�ä%;Ü.ØØ#ØØØØ%óð ó
&Ð"ð #×-Ñ-�
Ø×4Ñ4ØØØØØ&ØØØ!ô	ô " %¬¯©×);Ñ);Ô<Ø×&Ñ&×9Ñ9×=Ñ=¸e¿j¹jÔIà�|‰|Ð#Ü$Ð%DÓEÐEðN!Ðð 35ˆNØ&(ˆLØ.ò +�	Ü˜5 )Ô,Ü07¸¸yÓ0I�N 9Ñ-Ø",¨[¨M¸¸Y¸KÐGZÔ[bÐchÐjsÓ[tÐZwð  xFð  GRð  FSð  SVð  W`ð  Vað  anð  !o�IØ—K‘K 	Õ*à ×'Ñ'¨	Ô2Ø"*¨;¨-°s¸9¸+À[Ð Q�IØ—K‘K 	Õ*ð+ð MOˆOØMˆNØ2ˆIÜ�u˜iÔ(Ø!/ò +�IÜ!(¨°	¸4Ó!@�JØ2<¸iÐ1H�O IÑ.Ø",¨[¨M¸¸Y¸KÀ|ÐT^ÐSaÐanÐozÐn{Ð{~ð  @Ið  Jð  JWð  !X�IØ—K‘K 	Õ*ð	+ñ ¡±Ø×&Ñ& uÓ-×IÑIØ"Ø Ø#Ü*¨4°Ó7Ø×$Ñ$ôô �4‹y˜1Š}Ø×+Ñ+¨E°4Õ8ð r½   c                ód  — t        «       }|€t        d«      ‚|j                  }~|€t        d«      ‚|xs |j                  j                  }~|| j
                  j                  vrt        d|› �«      ‚|€"|j                  }|sd n| j                  |«      }	n|}	|	�t        j                  t        |	«      «      nd }
d }t        |	j
                  dd«      dk7  }|rDt        |	t        j                  t         t        j"                  f«      st        j                  |	«      }|j%                  ||
||«       y )Nzcurrentframe() returned Nonezcaller frame must not be NonezH_produce_guard_code must be called from inside GuardedCode. Called from Ú__weakrefoffset__r   )r   r   Úf_backr˜  Úco_namerË   r   rë  r°  Úweakrefri  r  r"  rÿ   ÚenumÚEnumrC  Ú
ProxyTypesÚset_export_info)rÄ   rS  r=  rf  rÀ  Ú	cur_frameÚcallerÚ	func_namerë  Úguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs                r»   rg  z#GuardBuilder._set_guard_export_info`  s8  € ô !“Nˆ	ØÐÜ Ð!?Ó@Ð@Ø×!Ñ!ˆØØˆ>Ü Ð!@ÓAÐAØ&Ò?¨&¯-©-×*?Ñ*?ˆ	Øà˜DŸN™N×3Ñ3Ñ3Ü ØZÐ[dÐZeÐfóð ð
 #Ð*Ø—:‘:ˆDÙ)-™T°4·8±8¸E³?‰Nà4ˆNð 2@Ð1KŒG�K‰Kœ˜^Ó,Ô-ÐQUð 	ð ˆô �N×,Ñ,Ð.AÀ1ÓEÈÑJð 	ñ ¤JØœTŸY™Y¬¬w×/AÑ/AÐBô%
ô —k‘k .Ó1ˆGà×ÑØØØØõ		
r½   )FNN)r˜  útypes.CodeTyper™  zCallable[[object, str], int]rš  zCallable[[Source], str]r›  z.Callable[[object], weakref.ref[object] | None]r¶  údict[str, object]rá   rI  r\  rØ   r©  ÚCheckFunctionManagerr«  rÐ   rž  r   r¬  ú=Callable[[Sequence[GuardFilterEntry]], Sequence[bool]] | NonerÍ   rÑ   )r'  údict[Any, Any]rS  r:   rÍ   rÑ   )rÿ  rL  rS  r:   rÍ   rÑ   )r'  r   rÍ   ú
Any | None)r^  rW   r/  r   r0  r   r'  r   r1  rÎ   rÓ  rÎ   r(  r"  rÍ   r   )r^  r>   rÍ   rÐ   )r^  r>   r'  zAKeysView[Any] | set[Any] | frozenset[Any] | dict[Any, Any] | NonerÍ   r"  )r÷  r"  rÍ   rÐ   )rÍ   r   )r^  r>   rÍ   r   )rS  r:   rÍ   r   rc  )
rß   rƒ  rà   rƒ  rÝ   r   rG  rÐ   rÍ   rÑ   rÚ   )rO  zGuard | SourcerÝ   údict[str, Any] | NonerÍ   r   )rS  zstr | GuardrÍ   rÎ   )rS  r:   râ  rÎ   r_  z(Callable[[GuardBuilderBase, Guard], Any]rÍ   rÑ   )rS  r:   rÙ  r‡  rÍ   rÑ   )rS  r:   rÙ  rM  rÍ   rÑ   )rS  r:   rÍ   rÑ   )rS  r:   r
  rÎ   rÍ   rÑ   )rS  r:   r
  r   rÍ   rÑ   )rS  r:   ræ  r‡  rÍ   rÑ   )rS  r:   rÿ  rM  rÍ   rÑ   )rS  r:   rŒ  r>   rÍ   rÑ   )NN)
rS  r:   r=  rƒ  rf  rM  rÀ  r‡  rÍ   rÑ   )NrÒ   rÓ   rÔ   rê   rÀ  rÆ  r>  rÐ  rð  ró  r¼  rø  rü  r  r»  rL  r°  rX  r]  rx  rl  rs  r‚  r‰  r‰  rŽ  r˜  r�  r¥  r©  r²  r¸  r¾  r½  rÊ  rÑ  r|  rÕ  rá  rî  rQ  rU  r  rX  r]  r	  ra  rd  r  r8  r>  rH  rR  rV  rZ  r_  ri  rk  ra  rf  rn  rt  r~  r†  r�  r”  rš  r   r¥  r§  rª  r¬  r³  r¹  r¾  r  r7  rg  rŠ  r½   r»   r‹  r‹  œ  s¸  „ ð "Ø9=àðMFàðMFð -ðMFð ,ð	MFð
 HðMFð 'ðMFð (ðMFð +ðMFð /ðMFð ðMFð 7ðMFððMFð 
óMFð^Ø+ðØ49ðà	óó<(ðT òó ðð"]àð]ð )ð]ð  ð	]ð
 ð]ð ð]ð ð]ð -ð]ð 
ó]ó~9ð"àð"ðð"ð 
ó"ó2?ó
óDóLLð 26Ø ðYàðYð &ðYð /ð	Yð
 ðYð 
óYðP /3ðà'ðð ,ðð 
ó	ó&ð àðð ðð ;ð	ð
 
óñ$ ñ
ñ Sôó60óð60ñp ÙMÙFôð
 04ð0Øð0Ø",ð0à	ò0ó	ð0ñ> Ù8Ù?ôò
ó	ð
ñ4 ñ
ñô	ò
óð
ð< "ò
ó "ð
ñ ÙLÙ9ôò0ó	ð0ñ  ÙLÙ=ôò0ó	ð0ñ  ÙLÙ9ôò0ó	ð0ñ$ ÙLÙ=ôò0ó	ð0ñ$ Ù2Ù9ôòó	ðñ$ Ù1Ù5ôò
ó	ð
ñ Ù2Ù9ôó>ó	ð>ð :>ð ?Øð ?Ø,6ð ?à	ó ?ñD Ù1Ù9ôó

ó	ð

ñ Ù=ÙDôò
ó	ð
ð ò
ó ð
ð ò
ó ð
ð* ò
ó ð
ñ8 Ø1Ø'ôò#
ó	ð#
ñJ Ø,Ø"ôò
ó	ð
ñ Ø*Ø ôò
ó	ð
ñ& Ù2Ù9ôóoó	ðoñb Ù2Ù9ôò	%ó	ð	%ñ ÙQñôò

óð

ñ@ Ù2Ù9ôòó	ðñ. Ù2Ù9ôò$ó	ð$ñ
 Ù2Ù9ôò'ó	ð'ñ Ù2Ù9ôò'ó	ð'ñ Ø'Øôò
'ó	ð
'ñ Ù2Ù9ôò.ó	ð.ñ Ù7Ù>ôòó	ðñ< ÙFÙMôò
ó	ð
ñ& ÙHÙOôò
ó	ð
ñ. ÙWñ
ôò
óð
ð* ò,ó ð,ñ\ Ù1Ù9ôò
ó	ð
ñ Ù?ÙFôò

ó	ð

ñ ÙCÙJôòCó	ðCñ2 Ù1Ù7ôò$ó	ð$ð òó ðð òó ðð òó ðð ò
ó ð
ð  ò
ó ð
ð ò
ó ð
ð  òGó ðGñR ÙKñ
ôó[9óð[9ðD /3Ø)-ð4
àð4
ð ð4
ð ",ð	4
ð
 'ð4
ð 
ô4
r½   r‹  c                  óþ   — e Zd ZdZej
                  ej                  ej                  fZe	j                   G d„ d«      «       Z G d„ dej                  «      Z G d„ dej                  «      Zdd„Zddd	„Zdd
„Zdd„Zy)ÚPyExprCSEPassrQ   c                  ó"   — e Zd ZU ded<   ded<   y)úPyExprCSEPass.Configzdict[str, int]Ú
expr_countzdict[str, str]Úexpr_to_nameNr>  rŠ  r½   r»   ÚConfigrR  °  s   … à"Ó"Ø$Ô$r½   rU  c                  ó(   ‡ — e Zd Zdd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.ExprCounterc                ó   — || _         y rÚ   )Ú_config)rÄ   rR   s     r»   rê   z"PyExprCSEPass.ExprCounter.__init__¶  s	   € Ø!ˆD�Lr½   c                ó¬   •— t        |t        j                  «      r*| j                  j                  t        |«      xx   dz  cc<   t        ‰| �  |«       y r³   )rÿ   rP  ÚALLOWED_NODE_TYPESrY  rS  rÒ  rÇ   rû   )rÄ   rö   rË   s     €r»   rû   zPyExprCSEPass.ExprCounter.visit¹  s>   ø€ Ü˜$¤× @Ñ @ÔAØ—‘×'Ñ'¬°TÓ(:Ó;¸qÑ@Ó;Ü‰G‰M˜$Õr½   )rR   rR  rÍ   rÑ   )rö   úast.ASTrÍ   rÑ   ©rÒ   rÓ   rÔ   rê   rû   rÕ   rÖ   s   @r»   ÚExprCounterrW  µ  s   ø„ ó	"÷	 ñ 	 r½   r^  c                  ó8   ‡ — e Zd Z	 	 	 	 	 	 dˆ fd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.Replacerc                óL   •— t         ‰| �  «        || _        || _        g | _        y rÚ   )rÇ   rê   rY  Ú	_gen_nameÚpreface)rÄ   rR   Úgen_namerË   s      €r»   rê   zPyExprCSEPass.Replacer.__init__¿  s%   ø€ ô
 ‰GÑÔØ!ˆDŒLØ%ˆDŒNØ&(ˆD�Lr½   c                ó:  •— t        |t        j                  «      ròt        |«      }| j                  j
                  |   t        j                  kD  r½|| j                  j                  vrdt        ‰| �%  |«      }t        |«      }| j                  «       }| j                  j                  |› d|› �«       || j                  j                  |<   n| j                  j                  |   }t        j                  |t        j                  «       «      S t        ‰| �%  |«      S )Nz = )rÿ   rP  r[  rÒ  rY  rS  ÚUSE_THRESHOLDrT  rÇ   rû   rb  rc  r|  rÏ  ÚNameÚLoad)rÄ   rö   ÚexprÚnode_Úexpr_r¸   rË   s         €r»   rû   zPyExprCSEPass.Replacer.visitÉ  sß   ø€ Ü˜$¤× @Ñ @ÔAÜ# DÓ)�ð —<‘<×*Ñ*¨4Ñ0´=×3NÑ3NÒNØ 4§<¡<×#<Ñ#<Ñ<ô !&¡¡¨dÓ 3˜Ü ,¨UÓ 3˜Ø#'§>¡>Ó#3˜ØŸ™×+Ñ+¨x¨j¸¸E¸7Ð,CÔDØ:B˜Ÿ™×1Ñ1°$Ò7à#'§<¡<×#<Ñ#<¸TÑ#B˜ÜŸ8™8 H¬c¯h©h«jÓ9Ð9ä‘7‘= Ó&Ð&r½   )rR   rR  rd  zCallable[[], str]rÍ   rÑ   )rö   r\  rÍ   r   r]  rÖ   s   @r»   ÚReplacerr`  ¾  s.   ø„ ð	)à(ð	)ð (ð	)ð õ		)÷	'ñ 	'r½   rl  c                ój   — d| _         | j                  t        j                  d„ «      i ¬«      | _        y )Nr   c                  ó   — yrï   rŠ  rŠ  r½   r»   r¬  z(PyExprCSEPass.__init__.<locals>.<lambda>æ  r´  r½   )rS  rT  )Ú_counterrU  rÁ  ÚdefaultdictrY  rÃ   s    r»   rê   zPyExprCSEPass.__init__ã  s.   € ØˆŒØ—{‘{Ü"×.Ñ.©yÓ9Èð #ó 
ˆ�r½   c                óP   — |› | j                   › �}| xj                   dz  c_         |S r³   )ro  )rÄ   rÅ   rë  s      r»   Ú_new_varzPyExprCSEPass._new_varé  s'   € Ø�˜$Ÿ-™-˜Ð)ˆØ�Š˜Ñ�Øˆr½   c                óø   — | j                  | j                  «      }|D ]'  }	 |j                  t        j                  |«      «       Œ) y # t
        $ r'}t        j                  d|j                  |«       ‚ d }~ww xY w)Nz#Failed to visit expr at line %s.
%s)	r^  rY  rû   rÏ  ÚparseÚSyntaxErrorrU  Ú	exceptionÚlineno)rÄ   rô  ÚcounterÚeÚexs        r»   ÚcountzPyExprCSEPass.countî  si   € Ø×"Ñ" 4§<¡<Ó0ˆØò 	ˆAðØ—‘œcŸi™i¨›lÕ+ñ	øô ò Ü—‘ÐDÀbÇiÁiÐQRÔSØûðús   ¢$A	Á		A9Á"A4Á4A9c                óÄ   — | j                  | j                  | j                  «      }|j                  t	        j
                  |«      «      }|j                  t        |«      fS rÚ   )rl  rY  rr  rû   rÏ  rt  rc  rÒ  )rÄ   ri  ÚreplacerÚnew_nodes       r»   rÑ  zPyExprCSEPass.replace÷  sF   € Ø—=‘= §¡¨t¯}©}Ó=ˆØ—>‘>¤#§)¡)¨D£/Ó2ˆØ×Ñ¤¨hÓ!7Ð7Ð7r½   Nr†  )Ú_var)rÅ   rÎ   rÍ   rÎ   )rô  rƒ  rÍ   rÑ   ©ri  rÎ   rÍ   ztuple[list[str], str])rÒ   rÓ   rÔ   rf  rÏ  Ú	AttributeÚCallÚ	Subscriptr[  ÚdataclassesÚ	dataclassrU  ÚNodeVisitorr^  ÚNodeTransformerrl  rê   rr  r{  rÑ  rŠ  r½   r»   rP  rP  ¨  sx   „ ð €Mð Ÿ-™-¨¯©°3·=±=ÐAÐà×Ñ÷%ð %ó ð%ô �c—o‘oô  ô#'�3×&Ñ&ô #'óJ
ôó
ô8r½   rP  c                ó–   — t        | j                  t        «      xs. t        j                  xr | j
                  t        j                  u S rÚ   )rÿ   rå  rb   rR   Ú guard_nn_modules_using_dict_tagsr`  r‹  rR  )rS  s    r»   Úmust_add_nn_module_guardsrŠ  ý  s@   € ô
 	�5×+Ñ+¬^Ó<ò 	
ô ×3Ñ3ò :Ø—‘¤<×#9Ñ#9Ð9ðr½   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚDeletedGuardManagerWrapperc                ó0   •— t         ‰| �  «        || _        y rÚ   )rÇ   rê   Úinvalidation_reason)rÄ   ÚreasonrË   s     €r»   rê   z#DeletedGuardManagerWrapper.__init__  s   ø€ Ü‰ÑÔØ#)ˆÕ r½   c                ó   — d | _         y rÚ   )rÜ   rÃ   s    r»   r  z6DeletedGuardManagerWrapper.populate_diff_guard_manager  s
   € Ø#ˆÕr½   )r�  rÎ   rÍ   rÑ   r†  )rÒ   rÓ   rÔ   rê   r  rÕ   rÖ   s   @r»   rŒ  rŒ    s   ø„ õ*÷$r½   rŒ  c                  ó@   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   y
)ró  rH   rÚ  rà   z_CppShapeGuardsHelper | NonerÙ  rÐ   rÛ  rå  rÜ  Nr>  rŠ  r½   r»   ró  ró    s    … à)Ó)Ø*Ó*Ø0Ó0ØÓØ#Ô#r½   ró  c                  ó"   — e Zd ZU ded<   ded<   y)ÚGuardsStater£   r®  úShapeCodeParts | Nonerè  Nr>  rŠ  r½   r»   r“  r“    s   … à(Ó(Ø+Ô+r½   r“  c                  ó.   — e Zd Zddd„Zdd„Zdd„Zd	d„Zy)
Ú_MissingNc                ó   — || _         y rÚ   ©Ú_reason)rÄ   r�  s     r»   rê   z_Missing.__init__$  s	   € Øˆ�r½   c                ó"   — d| j                   › d�S ©Nz	_Missing(rZ  r˜  rÃ   s    r»   rÔ  z_Missing.__repr__'  ó   € Ø˜4Ÿ<™<˜.¨Ð*Ð*r½   c                ó"   — d| j                   › d�S r›  r˜  rÃ   s    r»   rp  z_Missing.__str__*  rœ  r½   c                ó   — t        «       S rÚ   )r–  )rÄ   rÞ   Úkwargss      r»   Ú__call__z_Missing.__call__/  s
   € Ü‹zÐr½   rÚ   )r�  r‡  rÍ   rÑ   rÌ   )rÞ   r   rŸ  r   rÍ   r   )rÒ   rÓ   rÔ   rê   rÔ  rp  r   rŠ  r½   r»   r–  r–  #  s   „ ôó+ó+ô
r½   r–  c                 óÌ   — t         j                  j                  t        j                  f} 	 | t         j                  j
                  j                  fz  } | S # t        $ r Y | S w xY wrÚ   )r4  rú  r(  r<  r   Ú_distributed_c10dÚProcessGroupÚAttributeError)rQ  s    r»   Ú_get_unsupported_typesr¥  3  sa   € ô 	�‰�‰Ü×Ñð€CðØ”—‘×*Ñ*×7Ñ7Ð9Ñ9ˆð €Jøô ò ØØ€Jðús   ¬(A Á	A#Á"A#c                  ó  ‡ — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zedd„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedd„«       Zedd„«       Z	e	 	 	 	 dd„«       Z
e	 	 	 	 dd„«       Zedd	„«       Zedd
„«       Ze	 	 	 	 d d„«       Ze	 	 	 	 d!d„«       Zed"d„«       Zed#d„«       Zed$d„«       Zed%d„«       Zed&d„«       Ze	 	 	 	 	 	 d'd„«       Zed(d„«       Ze	 	 	 	 	 	 	 	 	 	 	 	 d)d„«       Z	 	 	 	 d*d„Zˆ xZS )+ÚGuardsStatePicklerc                óî   •— t        ‰| �  |i |¤Ž t        j                  j	                  «       | _        t        j                  j                  j                  «       | _        || _	        || _
        || _        y rÚ   )rÇ   rê   r4  r|  ÚFakeTensorModeÚ	fake_modeÚfake_tensorÚFakeTensorConverterÚtensor_converterrª  Úempty_valuesÚmissing_values)rÄ   rª  r®  r¯  rÞ   rŸ  rË   s         €r»   rê   zGuardsStatePickler.__init__B  sb   ø€ ô 	‰Ñ˜$Ð) &Ò)Ü×*Ñ*×9Ñ9Ó;ˆŒÜ %× 1Ñ 1× =Ñ =× QÑ QÓ SˆÔØ!2ˆÔØ(ˆÔØ,ˆÕr½   c                ód   — t         j                  j                  «       }|j                  |«       |S rÚ   )r4  r9  r:  Ú__setstate__)rO  ÚstateÚmods      r»   Ú_unpickle_modulez#GuardsStatePickler._unpickle_moduleQ  s%   € ä�h‰h�o‰oÓˆØ×Ñ˜ÔØˆ
r½   c           	     ó  — t         j                  j                  «       }t         j                  j                  j	                  «       }|j                  ||||t         j                  j                  j                  |«      «      }||_	        |S rÚ   )
r4  r|  r©  r«  r¬  Úfrom_meta_and_devicerú  r¡   Úfrom_raw_reprÚgrad)	rO  Úmeta_tensorr¾  r  Údispatch_keys_rawr¸  rª  r­  rQ  s	            r»   Ú_unpickle_tensorz#GuardsStatePickler._unpickle_tensorW  sv   € ô ×%Ñ%×4Ñ4Ó6ˆ	Ü ×,Ñ,×8Ñ8×LÑLÓNÐØ×3Ñ3ØØØØÜ�H‰H×#Ñ#×1Ñ1Ð2CÓDó
ˆð ˆŒØˆ
r½   c                óø   — t        |«      }|j                  |j                  «       }	}t        |«      j	                  ||||	«      }
||
_        t        j                  j                  j                  |«      |
_
        |
S rÚ   )r#  rH  rI  r  Ú__tensor_unflatten__r  r4  rú  r¡   r·  r  )rO  r¹  r¾  r  rº  ÚctxÚ
inner_dataÚinner_tensorsÚ
outer_sizeÚouter_strider8  s              r»   Ú$_unpickle_traceable_wrapper_subclassz7GuardsStatePickler._unpickle_traceable_wrapper_subclassl  sp   € ô ˜ZÓ(ˆà#.×#4Ñ#4°k×6HÑ6HÓ6J�Lˆ
Ü�;Ó×4Ñ4Ø˜3 
¨Ló
ˆð ˆŒ
Ü!ŸH™H×3Ñ3×AÑAÐBSÓTˆÔØˆ
r½   c                ó,   — t        j                  |«      S rÚ   )rÇ  rÈ  )rO  Úaliass     r»   Ú_unpickle_python_modulez*GuardsStatePickler._unpickle_python_module€  s   € ä×&Ñ& uÓ-Ð-r½   c                óT   — t         j                  j                  j                  |«      S rÚ   )r4  rú  r¡   r·  )rO  rÍ  s     r»   Ú_unpickle_dispatch_key_setz-GuardsStatePickler._unpickle_dispatch_key_set„  s   € ä�x‰x×&Ñ&×4Ñ4°XÓ>Ð>r½   c                óh   — t         j                  j                  j                  j	                  |«      S rÚ   )r4  rú  rÜ  ÚCInterpreterÚdeserialize)rO  Újsons     r»   Ú_unpickle_functorch_interpreterz2GuardsStatePickler._unpickle_functorch_interpreterˆ  s%   € ô �x‰x×"Ñ"×/Ñ/×;Ñ;¸DÓAÐAr½   c                ó,   — t        j                  |«      S rÚ   )r;  ÚMappingProxyType)rO  Úds     r»   Ú_unpickle_mapping_proxyz*GuardsStatePickler._unpickle_mapping_proxyŽ  s   € ô ×%Ñ% aÓ(Ð(r½   c                óH   — t         j                  |«      j                  «       S rÚ   )r#  Úfromkeysrß  )rO  Úelemss     r»   Ú_unpickle_dict_keysz&GuardsStatePickler._unpickle_dict_keys”  s   € ä�}‰}˜UÓ#×(Ñ(Ó*Ð*r½   c                ó.   — t        j                  ||«      S rÚ   )Ú	itertoolsr{  )rO  r  r}  s      r»   Ú_unpickle_count_iterz'GuardsStatePickler._unpickle_count_iter˜  s   € ä�‰˜t TÓ*Ð*r½   c                ó€   — t         j                  j                  j                  j                  j	                  «       |   S rÚ   )r4  r+  ÚfsdpÚ_fully_shardÚget_cls_to_fsdp_cls)rO  Úoriginal_types     r»   Ú_unpickle_fsdp_module_typez-GuardsStatePickler._unpickle_fsdp_module_typeœ  s5   € ô × Ñ ×%Ñ%×2Ñ2×?Ñ?×SÑSÓUØñ
ð 	
r½   c                óÄ   — t         j                  j                  j                  }|j	                  |«      }t         j                  j
                  j                  ||«       |S rÚ   )r4  r9  ÚparallelÚDistributedDataParallelÚ__new__r:  r±  )rO  r²  ÚtyÚddps       r»   Ú_unpickle_ddp_modulez'GuardsStatePickler._unpickle_ddp_module¤  sC   € ô �X‰X×Ñ×6Ñ6ˆØ�j‰j˜‹nˆÜ�‰�‰×$Ñ$ S¨%Ô0Øˆ
r½   c                óJ   — t        t        j                  j                  |«      S rÚ   )r"  r4  Úopsrú  )rO  rë  s     r»   Ú_unpickle_c_opz!GuardsStatePickler._unpickle_c_op­  s   € ä”u—y‘y—|‘| TÓ*Ð*r½   c                ó^   — t        t        t        t        j                  |«      |«      |«      S rÚ   )r"  r4  rç  )rO  Ú	namespaceÚopnameÚoverloadnames       r»   Ú_unpickle_opzGuardsStatePickler._unpickle_op±  s!   € ä”wœw¤u§y¡y°)Ó<¸fÓEÀ|ÓTÐTr½   c                ó.   — t        j                  ||«      S rÚ   )r;  r=  )rO  Úfuncrí  s      r»   Ú_unpickle_bound_methodz)GuardsStatePickler._unpickle_bound_methodµ  s   € ä×Ñ  dÓ+Ð+r½   c                ó^   — t        t        j                  j                  j                  | «      S rÚ   )r"  r4  r9  Ú	attentionÚ
SDPBackend©rë  s    r»   Ú_unpickle_sdp_backendz(GuardsStatePickler._unpickle_sdp_backend¹  s!   € ô ”u—x‘x×)Ñ)×4Ñ4°dÓ;Ð;r½   c                ó\   ‡— dˆfd„}|j                   €t        d«      ‚|j                   d   S )Nc                 ó   •— ‰ S rÚ   rŠ  )rj  s   €r»   r’  z,GuardsStatePickler._unpickle_cell.<locals>._À  s   ø€ ØˆJr½   z-Closure must not be None when unpickling cellr   )rÍ   r   )r®   r   )rO  rj  r’  s    ` r»   Ú_unpickle_cellz!GuardsStatePickler._unpickle_cell¾  s/   ø€ õ	ð �=‰=Ð Ü Ð!PÓQÐQØ�}‰}˜QÑÐr½   c                ó.   — t        j                  ||«      S rÚ   )rÁ  Ú
namedtuple)rO  rë  Úfieldss      r»   Ú_unpickle_named_tuple_typez-GuardsStatePickler._unpickle_named_tuple_typeÇ  s   € ô
 ×%Ñ% d¨FÓ3Ð3r½   c                ó2   — ddl m}  |j                  |«      S )Nr   r¤   )Útorch._dynamo.packager¥   Úto_code_object)rO  Úserialized_coder¥   s      r»   Ú_unpickle_codez!GuardsStatePickler._unpickle_codeÎ  s   € å8à,ˆ~×,Ñ,¨_Ó=Ð=r½   c                ór   — t        j                  |«      j                  }t        j                  |||||«      S rÚ   )rÇ  rÈ  r   r;  r<  )rO  r·   r9  ÚqualnameÚargdefsÚclosurerú  s          r»   Ú_unpickle_nested_functionz,GuardsStatePickler._unpickle_nested_functionÔ  s3   € ô ×+Ñ+¨FÓ3×<Ñ<ˆ	Ü×!Ñ! $¨	°8¸WÀgÓNÐNr½   c                óÒ  — dd l }t        |«      | j                  v r!t        |«      j                  t        |«      ffS t        j                  |«      r.ddlm} t        | «      j                   |j                  |«      ffS t        |«      | j                  v rt        dfS t        |t        j                  «      �rö|j                   j                  dk7  �rÜddlm} t        |«      | j&                  vrt        dfS  ||«      rÝg }|j)                  «       \  }}|D ]S  }t+        ||«      }	t        |	t        j                  «      r|	| j&                  t        |	«      <   |j-                  ||	f«       ŒU t        | «      j.                  t        j0                  |d¬«      |j                   t        |«      t        j2                  j5                  |«      j7                  «       ||ffS t        |«      }
t        |t        j8                  j:                  «      r(|j<                  �|j<                  nt        j                  }
t        | «      j>                  t        j0                  |d|j@                  ¬«      |j                   |
t        j2                  j5                  |«      j7                  «       |jB                  ffS t        |t        jD                  jF                  «      �r–t        |«      | j&                  vrt        d	fS |jH                  jK                  «       D ]s  }t        |t        j                  t        jD                  jF                  f«      rŒ8t        |«      | j&                  v rŒPtM        |«      rŒ\|| j                  t        |«      <   Œu t        |t        jD                  jN                  jP                  «      r&t        | «      jR                  |jU                  «       ffS t        |«      jV                  t        |«      jX                  k(  rtZ        S |j\                  jT                  t        jD                  jF                  jT                  k(  �r¯t        | «      j^                  |jU                  «       ffS t        j`                  |«      r"t        | «      jb                  |jX                  ffS t        |t        j2                  jd                  «      r&t        | «      jf                  |j7                  «       ffS t        |t        j2                  jh                  jj                  «      r&t        | «      jl                  |jo                  «       ffS t        jp                  |«      rVts        ||jt                  «      r@tw        |d
«      r4tw        |d«      sty        d|› d�«      ‚|jz                  |j|                  ffS t        jp                  |«      rbts        |t~        «      rRtw        |d«      rF|jV                  |jX                  k7  r-t        | «      j€                  |jX                  |j‚                  ffS t        |t        j„                  «      rt‡        d|› d|jˆ                  › d�«      ‚t        |tŠ        jŒ                  «      r&t        | «      jŽ                  |j‘                  «       ffS t        |«      t’        u r9t•        |«      \  }}|tZ        u�r4|tZ        u�r+t        | «      j–                  ||ffS t        |t        j˜                  jš                  jœ                  «      r!t        | «      jž                  t¡        |«      ffS t        |t        j¢                  j¤                  «      r=|j¦                  j©                  d«      r"t        | «      jª                  |jX                  ffS t        |t        j¢                  j¬                  «      r8t        | «      j®                  |j°                  |j²                  |j´                  ffS |j\                  j¶                  dk(  r!|j\                  jX                  dk(  rt        dfS t        |t¹        «       «      rt        dfS t        jº                  |«      rÏd|jV                  v rNt        | «      j¼                  |j¾                  |j¶                  |jV                  |jÀ                  |jÂ                  ffS |j¶                  tÄ        jÆ                  v �r"tÄ        jÆ                  |j¶                     }|jV                  jÉ                  d«      D ]  }t+        ||d «      }Œ ||urÔt        dfS t        jÊ                  |«      rl|jÌ                  }|jÎ                  }t+        ||jX                  «      }t        jÊ                  |«      r|jÌ                  }||urdt        | «      jÐ                  ||ffS t        |t         d„ d«      jÂ                  d   «      «      r"t        | «      jÒ                  |jÔ                  ffS tw        t        jÖ                  d«      rMt        |t        jÖ                  jØ                  jÚ                  «      rt        |«      | j&                  vrt        dfS t        |t        jD                  jÜ                  jÞ                  «      r"t        | «      jà                  |jâ                  ffS t        |«      jV                  t        |«      jX                  k7  rOt        |t~        «      s?t        j˜                  jä                  jç                  dt        |«      › d|› d�d z   d!z   «      ‚t        jp                  |«      �r(tw        t        jÖ                  d"«      �rts        |t        jÖ                  jè                  jê                  jì                  «      rÕ|t        jÖ                  jè                  jê                  jì                  ur¥|jî                  d#   }ts        |t        jD                  jF                  «      sty        d$|› �«      ‚|t        jÖ                  jè                  jê                  jê                  jñ                  «       vrty        |› d%�«      ‚t        | «      jò                  |ffS tZ        S )&Nr   r¤   )zmissing valuesÚmeta)Úis_traceable_wrapper_subclass)ztensor guard tree)r¾  )r¾  rþ  )zmodule guard treeÚ_torch_handler_nameÚ_torch_unpicklerzsympy Function subclass z% must have _torch_unpickler attributerµ  zCannot serialize SymInt z (node: rZ  z_C::rŸ  Ú	PyCapsule)Úcapsule)Úunsupportedz<locals>r”  )zfqn mismatchc                ó   ‡ — ˆ fd„S )Nc                 ó   •— ‰ S rÚ   rŠ  r¶  s   €r»   r¬  zGGuardsStatePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>Œ  s   ø€ °Q€ r½   rŠ  r¶  s   `r»   r¬  z5GuardsStatePickler.reducer_override.<locals>.<lambda>Œ  s   ø€ «Y€ r½   Údistributed_c10d)zdistributed_c10d.Workr  r  r  r  r  rÚ  r@  z!Expected nn.Module subclass, got z* not found in FSDP cls-to-fsdp-cls mapping)zÚsympyrh  r®  r  râ  r›  Úiscoderþ  r¥   r  Úfrom_code_objectr¯  r–  rÿ   r4  r5  r¾  Útorch.utils._python_dispatchr	  rª  rM  r"  r|  rÃ  Ú
empty_likerú  r  rÍ  r|  r}  r  r»  rþ  r¸  r9  r:  r   r%  r+  rà  rá  rå  r±  rÔ   rÒ   ÚNotImplementedrË   r´  r^  rÆ  r¡   rÈ  rÜ  rÊ  rÍ  Ú	serializerÁ  r!  ÚFunctionrn  r   r  r
  rC  rü  rµ  rò  r!  rö   r;  rÏ  rÑ  r¡  Ú_COUNT_ITERATOR_TYPEr•   rØ  r—  rÉ  r�   rÕ  rã  Ú_opsÚOpOverloadPacketÚ_qualified_op_nameÚ
startswithrè  Ú
OpOverloadrí  rê  Ú_opnameÚ_overloadnamerÓ   r¥  Ú
isfunctionr  r­   r«   r®   rË  Úmodulesrz  Úismethodr°   Ú__self__rð  rø  r1  r+  r  ÚWorkrò  ró  rõ  rë  rT   ÚPackageErrorrÚ  rÛ  Ú
FSDPModuler±   rÜ  rÞ  )rÄ   r  r  r¥   r	  r¿  Úattrsr¾  rÙ  Úinnerr  r  r}  Úfrë  rï  Úmethod_selfÚ
inner_funcrÝ  s                      r»   Úreducer_overridez#GuardsStatePickler.reducer_overrideá  sÅ	  € ó 	äˆc‹7�d×'Ñ'Ñ'Ü˜“9×$Ñ$¤t¨C£y lÐ2Ð2ä�>‰>˜#ÔÝ<ä˜“:×,Ñ,Ð/N¨~×/NÑ/NÈsÓ/SÐ.UÐUÐUäˆc‹7�d×)Ñ)Ñ)ÜÐ0Ð0Ð0ä�cœ5Ÿ<™<Õ(¨S¯Z©Z¯_©_ÀÓ-FÝRä�#‹w˜d×4Ñ4Ñ4ÜÐ!7Ð7Ð7á,¨SÔ1ð  �
Ø ×3Ñ3Ó5‘
��sà!ò 5�DÜ# C¨Ó.�EÜ! %¬¯©Ô6Ø<A˜×.Ñ.¬r°%«yÑ9Ø×%Ñ% t¨U mÕ4ð	5ô ˜D“z×FÑFÜ×$Ñ$ S°Ô8Ø—J‘JÜ˜“IÜ—H‘H×+Ñ+¨CÓ0×9Ñ9Ó;ØØðIð ð ô ˜#“YˆFÜ˜#œu×0Ñ0×;Ñ;Ô<Ø'*§z¡zÐ'=˜ŸšÄ5Ç<Á<�ä˜“:×.Ñ.Ü× Ñ  ¨VÀ3×CTÑCTÔUØ—
‘
ØÜ—‘×'Ñ'¨Ó,×5Ñ5Ó7Ø—‘ð1ð ð ô ˜œUŸX™XŸ_™_Õ-Ü�#‹w˜d×4Ñ4Ñ4ÜÐ!7Ð7Ð7àŸ™×+Ñ+Ó-ò 5�Ü˜d¤U§\¡\´5·8±8·?±?Ð$CÔDØÜ�d“8˜t×5Ñ5Ñ5ØÜ˜D”>ØØ04�×#Ñ#¤B t£HÒ-ð5ô ˜#œuŸx™x×0Ñ0×HÑHÔIÜ˜D“z×6Ñ6¸×9IÑ9IÓ9KÐ8MÐMÐMä�C‹y×%Ñ%¬¨c«×);Ñ);Ò;Ü%Ð%Ø�}‰}×)Ñ)¬U¯X©X¯_©_×-IÑ-IÓIÜ˜D“z×2Ñ2°S×5EÑ5EÓ5GÐ4IÐIÐIä×Ñ˜cÔ"Ü˜“:×5Ñ5¸¿¹°ÐFÐFä˜œUŸX™X×4Ñ4Ô5Ü˜“:×8Ñ8¸3¿<¹<»>Ð:KÐKÐKä˜œUŸX™X×0Ñ0×=Ñ=Ô>Ü˜“:×=Ñ=ÀÇÁÃÐ?QÐQÐQô �O‰O˜CÔ Ü˜3 §¡Ô/Ü˜Ð2Ô3ä˜3Ð 2Ô3Ü$Ø.¨s¨eÐ3XÐYóð ð ×'Ñ'¨#×*AÑ*AÐ)CÐCÐCô �O‰O˜CÔ Ü˜3¤Ô&Ü˜˜YÔ'Ø× Ñ  C§L¡LÒ0ä˜“:×8Ñ8¸3¿<¹<ÈÏÉÐ:UÐUÐUä˜œUŸ\™\Ô*ÜÐ!9¸#¸¸hÀsÇxÁxÀjÐPQÐRÓSÐSä˜œU×3Ñ3Ô4Ü˜“:×5Ñ5¸¿¹»
°}ÐDÐDä�#‹YÔ.Ñ.Ü-¨cÓ2‰JˆD�$Øœ>Ò)¨d¼.Ò.HÜ˜D“z×6Ñ6¸¸t¸ÐDÐDä˜œUŸ]™]×0Ñ0×:Ñ:Ô;Ü˜“:×1Ñ1´D¸³I°<Ð?Ð?äØ”—‘×,Ñ,ô
à×$Ñ$×/Ñ/°Ô7Ü˜“:×,Ñ,¨s¯|©|¨oÐ=Ð=ä˜œUŸZ™Z×2Ñ2Ô3Ü˜“:×*Ñ*Ø—‘Ø—‘Ø×!Ñ!ð-ð ð ð �M‰M×$Ñ$¨
Ò2Ø—‘×&Ñ&¨+Ò5ô ˜\Ð)Ð)ä˜Ô3Ó5Ô6ÜÐ-Ð-Ð-ä×Ñ Ô$Ø˜S×-Ñ-Ñ-Ü˜D“z×;Ñ;Ø—L‘LØ—N‘NØ×$Ñ$Ø×$Ñ$Ø—O‘Oð>ð ð ð �~‰~¤§¡Ò,Ü—K‘K §¡Ñ/�Ø×,Ñ,×2Ñ2°3Ó7ò /�DÜ  4¨Ó.‘Að/à˜C‘<Ü#Ð%6Ð6Ð6Ü×Ñ˜cÔ"Ø—<‘<ˆDØŸ,™,ˆKÜ  ¨d¯m©mÓ<ˆJÜ×Ñ 
Ô+Ø'×0Ñ0�
Ø˜:Ñ%Ü˜D“z×8Ñ8¸4ÀÐ:MÐMÐMä˜œTÒ#6¸Ó":×"FÑ"FÀqÑ"IÓJÔKÜ˜“:×,Ñ,¨s×/@Ñ/@Ð.BÐBÐBä”5×$Ñ$Ð&8Ô9¼jØ”×"Ñ"×3Ñ3×8Ñ8ô?
ô �#‹w˜d×4Ñ4Ñ4ÜÐ!;Ð;Ð;ä�cœ5Ÿ8™8×-Ñ-×8Ñ8Ô9Ü˜“:×3Ñ3°c·h±h°[Ð@Ð@ä�‹9×!Ñ!¤T¨#£Y×%7Ñ%7Ò7Ä
È3ÔPUÔ@VÜ—-‘-×#Ñ#×0Ñ0Øœ˜S›	�{ ,¨s¨eÐ3DÐEØTñUàTñUóð ô �O‰O˜CÕ Üœ×)Ñ)¨6Õ2Ü˜3¤× 1Ñ 1× 6Ñ 6× CÑ C× NÑ NÔOàœ%×+Ñ+×0Ñ0×=Ñ=×HÑHÑHØ #§¡¨A¡�Ü! -´·±·±ÔAÜ(Ø;¸M¸?ÐKóð ð "Ü ×,Ñ,×1Ñ1×>Ñ>×KÑK×_Ñ_Óañbô )Ø(˜/Ð)SÐTóð ô ˜D“z×<Ñ<¸}Ð>NÐNÐNäÐr½   )rª  údict[int, Any]r®  r/  r¯  r/  rÞ   r   rŸ  r   rÍ   rÑ   )r²  r   rÍ   ztorch.nn.Module)r¹  útorch.Tensorr¾  útorch.devicer  r  rº  r*  r¸  r0  rÍ   r0  )r¹  r0  r¾  r1  r  r  rº  r*  r¾  r   r¿  zlist[tuple[str, Any]]rÍ   r0  )rÅ  rÎ   rÍ   ztypes.ModuleType)rÍ  r*  rÍ   ztorch._C.DispatchKeySet)rÌ  ÚbytesrÍ   z torch._C._functorch.CInterpreter)rÐ  rL  rÍ   z types.MappingProxyType[Any, Any])rÔ  z	list[Any]rÍ   r   )r  r*  r}  r*  rÍ   zitertools.count[int])rÝ  útype[torch.nn.Module]rÍ   r3  )r²  zdict[str, Any]rÍ   z)torch.nn.parallel.DistributedDataParallel)rë  rÎ   rÍ   r   )rê  rÎ   rë  rÎ   rì  rÎ   rÍ   r   )rï  r   rí  r   rÍ   r   )rë  rÎ   rÍ   ztorch.nn.attention.SDPBackend)rj  r   rÍ   r   )rë  rÎ   rû  ræ  rÍ   ztype[NamedTuple])r   r¥   rÍ   rH  )r·   rH  r9  rÎ   r  rÎ   r  ztuple[object, ...] | Noner  z!tuple[types.CellType, ...] | NonerÍ   ztypes.FunctionType)r  r   rÍ   z0tuple[Callable[..., Any], tuple[Any, ...]] | Any)rÒ   rÓ   rÔ   rê   r?  r´  r»  rÃ  rÆ  rÈ  rÍ  rÑ  rÕ  rØ  rÞ  rå  rè  rí  rð  r>  rõ  rø  rü  r  r  r.  rÕ   rÖ   s   @r»   r§  r§  A  sô  ø„ ð-à)ð-ð %ð-ð 'ð	-ð
 ð-ð ð-ð 
õ-ð òó ðð
 ðà!ðð ðð ð	ð
 ðð ðð 
òó ðð( ðà!ðð ðð ð	ð
 ðð ðð *ðð 
òó ðð& ò.ó ð.ð ò?ó ð?ð ðBØðBà	)òBó ðBð
 ð)Øð)à	)ò)ó ð)ð
 ò+ó ð+ð ò+ó ð+ð ð
Ø1ð
à	ò
ó ð
ð ðØ"ðà	2òó ðð ò+ó ð+ð òUó ðUð ò,ó ð,ð ò<ó ð<ð ò ó ð ð ð4Øð4Ø /ð4à	ò4ó ð4ð ò>ó ð>ð
 ð	Oàð	Oð ð	Oð ð		Oð
 +ð	Oð 3ð	Oð 
ò	Oó ð	OðRØðRà	9÷Rr½   r§  c           	     óB  — t        «       }t        | j                  «      }|dk(  rd}|}n	 |j                  | «      }d}t	        | j
                  «      d u}t        |||| j                  «       | j                  rt        | j                  «      nd|| ¬«      S #  |}d}Y Œ`xY w)Nrl  FTrŠ  )rë  Ú	has_valuerÿ  Ú
guard_typeÚderived_guard_typesÚ	is_globalÚ
orig_guard)
rø  Ústrip_local_scoperë  r°  r+   rå  rˆ   Úcreate_fn_nameÚguard_typesrC  )rS  ÚbuilderÚMISSINGrë  r5  rÿ  r8  s          r»   Úmake_guard_filter_entryr?  ¶  s«   € Ü‹h€GÜ˜UŸZ™ZÓ(€DØˆr‚zØˆ	Ø‰ð		ð
 —K‘K Ó&ˆEØˆIô ' u×'?Ñ'?Ó@ÈÐL€IÜØØØØ×'Ñ'Ó)Ø9>×9JÒ9JœU 5×#4Ñ#4Ô5ÐPRØØôð øð		ØˆEØŠIús   «B ÂBc                ó¼  — t        j                  «       }i }i }|j                  }t        j                  | j
                  j                  «      }|D ]Œ  }t        j                  |«      rYt        |d«      rM|j                  }t        |«      |vsŒ>	 t        |«      j                  t        |«      «       ||t        |«      <   Œqt        |«      |vsŒ||t        |«      <   ŒŽ t        ||||«      }	t        t         j"                  j%                  | j
                  j&                  D �
cg c]  }
t)        |
|«      ‘Œ c}
«      «      r*t+        «       | j
                  _        i | j
                  _        	 |	j1                  | «       |j=                  «       S #  Y �ŒBxY wc c}
w # t2        $ r8}t         j4                  j6                  j9                  t;        |«      «      |‚d }~ww xY w)Nr%  )ÚioÚBytesIOrª  r  Útree_leavesr®  r¶  r›  r$  rn  r%  rh  r  râ  r§  r  r4  ÚcompilerÚkeep_portable_guards_unsafer§   r?  rç   r¯  rá   Údumpr¤  r—  rT   r'  rÎ   ro  )r²  r=  Úbufr®  r¯  rª  ÚleavesÚleafrí  ÚpicklerrS  ry  s               r»   Úpickle_guards_staterK  Ó  sž  € ô �*‰*‹,€CØ€LØ€NØ×1Ñ1Ðä×Ñ × 2Ñ 2× >Ñ >Ó?€FØò ,ˆÜ×Ñ˜DÔ!¤g¨d°JÔ&?Ø—=‘=ˆDÜ�$‹xÐ0Ò0ðÜ˜“J×&Ñ&¤t¨D£zÔ2Ø-1�L¤ D£Ò*ô �‹XÐ.Ò.ð (,ˆNœ2˜d›8Ò$ð,ô !Ð!2°LÀ.ÐRUÓV€Gä
Ü�‰×2Ñ2ð #×/Ñ/×6Ñ6öàô (¨¨wÕ7òó	
ôô 14³ˆ×ÑÔ-Ø*,ˆ×ÑÔ'ð<Ø�‰�UÔð �<‰<‹>Ðøð1Úüòøô ò <Ü�m‰m×Ñ×,Ñ,¬S°«VÓ4¸!Ð;ûð<ús*   Â1FÄ#FÅ,F ÆFÆ	GÆ#3GÇGc                  óÈ   — e Zd ZU 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZdZded<   	 	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Zdd	„Z	dd
„Z
dd„Zy)rJ  Nc
           
     óÂ	  ‡ ‡‡— |r|j                   nd }
i ‰ _        t        |xs g «      }|‰ _        ‰ j                  €t	        d«      ‚|‰ _        |r|j                  nd ‰ _        t        «       ‰ _        t        «       ‰ _	        t        «       ‰ _
        |‰ _        d ‰ _        d ‰ _        t        d«      st        j!                  d«       t"        j$                  j&                  j(                  r|xs d„ Šd ˆfd„}t+        |
xs dt,        j.                  ¬«      }t"        j0                  j3                  «       5  |r³‰ j5                  ||||d«      \  }} ||D �cg c]  }t7        ||«      ‘Œ c}«      }t9        |«      t9        |«      k7  r$t	        d	t9        |«      › d
t9        |«      › d�«      ‚t;        d„ |D «       «      st	        d«      ‚t=        |«      D ��cg c]  \  }}||   sŒ|‘Œ }}}‰ j5                  ||||||¬«      \  }}|‰ _        ‰ jA                  |||«       d d d «       jB                  ‰ j>                  _!        tD        jG                  d‰ j>                  «       |jB                  ‰ j>                  _!        dŠ|jH                  sý|jJ                  sñ‰ j>                  jM                  |jN                  «      sCtQ        ‰ j>                  |jN                  tS        jT                  «       d ¬«      }t	        d|› �«      ‚tV        �!tW        ‰ j>                  |jN                  |«       tY        ‰ j>                  jZ                  |jN                  d«      ŠtD        jG                  d‰d›«       t]        j^                  dta        ‰«      «       d ‰ _1        |r`ddl2m3} ti        ‰ j                  |«      s!t	        dtk        ‰ j                  «      › �«      ‚	 ‰ jm                  ||‰ j                  «      ‰ _1        t"        j~                  j�                  dˆˆ fd„¬«       ‰ j                  jƒ                  «        d ‰ _        y c c}w c c}}w # 1 sw Y   �Œ&xY w# tn        jp                  $ r|}t"        j$                  j&                  jr                  s|	r|‚‰ j                  ju                  dtw        |«      › �ty        jz                  «       j}                  d«      ¬«       Y d }~Œéd }~ww xY w)!Nr®  r—  z9guard_nn_modules is turned off using justknobs killswitchc                ó,   — | D �cg c]  }d‘Œ c}S c c}w rc  rŠ  )ÚgsÚgs     r»   r¬  z/CheckFunctionManager.__init__.<locals>.<lambda>0  s   € ÈRÖ>PÈºtÒ>P€ ùÒ>Ps   …	c                ól  •— g }t         ‰| «      | «      D ]›  \  }}|s|j                  d«       Œ|j                  dv sd|j                  v sd|j                  v rGt        j                  d|j                  |j                  j                  «       |j                  d«       Œ‹|j                  d«       Œ� |S )NF)r¾  ra  r”  rŽ  r¾  rŽ  z7%s guard on %s is dropped with caching_precompile=True.T)r  r|  r6  r7  rU  rV  r9  rë  )r§   rQ  ÚkeeprP  Ú_guard_filter_fns       €r»   r¬  z6CheckFunctionManager.__init__.<locals>.guard_filter_fn2  sª   ø€ Ø�Ü"Ñ#3°FÓ#;¸VÓDò )‘G�D˜!ÙØŸ
™
 5Õ)àŸ™ðñð &¨×)>Ñ)>Ñ>Ø)¨Q×-BÑ-BÑBäŸ™ØUØŸL™LØŸL™L×-Ñ-ôð
 Ÿ
™
 5Õ)àŸ
™
 4Õ(ð+)ð, �
r½   rŠ  )r
  Fzfilter_results length (z) != sorted_guards length (rZ  c              3  ó>   K  — | ]  }t        |«      t        u –— Œ y ­wrÚ   )r  rÐ   )r  rt  s     r»   r  z0CheckFunctionManager.__init__.<locals>.<genexpr>f  s   è ø€ ÒC¨qœ4 ›7¤dœ?ÑCùs   ‚z'All filter_results entries must be bool)r¬  ú%sg        )ÚbackendziGuard failed on the same frame it was created. This is a bug - please create an issue.Guard fail reason: rQ   zGuard eval latency = %s usú.2fÚguard_latency_usr   rÀ  rÁ  zGuard evaluation failed: rÎ  )Ú	tracebackÚdynamo_cpp_guards_strc                 ó*   •— ‰j                   › d‰ d›d�S )Nz
Guard latency = rW  z us)r\  )ÚlatencyrÄ   s   €€r»   r¬  z/CheckFunctionManager.__init__.<locals>.<lambda>Ê  s    ø€  $×"4Ñ"4Ð!5Ð5GÈÐPSÀ}ÐTWÐX€ r½   ©Ú
payload_fn)r§   zSequence[GuardFilterEntry]rÍ   zSequence[bool])Br§   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesr®  r   rè  rµ  rM   re  r‰  rŠ  rž  r°  r·  rF   rU  rV  r4  r—  rR   Úcaching_precompilerò   r:   Úsort_keyrú  ÚDisableTorchFunctionÚbuild_guardsr?  rµ   r  rÂ  r\  Úcompile_check_fnrå   rB  rC  Úskip_guards_checkrÔ  rr  r¶  Úget_guard_fail_reason_helperr7   r  rœ   r$   rÛ   r5   Úincrement_toplevelr*  Úguards_staterç  r¢   rÿ   r  Úserialize_guardsrT   r'  Ústrict_precompileÚbypass_packagerÎ   rY  Ú
format_excrz  Ú_loggingÚtrace_structuredÚclear)rÄ   r˜  r®  Úcache_entriesrâ   r¬  rè  rž  r«  Ústrict_errorr§   Úexisting_diff_guard_sourcesÚsorted_guardsr=  r\  rS  Úfilter_resultsrà  Úreasonsr¢   ry  rS  r\  s   `                    @@r»   rê   zCheckFunctionManager.__init__  s¢  ú€ ñ )5�×$Ò$¸$ˆØ;=ˆŒô BÀ-ÒBUÐSUÓVð 	$ð 7CˆÔØ×ÑÐ$Ü Ð!@ÓAÐAð !1ˆÔñ
 7CˆL×2Ò2Èð 	Ô&ô 3=³,ˆÔÜ;E»<ˆÔ'Ü<F»LˆÔ(Ø$8ˆÔ!ØMQˆÔØMQˆÔ/äÐBÔCÜ�K‰KÐSÔTô �=‰=×Ñ×2Ò2Ø.ÒQÑ3PÐõô4 ˜vš|¨´·±Ô@ˆô �X‰X×*Ñ*Ó,ñ %	IÙð *.×):Ñ):Ø!Ø/ØØ Øó*Ñ&�˜ñ "1ØJWÖXÀÔ,¨U°GÕ<ÒXó"�ô �~Ó&¬#¨mÓ*<Ò<Ü(Ø1´#°nÓ2EÐ1Fð G1Ü14°]Ó1CÐ0DÀAðGóð ô ÑC°NÔCÔCÜ(Ð)RÓSÐSä*3°MÓ*B÷!Ù&˜a ÀnÐUVÓFW’Eð!�ñ !ð
 &*×%6Ñ%6ØØ+ØØØØ /ð &7ó &Ñ"ˆG�]ð "/ˆDÔØ×!Ñ! '¨=¸-ÔH÷K%	Ið^ .5×-DÑ-Dˆ×ÑÔ*ä×Ñ˜˜t×1Ñ1Ô2Ø-4×-DÑ-Dˆ×ÑÔ*ð ˆà×-Ò-°l×6IÒ6IØ×%Ñ%×+Ñ+¨L×,DÑ,DÔEÜ6Ø×&Ñ&Ø ×,Ñ,Ü"×5Ñ5Ó7Ø ô	�ô %ð*Ø*1¨ð4óð ô
 -Ð8Ü-Ø×&Ñ&¨×(@Ñ(@À'ôô ,Ø×"Ñ"×'Ñ'¨×)AÑ)AÀ1óˆGô ×ÑÐ9¸gÀc¸]ÔLô ×1Ñ1Ð2DÄcÈ'ÃlÔSà*.ˆÔÙÝDä˜d×/Ñ/Ð1BÔCÜ$Ø6´t¸D×<MÑ<MÓ7NÐ6OÐPóð ð
Ø$(×$9Ñ$9Ø˜]¨D×,=Ñ,=ó%�Ô!ô 	�‰×'Ñ'Ø#ÜXð 	(ô 	
ð 	�‰×ÑÔØ ˆÕùòm Yùó!÷-%	Iñ %	IûôZ ×#Ñ#ò Ü—=‘=×'Ñ'×9Ò9¹\Ø�GØ×!Ñ!×0Ñ0Ø/´°A³¨xÐ8Ü'×2Ñ2Ó4×:Ñ:¸4Ó@ð 1÷ ñ ûðúsJ   Ä4!QÅP7
Å(A-QÇP<Ç#P<Ç'7QÏ"Q Ð7QÑQÑSÑ"A2SÓS)rŽ  rR  r¾  rV  rZ  r_  ra  r”  ztuple[LiteralString, ...]Ú%UNSUPPORTED_SERIALIZATION_GUARD_TYPESc                ó&  ‡‡‡‡— |D ]â  }|j                  «       }|j                  rt        |j                  «      nd}|dv r*|j                  sŒG|j	                  |«      }t        |«       Œd|t        j                  v r,t        j                  j                  j                  |› d�«      ‚t        d„ |D «       d «      x}sŒ¸t        j                  j                  j                  |› d�«      ‚ |j                  xs dŠt        «       Št        «       Šdˆˆˆfd„}	|j                  «       }
|D ]i  }t!        |j"                  t$        «      r;| j&                  st)        d«      ‚| j&                  j*                  D ]
  } |	|«       Œ ŒX |	|j"                  «       Œk |j,                  D ]
  } |	|«       Œ dd„Š|
j.                  j1                  «       D ��ci c]  \  }}|‰v s|| j2                  v r||“Œ }}}|
j.                  ‰   j1                  «       D ��ci c]  \  }}|| j4                  v r||“Œ c}}|‰<   t7        j8                  |
|
j:                  j1                  «       D ��ci c]  \  }}|‰v s|| j<                  v r||“Œ c}}|t        j>                  jA                  tC        ˆfd	„|D «       «      «      tE        jF                  tH        |
jJ                  «      d
¬«      }
tM        |
| j&                  ¬«      }tO        ||«      S c c}}w c c}}w c c}}w )NrŠ  )r‚  rf  z guard cannot be serialized.c              3  óD   K  — | ]  }|t         j                  v r|–— Œ y ­wrÚ   )rJ  rw  )r  rà  s     r»   r  z8CheckFunctionManager.serialize_guards.<locals>.<genexpr>ú  s'   è ø€ ò àØÔ0×VÑVÑVô ñùs   ‚ rl  c                ó*  •— t        | «      x}r?t        |t        «      st        dt	        |«      › �«      ‚|‰k7  r‰j                  |«       y y t        | «      x}r9t        |t        «      st        dt	        |«      › �«      ‚‰j                  |«       y y )NzExpected str, got )r+   rÿ   rÎ   r   r  rõ   r,   )r^  rë  Úbuiltins_dict_nameÚused_global_varsÚused_local_varss     €€€r»   Úprune_variablez=CheckFunctionManager.serialize_guards.<locals>.prune_variable
  s–   ø€ Ü-¨fÓ5Ð5ˆtÐ5Ü! $¬Ô,Ü(Ð+=¼dÀ4»j¸\Ð)JÓKÐKð Ð-Ò-Ø$×(Ñ(¨Õ.ð .ä.¨vÓ6Ð6�Ð6Ü! $¬Ô,Ü(Ð+=¼dÀ4»j¸\Ð)JÓKÐKØ×#Ñ# DÕ)ð 7r½   z6shape_code_parts must be set for ShapeEnvSource guardsc                ó8  ‡— t        | t        j                  «      rxdd„Št        ˆfd„| j                  D «       «      }| j
                  j                  «       D ��ci c]  \  }}| ‰|«      “Œ }}}t        j                  | j                  g|¢­i |¤ŽS | S c c}}w )Nc                óT   — t        | t        t        j                  f«      r | «       S | S rÚ   )rÿ   rP   r<  ri  r¶  s    r»   Ú_refzPCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>._ref+  s!   € Ü! !¤m´W·[±[Ð%AÔBÙ ›s˜
Ø�Hr½   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wrÚ   rŠ  )r  r-  r�  s     €r»   r  zUCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>.<genexpr>0  s   øè ø€ Ò 9¨Q¡ a§Ñ 9ùs   ƒ)rt  r   rÍ   r   )rÿ   Ú	functoolsÚpartialrC  rÞ   ra  rô   rï  )rt  Únew_argsÚkÚvÚnew_keywordsr�  s        @r»   Únormalize_create_fnzBCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn(  s„   ø€ Ü˜!œY×.Ñ.Ô/óô
 !Ó 9°!·&±&Ô 9Ó9�Ø78·z±z×7GÑ7GÓ7I×J©t¨q°! ¡4¨£7¡
ÐJ�ÑJÜ ×(Ñ(¨¯©ÐK°(ÒK¸lÑKÐKàˆHùó  Ks   ÁBc           	   3  óp   •K  — | ]-  }t        j                  |d d  ‰|j                  «      ¬«      –— Œ/ y ­w)N)Úobj_weakrefÚguarded_class_weakrefr`  )r„  rÑ  r`  )r  rS  r‰  s     €r»   r  z8CheckFunctionManager.serialize_guards.<locals>.<genexpr>L  s@   øè ø€ ò ð ô  ×'Ñ'ØØ$(Ø.2Ù"5°e·o±oÓ"F÷	ð ñùs   ƒ36T)r¶  rá   Ú_guardsr'  rf  )r®  rè  )r^  r>   rÍ   rÑ   )rt  úCallable[..., None]rÍ   rŽ  )(r;  r<  rC  r~  r°  r  rJ  rw  r4  r—  rT   r'  ÚnextÚ%name_of_builtins_dict_key_in_fglobalsrç   Údump_guards_staterÿ   rå  rx   rè  r   rÜ  r¯  rá   rô   rŠ  re  r„  rÑ  r¶  r‰  r�  Ú	GuardsSetrM   r  Útree_maprõ  r'  r“  rK  )rÄ   r=  rt  r®  rS  r6  r7  r  Úfailedr~  Úoutput_graph_guards_stater^  r†  r‡  Úglobal_scope_stateri  r{  r‰  r|  r}  s                   @@@@r»   rj  z%CheckFunctionManager.serialize_guardsâ  s6  û€ ð #ò 	ˆEØ×-Ñ-Ó/ˆJØ>C×>OÒ>O¤%¨×(9Ñ(9Ô":ÐUWÐð Ð<Ñ<Ø×(Ó(à!Ÿ+™+ eÓ,�CÜ*¨3Õ/àÔ2×XÑXÑXä—m‘m×'Ñ'×4Ñ4Ø!�lÐ">Ð?óð ô  ñà0ôð
 óð �ñ ô —m‘m×'Ñ'×4Ñ4Ø�hÐ:Ð;óð ð3	ð: *×OÑOÒUÐSUÐÜ›5ÐÜ›%ˆ÷	*ð %1×$BÑ$BÓ$DÐ!à"ò 		9ˆEÜ˜%×2Ñ2´NÔCØ×,Ò,Ü(ØPóð ð #×3Ñ3×EÑEò +�FÙ" 6Õ*ñ+ñ ˜u×7Ñ7Õ8ð		9ð #×5Ñ5ò 	#ˆFÙ˜6Õ"ð	#ó	ð  2×>Ñ>×DÑDÓF÷
á��1ØÐ$Ñ$¨¨T×-MÑ-MÑ(Mð ˆq‰Dð
Ðñ 
ð 2×>Ñ>Ø"ñç‰e‹g÷2
ñ ��1ð �D×*Ñ*Ñ*ð ˆq‰Dó2
ÐÐ-Ñ.ô %0×$7Ñ$7Ø%ð 6×AÑA×GÑGÓI÷á�A�qØ˜Ñ'¨1°×0OÑ0OÑ+Oð �1‘óð
 ,Ü—M‘M×+Ñ+Üó ð "/ôó ó
ô +1¯/©/Ü.Ø)×GÑGó+ð #ô/%
Ð!ô2 #Ø2Ø!×2Ñ2ô
ˆô
 # <°Ó9Ð9ùóW
ùó
2
ùós   ÇLÈLÉ!Lc                ó  ‡— t        «       }||_        d Šdˆfd„}t        || j                  || j                  |j
                  |j                  || || j                  |¬«      }	d	d„}
t        j                  |	|
«      Št        j                  xr t        d«      }|D ]`  }|sK|j                  «       r;d|j                  vr-d|j                  vrt        j                  sd|j                  vrŒP|j!                  |	«       Œb |	|fS )
Nc                óÐ   •— | j                   }|t        j                  u r| j                  S ‰st	        d«      ‚ ‰«       }|€t	        d«      ‚|j                  | j                  «      S )Nz/w_builder must be set before calling source_refz'GuardBuilder has been garbage collected)Úguard_sourcer=   ÚCONSTANTrë  r   rX  )r^  r™  Ú	r_builderÚ	w_builders      €r»   rš  z5CheckFunctionManager.build_guards.<locals>.source_refr  sc   ø€ Ø!×.Ñ.ˆLØœ{×3Ñ3Ñ3à—{‘{Ð"ÙÜ$Ð%VÓWÐWÙ!›ˆIØÐ Ü$Ð%NÓOÐOØ×$Ñ$ V§[¡[Ó1Ð1r½   )rž  r¬  c                ó&   —  | «       }|rd |_         y y rÚ   )rœ  )Úweak_br«  s     r»   Úcleanup_builderz:CheckFunctionManager.build_guards.<locals>.cleanup_builder�  s   € Ù“ˆAÙØ�•ð r½   r—  r«   r¬   rå  )r^  r>   rÍ   rÎ   )rž  zweakref.ref[GuardBuilder]rÍ   rÑ   )rØ   ré   r‹  r™  r›  r¶  rá   rž  r<  ri  rR   r´  rF   r8  rë  r¤  rZ  )rÄ   rt  rs  r˜  r®  r«  r¬  r\  rš  r=  rŸ  Úguard_on_nn_modulesrS  rœ  s                @r»   rd  z!CheckFunctionManager.build_guardsc  s  ø€ ô ,Ó-ˆØ+FˆÔ(àˆ	õ
	2ô ØØ�K‰KØØ× Ñ Ø×$Ñ$Ø×%Ñ%ØØØØ!%×!:Ñ!:Ø+ô
ˆó	ô —K‘K ¨Ó9ˆ	ä$×5Ñ5ò 
¼/Ø/ó;
Ðð #ò 	"ˆEá'Ø×2Ñ2Ô4ð #¨%¯*©*Ñ4Ø$¨E¯J©JÑ6Ü×5Ò5¸ÈÏ
É
Ñ9Ràà�L‰L˜Õ!ð	"ð ˜Ð%Ð%r½   c                ój	  ‡‡‡— |j                   }|dgz  }t        j                  d«       g Šg Šg Š| j                  j                  j                  t        t        j                  «       «      «       d | _	        	 d	 	 	 	 	 	 	 dˆˆˆfd„}t        «       }|j                  D ]=  }|j                  D ],  }||vsŒ |||j                  d«       |j                  |«       Œ. Œ? |j                  }	d }
d }t!        |	«      dkD  r.t#        |j$                  |	ddj'                  |	«      z   dz   gd «       t(        j*                  rA|j,                  r5t/        t0        t3        |j,                  Ž «      \  }}|j5                  ||«       | j6                  r| j6                  j8                  ng }|D �]N  }t;        |t<        «      rk|j>                  }|j@                  }|jB                  › d	|jB                  › �}tE        |jG                  |«      |jG                  |«      |gd «        ||d d«       Œt;        |tH        «      r´|jJ                  D �cg c]  }|jG                  |«      ‘Œ }}|jL                  D �cg c]  }|jG                  |«      ‘Œ }}d
dj'                  d„ |jJ                  D «       «      › ddj'                  d„ |jL                  D «       «      › d�}tO        |||gd «        ||d d«       �ŒCtQ        d|› �«      ‚ |jR                  D ]'  }|j                  D ]  } |||j                  d«       Œ Œ) ‰r$tT        jV                  jY                  dˆfd„¬«       tZ        j\                  €t[        j^                  «       j`                  }ntc        | jd                  dd «      }|
||| jf                  dœth        ¥tk        «       ¥}| j                  jm                  «        d|jn                  d   i}t!        ‰«      dk7  rtq        dt!        ‰«      › d�«      ‚|| j                  _9        || j                  _:        | j                  jw                  «        ‰| j                  _<        || j                  _=        || j                  _>        d | j                  _?        d | j                  _@        |	| j                  _A        y c c}w c c}w )Nz**___kwargs_ignoredzGUARDS:c                ó$  •‡ ‡— t        ‰ ‰«      }t        j                  d|«       ‰j                  ˆ ˆfd„«       t        j                  t        j                  «      rŽd}d}‰�p‰j                  r,ddj                  ‰j                  j                  «       «      › �}‰j                  r,ddj                  ‰j                  j                  «       «      › �}t        j                  d‰ ||«       |s#‰j                  ‰ «       ‰j                  |«       y y )NrU  c                 óä   •— ‰ ‰r9‰j                   r-t        j                  ‰j                   j                  «       «      nd ‰r-‰j                  r!t        j                  ‰j                  «      dœS d dœS )N)r·   rÜ  rÙ  )rÜ  rE   Úfrom_tracebackrÝ  rÙ  )r  rS  s   €€r»   r¬  zNCheckFunctionManager.compile_check_fn.<locals>.add_code_part.<locals>.<lambda>È  sg   ø€ Ø%ñ ! U§[¢[ô #×1Ñ1°%·+±+×2EÑ2EÓ2GÔHà!ñ ! U×%5Ò%5ô #×1Ñ1°%×2BÑ2BÓCñ€ ð "ñ€ r½   rl  z
Stack:
z
User stack:
zGuard: %s%s%s)rà  rB  rC  r|  Úverbose_guards_logÚisEnabledForÚloggingÚDEBUGrÜ  r@  ÚformatrÙ  )	r  rS  Úlog_onlyr~  Úmaybe_stackÚmaybe_user_stackrß   Ústructured_guard_fnsrà   s	   ``    €€€r»   Úadd_code_partz<CheckFunctionManager.compile_check_fn.<locals>.add_code_partÁ  sù   ú€ ô !6°iÀÓ GÐÜ×Ñ˜TÐ#4Ô5à ×'Ñ'ôôô  "×.Ñ.¬w¯}©}Ô=Ø �Ø#%Ð ØÐ$Ø—{’{Ø(2°2·7±7¸5¿;¹;×;MÑ;MÓ;OÓ3PÐ2QÐ&R˜Ø×'Ò'à-¨b¯g©g°e×6FÑ6F×6MÑ6MÓ6OÓ.PÐ-QÐRð )ô #×(Ñ(Ø#ØØØ$ô	ñ Ø×!Ñ! )Ô,Ø"×)Ñ)Ð*;Õ<ð r½   TrQ   zcheck_no_aliasing(rY  rZ  rˆ  zcheck_overlapping(overlapping=[c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrÚ   rô  ©r  r`  s     r»   r  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>5  s   è ø€ Ò/Z¸1°·µÑ/Zùó   ‚z], non_overlapping=[c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrÚ   rô  r°  s     r»   r  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>6  s   è ø€ Ò3b¸q°A·FµFÑ3bùr±  z])zUnknown GuardEnvExpr: Údynamo_guardsc                 ó8   •— ‰D � cg c]	  }  | «       ‘Œ c} S c c} w rÚ   rŠ  )r+  r­  s    €r»   r¬  z7CheckFunctionManager.compile_check_fn.<locals>.<lambda>M  s   ø€ ÐBVÖ4W¸Q±QµSÒ4W€ ùÒ4Ws   †r]  rr  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackr�  r   z,Expected all code_parts to be consumed, but z remainrÏ   )r  rÎ   rS  úGuard | Nonerª  rÐ   rÍ   rÑ   )Br¥  rB  rC  r\  rÛ   Úattach_compile_idrÎ   r7   r  rµ  rç   r·   r=  rS  rõ   r§  rµ   r   r¨  r@  rR   r‹  r³  rä  rã  r  rL  r®  Úaotautograd_guardsrÿ   r9   Úinput_source_aÚinput_source_brë  r    r  r?   Úoverlapping_sourcesÚnon_overlapping_sourcesr!   r!  r¦  r4  rn  ro  rS   Úinitial_global_stateÚGlobalStateGuardrr  r"  r°  r·  rK   rÌ  r  rœ  r   rÝ   rÞ   r„  rà   rá   râ   rã   rä   ræ   )rÄ   r=  Ú
guards_outrâ   Úlargsr®  ÚseenÚgclr·   r§  Úcheck_tensors_fnÚcheck_tensors_verbose_fnÚaliasing_code_partsÚaliasing_verbose_code_partsr»  rS  Úsource_arŒ  r  r`  Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚcheck_global_staterÝ   rK  rß   r­  rà   s                            @@@r»   re  z%CheckFunctionManager.compile_check_fn¨  sä  ú€ ð × Ñ ˆØÐ'Ð(Ñ(ˆä×Ñ˜Ô#ð ˆ
ØÐØCEÐð 	×Ñ×Ñ×1Ñ1Ü”×1Ñ1Ó3Ó4ô	
ð
 *.ˆÔ&ð CHð)	=Øð)	=Ø#/ð)	=Ø;?ð)	=à÷)	=ôV ‹uˆØ—<‘<ò 	#ˆCØŸ™ò #�Ø˜tÒ#ñ " $¨¯	©	°4Ô8Ø—H‘H˜T•Nñ#ð	#ð $+×#CÑ#CÐ ØÐØ#'Ð äÐ'Ó(¨1Ò,ô -Ø×9Ñ9Ø(Ø%¨¯	©	Ð2JÓ(KÑKÈcÑQÐRØô	ô" ×6Ò6Ø×3Ò3ä?BÜ”c˜7×>Ñ>Ð?ó@Ñ<ÐÐ!<ð ×8Ñ8Ø#Ð%@ôð
 59×4EÒ4EˆD×Ñ×0Ò0È2ð 	ð (ó "	EˆEÜ˜%¤Ô1Ø ×/Ñ/�Ø ×/Ñ/�Ø'Ÿ}™}˜o¨T°(·-±-°ÐA�	Ü-Ø×9Ñ9¸(ÓCØ×9Ñ9¸(ÓCØ�KØô	ñ ˜i¨¨tÕ4Ü˜E¤>Ô2ð #×6Ñ6ö.àð ×9Ñ9¸!Õ<ð.Ð*ð .ð #×:Ñ:ö2àð ×9Ñ9¸!Õ<ð2Ð.ð 2ð
&Ø&*§i¡iÑ/ZÀ×@YÑ@YÔ/ZÓ&ZÐ%[ð \*Ø*.¯)©)Ñ3bÀE×DaÑDaÔ3bÓ*bÐ)cÐceðið ô
 2Ø.Ø2Ø�KØô	ñ ˜i¨¨tÖ4ä"Ð%;¸E¸7Ð#CÓDÐDðE"	EðL ×)Ñ)ò 	5ˆCØŸ™ò 5�ñ ˜d C§I¡I¨tÕ4ñ5ð	5ñ  Ü�N‰N×+Ñ+ØÓ,Wð ,ô ô ×-Ñ-Ð5ä!.×!?Ñ!?Ó!A×!GÑ!GÑä!(¨×):Ñ):¸GÀTÓ!JÐà 0Ø(@Ø%7Ø26×2YÑ2Yñ	
ô
 ð
ô  Ó!ð
ˆð 	×Ñ×#Ñ#Ô%à # W§]¡]°3Ñ%7Ð8Ðô ˆz‹?˜aÒÜ Ø>¼sÀ:»Ð>OÈwÐWóð ð +7ˆ×ÑÔ'Ø"'ˆ×ÑÔØ×Ñ×<Ñ<Ô>Ø0Bˆ×ÑÔ-à*>ˆ×ÑÔ'Ø+8ˆ×ÑÔ(ð *.ˆ×ÑÔ&Ø)-ˆ×ÑÔ&Ø8Pˆ×ÑÕ5ùòQ.ùò2s   È?R+É'R0c                ó¨  — t        | d«      rÆt        | j                  t        «      s«| j                  j                  x}�’| j                  j
                  x}�yt        |t        «      st        dt        |«      › �«      ‚t        |t        «      st        dt        |«      › �«      ‚d|› d�}t        |«      }|j                  ||«       || _        y y y y y )Nr\  zExpected CacheEntry, got zExpected ExtraState, got zCache line invalidated because z got deallocated)rn  rÿ   r\  rŒ  rã   rä   rƒ   r   r  r…   Ú
invalidate)rÄ   Úobj_strrã   rä   r�  Údeleted_guard_managers         r»   rÏ  zCheckFunctionManager.invalidateu  sÝ   € ô
 �D˜/Ô*Ü˜t×1Ñ1Ô3MÔNØ $× 2Ñ 2× >Ñ >Ð>�ÐKØ $× 2Ñ 2× >Ñ >Ð>�ÐKä˜k¬:Ô6Ü$Ð'@ÄÀkÓARÐ@SÐ%TÓUÐUä˜k¬:Ô6Ü$Ð'@ÄÀkÓARÐ@SÐ%TÓUÐUØ6°w°iÐ?OÐPˆFÜ$>¸vÓ$FÐ!à×"Ñ" ;Ð0EÔFØ!6ˆDÕð Lð Lð Oð +r½   c                ó:  — 	 t        |«      | j                  vr`t        j                  |«      | j                  t        |«      <   t        j                  |t        j                  | j                  |¬«      «       t        |«      S # t        $ r Y t        |«      S w xY w)zadd a weakref, return the id)rÐ  )	rh  r_  r<  ri  r  rƒ  r„  rÏ  r  )rÄ   r  rÐ  s      r»   r™  zCheckFunctionManager.id_refŠ  s€   € ð
	Ü�#‹w˜dŸn™nÑ,ô +2¯+©+°cÓ*:�—‘œr #›wÑ'Ü× Ñ Øœ×*Ñ*¨4¯?©?ÀGÔLôô
 �#‹wˆøô ò 	ØÜ�#‹wˆð	ús   ‚A7B Â	BÂBc                ób   — t        |«      | j                  v r| j                  t        |«         S y)zFLookup the _weakrefs created in id_ref function for ID_MATCH'd objectsN)rh  r_  )rÄ   r  s     r»   r›  z$CheckFunctionManager.lookup_weakrefs™  s(   € äˆc‹7�d—n‘nÑ$Ø—>‘>¤" S£'Ñ*Ð*Ør½   )NNNNNFF)r˜  rH  r®  r¢   rq  zlist[CacheEntry] | Nonerâ   ú"Callable[[GuardFail], None] | Noner¬  rK  rè  r”  rž  rN  r«  rÐ   rr  rÐ   rÍ   rÑ   )r=  r‹  rt  úlist[Guard]r®  r¢   rÍ   r2  rÚ   )rt  rÕ  rs  r…  r˜  rH  r®  r£   r«  rÐ   r¬  rK  rÍ   z(tuple[GuardBuilder, GuardManagerWrapper])r=  r‹  rÂ  rÕ  râ   rÔ  rÍ   rÑ   )rÐ  rÎ   rÍ   rÑ   )r  rø  rÐ  rÎ   rÍ   r*  )r  rø  rÍ   zweakref.ref[object] | None)rÒ   rÓ   rÔ   rê   rw  r¯   rj  rd  re  rÏ  r™  r›  rŠ  r½   r»   rJ  rJ    sj  … ð
 26Ø<@àØ26Ø6:Ø!Ø"ðP!àðP!ð (ðP!ð /ð	P!ð
 :ðP!ððP!ð 0ðP!ð 4ðP!ð ðP!ð ðP!ð 
óP!ðd	HÐ)Ð+Dó 	ð:àð:ð #ð:ð (ð	:ð
 
ó:ðR ðC&à"ðC&ð &5ðC&ð ð	C&ð
 -ðC&ð ðC&ððC&ð 
2óC&ðJKQàðKQð  ðKQð :ð	KQð
 
óKQóZ7ó*ôr½   rJ  c                ó,  ‡	— ddl m} t        «       Š		 ‰	j                  | «       dˆ	fd„} |«       }| D ]]  } ||«      \  }}|j                  |«       |j                  d|› d�«       |j                  «       5  |j                  d«       d d d «       Œ_  |«       }|j                  d«       |j                  «       5  |j                  |«       |j                  d	«       d d d «        |«       }|j                  d
|› d�«       |j                  «       5  |j                  |«       |j                  d«       d d d «       |j                  «       |j                  «       fS # t        $ r dd„}Y �ŒCw xY w# 1 sw Y   �ŒHxY w# 1 sw Y   Œ¡xY w# 1 sw Y   ŒVxY w)Nr   r@   c                ó&   •— ‰j                  | «      S rÚ   )rÑ  )ri  Úcsepasss    €r»   rÑ  z%build_guard_function.<locals>.replace§  s   ø€ Ø—?‘? 4Ó(Ð(r½   c                ó
   — g | fS rÚ   rŠ  )ri  s    r»   rÑ  z%build_guard_function.<locals>.replace­  s   € Ø�t�8ˆOr½   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardr€  )
Útorch._inductor.utilsrA   rP  r{  ÚRecursionErrorrj  rÈ   rc  Úsplicero  )
rß   Úclosure_argsrA   rÑ  Ú
guard_bodyri  rc  rS  Úmake_guard_fnrØ  s
            @r»   rA  rA     s‚  ø€ Ý4ä‹o€Gð
Ø�‰�jÔ!õ	)ñ  Ó!€JØò 1ˆÙ ›‰ˆ�Ø×Ñ˜gÔ&Ø×Ñ˜x¨ v¨RÐ0Ô1Ø×ÑÓ ñ 	1Ø× Ñ  Ô0÷	1ð 	1ð	1ñ Ó€EØ	‡O�O�OÔ$Ø	�‰‹ñ 'Ø�‰�ZÔ Ø�‰˜Ô&÷'ñ #Ó$€MØ×ÑÐ3°L°>ÀÐDÔEØ	×	Ñ	Ó	ñ 0Ø×Ñ˜UÔ#Ø×Ñ Ô/÷0ð ×ÑÓ  -×"8Ñ"8Ó":Ð:Ð:øô? ò ö	ðú÷	1ñ 	1ú÷'ð 'ú÷0ð 0ús5   “E Á7E1Â;#E>Ä#F
ÅE.Å-E.Å1E;	Å>FÆ
Fc                 óh   — t         j                  j                  j                  j	                  d«      S )Nr¨   ©r4  rn  Ú	_internalÚ	log_stateÚis_artifact_enabledrŠ  r½   r»   Úis_recompiles_enabledrå  Ì  s#   € Ü�>‰>×#Ñ#×-Ñ-×AÑAÀ,ÓOÐOr½   c                 óh   — t         j                  j                  j                  j	                  d«      S )Nr©   rá  rŠ  r½   r»   Úis_recompiles_verbose_enabledrç  Ð  s$   € Ü�>‰>×#Ñ#×-Ñ-×AÑAÐBVÓWÐWr½   c                óP   ‡— | D �cg c]  }t        |«      ‘Œ c}Šdˆfd„}|S c c}w )Nc                 ó�   •— t        «       } t        | «      t        ‰«      k7  ryt        ‰| «      D ]  \  }}|t        |«      usŒ y yr7  )r�   rµ   r  r  )Ú	cur_stackrã  Úmoder;  s      €r»   Úcheck_torch_function_mode_stackzMmake_torch_function_mode_stack_guard.<locals>.check_torch_function_mode_stackÚ  sL   ø€ Ü1Ó3ˆ	äˆy‹>œS ›ZÒ'Øä˜E 9Ó-ò 	‰HˆB�Øœ˜d›Ò#Ùð	ð r½   ©rÍ   rÐ   ru  )Úinitial_stackrt  rì  r;  s      @r»   r¶  r¶  Õ  s+   ø€ ð ,Ö,˜ŒT�!�WÒ,€Eõ
ð +Ð*ùò -s   †#ÚScopec                óŽ  — | j                   €t        d«      ‚t        | j                   «      }t        j                  t
        «      }| j                  D ]1  }||d<   t        t        |||«      «      }||   j                  |«       Œ3 |D �cg c]  }t        ||   «      dkD  sŒ||   › ‘Œ }}dj                  |«      }d|› �gS c c}w )Nú+guard_manager.global_scope must not be NoneÚ__compile_source__rQ   rY  zDuplicate tensors found: )rá   r   r#  rÁ  rp  rã  ræ   rh  Úevalr|  rµ   r@  )	r\  rœ  rá   Úids_to_sourceÚtensor_sourceÚ	tensor_idr
  Úduplicate_tensorsr�  s	            r»   Ú1recompilation_reason_for_no_tensor_aliasing_guardrø  ì  sâ   € ð ×!Ñ!Ð)ÜÐJÓKÐKÜ˜×2Ñ2Ó3€LÜ×+Ñ+¬DÓ1€MØ&×AÑAò 7ˆØ-:ˆÐ)Ñ*Ü”t˜M¨<¸Ó?Ó@ˆ	Ø�iÑ ×'Ñ'¨Õ6ð7ð ,9öØ$'¼CÀÈcÑ@RÓ<SÐVWÓ<Wˆ=˜ÑÐ
ÑðÐð ð �Y‰YÐ(Ó)€FØ'¨ xÐ0Ð1Ð1ùòs   Â
CÂ!Cc                ó4   — ddl }d}|j                  |d| «      S )z®
    Replace occurrences of L[...] with just the inner content.
    Handles both single and double quotes.

    This is to generate user friendly recompilation messages.
    r   NzL\[\s*['\"](.*?)['\"]\s*\]z\1)ÚreÚsub)r`  rú  Úpatterns      r»   r:  r:     s   € ó à+€GØ�6‰6�'˜5 !Ó$Ð$r½   c           	     óR  — | �t        | «      dk(  ryg }| D ]  }|j                  }|j                  }|j                  }|j                  r|j                  j                  «       nd}|j                  d|› d|› d|› �«       |sŒl|j                  d|› �«       Œ� dj                  |«      S )zÅ
    Format the user stack trace for display in guard failure messages.

    Returns a formatted string representation of the stack trace,
    or an empty string if no user stack is available.
    r   rl  z  File "z", line z, in ú    rÎ  )rµ   rÛ  rw  rë  rÉ   Ústripr|  r@  )rÙ  ÚlinesÚframerÛ  rw  rë  Úsource_lines          r»   Úformat_user_stack_tracer    s§   € ð ÐœS ›_°Ò1Øà€EØò /ˆØ—>‘>ˆØ—‘ˆØ�z‰zˆØ,1¯JªJ�e—j‘j×&Ñ&Ô(¸BˆØ�‰�x ˜z¨°&°¸¸t¸fÐEÔFÚØ�L‰L˜4 ˜}Ð-Õ.ð/ð �9‰9�UÓÐr½   c                óV  — | €yddl m} t        | |«      rMd| j                  ›d| j                  ›�}| j
                  r|d| j
                  ›�z  }d|› d	t        | «      d
›d�S | }d}t        |t        j                  «      rd}|j                  }t        |dd«      }t        |dd«      }|r
|r|› d|› �}n3|r|}n.t        |d«      r|j                  }nt        |«      j                  }t        |dd«      }|�d|j                  › d|j                  › �nd}	|› |› |	› dt        | «      d
›d�S )zKReturn a human-readable string describing a backend callable for debugging.NrÑ   r   )Ú_TorchCompileWrapperz	compiler=z
, dynamic=z	, kwargs=z_TorchCompileWrapper(z) (id=z#xrZ  rl  zfunctools.partial wrapping rÔ   rÓ   r”  rÒ   r­   z defined at ú:z (id=)r4  r  rÿ   Úcompiler_nameÚdynamicrŸ  rh  rƒ  r„  rï  r"  rn  rÒ   r  Úco_filenameÚco_firstlineno)
rV  r  ÚdetailsÚactualrÅ   r  r9  rë  r·   Úlocations
             r»   Údescribe_backendr  %  sV  € à€Øõ +ä�'Ð/Ô0Ø˜g×3Ñ3Ð6°jÀÇÁÐ@SÐTˆØ�>Š>Ø˜ 7§>¡>Ð"4Ð5Ñ5ˆGØ& w i¨v´b¸³kÀ"Ð5EÀQÐGÐGà€FØ€FÜ�&œ)×+Ñ+Ô,Ø.ˆØ—‘ˆä�v˜~¨tÓ4€HÜ�V˜\¨4Ó0€Fá‘FØ�˜˜8˜*Ð%‰Ù	Ø‰Ü	�˜Ô	$Ø�‰‰ä�F‹|×$Ñ$ˆä�6˜: tÓ,€Dð Ðð �t×'Ñ'Ð(¨¨$×*=Ñ*=Ð)>Ñ?àð ð ˆX�d�V˜H˜: U¬2¨g«;°rÐ*:¸!Ð<Ð<r½   c                ó~  — | j                   €t        d«      ‚| j                  €t        d«      ‚|| j                   d   dœ}|j                  | j                  «       g }d}| j                  r| j                  j
                  }d}g }| j                  |«      }	d}
|	j                  sJ|	j                  }t        |«      dk(  rd	|d
   v rd}n|}g }|	j                  r_t        |	j                  «      }
nI||k7  r1t        |«      }t        |«      }d|› d|› d�}|j                  |«       nd}|j                  |«       |rt        | |«      }n…|D ]€  }t        | j                   «      }||d<   t!        «       5  	 t#        |||«      }	 ddd«       t)        t*        «      r|s|}t)        |t,        «      sŒd|j                  |«       t'        «       rŒ€ n t        |«      dk(  r|› d|d
   › �}n|› d�dj/                  |«      z   }|
r|d|
› �z  }t1        |«      S # t$        $ r t'        «       r
Y ddd«       Œå‚ w xY w# 1 sw Y   Œ´xY w)z­
    Return the reason why `guard_manager` failed.
    Updates `guard_failures` with the generated reason.
    Only the first failed check of guard_manager is reported.
    Nrñ  z+guard_manager.closure_vars must not be Noner�  r�  Frl  rQ   zDuplicate tensor foundr   Tz[BACKEND_MATCH failure: torch.compile detected different backend callables. Cached backend: z. New backend: zÕ. If this is unexpected, wrap your backend in functools.partial (or reuse the same cached backend) to avoid creating a new backend function each time. More details: https://github.com/pytorch/pytorch/issues/168373z»Unexpected recompilation: runtime guards failed even though they passed during recompilation-reason analysis. Please open an issue with a minimal repro: https://github.com/pytorch/pytorchrò  rR  z; z
User stack trace:
)rá   r   rÝ   rÞ  rã   rV  rv  Úresultrà   rµ   rÙ  r  r  r|  rø  r#  rO   ró  Ú	Exceptionrç  rÿ   rÐ   rÎ   r@  r:  )r\  Úf_localsÚ
compile_idrV  rœ  rv  Úcache_entry_backendÚno_tensor_aliasing_check_failedrà   Úguard_debug_infoÚuser_stack_strÚcached_descÚnew_descr�  rV  rá   Úfail_reasonÚ
reason_strs                     r»   rg  rg  P  s‘  € ð ×!Ñ!Ð)ÜÐJÓKÐKØ×!Ñ!Ð)ÜÐJÓKÐKØ ×!;Ñ!;¸CÑ!@ÑA€EØ	‡L�L�×+Ñ+Ô,Ø€GàÐØ× Ò Ø+×7Ñ7×?Ñ?Ðà&+Ð#à$&ÐØ$×2Ñ2°8Ó<ÐØ€Nð
 ×"Ò"Ø-×@Ñ@Ðô Ð!Ó" aÒ'Ø'Ð+=¸aÑ+@Ñ@Ø26Ñ/à,�Ø%'Ð"ð ×&Ò&Ü4Ð5E×5PÑ5PÓQ‰NØ	 Ò	'ä&Ð':Ó;ˆÜ# GÓ,ˆð Ø +˜}ð -Ø%˜Jð 'NðNð 	ð 	�‰�vÕð2ð 	ð 	�‰�vÔá&ÜCØ˜5ó
‰ð 'ò 	ˆDÜ × :Ñ :Ó;ˆLØ15ˆLÐ-Ñ.Ü/Ó1ñ ðÜ"& t¨\¸5Ó"A‘K÷ô ˜+¤tÔ,±[Ø"�Ü˜+¤sÕ+Ø—‘˜{Ô+Ü4Õ6Ùð'	ô. ˆ7ƒ|�qÒØ"�| 2 g¨a¡j \Ð2‰
à"�| 2Ð&¨¯©°7Ó);Ñ;ˆ
ÙØÐ-¨nÐ-=Ð>Ñ>ˆ
Ü˜ZÓ(Ð(øô/ !ò Ü4Ô6Ø ÷ð ð ð	ú÷ð ús*   Å0H3Å2HÈH0È$H3È.H0È0H3È3H<	c                óZ  — t        | t        «      r|› d| j                  › �S t        | |||«      }|r|S t        t
        |      j                  |«       	 | j                  �&| j                  t        |xs dt
        |   «      «       |S # t        $ r t        j                  d«       Y |S w xY w)NrR  zunknown reasonzVFailure in guard_fail_fn callback - raising here will cause a NULL Error on guard eval)rÿ   rŒ  rŽ  rg  r‘   r—   r|  râ   r‡   r  rU  rv  )r\  r·   r  r  rV  Úskip_loggingr  s          r»   Úget_guard_fail_reasonr  Á  sÁ   € ô �-Ô!;Ô<Ø�˜R × AÑ AÐBÐCÐCÜ-Ø�x ¨Wó€Jñ ØÐÜ”= Ñ&Ñ'×.Ñ.¨zÔ:ð
Ø×&Ñ&Ð2Ø×'Ñ'Ü˜*Ò8Ð(8¼-ÈÑ:MÓNôð Ðøô ò 
Ü�‰Ødõ	
ð Ðð
ús   Á2B ÂB*Â)B*c                óR  ‡— g Š| D ]N  }t        |j                  |j                  |j                  |j                  ||«      }|sŒ>‰j                  |«       ŒP |j                  }|r‰S t        «       xs
 t        «       }|st        j                  ròt        «       r"dj                  d„ t        ‰«      D «       «      }n%t        j                  dj                  ‰«      d«      }d|› �}	d|j                  › d|j                   › d|j"                  › dt        j                  |	d	«      › �}
|r5t        «       rt$        j'                  |
«       nt(        j'                  |
«       t        j                  rt+        j,                  |
«      ‚t.        j0                  j3                  d
d„ ˆfd„¬«       ‰S )zÔ
    Return the list of guard failure reasons using cache entries.
    Logs the recompilation reason if `recompiles` logging is enabled.
    Raises a RecompileError if `config.error_on_recompile` is enabled.
    z

c              3  ó\   K  — | ]$  \  }}d |› d�t        j                  |d«      z   –— Œ& y­w)zguard z failures:
ú- N)rù  rc  )r  rà  r�  s      r»   r  z:get_and_maybe_log_recompilation_reasons.<locals>.<genexpr>  s5   è ø€ ò #á�A�vð ˜˜˜<Ð(¬8¯?©?¸6À4Ó+HÕHñ#ùs   ‚*,rÎ  r!  z-triggered by the following guard failure(s):
zRecompiling function z in r  rþ  Úartifactc                 ó   — dddœS )NÚrecompile_reasonsrÌ  )rë  ÚencodingrŠ  rŠ  r½   r»   r¬  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>  s   € Ø'Øñ
€ r½   c                 ó.   •— t        ‰ «      dk(  r‰ d   S ‰ S )NrQ   r   rh  )rv  s   €r»   r¬  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>  s   ø€ ¬¨W«¸Ò):˜7 1™:€ À€ r½   )Úmetadata_fnr^  )r  r\  r·   r  r  r|  r˜  rå  rç  rR   Úerror_on_recompiler@  rÂ  rù  rc  r;  r	  r
  Úrecompiles_verbose_logrC  Úrecompiles_logrT   ÚRecompileErrorr4  rn  ro  )rq  r  rV  r  rã   r�  r·   Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessagerv  s              @r»   Ú'get_and_maybe_log_recompilation_reasonsr0  à  s�  ø€ ð €GØ$ò 
#ˆÜ&Ø×%Ñ%Ø×ÑØ�N‰NØ×"Ñ"ØØó
ˆò Ø�N‰N˜6Õ"ð
#ð �<‰<€DáØˆä-Ó/ÒRÔ3PÓ3RÐáœF×5Ò5Ü(Ô*Ø—{‘{ñ #ä!*¨7Ó!3ô#ó ‰Hô
  —‘ t§y¡y°Ó'9¸4Ó@ˆHà<¸X¸JÐGð 	ð $ D§L¡L >°°d×6FÑ6FÐ5GÀqÈ×I\ÑI\ÐH]Ð]_Ü�‰Ð4°fÓ=Ð>ð@ð 	ñ Ü,Ô.Ü&×,Ñ,¨WÕ5ä×$Ñ$ WÔ-Ü×$Ò$Ü×$Ñ$ WÓ-Ð-ä	‡N�N×#Ñ#Øñ
ó Hð $ô ð €Nr½   c                óÞ   — t        «       }| D ]+  }|j                  |j                  j                  «       «       Œ- | D ]-  }||j                  _        |j                  j                  «        Œ/ |S rÚ   )rM   rÞ  r\  r	  ré   r  )rq  Úacc_diff_guard_sourcesrã   s      r»   r`  r`  $  sv   € ô /9«lÐØ$ò 
ˆØ×%Ñ%Ø×%Ñ%×@Ñ@ÓBõ	
ð
ð %ò @ˆØ7Mˆ×!Ñ!Ô4Ø×!Ñ!×=Ñ=Õ?ð@ð
 "Ð!r½   c                ó¸  — t        d|j                  › d|j                  › d|j                  › �«       t        ddj	                  | j
                  «      z   dz   «       t        ddj	                  | j                  «      «       t        | «       d|i| j                  ¥}| j                  D ]  }	 t        || j                  |«       Œ y #  t        d|› �«       Y Œ0xY w)	NzERROR RUNNING GUARDS ú r  zlambda rY  z and
  rŽ  zMalformed guard:
)
Úprintr;  r	  r
  r@  rÞ   rß   rÝ   ró  rá   )r\  r·   r  r¶   Úlastr¶  rS  s          r»   Úguard_error_hookr7  :  sÐ   € ô 
Ø
 §¡˜~¨Q¨t×/?Ñ/?Ð.@ÀÀ$×BUÑBUÐAVÐWôô 
ˆ)�d—i‘i × 2Ñ 2Ó3Ñ
3°cÑ
9Ô:Ü	ˆ#ˆz�‰˜}×7Ñ7Ó8Ô9ä	ˆ-Ôà˜Ð? M×$>Ñ$>Ð?€KØ×)Ñ)ò 0ˆð	0Ü�˜×2Ñ2°KÕ@ñ0øð	0ÜÐ& u gÐ.Ö/ús   Â-CÃCc              #  ób   K  — t        «       }| D ]  }||vsŒ|–— |j                  |«       Œ y ­wrÚ   )rç   rõ   )ÚseqrÄ  rt  s      r»   Úuniquer:  T  s3   è ø€ Ü‹5€DØò ˆØ�DŠ=ØŠGØ�H‰H�Q�Kñùs   ‚/—/c                ó  — |rŠ|| k7  r…t        |«      }t        | «      }t        |«      st        | «      r/t        j                  | j                  › d|j                  › d�«      ‚||k(  r%t        j                  t        j                  |¬«      S y )Nz is aliasing zC. This is not supported. Please do a clone for corresponding input.)rŒ  )	r/   r.   rT   ÚUnsafeScriptObjectErrorrë  rƒ  r„  r‹  r�  )Ú
obj_sourceÚdupe_sourceÚser_source_is_localÚsource_is_locals       r»   Úmake_dupe_guardrA  \  s“   € ñ �{ jÒ0Ü2°;Ó?ÐÜ.¨zÓ:ˆÜ/Øô
ä1°*Ô=Ü×-Ñ-Ø—?‘?Ð# =°×1AÑ1AÐ0Bð C>ð ?óð ð  /Ò1ô ×$Ñ$¤\×%AÑ%AÈKÔXÐXØr½   )Úskipc                ó¾  — ddl m} |j                  «       j                  }|j                  ryt
        j                  t        j                  «      xs# t        j                  t        j                  «      }|j                  j                  }|D ]M  }t        |t        «      st        dt        |«      › �«      ‚t!        |j"                  «      rŒ@ |||| dz   ¬«       ŒO y)z«
    Add dynamo guards to the current tracing context.

    Args:
        guards: guard(s) to add
        skip: number of stack frames to ignore for debug stack trace
    r   )ÚTracingContextNzExpected Guard, got rQ   )Úcollect_debug_stackrB  )Útorch._guardsrD  r°  Úguards_contextÚskip_installrB  r¦  r§  r¨  r¥  r³  rõ   rÿ   r:   r   r  r1   rå  )rB  r§   rD  rG  rE  rõ   rS  s          r»   Úinstall_guardrI  €  s¿   € õ -à#×'Ñ'Ó)×8Ñ8€NØ×"Ò"Øä$×1Ñ1Ü�‰óò 8ä	×	(Ñ	(¬¯©Ó	7ð ð ×
&Ñ
&×
*Ñ
*€CØò KˆÜ˜%¤Ô'Ü Ð#7¼¸U»°}Ð!EÓFÐFÜ$ U×%=Ñ%=Ô>ØÙˆEÐ':ÀÈÁÖJñKr½   rt  z"dict[str, GuardCheckSpec | object]ÚGUARD_VALUE_DISPATCHr’  r@  z9GuardBuilder methods missing guard_check_spec decorator: rY  z[. Use @register_guard_check_spec, @skip_guard_check_spec, or @unsupported_guard_check_spec.)r·   rH  r¸   rÎ   rÍ   r*  )r-  r   rÍ   r0  )rÍ   zset[str])rÍ   rI  )rö   r\  rÍ   rÎ   )r_  z	type[Any]rÍ   rÎ   )r  rÎ   rS  r¹  rÍ   rÎ   rÚ   )rß   zstr | list[str]rS  r¹  ræ  r‡  rÍ   rƒ  )r^  úSource | NonerÍ   r‡  )rô  r   rÍ   z
int | None)r÷  zSequence[Any]rÍ   úlist[int | None])rÿ  r0  rë  rÎ   r   rL  r  rL  r  r  r  r¡   rÍ   rÎ   )r	  rL  r
  r   rÍ   r*  )r^  r   r¶   r   rÍ   rÎ   )r  r   rÍ   r
   )rÿ  r   rÍ   rÐ   )r^  z-DictGetItemSource | DictSubclassGetItemSourcer/  r   r0  r   r'  r   r(  r"  rÍ   r   )rS  r:   rÍ   rÐ   )r·   rH  rÍ   rƒ  )r_  r0  rÍ   útuple[Any, ...])rS  r   rÿ  r   rÍ   rM  )rÿ  r   rN  rM  rÍ   rÐ   )rS  r   rÿ  r   rÍ   r   )rÿ  r   rN  r   rÍ   rÐ   )rÿ  r   rÍ   r   )rÍ   ztuple[type, ...])rS  r:   r=  r‹  rÍ   rˆ   )r²  r“  r=  r‹  rÍ   r2  )rß   rƒ  rÝ  rÎ   rÍ   ztuple[str, str]rí  )rî  z'list[torch.overrides.TorchFunctionMode]rÍ   zCallable[[], bool])r\  rØ   rœ  rï  rÍ   rƒ  )r`  rÎ   rÍ   rÎ   )rÙ  ztraceback.StackSummary | NonerÍ   rÎ   )rV  zCallable[..., object] | NonerÍ   rÎ   )
r\  rØ   r  rI  r  zCompileId | NonerV  zCallable | NonerÍ   rÎ   rÏ   )r\  rØ   r·   rH  r  rI  r  r8   rV  r›   r  rÐ   rÍ   rÎ   )
rq  úlist[CacheEntry]r  r„   rV  r›   r  rÐ   rÍ   rƒ  )rq  rN  rÍ   r…  )r\  r‰   r·   rH  r  rI  r¶   r*  r6  rÐ   rÍ   rÑ   )r9  zSequence[T]rÍ   zGenerator[T, None, None])r=  r>   r>  rK  rÍ   zfunctools.partial[Any] | None)r§   r:   rB  r*  rÍ   rÑ   (G  r‰  Ú
__future__r   rÏ  rŸ  rÁ  r„  r=  rƒ  rÇ  r›  rA  r×  r§  rÄ  ÚpicklerË  rù  rY  r;  rÍ  r<  Ú
contextlibr   r¡  r   r   Útypingr   r	   r
   r   Útyping_extensionsr   r   r   r   r4  Útorch.overridesÚtorch.utils._deviceÚtorch._C._dynamo.eval_framer   Útorch._C._dynamo.guardsr   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*   Útorch._dynamo.sourcer+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Útorch._dynamo.utilsr5   r6   rF  r7   r8   r9   r:   r;   r<   r=   r>   r?   rÚ  rA   Ú"torch._library.fake_class_registryrB   Útorch._library.opaque_objectrC   rD   Útorch._loggingrE   Útorch._utils_internalrF   Ú%torch.fx.experimental.symbolic_shapesrG   rH   rI   rJ   rK   Útorch.utilsrL   r  Útorch.utils._ordered_setrM   Útorch.utils._tracebackrN   rO   Útorch.utils.weakrP   rl  rR   rS   rT   Ú
eval_framerU   r^  rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rÉ  rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   Úcollections.abcr›   rœ   r¯   r  r{  r  ÚnumpyrŽ  ÚModuleNotFoundErrorr�   rž   rŸ   r  r    Útorch._Cr¡   rç  r¢   r£   rþ  r¥   r¦   Ú	getLoggerrÒ   rU  rn  ÚgetArtifactLoggerrB  r*  r)  r¥  rA  r¼   r¿   rØ   r’  ÚcacherŸ  r¡  rÌ  rÒ  rú  r—  rS  rÖ  rà  rè  rä  rõ  rø  r  r  r  r  r  r…  r  r5  r:  r<  r>  r"  r´   rD  rø  rz  rJ  rQ  rU  rX  r]  ra  rd  ri  rk  rp  rx  r|  r~  r‰  r‹  rP  rŠ  rŒ  ró  r“  r–  r¥  ÚPicklerr§  r?  rK  rJ  rA  rå  rç  r¶  r#  rÎ   rï  rø  r:  r  r  rg  r  r0  r`  r7  r:  rA  rI  Údirr"  rv  rJ  Úisupperr  r+  Ú_methodrµ   rã  Ú	signatureÚ
parametersÚ_paramsrn  ÚMISSING_GUARD_SPECSr!  r@  )rë  rv  r€  rn  rq  s   00000r»   ú<module>rs     s  ðòõ" #ã 
Û Û Û Û Û Û Û Û 	Û Û Û Û Û 
Û Û Û Û Û Ý %Ý Ý  ß ;Ó ;ß CÑ CÝ !ã Û Û Ý >÷÷ ÷ ÷ ÷ ÷ ÷ ÷8÷ ÷ ÷ H÷
÷ 
õ 
õ 1Ý ?ß RÝ %Ý 1÷õ õ *Ý /ß OÝ *ç (Ñ (Ý ,÷.÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .÷ .õ .÷^÷ ñ ÷÷ ÷ ÷ õ ñ* Ý(ð HLÐ ÐDÓ KÙ˜O˜IŸOšOÓ-Ó.Ð ðÛñ
 ß=Ñ=åå'ßTÝ4áˆCƒL€Ø€g×Ò˜Ó!€Ø�^Š^×-Ò-¨h¸ÓA€
Ø—’×1Ò1°(¸LÓI€ØŸš×9Ò9ØÐ"óÐ ð —^’^×5Ò5°hÐ@PÓQÐ ð"Ð óô,˜~ô ,÷Qñ QóhTð ‡‚ò.ó ð.ð +/€Ð'Ó .óó@/ð —h’h×&Ò&×:Ò:Ð óó%ð6 "&ðØðàðð ðð ó	ó<ó,'óKðØðà
ðð ðð ð	ð
 ðð "ðð 	óó*3ó1óó.ð €×Ò˜dÔ#÷ð ó $ðð+Ø9ð+à(ð+ð ð+ð ð	+ð
 )ð+ð ó+ô\
Gð ×Ò÷ð ó ñô
�t—y’yõ ð
 ‡‚ò8ó ñ8ô�Zõ ò6 ‹X�
ôEô
-ô;ôô
;ô
1ô3ôô!ô?óó÷Xò Xó$ôx'
Ð#õ x'
÷XPR8ò R8ôjô$Ð!4õ $ð ×Ò÷$ð $ó ñ$ð ×Ò÷,ð ,ó ñ,÷
ò ð  ‡‚ò
ó ñ
ôr˜Ÿšõ rôjð:)Øð)àð)ð ô)÷bY
ò Y
ôx);ôXPôXð
+Ø:ð+àô+ñ( 	�g™t¡C© KÑ0Ó1�ð2Ø&ð2Ø/4ð2àô2ô(
%ðØ-ðàôô0(=ðVn)Ø&ðn)àðn)ð !ðn)ð
 ðn)ð 	ôn)ðp ðØ&ðà
ðð  ðð ð	ð ðð ðð 	ôðH ðAØ#ðAàðAð ð	Að
 ðAð ôAðH"Ø#ð"àô"ð,0Øð0à
ð0ð  ð0ð ð	0ð
 ð0ð 
ô0ñ. Ñ%Ô &ôð!Øð!Ø%2ð!à"ô!ðH /0ö Kò> ‘LÓ!÷<àÚš7¡<°Ó6Ð8JÈDÓQÐQ‰Øðð 	�'�Mó<Ñ Ð8ó ò ‘\Ó"÷	ð 	àØˆQ�x×ÒÔØ×Ò˜SÔ!ÚšG¡L°%¸Ó>Ð>‘Ô?Ú’tÐ-˜G×-Ò-­gÓ6×AÒAÓBÐB‰GÓCÀqÒHÝ�‰
�gÒÚ•GÐ/Ô0ò 
ô	Ñ ò Ú
Ø
CØ�9Š9Ñ(Ó)Ð
*ð +Dð	Eóð ð øðEg ò Ø	ƒBðüó\f<ùô	s   È[ ×'[ØB[ Û[Û[