§
    ŠŠtjœš ã                  ó‚  — 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m	Z	 d dlm
Z
mZ d dlmZ d dlmZmZmZmZmZmZmZmZ d dlmZmZmZmZ d dl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( d d
l)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 er*d dl5m6Z6m7Z7 d dlm8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z?m@Z@ d dlAmBZB dmd„ZCeDZE eddejF        ¦  «        ZG ed¦  «        ZH edejF        ¬¦  «        ZI ed ejF        d!¬"¦  «        ZJdnd%„ZKdod'„ZLdpd(„ZMdqd,„ZN ejO        ¦   «         ZPd-eP_Q        edrd/„¦   «         ZRd-d-d0œdsd8„ZSdtd:„ZTdud=„ZUdtd>„ZVdtd?„ZWdvdC„ZXdwdF„ZYdxdH„ZZ edIe[¦  «        Z\ edJe[¦  «        Z] edKe[¦  «        Z^ e^d ¦  «        a_ G dL„ dM¦  «        Z` ed!¬N¦  «         G dO„ dP¦  «        ¦   «         Za ed!¬N¦  «         G dQ„ dReeI         ¦  «        ¦   «         Zb ed!¬N¦  «         G dS„ dTebdU         ¦  «        ¦   «         Zc ed!¬N¦  «         G dV„ dWebeI         eeI         ¦  «        ¦   «         Zd G dX„ dYeeeJ         ¦  «        Ze G dZ„ d[ed-¬\¦  «        Zf G d]„ d^eeeJ         ¦  «        Zg ed!¬N¦  «         G d_„ d`eeI         ¦  «        ¦   «         Zhdydd„Zidzde„Zjd{dj„Zk G dk„ dleeI         ¦  «        Zld dlmmnZo dS )|é    )ÚannotationsN)Úabstractmethod)ÚAbstractContextManagerÚcontextmanager)Ú	dataclass)ÚAnyÚClassVarÚGenericÚNewTypeÚProtocolÚTYPE_CHECKINGÚ	TypeGuardÚTypeVar)ÚoverrideÚ	TypedDictÚTypeIsÚUnpack)ÚCreationMeta)Ú_add_batch_dimÚ_unwrap_functional_tensorÚ_wrap_functional_tensorÚget_unwrappedÚis_batchedtensorÚis_functorch_wrapped_tensorÚis_gradtrackingtensorÚis_legacy_batchedtensorÚmaybe_get_bdimÚmaybe_get_levelÚpeek_interpreter_stack)Úenable_python_dispatcher)Útrace_structured)Ú
OpaqueBase)Úno_dispatch)Úis_traceable_wrapper_subclass)ÚWeakIdKeyDictionary)ÚCallableÚ	Generator)ÚCInterpreter)ÚSource)Ú
FakeTensorÚFakeTensorMode)ÚShapeEnvÚSymbolicContext)ÚIntLikeTypeÚtÚobjectÚreturnúTypeIs[FakeTensor]c                ó.   — ddl m} t          | |¦  «        S )Nr   )r*   )Útorch._subclasses.fake_tensorr*   Ú
isinstance)r/   r*   s     úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_subclasses/meta_utils.pyÚ_is_fake_tensorr7   =   s$   € Ø8Ð8Ð8Ð8Ð8Ð8å�a˜Ñ$Ô$Ð$ó    Ú_TensorLikeTúMetaTensorDesc[Any]Ú_TÚ_TensorT)ÚboundÚ_TensorT_covT)r=   Ú	covariantú"MetaTensorDesc[Any] | torch.TensorÚboolc                ó4   — 	 | j         S # t          $ r Y dS w xY w)NF)Úis_leafÚRuntimeError©r/   s    r6   Úsafe_is_leafrF   J   s1   € ðØŒyÐøÝð ð ð àˆuˆuðøøøs   ‚	 ‰
–ú_TensorLikeT | Nonec                óª   — t           j                             t           j        j        j        ¦  «        5  | j        cd d d ¦  «         S # 1 swxY w Y   d S ©N)ÚtorchÚ_loggingÚhide_warningsÚ	_internalÚsafe_grad_filterÚgradrE   s    r6   Ú	safe_gradrP   R   s‰   € Ý	Œ×	%Ò	%¥e¤nÔ&>Ô&OÑ	PÔ	Pð ð àŒvðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   ´AÁAÁAc                óF   — t          | ¦  «        }|€t          d¦  «        ‚|S )Nz3Expected tensor to have a gradient but grad is None)rP   ÚAssertionError)r/   rO   s     r6   Ú_expect_safe_gradrS   X   s&   € Ý�Q‰<Œ<€DØ€|ÝÐRÑSÔSÐSØ€Kr8   ÚaÚbÚNonec                ó:   — | |k    rt          | › d|› �¦  «        ‚d S )Nz != )rR   )rT   rU   s     r6   Ú	assert_eqrX   _   s*   € ØˆA‚v€vÝ ˜]˜] q˜]˜]Ñ+Ô+Ð+ð €vr8   FúGenerator[None, None, None]c               #  ó’   K  — t          t          dd¦  «        } dt          _        	 d V — | t          _        d S # | t          _        w xY w)NÚdisable_inference_modeFT)ÚgetattrÚtlsr[   )Úpriors    r6   Ú$disable_inference_mode_for_fake_propr_   k   sP   è è € å•CÐ1°5Ñ9Ô9€EØ!%…CÔð+Øˆˆˆà%*�Ô"Ð"Ð"ø U�Ô"Ð*Ð*Ð*Ð*s	   ¦8 ¸A©Úskip_symbolicÚ	skip_leafrX   ú Callable[[object, object], None]Úm1Úm2útorch.Tensorra   rb   c               ó®   ‡ ‡‡‡— t          |t          j        ¦  «        r!t          ¦   «                              |¦  «        n|}dˆ ˆˆˆfd„Š ‰||¦  «        S )	Nrd   r:   re   rf   r1   rV   c                óò  •—  ‰| j         |j         ¦  «         ‰s ‰| j        |j        ¦  «          ‰| j        |j        ¦  «         ‰s ‰| j        |j        ¦  «          ‰| j        |j        ¦  «         t          t          dd¦  «        s$ ‰| j        |                     ¦   «         ¦  «         n ‰| j        d¦  «          ‰| j        |                     ¦   «         ¦  «          ‰| j	        | 	                    ¦   «         ¦  «          ‰| j
        d ut          |¦  «        d u¦  «         | j
        � ‰| j
        t          |¦  «        ¦  «         | j        r� ‰| j        |j        ¦  «          ‰| j        |                     ¦   «         ¦  «          ‰| j        |                     ¦   «         ¦  «          ‰| j        |                     ¦   «         ¦  «         d S t#          | ¦  «        r^ ‰| j        |j        ¦  «          ‰| j        |                     ¦   «         ¦  «          ‰| j        |                     ¦   «         ¦  «         d S ‰sF ‰| j        |                     ¦   «         ¦  «          ‰| j        |                     ¦   «         ¦  «          ‰| j        |                     ¦   «         ¦  «         | j        rD| j        €t/          d¦  «        ‚|j        €t/          d¦  «        ‚ ‰| j        |j        ¦  «         d S d S )Nr[   Fz*m1.base must not be None for a view tensorz+m2._base must not be None for a view tensor)ÚdtypeÚshapeÚrequires_gradrC   Ú	is_sparser\   r]   Úis_inferenceÚis_conjÚis_negrO   rP   rS   ÚlayoutÚ	dense_dimÚ
sparse_dimÚis_coalescedÚis_sparse_compressedÚstrideÚstorage_offsetÚis_viewÚ_is_viewÚbaserR   Ú_base)rd   re   rX   Úgorb   ra   s     €€€€r6   r{   zassert_metadata_eq.<locals>.goƒ   sñ  ø€ Øˆ	�"”(˜BœHÑ%Ô%Ð%Øð 	*ØˆI�b”h ¤Ñ)Ô)Ð)Øˆ	�"Ô" BÔ$4Ñ5Ô5Ð5Øð 	.ØˆI�b”j "¤*Ñ-Ô-Ð-ð 	ˆ	�"”, ¤Ñ-Ô-Ð-Ý•sÐ4°eÑ<Ô<ð 	.ØˆI�b”o r§¢Ñ'8Ô'8Ñ9Ô9Ð9Ð9àˆI�b”o uÑ-Ô-Ð-Øˆ	�"”*˜bŸjšj™lœlÑ+Ô+Ð+Øˆ	�"”)˜RŸYšY™[œ[Ñ)Ô)Ð)Øˆ	�"”' Ð%¥y°¡}¤}¸DÐ'@ÑAÔAÐAØŒ7ÐØˆBˆrŒwÕ)¨"Ñ-Ô-Ñ.Ô.Ð.ð Œ<ð 	&ØˆI�b”i ¤Ñ+Ô+Ð+ØˆI�b”l B§L¢L¡N¤NÑ3Ô3Ð3ØˆI�b”m R§]¢]¡_¤_Ñ5Ô5Ð5ØˆI�b”o r§¢Ñ'8Ô'8Ñ9Ô9Ð9Ð9Ð9Ý! "Ñ%Ô%ð 	&ØˆI�b”i ¤Ñ+Ô+Ð+ØˆI�b”l B§L¢L¡N¤NÑ3Ô3Ð3ØˆI�b”m R§]¢]¡_¤_Ñ5Ô5Ð5Ð5Ð5à ð BØ�	˜"œ) R§Y¢Y¡[¤[Ñ1Ô1Ð1Ø�	˜"Ô+¨R×->Ò->Ñ-@Ô-@ÑAÔAÐAØˆI�b”j "§+¢+¡-¤-Ñ0Ô0Ð0ØŒzð &Ø”7�?Ý(Ð)UÑVÔVÐVØ”8Ð#Ý(Ð)VÑWÔWÐWØ��2”7˜BœHÑ%Ô%Ð%Ð%Ð%ð&ð &r8   )rd   r:   re   rf   r1   rV   )r5   rJ   ÚTensorÚMetaTensorDescriberÚdescribe_tensor)rX   rd   re   ra   rb   r{   s   `  ``@r6   Úassert_metadata_eqr   u   s~   øøøø€ õ �b�%œ,Ñ'Ô'ð	ÕÑÔ×-Ò-¨bÑ1Ô1Ð1àð ð(&ð (&ð (&ð (&ð (&ð (&ð (&ð (&ð (&ðZ ˆ2ˆb�"‰:Œ:Ðr8   úTypeGuard[torch.Tensor]c                ó\   — t          | t          j        ¦  «        o| j        t          j        u S rI   )r5   rJ   r|   rp   Ú
sparse_coorE   s    r6   Úis_sparse_coorƒ   ´   s#   € Ý�a�œÑ&Ô&ÐG¨1¬8µuÔ7GÐ+GÐGr8   rp   útorch.layoutc                ób   — | t           j        t           j        t           j        t           j        hv S rI   )rJ   Ú
sparse_csrÚ
sparse_cscÚ
sparse_bsrÚ
sparse_bsc)rp   s    r6   Úis_sparse_compressed_layoutrŠ   ¸   s,   € ØÝÔÝÔÝÔÝÔð	ð ð r8   c                ó^   — t          | t          j        ¦  «        ot          | j        ¦  «        S rI   )r5   rJ   r|   rŠ   rp   rE   s    r6   rt   rt   Â   s$   € Ý�a�œÑ&Ô&ÐPÕ+FÀqÄxÑ+PÔ+PÐPr8   c                ó>   — t          | ¦  «        pt          | ¦  «        S rI   )rƒ   rt   rE   s    r6   Úis_sparse_anyr�   Ç   s   € Ý˜ÑÔÐ6Õ3°AÑ6Ô6Ð6r8   Útyútype[_T]Úobjc                ój   — t          || ¦  «        s"t          d| › dt          |¦  «        › �¦  «        ‚|S )Nz	expected z	 but got )r5   rR   Útype)rŽ   r�   s     r6   Ú_checked_castr“   Ë   s?   € Ý�c˜2ÑÔð CÝÐA¨ÐAÐAµd¸3±i´iÐAÐAÑBÔBÐBØ€Jr8   ry   útorch.UntypedStoragec                ó   — | j         S rI   ©Úreal_storage)ry   s    r6   Ú_get_real_storager˜   Ñ   s   € ØÔÐr8   r—   c                ó   — || _         d S rI   r–   )ry   r—   s     r6   Ú_set_real_storagerš   Õ   s   € ð %€DÔÐÐr8   ÚMetaStorageIdÚMetaTensorIdÚ_DescriberIdc                  óN   — e Zd ZdZddœdd„Zdd„Zdd„Zddœdd„Zdddœdd„ZdS ) r}   a›  
    Given a Tensor/Storage, generate a MetaTensorDesc/MetaStorageDesc
    for it, which is enough information to reconstruct a meta tensor/fake tensor
    corresponding to a Tensor as faithfully as possible.

    This is a stateful conversion object because we keep track of the IDs
    of the tensors/storages passed to us, so we can consistently give
    the same ID when we see the same tensor/storage.
    F©Ú	copy_datar    rA   r1   rV   c               óB  — t           | _        t          t           dz   ¦  «        a t          d¦  «        | _        t          d¦  «        | _        t          ¦   «         | _        t          ¦   «         | _	        || _
        t          ¦   «         | _        t          ¦   «         | _        d S )Né   r   )ÚDESCRIBER_NEXT_IDÚidr�   rœ   Únext_tensor_idr›   Únext_storage_idr%   Úlookup_tensorÚlookup_storager    ÚsetÚtraced_tensorsÚtraced_storages©Úselfr    s     r6   Ú__init__zMetaTensorDescriber.__init__ï   s|   € å#ˆŒÝ(Õ):¸QÑ)>Ñ?Ô?ÐÝ,8¸©O¬OˆÔÝ.;¸AÑ.>Ô.>ˆÔå0Ñ2Ô2ˆÔå1Ñ3Ô3ˆÔØ"ˆŒÝ(+©¬ˆÔÝ),©¬ˆÔÐÐr8   r/   rf   rœ   c                ó„   — || j         vr+| j        | j         |<   t          | j        dz   ¦  «        | _        | j         |         S ©Nr¢   )r§   r¥   rœ   ©r­   r/   s     r6   Úget_tensor_idz!MetaTensorDescriber.get_tensor_idý   sF   € Ø�DÔ&Ð&Ð&Ø$(Ô$7ˆDÔ˜qÑ!Ý".¨tÔ/BÀQÑ/FÑ"GÔ"GˆDÔØÔ! !Ô$Ð$r8   Úsr”   r›   c                ó„   — || j         vr+| j        | j         |<   t          | j        dz   ¦  «        | _        | j         |         S r°   )r¨   r¦   r›   ©r­   r³   s     r6   Úget_storage_idz"MetaTensorDescriber.get_storage_id  sF   € Ø�DÔ'Ð'Ð'Ø%)Ô%9ˆDÔ Ñ"Ý#0°Ô1EÈÑ1IÑ#JÔ#JˆDÔ ØÔ" 1Ô%Ð%r8   ©Útracer¸   ÚMetaStorageDescc               ó  ‡ ‡— t          ‰                      |¦  «        |                     ¦   «         ‰ j        r|nd ¬¦  «        Š|rB‰j        ‰ j        vr4t          dˆˆ fd„¬¦  «         ‰ j                             ‰j        ¦  «         ‰S )N)r¤   ÚsizeÚdataÚdescribe_storagec                 ó8   •— ‰                       ‰j        ¦  «        S rI   ©Úas_jsonr¤   ©Úrr­   s   €€r6   ú<lambda>z6MetaTensorDescriber.describe_storage.<locals>.<lambda>  ó   ø€  A§I¢I¨d¬gÑ$6Ô$6€ r8   ©Úmetadata_fn)r¹   r¶   r»   r    r¤   r«   r!   Úadd)r­   r³   r¸   rÂ   s   `  @r6   r½   z$MetaTensorDescriber.describe_storage	  s¨   øø€ õ Ø×"Ò" 1Ñ%Ô%Ø—’‘”ð ”nÐ.��¨$ð
ñ 
ô 
ˆð ð 	+�Q”T Ô!5Ð5Ð5ÝØ"Ø6Ð6Ð6Ð6Ð6ðñ ô ð ð Ô ×$Ò$ Q¤TÑ*Ô*Ð*Øˆr8   T©Úrecurser¸   rÉ   r:   c               ó4  ‡ ‡$— t          |¦  «        }|                     ¦   «         }|j        }|j        }|j        }t          |¦  «        }	t          |¦  «        }
|j        }t          |¦  «        }t          |¦  «        }t          |¦  «        }t          j        |¦  «        }d }d}|sVt          |¦  «        sG|r|	rC|sA|
s?|s=‰                      |                     ¦   «         |¬¦  «        }|                     ¦   «         }d }|s't          |¦  «        s|r|	r|                     ¦   «         }d }d }d }|s|r%‰                      t'          |¦  «        |¬¦  «        }nÛ|rÙ|j        j        dvrË|                     ¦   «         rt-          d¦  «        ‚|
s@t          j        |¦  «         ‰                      t          j        |¦  «        |¬¦  «        }|}nft          j                             ¦   «         }‰                      t7          ||¦  «        |¬¦  «        }t          j        j                             ¦   «         }d }|
r<t          j        j                             ¦   «         5 }	 d d d ¦  «         n# 1 swxY w Y   d }d }d }d }|	rÏtA          |d¦  «        stC          d¦  «        ‚| "                    ¦   «         \  }}i }i }|D ]ƒ}tG          ||¦  «        }|xt          j$        d˜ x�\    ‰                      ||¬¦  «        ||<   ŒA tJ          d˜ x�\   ddl&m'}  ||¦  «        ||<   Œc 	 tC          d	t+          |¦  «        › �¦  «        ‚t+          |¦  «        }dd
l(m)}  tT           +                    |¦  «        }!tG          tX          dd¦  «        }"t[          di d‰  .                    |¦  «        “d|“d|"rdn| /                    ¦   «         “d|“d|j0        “d| 1                    ¦   «         “d|j2        “d|“d|“d|
“d|“d|“d|“d|“d| 3                    ¦   «         “d| 4                    ¦   «         “dtk          |t          j6        j7        ¦  «        “d|	“d|“d || v r| |         j8         9                    ¦   «         nd “d!|“d"|“d#|j        “d$| :                    ¦   «         “d%|“d&|“d'tw          tG          |d(d¦  «        ¦  «        “d)tG          |d*i ¦  «        “d+|j        sty          |¦  «        r| =                    ¦   «         nd “d,|j        sty          |¦  «        r| >                    ¦   «         nd “d-|j        r| ?                    ¦   «         nd “d.|rI|j        t          j@        t          jA        hv r*‰                      | B                    ¦   «         d|¬/¦  «        nd “d0|rI|j        t          j@        t          jA        hv r*‰                      | C                    ¦   «         d|¬/¦  «        nd “d1|rI|j        t          jD        t          jE        hv r*‰                      | F                    ¦   «         d|¬/¦  «        nd “d2|rI|j        t          jD        t          jE        hv r*‰                      | G                    ¦   «         d|¬/¦  «        nd “d3|r9ty          |¦  «        r*‰                      | H                    ¦   «         d|¬/¦  «        nd “d4t“          |¦  «        x}#�‰                      |#|¬¦  «        nd “d5|                     ¦   «         r$t          j        jJ         K                    |¦  «        nd “d6|“d7|s|rt™          |¦  «        nd “d8|rt›          |¦  «        nd “d9|r7|                     ¦   «         r#|jN        �‰                      |jN        |¬¦  «        nd “d:t          jO        jP         Q                    |¦  «        “d;|!“d<|“d=|r|nd “d>|“d?|“d@|“dA|“dB|“dC‰ jR        r|nd “ŽŠ$|rB‰$jS        ‰ jT        vr4t«          dDˆ$ˆ fdE„¬F¦  «         ‰ jT         V                    ‰$jS        ¦  «         ‰$S )GNr   r·   ©ÚxlaÚlazyzVCannot safely fakify a view because this process drops the view information right now.Ú__tensor_flatten__z>Traceable wrapper subclass must have __tensor_flatten__ method© )Úmaybe_unwrap_fake_script_objectz#expected Tensor or OpaqueBase, got )Ú_tensor_symint_registryr[   Fr¤   Ústoragerm   rC   rk   Úndimri   rl   Ú	is_mkldnnÚis_functorch_wrappedr   r   r   rw   rn   ro   Úis_parameterr$   Ú	is_nestedÚ
nested_intÚis_functionalrp   Údevicer»   ru   rv   Údynamo_dynamic_indicesÚ_dynamo_dynamic_indicesÚdynamo_hint_overridesÚ_dynamo_hint_overridesrr   rq   rs   Úcrow_indicesrÈ   Úcol_indicesÚccol_indicesÚrow_indicesÚvaluesrO   Úcreation_metaÚ	unwrappedÚlevelÚbdimry   Ú	fake_modeÚ	view_funcÚattrsÚopaque_attrsÚctxr’   Úfunctorch_stackÚautograd_meta_fromÚcurrent_levelr¼   r~   c                 ó8   •— ‰                       ‰j        ¦  «        S rI   r¿   rÁ   s   €€r6   rÃ   z5MetaTensorDescriber.describe_tensor.<locals>.<lambda>  rÄ   r8   rÅ   )WrF   rx   rl   rp   r×   r$   r   rÔ   r   r   r   rJ   Ú_is_functional_tensorrŠ   r½   Úuntyped_storagerv   ru   r~   r   rÚ   r’   rD   Ú_syncÚ_from_functional_tensorÚ_CÚ$_functionalization_reapply_views_tlsr   Ú
_functorchrï   ÚpyfunctorchÚ#temporarily_clear_interpreter_stackÚhasattrrR   rÎ   r\   r|   r"   Ú"torch._library.fake_class_registryrÐ   Ú$torch.nested._internal.nested_tensorrÑ   ÚViewFuncÚfrom_tensorr]   ÚMetaTensorDescr²   rm   rk   Údimri   rn   ro   r5   ÚnnÚ	ParameterÚnoderØ   r»   Úlistrt   rr   rq   rs   r†   rˆ   rß   rà   r‡   r‰   rá   râ   rã   rP   Ú	_autogradÚ_get_creation_metar   r   rz   Ú_subclassesÚfake_tensorÚmaybe_get_fake_moder    r¤   rª   r!   rÇ   )%r­   r/   rÉ   r¸   rC   rw   rl   rp   r×   Úis_traceable_wrapper_subclass_vrÕ   rÔ   Úis_batchedtensor_vÚis_legacy_batchedtensor_vÚis_gradtrackingtensor_vrÙ   rÒ   rv   ru   rå   rî   rï   Úreapply_viewsÚmaybe_functorch_stackrê   rë   rì   Útype_vÚ	raw_attrsÚattrÚinnerrÐ   rÑ   ré   Úis_inference_mode_disabledrO   rÂ   s%   `                                   @r6   r~   z#MetaTensorDescriber.describe_tensor  sü
  øø€ õ ˜q‘/”/ˆØ—*’*‘,”,ˆØ”Kˆ	Ø”ˆØ”Kˆ	Ý*GÈÑ*JÔ*JÐ'Ý:¸1Ñ=Ô=ÐØ”Kˆ	Ý-¨aÑ0Ô0ÐÝ$;¸AÑ$>Ô$>Ð!Ý"7¸Ñ":Ô":ÐÝÔ3°AÑ6Ô6ˆàˆð ˆàð	0å*¨6Ñ2Ô2ð	0ð ð	0ð #Bð	0ð ð		0ð $ð	0ð )ð	0ð ×+Ò+¨A×,=Ò,=Ñ,?Ô,?ÀuÐ+ÑMÔMˆGØ×-Ò-Ñ/Ô/ˆNàˆàð	 å*¨6Ñ2Ô2ð	 ð ð	 ð #Bð	 ð —X’X‘Z”ZˆFð
 ˆ	Ø!ÐØˆØð 	DÐ!8ð 	DØ×,Ò,­]¸1Ñ-=Ô-=ÀUÐ,ÑKÔKˆIˆIð ð 	D˜qœxœ}°OÐCÐCØ�zŠz‰|Œ|ð Ý"Ølñô ð ð (ð DÝ”˜A‘”�Ø ×0Ò0ÝÔ1°!Ñ4Ô4¸Eð 1ñ ô �	ð &'Ð"Ð"å %¤× MÒ MÑ OÔ O�à ×0Ò0Ý-¨a°Ñ?Ô?Àuð 1ñ ô �	õ !&¤Ô 3× AÒ AÑ CÔ C�à $ÐØð 	åÔ Ô,×PÒPÑRÔRðà&Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ˆØˆØˆØˆØ*ð 	Ý˜1Ð2Ñ3Ô3ð Ý$ØTñô ð ð ×1Ò1Ñ3Ô3‰NˆI�sØˆEØˆLØ!ð ð �Ý  4Ñ(Ô(�ØØ'�œ˜˜˜˜™˜Ø&*×&:Ò&:¸5ÈÐ&:Ñ&NÔ&N˜˜d™˜ð (å#˜˜˜˜™ðð ð ð ð ð ð .MÐ-LÈUÑ-SÔ-S˜ TÑ*Ð*ð &ð Ý,ØOÅ$ÀuÁ+Ä+ÐOÐOñô ð õ ˜!‘W”WˆFàPÐPÐPÐPÐPÐPå×(Ò(¨Ñ+Ô+ˆ	õ &-­SÐ2JÈEÑ%RÔ%RÐ"Ý!/ð k"
ð k"
ð k"
Ø×!Ò! !Ñ$Ô$Ð$ðk"
à�Gðk"
ð #=ÐR˜˜À!Ç.Â.ÑBRÔBRøðk"
ð �Gð	k"
ð
 œ/˜/ðk"
ð —’‘”�ðk"
ð ”'�'ðk"
ð  �iðk"
ð  �iðk"
ð  "6Ð!5ð!k"
ð" 0Ð/ð#k"
ð$ %>Ð$=ð%k"
ð& #:Ð"9ð'k"
ð( �Gð)k"
ð* —I’I‘K”K�Kð+k"
ð, —8’8‘:”:�:ð-k"
õ. $ A¥u¤xÔ'9Ñ:Ô:Ð:ð/k"
ð0 +JÐ*Ið1k"
ð2  �ið3k"
ð8 Ð/Ð/Ð/ð (¨Ô*Ô/×:Ò:Ñ<Ô<Ð<àøð;k"
ð> (˜-ð?k"
ð@ �6ðAk"
ðB ”8�8ðCk"
ðD —’‘”�ðEk"
ðF �6ðGk"
ðJ *˜>ðKk"
õL $(­°Ð3LÈbÑ(QÔ(QÑ#RÔ#RÐ#RðMk"
õN #*¨!Ð-EÀrÑ"JÔ"JÐ"JðOk"
ðR #$¤+ÐRÕ1EÀaÑ1HÔ1HÐR�—’‘”�ÈdøðSk"
ðV ()¤{ÐWÕ6JÈ1Ñ6MÔ6MÐW�a—k’k‘m”m�mÐSWøðWk"
ðX ./¬[ÐB˜ŸšÑ)Ô)Ð)¸døðYk"
ðd ðØ œx­EÔ,<½eÔ>NÐ+OÐOÐOð ×$Ò$ Q§^¢^Ñ%5Ô%5¸uÈEÐ$ÑRÔRÐRàøðgk"
ðn ðØ œx­EÔ,<½eÔ>NÐ+OÐOÐOð ×$Ò$ Q§]¢]¡_¤_¸eÈ5Ð$ÑQÔQÐQàøðqk"
ðx ðØ œx­EÔ,<½eÔ>NÐ+OÐOÐOð ×$Ò$ Q§^¢^Ñ%5Ô%5¸uÈEÐ$ÑRÔRÐRàøð{k"
ðB ðØ œx­EÔ,<½eÔ>NÐ+OÐOÐOð ×$Ò$ Q§]¢]¡_¤_¸eÈ5Ð$ÑQÔQÐQàøðEk"
ðL ðÝ3°AÑ6Ô6ð�×$Ò$ Q§X¢X¡Z¤Z¸ÀeÐ$ÑLÔLÐLàøðOk"
õV & a™LœLÐ(�DÐ5ð ×$Ò$ T°Ð$Ñ7Ô7Ð7àøðYk"
ð^ =>¿JºJ¹L¼LÐR•”Ô"×5Ò5°aÑ8Ô8Ð8Èdøð_k"
ðb  �iðck"
ðh &ðØ)@ð• Ñ"Ô"Ð"àøðkk"
ðn '9ÐB• Ñ"Ô"Ð"¸døðok"
ðt ðØ Ÿzšz™|œ|ðØ01´Ð0Cð ×$Ò$ Q¤W°EÐ$Ñ:Ô:Ð:àøðwk"
õz Ô'Ô3×GÒGÈÑJÔJÐJð{k"
ð|  �ið}k"
ð@ �%ðAk"
ðB *6Ð?˜˜¸4øðCk"
ðD �ðEk"
ðF �ðGk"
ðN 2Ð1ðOk"
ðP  2Ð1ðQk"
ðR (˜-ðSk"
ðT ”nÐ.��¨$øðUk"
ˆðX ð 	*�Q”T Ô!4Ð4Ð4ÝØ!Ø6Ð6Ð6Ð6Ð6ðñ ô ð ð Ô×#Ò# A¤DÑ)Ô)Ð)Øˆs   ÉI'É'I+É.I+N©r    rA   r1   rV   )r/   rf   r1   rœ   )r³   r”   r1   r›   )r³   r”   r¸   rA   r1   r¹   )r/   rf   rÉ   rA   r¸   rA   r1   r:   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r®   r²   r¶   r½   r~   rÏ   r8   r6   r}   r}   ä   s¹   € € € € € ðð ð -2ð /ð /ð /ð /ð /ð /ð%ð %ð %ð %ð&ð &ð &ð &ð 9>ðð ð ð ð ð ð& 37Àeðlð lð lð lð lð lð lð lr8   r}   )Úfrozenc                  ó6   — e Zd ZU ded<   ded<   ded<   dd„ZdS )r¹   r›   r¤   Úintr»   útorch.UntypedStorage | Noner¼   Údescriber_idr�   r1   údict[str, object]c                ó~   — | j         |t          | j        t          ¦  «        r| j        nt	          | j        ¦  «        dœS )N)r¤   r  r»   )r¤   r5   r»   r  Úrepr)r­   r  s     r6   rÀ   zMetaStorageDesc.as_json  s;   € à”'Ø(Ý!+¨D¬IµsÑ!;Ô!;ÐP�D”I�IÅÀdÄiÁÄð
ð 
ð 	
r8   N©r  r�   r1   r  )r  r  r  Ú__annotations__rÀ   rÏ   r8   r6   r¹   r¹   
  sM   € € € € € € àÐÐÑØ€I€I�Ið &Ð%Ð%Ñ%ð
ð 
ð 
ð 
ð 
ð 
r8   r¹   c                  óD   — e Zd Ze	 	 ddd
„¦   «         Zedd„¦   «         ZdS )rý   Nr/   r<   Únew_baseÚsymint_visitor_fnúCallable[[int], int] | NoneÚtensor_visitor_fnú)Callable[[torch.Tensor], _TensorT] | Noner1   c                ó   — d S rI   rÏ   ©r­   r/   r%  r&  r(  s        r6   ÚapplyzViewFunc.apply  s	   € ð �3r8   rf   úViewFunc[Any]c                ód   — t          | ¦  «        rt          ¦   «         S t          | j        ¦  «        S rI   )r7   Ú_FakeTensorViewFuncÚ_CustomViewFuncÚ_view_func_unsaferE   s    r6   rþ   zViewFunc.from_tensor%  s/   € å˜1ÑÔð 	8Ý&Ñ(Ô(Ð(å" 1Ô#6Ñ7Ô7Ð7r8   ©NN)
r/   r<   r%  r<   r&  r'  r(  r)  r1   r<   )r/   rf   r1   r-  )r  r  r  r   r,  Ústaticmethodrþ   rÏ   r8   r6   rý   rý     s_   € € € € € àð
 :>ØGKðð ð ð ñ „^ðð ð8ð 8ð 8ñ „\ð8ð 8ð 8r8   rý   c                  ó,   — e Zd Ze	 	 ddd„¦   «         ZdS )r/  Nr/   rf   r%  r&  r'  r(  ú+Callable[[torch.Tensor], FakeTensor] | Noner1   r*   c                óZ   — t           j        j        j                             ||||¦  «        S rI   )rJ   r  r  r*   r1  r+  s        r6   r,  z_FakeTensorViewFunc.apply/  s1   € õ Ô Ô,Ô7×IÒIàØØØñ
ô 
ð 	
r8   r2  )
r/   rf   r%  rf   r&  r'  r(  r5  r1   r*   )r  r  r  r   r,  rÏ   r8   r6   r/  r/  -  s?   € € € € € àð
 :>ØIMð
ð 
ð 
ð 
ñ „Xð
ð 
ð 
r8   r/  r*   c                  ó8   — e Zd ZU ded<   e	 	 ddd„¦   «         ZdS )r0  zjCallable[[torch.Tensor, Callable[[int], int] | None, Callable[[torch.Tensor], _TensorT] | None], _TensorT]ÚfuncNr/   rf   r%  r&  r'  r(  r)  r1   r<   c                ó0   — |                       |||¦  «        S rI   )r8  r+  s        r6   r,  z_CustomViewFunc.applyK  s   € ð �yŠy˜Ð#4Ð6GÑHÔHÐHr8   r2  )
r/   rf   r%  rf   r&  r'  r(  r)  r1   r<   )r  r  r  r#  r   r,  rÏ   r8   r6   r0  r0  @  s^   € € € € € € ðð ð ñ ð ð
 :>ØGKðIð Ið Ið Iñ „XðIð Ið Ir8   r0  c                  ó   — e Zd Zd	d„ZdS )
Ú_MetaTensorCallbackÚargúCallable[[], torch.Tensor]rÚ   útorch.device | strr1   r>   c              ó   — d S rI   rÏ   )r­   r<  rÚ   s      r6   Ú__call__z_MetaTensorCallback.__call__]  s   € à�sr8   N)r<  r=  rÚ   r>  r1   r>   ©r  r  r  r@  rÏ   r8   r6   r;  r;  \  s(   € € € € € ðð ð ð ð ð r8   r;  c                  ó   — e Zd ZU ded<   dS )Ú_MetaTensorCallbackKwargsr>  rÚ   N)r  r  r  r#  rÏ   r8   r6   rC  rC  b  s   € € € € € € ØÐÐÑÐÐr8   rC  )Útotalc                  ó   — e Zd Zd	d„ZdS )
Ú_MetaTensorCallbackOptDevicer<  r=  Úkwargsú!Unpack[_MetaTensorCallbackKwargs]r1   r>   c               ó   — d S rI   rÏ   )r­   r<  rG  s      r6   r@  z%_MetaTensorCallbackOptDevice.__call__k  s	   € ð
 �sr8   N)r<  r=  rG  rH  r1   r>   rA  rÏ   r8   r6   rF  rF  j  s(   € € € € € ðð ð ð ð ð r8   rF  c                  ó  — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ej        Zded<   dZded<   dZded<   dZ	ded<   dZ
ded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded <   dZded!<   dZded"<   dZded#<   dZded$<   dZded%<   dZd&ed'<   d(Zded)<   dZd*ed+<   dZded,<   dZded-<   dZd.ed/<   dZd0ed1<   dZd0ed2<   dZ d0ed3<   dZ!d0ed4<   dZ"d0ed5<   dZ#d0ed6<   dZ$ded7<   dZ%d0ed8<   dZ&d9ed:<   dZ'd;ed<<   dZ(d=ed><   dZ)d0ed?<   h d@£Z*dAedB<   dZ+dCedD<   dZ,dEedF<   dZ-dGedH<   dZ.dIedJ<   dZ/dedK<   dZ0dedL<   dZ1dMedN<   dZ2dOedP<   dZ3dOedQ<   dXdV„Z4e5dYdW„¦   «         Z6dS )Zrÿ   rœ   r¤   r  rÓ   útorch.dtyperi   ztorch.devicerÚ   útuple[int, ...]r»   z	list[int]rÛ   zdict[int, int]rÝ   r„   rp   FrA   rm   rC   rk   rl   rÔ   rÕ   r   r   r   rw   r×   Nz
int | NonerØ   r$   rÙ   rn   ro   rÖ   útuple[int, ...] | Noneru   r   rv   zMetaStorageDesc | NonerÒ   rr   rq   zbool | Noners   zMetaTensorDesc[Any] | Nonerß   rà   rá   râ   rã   rå   rç   ry   z%dict[str, MetaTensorDesc[Any]] | Nonerê   zdict[str, OpaqueBase] | Nonerë   zCreationMeta | Nonerä   rO   >
   rì   r¼   r’   ræ   rè   ré   rØ   rï   rí   rî   zClassVar[set[str]]Ú_UNSERIALIZABLEzobject | Nonerì   ztype | Noner’   zFakeTensorMode | Nonerè   zViewFunc[Any] | Noneré   ræ   rï   zlist[CInterpreter] | Nonerí   útorch.Tensor | Nonerî   r¼   r  r�   r1   r  c                ó†   ‡ ‡— d	ˆfd„Šˆˆ fd„t          j        ‰ ¦  «        D ¦   «         }|                     d|i¦  «         |S )
NÚkÚstrÚvr0   r1   c                óx  •‡ — ‰ dv rd S ‰ t           j        v rt          |¦  «        S t          |t          j        t          j        t          j        f¦  «        rt          |¦  «        S t          |t          j        ¦  «        rt          |¦  «        S t          |t          t          f¦  «        rˆˆ fd„|D ¦   «         S t          |t          t           f¦  «        r|j        S t          |t          ¦  «        rt          |¦  «        S ‰ dk    r3t          |t          ¦  «        rd„ |                     ¦   «         D ¦   «         S |S )N)r¼   rî   c                ó(   •— g | ]} ‰‰|¦  «        ‘ŒS rÏ   rÏ   )Ú.0Úv1ÚjsonrQ  s     €€r6   ú
<listcomp>z8MetaTensorDesc.as_json.<locals>.json.<locals>.<listcomp>ó  s#   ø€ Ð0Ð0Ð0¨˜˜˜Q ™œÐ0Ð0Ð0r8   rê   c                ó$   — i | ]\  }}||j         “ŒS rÏ   )r¤   )rV  Úk1rW  s      r6   ú
<dictcomp>z8MetaTensorDesc.as_json.<locals>.json.<locals>.<dictcomp>ù  s    € Ð:Ð:Ð:¡f b¨"˜˜BœEÐ:Ð:Ð:r8   )rÿ   rN  r!  r5   rJ   rÚ   ri   rp   ÚSymIntÚtupler  r¹   r¤   r   rR  ÚdictÚitems)rQ  rS  rX  s   ` €r6   rX  z$MetaTensorDesc.as_json.<locals>.jsonç  s  øø€ ð Ð2Ð2Ð2Ø�tØ•NÔ2Ð2Ð2Ý˜A‘w”w�Ý˜!�eœl­E¬K½¼ÐFÑGÔGð Ý˜A‘w”w�Ý˜!�Uœ\Ñ*Ô*ð Ý˜A‘w”w�Ý˜!�e¥T˜]Ñ+Ô+ð 1Ø0Ð0Ð0Ð0Ð0¨aÐ0Ñ0Ô0Ð0Ý˜!�o­~Ð>Ñ?Ô?ð Ø”t�Ý˜!�\Ñ*Ô*ð Ý˜1‘v”v�Ø�GŠ|ˆ|¥
¨1­dÑ 3Ô 3ˆ|Ø:Ð:°·²±	´	Ð:Ñ:Ô:Ð:ØˆHr8   c           
     óÜ   •— i | ]h}t          ‰|j        ¦  «        |j        u sJ|j        d k    rt          ‰|j        ¦  «        ¯>|j         ‰|j        t          ‰|j        ¦  «        ¦  «        “ŒiS )rÛ   )r\   ÚnameÚdefault)rV  ÚfieldrX  r­   s     €€r6   r\  z*MetaTensorDesc.as_json.<locals>.<dictcomp>ü  s~   ø€ ð 

ð 

ð 

àå˜˜eœjÑ)Ô)¨U¬]Ð:Ð:à”JÐ":Ò:Ð:Ý# D¨%¬*Ñ5Ô5ð ;ð ŒJ˜˜˜UœZ­°°u´zÑ)BÔ)BÑCÔCð
 ;Ð:Ð:r8   r  )rQ  rR  rS  r0   r1   r0   )ÚdataclassesÚfieldsÚupdate)r­   r  rÂ   rX  s   `  @r6   rÀ   zMetaTensorDesc.as_jsonæ  sx   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð*

ð 

ð 

ð 

ð 

å$Ô+¨DÑ1Ô1ð

ñ 

ô 

ˆð 	
�Š�. ,Ð/Ñ0Ô0Ð0Øˆr8   c                ó   — | j         S rI   )r»   ©r­   s    r6   rj   zMetaTensorDesc.shape
  s
   € àŒyÐr8   r"  )r1   rL  )7r  r  r  r#  rJ   Ústridedrp   rm   rC   rk   rl   rÔ   rÕ   r   r   r   rw   r×   rØ   r$   rÙ   rn   ro   rÖ   ru   rv   rÒ   rr   rq   rs   rß   rà   rá   râ   rã   rå   rç   ry   rê   rë   rä   rO   rN  rì   r’   rè   ré   ræ   rï   rí   rî   r¼   rÀ   Úpropertyrj   rÏ   r8   r6   rÿ   rÿ   s  sá  € € € € € € àÐÐÑØ€I€I�IØÐÐÑØÐÐÑð ÐÐÑØ%Ð%Ð%Ñ%Ø)Ð)Ð)Ñ)à œ=€FÐ(Ð(Ð(Ñ(Ø€LÐÐÐÑØ€GÐÐÐÑØ€MÐÐÐÑØ€IÐÐÐÑØ€IÐÐÐÑØ!&ÐÐ&Ð&Ð&Ñ&Ø"ÐÐ"Ð"Ð"Ñ"Ø$)ÐÐ)Ð)Ð)Ñ)Ø"'ÐÐ'Ð'Ð'Ñ'Ø€GÐÐÐÑØ€IÐÐÐÑð "€JÐ!Ð!Ð!Ñ!Ø*/Ð!Ð/Ð/Ð/Ñ/Ø€MÐÐÐÑØ€GÐÐÐÑØ€FÐÐÐÑØ€LÐÐÐÑØ%)€FÐ)Ð)Ð)Ñ)Ø€NÐÐÐÑð
 '+€GÐ*Ð*Ð*Ñ*Ø!€JÐ!Ð!Ð!Ñ!Ø €IÐ Ð Ð Ñ Ø $€LÐ$Ð$Ð$Ñ$Ø/3€LÐ3Ð3Ð3Ñ3Ø.2€KÐ2Ð2Ð2Ñ2Ø/3€LÐ3Ð3Ð3Ñ3Ø.2€KÐ2Ð2Ð2Ñ2Ø)-€FÐ-Ð-Ð-Ñ-Ø,0€IÐ0Ð0Ð0Ñ0Ø€DÐÐÐÑØ'+€DÐ+Ð+Ð+Ñ+Ø37€EÐ7Ð7Ð7Ñ7ð 	ð ð ð ð ñ ð *.€MÐ-Ð-Ð-Ñ-Ø'+€DÐ+Ð+Ð+Ñ+ð+ð +ð +€Oð ð ð ñ ð €CÐÐÐÑØ€DÐÐÐÑØ'+€IÐ+Ð+Ð+Ñ+Ø&*€IÐ*Ð*Ð*Ñ*ð €EÐÐÐÑØ $€MÐ$Ð$Ð$Ñ$Ø15€OÐ5Ð5Ð5Ñ5Ø.2ÐÐ2Ð2Ð2Ñ2ð
 !%€DÐ$Ð$Ð$Ñ$ð"ð "ð "ð "ðH ðð ð ñ „Xðð ð r8   rÿ   ÚdstÚsrcrO  c                ój   — t          |¦  «        t          j        urd S |                      |¦  «         d S rI   )r’   rJ   r|   Úcopy_)rl  rm  s     r6   Ú
_safe_copyrp    s-   € ÝˆC�y„y�œÐ$Ð$ØˆØ‡I‚Iˆc�N„N€N€N€Nr8   c                ód   — t          | ¦  «        t          j        urd S |                      ¦   «         S rI   )r’   rJ   r|   Úclone)rm  s    r6   Ú_safe_cloners  !  s(   € ÝˆC�y„y�œÐ$Ð$ØˆtØ�9Š9‰;Œ;Ðr8   Úsymbolic_contextú5torch.fx.experimental.symbolic_shapes.SymbolicContextÚ	grad_descúMetaTensorDesc[torch.Tensor]c                ó@  ‡— ddl mŠm} dˆfd	„}t          | ‰¦  «        sd
S  || |¦  «        sdS t          | |¦  «        r^|j        €dS | j                             ¦   «         D ];\  }}||j        vr dS t          |‰¦  «        r |||j        |         ¦  «        s dS Œ<d
S )a¶  Check if a symbolic_context is compatible with a grad tensor.

    Returns False when the view base structure in symbolic_context doesn't
    match the grad, which means we need a fresh symbolic context.  This
    happens in FSDP2 where param._local_tensor is a view of an N-D padded
    base while grad._local_tensor is a view of a 1-D flat gradient buffer.

    We check at both the outer level and the inner (subclass attr) level.
    r   )ÚStatelessSymbolicContextÚSubclassSymbolicContextrì   ú"StatelessSymbolicContext[Any, Any]Úgrad_trw  r1   rA   c                óÊ   •— | j         }|j        r|€dS |j        s|�dS |j        r=|�;t          |‰¦  «        r+|j        �$t	          |j        ¦  «        |j        j        k    rdS dS )NFT)Úview_base_contextrw   r5   ry   ÚlenÚdynamic_sizesrÓ   )rì   r|  Úvbcry  s      €r6   Ú_view_base_compatiblez7_grad_context_compatible.<locals>._view_base_compatible9  s‚   ø€ ð Ô#ˆØŒ>ð 	˜c˜kØ�5ØŒ~ð 	 # /Ø�5àŒNð	à�Ý˜3Ð 8Ñ9Ô9ð  à”Ð'Ý�CÔ%Ñ&Ô&¨&¬+Ô*:Ò:Ð:à�5Øˆtr8   TFN)rì   r{  r|  rw  r1   rA   )Ú%torch.fx.experimental.symbolic_shapesry  rz  r5   rê   Úinner_contextsr`  )rt  rv  rz  r‚  r  Ú	inner_ctxry  s         @r6   Ú_grad_context_compatibler†  '  s  ø€ ðð ð ð ð ð ð ð ð
ð ð ð ð ð õ& Ð&Ð(@ÑAÔAð Øˆtð !Ð Ð!1°9Ñ=Ô=ð Øˆuõ Ð"Ð$;Ñ<Ô<ð 	ØŒ?Ð"Ø�5Ø/Ô>×DÒDÑFÔFð 	ð 	‰OˆD�)Ø˜9œ?Ð*Ð*Ø�u�uÝØÐ3ñô ð à+Ð+¨I°y´ÀtÔ7LÑMÔMðð �u�uøàˆ4r8   c                  óÈ   — e Zd Zddœd7d„Zd8d„Zd9d„Zd:d„Zd;d„Zd<d„Zd=d„Z	d>d„Z
ed?d„¦   «         Ze	 d@dAd „¦   «         ZedBd!„¦   «         ZdCd,„ZdDd1„Z	 d@dddd2d3œdEd6„ZdS )FÚMetaConverterFrŸ   r    rA   r1   rV   c               óÖ   — t          j        ¦   «         | _        t          j        ¦   «         | _        d| _        d| _        d | _        d| _        || _        t          |¬¦  «        | _
        d S )Nr   rŸ   )ÚweakrefÚWeakValueDictionaryÚstorage_memoÚtensor_memoÚhitÚmissÚdel_hookÚarg_cntr    r}   Ú	describerr¬   s     r6   r®   zMetaConverter.__init__j  sk   € õ Ô'Ñ)Ô)ð 	Ôõ Ô'Ñ)Ô)ð 	Ôð ˆŒØˆŒ	ØˆŒØˆŒð
 #ˆŒÝ,°yÐAÑAÔAˆŒˆˆr8   c                ó.   — | j         dk    o
| j        dk    S )Nr   )rŽ  r�  ri  s    r6   Ú
successfulzMetaConverter.successful  s   € ØŒx˜!Š|Ð. ¤	¨Q¢Ð.r8   r/   r:   rO  c                óB   — | j                              |j        d ¦  «        S rI   )r�  Úgetr¤   r±   s     r6   Úget_tensor_memozMetaConverter.get_tensor_memo‚  s   € ØÔ×#Ò# A¤D¨$Ñ/Ô/Ð/r8   r<   c                óz   — | j                              |j        d ¦  «        }|€t          d|j        › d�¦  «        ‚|S )NzTensor memo for id z is None)r�  r–  r¤   rR   )r­   r/   rÂ   s      r6   Ú_checked_get_tensor_memoz&MetaConverter._checked_get_tensor_memo…  sB   € ØÔ× Ò  ¤ tÑ,Ô,ˆØˆ9Ý Ð!E°q´tÐ!EÐ!EÐ!EÑFÔFÐFØˆr8   rS  c                ó$   — || j         |j        <   d S rI   )r�  r¤   )r­   r/   rS  s      r6   Úset_tensor_memozMetaConverter.set_tensor_memo‹  s   € Ø!"ˆÔ˜œÑÐÐr8   r³   r¹   r  c                óB   — | j                              |j        d ¦  «        S rI   )rŒ  r–  r¤   rµ   s     r6   Úget_storage_memozMetaConverter.get_storage_memoŽ  s   € ØÔ ×$Ò$ Q¤T¨4Ñ0Ô0Ð0r8   r”   c                ó$   — || j         |j        <   d S rI   )rŒ  r¤   )r­   r³   rS  s      r6   Úset_storage_memozMetaConverter.set_storage_memo‘  s   € Ø"#ˆÔ˜!œ$ÑÐÐr8   Úcallbackú0Callable[[Callable[[], torch.Tensor]], _TensorT]c                óÐ  ‡— |                       ‰¦  «        x}€Í |ˆfd„¦  «                             ¦   «         }| j        rŽt          j        ¦   «         5  t          ¦   «         5  ‰j        €t          d¦  «        ‚t          |‰j         	                    ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |  
                    ‰|¦  «         |S |S )Nc                 óP   •— t          j        ‰ j        t           j        d¬¦  «        S ©NÚmeta©ri   rÚ   )rJ   Úemptyr»   Úuint8)r³   s   €r6   rÃ   z,MetaConverter.meta_storage.<locals>.<lambda>�  s   ø€ �œ A¤Fµ%´+ÀfÐMÑMÔM€ r8   z.s.data must not be None when copy_data is True)r�  rò   r    rJ   Úno_gradr#   r¼   rR   rš   rr  rŸ  )r­   r³   r   ÚmemoÚr_ss    `   r6   Úmeta_storagezMetaConverter.meta_storage”  sp  ø€ ð ×)Ò)¨!Ñ,Ô,Ð,ˆDÐ5Ø�(ØMÐMÐMÐMñô çŠoÑÔð ð Œ~ð ;õ ”]‘_”_ð ;ð ;¥k¡m¤mð ;ð ;Ø”v�~Ý,ØLñô ð õ & c¨1¬6¯<ª<©>¬>Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ×!Ò! ! SÑ)Ô)Ð)ØˆJàˆKs6   ÁCÁ">B,Â CÂ,B0	Â0CÂ3B0	Â4CÃCÃ
Crf   c                ó6   — t          j        t          |¦  «        S rI   )ÚtypingÚcastr<   )Úclsr/   s     r6   Ú_checked_cast_tensor_tz$MetaConverter._checked_cast_tensor_t­  s   € õ Œ{�8 QÑ'Ô'Ð'r8   Nr=  rÚ   útorch.device | str | Nonec                ó<   — |                        |¦   «         ¦  «        S rI   )r±  )r°  r/   rÚ   s      r6   Ú_identity_callablez MetaConverter._identity_callable²  s   € ð ×)Ò)¨!¨!©#¬#Ñ.Ô.Ð.r8   c                ó–   — t           j        j                             dd¦  «        } ||¦  «        }t	          j        t          |¦  «        S )Nz9Internal error: Tried to backward() through example inputr¢   )rJ   rõ   Ú
_functionsÚDelayedErrorr®  r¯  r<   )r°  r/   ÚerrfnÚerrs       r6   Ú_backward_errorzMetaConverter._backward_errorº  sC   € å”Ô#×0Ò0ØGØñ
ô 
ˆð ˆe�A‰hŒhˆÝŒ{�8 SÑ)Ô)Ð)r8   Ú
outer_sizerM  Úouter_strideÚ	shape_envúShapeEnv | Nonert  ú<torch.fx.experimental.symbolic_shapes.SymbolicContext | Noneú&_MetaTensorCallbackOptDevice[_TensorT]Úsourceútorch._guards.Sourcec           
     ó   — ddl m} ddlm}	 |j        €|                      |||||¦  «        S i }
|j                             ¦   «         D ]Þ\  }}d }|�„t          ||	¦  «        st          dt          |¦  «        › �¦  «        ‚||j
        vrt          d|›d�¦  «        ‚|j
        |         x}	 �)t          t          j        j        j        j        |¦  «        } |||¦  «        }t#          j        ||j        ¬¦  «        }|                      ||j        |j        ||||¦  «        }||
|<   Œß|j        r|
                     |j        ¦  «         |j	        €t          d¦  «        ‚|j	                             |
|j        ||¦  «        S )	Nr   ©Ú
AttrSource©rz  z&Expected SubclassSymbolicContext, got ztensor attr z missing from inner_contexts©rÚ   ú$t.type must not be None for subclass)Útorch._dynamo.sourcerÅ  rƒ  rz  rê   Úmeta_tensorr`  r5   rR   r’   r„  r“   rJ   ÚfxÚexperimentalÚsymbolic_shapesr-   Ú	functoolsÚpartialrÚ   Ú_empty_create_subclassr»   ru   rë   rg  Ú__tensor_unflatten__rì   )r­   r/   r»  r¼  r½  rt  r   rÁ  rÅ  rz  Úinner_tensorsr  Úmeta_tensor_descÚcurrent_contextÚcurrent_context_Úcurrent_sourceÚinner_callbackÚnew_empty_tensors                     r6   rÐ  z$MetaConverter._empty_create_subclassÃ  sû  € ð 	4Ð3Ð3Ð3Ð3Ð3ØQÐQÐQÐQÐQÐQð Œ7ˆ?Ø×#Ò#ØØØØØ ñô ð ð ?AˆØ&'¤g§m¢m¡o¤oð 	3ð 	3Ñ"ˆDÐ"Ø"ˆOØÐ+Ý!Ð"2Ð4KÑLÔLð Ý(ØYÅÐFVÑAWÔAWÐYÐYñô ð ð Ð/Ô>Ð>Ð>Ý(ØK tÐKÐKÐKñô ð ð )9Ô(GÈÔ(MÐMÐ$Øðõ '4ÝœÔ-Ô=ÔMØ(ñ'ô '�Oð
 (˜Z¨°Ñ5Ô5ˆNÝ&Ô.¨xÐ@PÔ@WÐXÑXÔXˆNØ#×:Ò:Ø Ø Ô%Ø Ô'ØØØØñ ô  Ðð #3ˆM˜$ÑÐð Œ>ð 	1Ø× Ò  ¤Ñ0Ô0Ð0àŒ6ˆ>Ý Ð!GÑHÔHÐHØŒv×*Ò*Ø˜1œ5 *¨lñ
ô 
ð 	
r8   Ú	callback_ú_MetaTensorCallback[_TensorT]úSource | NoneúSymbolicContext | Nonec                óB$  ‡ ‡‡‡‡‡$‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.‡/— t          j        |‰j        ¬¦  «        Š(‰€&ddlm}  |dt          ‰ j        ¦  «        › �¦  «        Šd}t          j         	                    ¦   «          
                    t          j        j        j        ¦  «        rt          |¦  «        ‚‰ xj        dz  c_        t          j        Š+‰�‰j        Š+‰fdZˆfd„Š/‰fd[ˆˆ/fd„}‰fd\ˆ/fd„}	‰‰fd]ˆ(ˆ ˆfd„Š)d^ˆ&fd!„Š&‰fd_ˆ&ˆ(ˆ)ˆ+ˆ ˆˆ/ˆfd#„}
‰                      ‰¦  «        �€íd$Š$t          j        ‰j        ¦  «        5  ‰j        �rË‰j        } |‰‰‰¦  «        Š-‰j        €t          d%¦  «        ‚‰j        €t          d&¦  «        ‚ ‰(ˆ-ˆfd'„¦  «        }‰ j        rž‰j        €t          d(¦  «        ‚t          j        ¦   «         5  t9          ¦   «         5  t;          |¦  «        st          d)¦  «        ‚t=          ‰j        ¦  «        |_        d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   tA          |¦  «        st          d*¦  «        ‚| !                    tE          ‰j#        ¦  «        ¦  «         ‰j$        rd+|_$        ‰j$        r{|sy‰  %                    | &                    ¦   «         ¦  «        }t          j'        ¦   «         5  | !                    tE          ‰j#        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   �nMtQ          ‰j)        ¦  «        �r‰j        }‰j)        t          j*        t          j+        hv rt‰j        €t          d,¦  «        ‚‰j        €t          d-¦  «        ‚‰j,        €t          d.¦  «        ‚‰j-        ‰j        z
  ‰j        z
  }‰j,        j.        |dz   |d/z   …         Š'nd0Š'‰j)        t          j/        t          j*        hv r#‰j0        €t          d1¦  «        ‚‰j0        j1        Š*n"‰j2        €t          d2¦  «        ‚‰j2        j1        Š* ‰(ˆ'ˆ*ˆfd3„¦  «        }‰ j        rž‰j        €t          d(¦  «        ‚t          j        ¦   «         5  t9          ¦   «         5  t;          |¦  «        st          d)¦  «        ‚t=          ‰j        ¦  «        |_        d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   tA          |¦  «        st          d*¦  «        ‚‰j$        rd+|_$        ‰j$        r|s‰  3                    |¦  «        }�n7‰j4        r+‰j5        s$dd4l6m7}  |d5tq          ‰¦  «        d6g ¬7¦  «         �n‰j9        �rv‰j        } ‰/‰‰¦  «        \  Š,Š.} ‰(ˆ,ˆ.ˆfd8„¦  «        }‰ j        rüt          j        ¦   «         5  t9          ¦   «         5  ‰j:        €t          d9¦  «        ‚‰j;        €t          d:¦  «        ‚t;          |¦  «        st          d)¦  «        ‚t          j<        ‰j:        ‰j;        ‰j1        ‰j        ¬;¦  «        |_        ‰j        €t          d(¦  «        ‚t{          |j        ‰j        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   tA          |¦  «        st          d*¦  «        ‚‰j$        rd+|_$        ‰j$        r|s‰  3                    |¦  «        }�	n‡‰j>        rB‰j?        r"dd4l6m7}  |d<tq          ‰¦  «        d6g ¬7¦  «         d`ˆ$ˆ%ˆ(ˆ ˆˆˆfd=„Š% ‰%‰¦  «        }�	n>‰j@        r›‰j        jA        d>vr�‰jB        €t          d?¦  «        ‚‰j>        rt          d@¦  «        ‚‰  C                    ‰jB        ‰‰(‰‰¦  «        }‰  %                    t          jD        |¦  «        ¦  «        }t          jE        ‰jF        |¦  «         �nœ‰j?        �r3‰jG        €t          dA¦  «        ‚d }‰rE‰�CddBlHmI} t•          ‰|¦  «        st          dCtƒ          ‰¦  «        › �¦  «        ‚‰jK        �‰jK        }‰r‰ L                    ¦   «         nt          j        ¦   «         5  ‰  C                    ‰jG        ‰‰(t          jM        jN         O                    ‰dD¦  «        |¦  «        }d d d ¦  «         n# 1 swxY w Y   dadI„}t          j         P                    t          j        j        jQ        ¦  «        }t          j         R                    t          j        j        jQ        dJ¦  «         	 |j1        ‰j1        k    rn© ||j1        ‰j1        ¦  «        r(‰  %                    t          jS        |¦  «        ¦  «        }nk |‰j1        |j1        ¦  «        r(‰  %                    t          jT        |¦  «        ¦  «        }n-‰  %                    | U                    ‰j1        ¦  «        ¦  «        }‰j        rEt          j        ¦   «         5   |
|‰¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰j$        |_$        �n$‰jG        j$        ‰j$        k    r8t          j'        ¦   «         5   |
|‰¦  «        }d d d ¦  «         n# 1 swxY w Y   n×‰j$        st          dK¦  «        ‚t          j        ¦   «         5  t­          ¦   «         5  ‰  %                    | U                    |j.        ¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰j$        |_$        t          j'        ¦   «         5   |
|‰¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰jW        €t          dL¦  «        ‚t          j        jX         Y                    |‰jW        ¦  «         t          j         R                    t          j        j        jQ        |¦  «         n9# t          j         R                    t          j        j        jQ        |¦  «         w xY w‰j        |_Z        �na‰j        }‰j[        s‰j\        s‰j>        s‰j]        rt¼          cd d d ¦  «         S  ‰/‰‰‰¦  «        \  Š,Š.}‰j5        r ‰)‰‰,‰.¬M¦  «        }ný ‰(ˆ,ˆ.ˆfdN„¦  «        }‰ j        ræt          j        ¦   «         5  t9          ¦   «         5  ‰j:        €t          d9¦  «        ‚‰j;        €t          d:¦  «        ‚t;          |¦  «        st          d)¦  «        ‚t          j<        ‰j:        ‰j;        ‰j1        ‰j        ¬;¦  «        |_        t{          |j        ‰j        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   tA          |¦  «        st          d*¦  «        ‚‰j$        r#‰j$        |_$        |s‰  3                    |¦  «        }‰j_        }|€t          dO¦  «        ‚ddPlHm`}ma} |jb        ‰ jc        vrí|j4        sH | || ;                    ¦   «         ‰.¦  «        ¦  «        r¿ || d                    ¦   «         |k    ¦  «        rž‰  e                    || f                    ¦   «         ¦  «         ‰ j        rmt;          |¦  «        st          d)¦  «        ‚|j        €t          dQ¦  «        ‚tÏ          | f                    ¦   «         |j         f                    ¦   «         ¦  «         �n¤‰  h                    |‰(¬R¦  «        }t          j        ¦   «         }ddSlimj}mk}  ||¦  «        }|� ||¦  «        }t          j        ¦   «         5   ‰+¦   «         5  |5  | l                    ||‰,‰.¦  «         d d d ¦  «         n# 1 swxY w Y   ‰ j        rÔt          j        ¦   «         5  t9          ¦   «         5  t;          |¦  «        st          d)¦  «        ‚|j        €t          dQ¦  «        ‚‰j;        €t          d:¦  «        ‚|j         l                    tÛ          |¦  «        ‰jd        ‰j:        ‰j;        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰jn        �cddTlmO}   | ‰dU¦  «        }!‰}"‰�*‰�(tß          ‰‰jn        ¦  «        s ‰&‰jn        |!‰‰(¦  «        }"‰  C                    ‰jn        ‰‰(|!|"¦  «        |_n        t          j         p                    |‰jq        ¦  «         t          j         r                    |‰js        ¦  «         d d d ¦  «         n# 1 swxY w Y   ‰j\        o
‰jt        ‰$k    }#të          tì          ‰|d+|#¬V¦  «         ddWlHm`} ‰j_        �@ |‰j_        j:        dk    ¦  «        r'| f                    ¦   «          w                    d¦  «         ‰jx        rd+|_y        ‰jz        �Ct;          |¦  «        st          dX¦  «        ‚|j{         |                    ‰jz        ¬Y¦  «        |_}        ‰  ~                    ‰|¦  «         ‰                      ‰¦  «        S )bNrÇ  r   )ÚConstantSourceÚ__meta_utils_unknown_tensora   This indicates you set no_dispatch() before calling into this function.  This is an error: we may be creating fake tensors and will perform operations on them which need fake tensor mode to be active.  You will segfault if you are in a no_dispatch() block.r¢   r/   r:   rm  rÂ  rt  r¿  r1   úDtuple[tuple[IntLikeType, ...], tuple[IntLikeType, ...], IntLikeType]c           	     ó^  •‡— ddl mŠ | j        €t          d¦  «        ‚‰�ú| j        }t          ˆfd„| j        D ¦   «         ¦  «        p/t          ˆfd„| j        D ¦   «         ¦  «        p ‰| j        ¦  «        }|�|j        ‰u r| j        | j        | j        fS |�|s|€| j        | j        | j        fS |€9‰ 	                    | j        | j        | j        dg| j
        z  ||| j        ¬¦  «        S ‰                     | j        | j        | j        ||| j        ¬¦  «        S | j        | j        | j        fS )Nr   ©Úis_symbolicút.stride must not be Nonec              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rI   rÏ   ©rV  Úszrã  s     €r6   ú	<genexpr>zVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>T  s+   øè è € Ð9Ð9¨B˜˜ B™œÐ9Ð9Ð9Ð9Ð9Ð9r8   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rI   rÏ   )rV  Úsdrã  s     €r6   rè  zVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>U  s+   øè è € Ð>Ð>¨r˜;˜; r™?œ?Ð>Ð>Ð>Ð>Ð>Ð>r8   F)rt  Úhint_overrides)rƒ  rã  ru   rR   rè   Úanyr»   rv   r½  Ú-_create_symbolic_sizes_strides_storage_offsetrÓ   rÝ   Ú'transfer_symbols_from_foreign_shape_env)r/   rm  rt  rè   Úhas_symbolicrã  r½  s        @€r6   Ú sym_sizes_strides_storage_offsetzCMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offsetE  s“  øø€ ð JÐIÐIÐIÐIÐIàŒxÐÝ$Ð%@ÑAÔAÐAàÐ$ØœK�	åÐ9Ð9Ð9Ð9°!´&Ð9Ñ9Ô9Ñ9Ô9ð 5ÝÐ>Ð>Ð>Ð>°Q´XÐ>Ñ>Ô>Ñ>Ô>ð5à"�{ 1Ô#3Ñ4Ô4ð ð
 Ð(¨YÔ-@ÀIÐ-MÐ-Mð œF A¤H¨aÔ.>Ð?Ð?àÐ)Ø(ð *à(Ð0àœF A¤H¨aÔ.>Ð?Ð?ØÐ&ð %×RÒRØœØœØÔ(Ø˜ !¤&Ñ(ØØ)9Ø'(Ô'>ð Sñ ô ð ð %×LÒLØœØœØÔ(ØØ)9Ø'(Ô'>ð Mñ ô ð ð œ ¤¨!Ô*:Ð;Ð;r8   útuple[IntLikeType, ...]c                ó,  •‡	— ‰
€| j         S ddlm} ddlmŠ	 | j        }t          ˆ	fd„| j         D ¦   «         ¦  «        }|�|j        ‰
u r| j         S |€|�|s| j         S t          j	        |  || j         ¦  «        d¬¦  «        } ‰|||¦  «        \  }}}|S )Nr   )Úmake_contiguous_strides_forrâ  c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rI   rÏ   ræ  s     €r6   rè  zFMetaConverter.meta_tensor.<locals>.sym_sparse_sizes.<locals>.<genexpr>‰  s+   øè è € Ð@Ð@°2˜{˜{¨2™œÐ@Ð@Ð@Ð@Ð@Ð@r8   )ru   rv   )
r»   Útorch._prims_commonró  rƒ  rã  rè   rì  r½  re  Úreplace)r/   rm  rt  ró  rè   rï  Ú$sparse_tensor_with_synthetic_stridesÚsizesÚ_rã  r½  rð  s            @€€r6   Úsym_sparse_sizesz3MetaConverter.meta_tensor.<locals>.sym_sparse_sizes|  sì   øø€ ð Ð Ø”v�àGÐGÐGÐGÐGÐGØIÐIÐIÐIÐIÐIàœˆIÝÐ@Ð@Ð@Ð@¸¼Ð@Ñ@Ô@Ñ@Ô@ˆLØÐ$¨Ô)<À	Ð)IÐ)IØ”v�ØÐ'ØÐ%¨,Ð%à”v�å3>Ô3FØØ2Ð2°1´6Ñ:Ô:Ø ð4ñ 4ô 4Ð0ð
 ;Ð:Ø4ØØ ñô ‰KˆE�1�að
 ˆLr8   Úinner_tÚ	inner_srcrf   c                ó`   •—  ‰| ||¦  «        \  }}}t          j        ||| j        d¬¦  «        S r¤  ©rJ   Úempty_stridedri   )rû  rü  rt  Úinner_sizesÚinner_stridesÚ_inner_storage_offsetrð  s         €r6   Úempty_createz/MetaConverter.meta_tensor.<locals>.empty_create�  sN   ø€ ð 1Ð0°¸)ÐEUÑVÔVñ	ØØØ%åÔ&ØØØ”mØð	ñ ô ð r8   r»  r¼  rÁ  útorch._guards.Source | Noner<   c           	     ó:  •— ddl m} | j        €t          d¦  «        ‚| j        €t          d¦  «        ‚|�|n| j        }|�|n| j        }|�/t          ||¦  «        st          dt	          |¦  «        › �¦  «        ‚|€t          d¦  «        ‚‰                     | ||‰	|‰|¦  «        }|j	        |k    r"t          d| j        › d|› d	|j	        › �¦  «        ‚|                     ¦   «         |k    r/t          d| j        › d
|› d	|                     ¦   «         › �¦  «        ‚|S )Nr   rÆ  ú%t.attrs must not be None for subclassrÈ  z.Expected SubclassSymbolicContext or None, got zsource must not be NonezExpected return value from z.__tensor_unflatten__() to have shape equal to z, but got: z/__tensor_unflatten__() to have stride equal to )
rƒ  rz  rê   rR   r’   r»   ru   r5   rÐ  rj   )
r/   r»  r¼  rt  rÁ  rz  Úsubr   r­   r½  s
          €€€r6   Úempty_create_subclassz8MetaConverter.meta_tensor.<locals>.empty_create_subclass±  sª  ø€ ð VÐUÐUÐUÐUÐUàŒwˆÝ$Ð%LÑMÔMÐMØŒvˆ~Ý$Ð%KÑLÔLÐLð (2Ð'=˜˜À1Ä6ˆJà+7Ð+C˜<˜<ÈÌˆLàÐ+µJØ Ð"9ñ5ô 5Ð+õ %Ø]ÅTÐJZÑE[ÔE[Ð]Ð]ñô ð ð ˆ~Ý$Ð%>Ñ?Ô?Ð?Ø×-Ò-ØààØØ ØØñ
ô 
ˆCð Œy˜JÒ&Ð&Ý$ðI°!´&ð Ið IØ&0ðIð IØ=@¼YðIð Iñô ð ð �zŠz‰|Œ|˜|Ò+Ð+Ý$ðO°!´&ð Oð OØ'3ðOð OØ@CÇ
Â
ÁÄðOð Oñô ð ð
 ˆJr8   r½  ú5torch.fx.experimental.symbolic_shapes.ShapeEnv | Noner   rÚ  ru  c                ó<  •— ddl m} ddlm}m}m} d }| j        r3| j        €t          d¦  «        ‚ ‰| j         ||d¦  «        ||¦  «        }|j	        g| j
        z  }	| j        r | j        €t          d¦  «        ‚i }
| j                             ¦   «         D ]T\  }}t          |t          ¦  «        st          dt!          |¦  «        › �¦  «        ‚ ‰| |||¦  «        ||¦  «        |
|<   ŒU ||	d g| j
        z  |
||¬¦  «        }n ||	d g| j
        z  |¬	¦  «        }|S )
Nr   rÄ  )Ú
DimDynamicry  rz  ú't.base must not be None for view tensorrz   r  zExpected attr to be str, got )r€  Úconstraint_sizesr„  Útensor_sourcer~  )r€  r  r~  )rÉ  rÅ  rƒ  r  ry  rz  rw   ry   rR   ÚDYNAMICrÓ   r$   rê   r`  r5   rR  r’   )r/   rÁ  r½  r   rÅ  r  ry  rz  r~  Út_dynamic_sizesr„  r  r  Út_symbolic_contextÚall_dynamic_symbolic_contexts                 €r6   r  z?MetaConverter.meta_tensor.<locals>.all_dynamic_symbolic_contextø  sË  ø€ ð 8Ð7Ð7Ð7Ð7Ð7ðð ð ð ð ð ð ð ð ð ð ð ð Œyð Ø”6�>Ý(Ð)RÑSÔSÐSØ$@Ð$@Ø”F˜J˜J v¨wÑ7Ô7¸ÀHñ%ô %Ð!ð
  *Ô1Ð2°Q´VÑ;ˆOØÔ.ð Ø”7�?Ý(Ð)PÑQÔQÐQð ð ð $%¤7§=¢=¡?¤?ð ð ‘K�D˜%Ý% d­CÑ0Ô0ð Ý,ØH½DÀ¹J¼JÐHÐHñô ð ð ,HÐ+GØ˜z˜z¨&°$Ñ7Ô7¸ÀHñ,ô ,�N 4Ñ(Ð(ð &=Ð%<Ø"1Ø&* V¨a¬f¡_Ø#1Ø"(Ø&7ð&ñ &ô &Ð"Ð"ð &>Ð%=Ø"1Ø&* V¨a¬f¡_Ø&7ð&ñ &ô &Ð"ð &Ð%r8   ry   c           	     ó>  •‡‡‡‡— t          ¦   «         5   ‰|‰¦  «        \  }}}|j        sgt          | ¦  «        sX ‰¦   «         5  ‰                     |                      |||¦  «        ¦  «        cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   ddlmŠ ddlmŠm} dˆˆˆˆfd„}i Š|j        r‚|j	        €t          d	¦  «        ‚|j        €t          d
¦  «        ‚ ‰|||¬¦  «        }|                     ¦   «         \  }	}
|	D ].}||j	        v r#t          ||¦  «        ‰|j	        |         j        <   Œ/‰‰fdˆˆˆˆfd„}|j        €t          d¦  «        ‚|j                             || ||¦  «        }t#          j         ||                     ¦   «         |¦  «        ¦  «         t#          j         ||                     ¦   «         |¦  «        ¦  «         t#          j         ||                     ¦   «         |¦  «        ¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )Nr   )ÚEphemeralSource)ry  Úsym_eqr³   r  r1   r.   c                óü   •‡— ddl mŠ ‰d uo/t          ‰‰¦  «        ot          ˆfd„‰j        D ¦   «         ¦  «        }|s‰€| S  ‰d¦  «        }‰                     | |d ¬¦  «        }‰                     || |¬¦  «        S )Nr   )r  c              3  ó*   •K  — | ]}|‰j         u V — Œd S rI   )ÚSTATIC)rV  Úxr  s     €r6   rè  z_MetaConverter.meta_tensor.<locals>.view_from_base.<locals>.symint_visitor_fn.<locals>.<genexpr>p  s?   øè è € ð  ð  à !ð  Ô!2Ð2ð ð  ð  ð  ð  ð  r8   r&  )Úpositive)ÚhintrÁ  )rƒ  r  r5   Úallr€  Úcreate_symbolÚcreate_symintnode)	r³   Úall_static_sizesÚ
sym_sourceÚsymbolr  r  ry  r½  rt  s	       @€€€€r6   r&  zLMetaConverter.meta_tensor.<locals>.view_from_base.<locals>.symint_visitor_fni  sØ   øø€ àPÐPÐPÐPÐPÐPð )°Ð4ð Ý&Ð'7Ð9QÑRÔRðåð  ð  ð  ð  à%5Ô%Cð ñ  ô  ñ ô ð %ð (ð !¨9Ð+<Ø ˜ð "1 Ð1DÑ!EÔ!E�Jà&×4Ò4°Q¸
ÈTÐ4ÑRÔR�FØ$×6Ò6Ø Q¨zð 7ñ ô ð r8   r  rÈ  ©r»  r¼  Ú	visited_trf   r½  r	  r   rÀ  c                ó  •— | €d S ‰
j                              | ¦  «        }‰	                     |¦  «        }|�|S ‰
j                              | ¦  «        } ‰d¦  «        }‰
                     |||| ‰||||¦  «        ¦  «        S )Nr(  )r’  r²   r–  r~   rÊ  )r#  r½  r   Ú
visited_idÚfake_visited_tÚvisited_descÚtemp_sourcer  r  Úreal_to_fake_mappingr­   s          €€€€r6   r(  zLMetaConverter.meta_tensor.<locals>.view_from_base.<locals>.tensor_visitor_fn¤  sª   ø€ ð !Ð(à#˜tð "&¤×!=Ò!=¸iÑ!HÔ!H�JØ%9×%=Ò%=¸jÑ%IÔ%I�NØ%Ð1Ø-Ð-à#'¤>×#AÒ#AÀ)Ñ#LÔ#L�Lð #2 /Ð2EÑ"FÔ"F�KØ×+Ò+Ø$Ø!Ø Ø#Ø4Ð4Ø(¨+°yÀ(ñô ñô ð r8   z,t.view_func must not be None for view replay)r³   r  r1   r.   )r#  rf   r½  r	  r   rÀ  r1   rf   )r    r$   r±  Ú
as_stridedrÉ  r  rƒ  ry  r  rê   rR   r’   rÎ   r\   r¤   ré   r,  rJ   Ú_checkr»   ru   rv   )ry   r/   r½  rø  Ústridesrv   r  r&  Úfake_trê   rù  r  r(  r  ry  r)  r  r   r  Úmaybe_suppressr­   rÁ  rð  rt  s     `          @@@€€€€€€€€r6   Úview_from_basez1MetaConverter.meta_tensor.<locals>.view_from_baseL  s”  øøøøø€ õ *Ñ+Ô+ð Oð Oà3SÐ3SØ�vñ4ô 4Ñ0�˜ ð Ô7ð
å9¸$Ñ?Ô?ð
ð (˜Ñ)Ô)ð ð Ø#×:Ò:Ø ŸOšO¨E°7¸NÑKÔKñ ô  ðð ð ð ñ ô ð ðOð Oð Oð Oñ Oô Oð Oð Oðð ð ð øøøð ð ð ð ð
 AÐ@Ð@Ð@Ð@Ð@ðð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð< (*Ð$ØÔ2ð Ø”w�Ý,Ð-TÑUÔUÐUð ”v�~Ý,Ð-SÑTÔTÐTð (=Ð'<Ø e¸'ð(ñ (ô (�Fð  &×8Ò8Ñ:Ô:‘H�E˜1Ø %ð ð ˜Ø 1¤7˜?˜?ÝELØ &¨ñFô FÐ0°´¸´Ô1AÑBøð 'ØGOð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ðV ”;Ð&Ý(Ð)WÑXÔXÐXð œ×*Ò*ØØà%Ø%ñô �õ ”˜V˜V F§K¢K¡M¤M°5Ñ9Ô9Ñ:Ô:Ð:Ý”˜V˜V F§M¢M¡O¤O°WÑ=Ô=Ñ>Ô>Ð>Ý”˜V˜V F×$9Ò$9Ñ$;Ô$;¸^ÑLÔLÑMÔMÐMØð_Oð Oð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oð Oð Os6   ”1HÁ*BÁ/HÂB	ÂHÂB	ÂE5HÈHÈHéþÿÿÿzt.sparse_dim must not be Nonezt.dense_dim must not be Nonec                 ó<  •— t           j        j                             ‰j        ‰j        ‰ t          j        ‰j        dft           j        d¬¦  «        t          j        dg‰ ‰j        d …         ¢R ‰j        d¬¦  «        ‰j        t           j	        d‰j
        ¬¦	  «	        S )Nr   r¥  r¦  )ri   rp   rÚ   rs   )rJ   ÚopsÚatenÚ(_sparse_coo_tensor_with_dims_and_tensorsrr   rq   r§  Úint64ri   r‚   rs   )Úsparse_sizer/   s   €€r6   rÃ   z+MetaConverter.meta_tensor.<locals>.<lambda>ô  s    ø€ ¥¤	¤× WÒ WØœLØœKØ'Ý!œKØ!"¤¨qÐ 1Ý&+¤kØ'-ðñ ô õ
 "œKØ!"Ð A [°´°°Ô%@Ð AÐ AØ&'¤gØ'-ðñ ô ð
 #$¤'Ý#(Ô#3Ø#)Ø)*¬ð# !Xñ !ô !€ r8   ú.t.data must not be None when copy_data is TruezExpected r to be a FakeTensorz)the callback you passed in doesn't detachTz5t.sparse_dim must not be None for sparse block layoutz4t.dense_dim must not be None for sparse block layoutz1t.values must not be None for sparse block layouté   rÏ   z9t.crow_indices must not be None for sparse csr/bsr layoutz9t.ccol_indices must not be None for sparse csc/bsc layoutc            
     ó„   •— t           j        j                             d‰j        ‰j        ‰ ‰‰j        ‰j        d¬¦  «        S )Nr   r¥  )rp   ri   rÚ   )rJ   r2  r3  Ú#_sparse_compressed_tensor_with_dimsrq   rj   rp   ri   )Ú	blocksizeÚindex_dtyper/   s   €€€r6   rÃ   z+MetaConverter.meta_tensor.<locals>.<lambda>I  sA   ø€ ¥¤	¤× RÒ RØØœKØœGØ%Ø'Ø#$¤8Ø"#¤'Ø#)ð !Sñ 	!ô 	!€ r8   )Úunimplementedz;attempted to apply meta conversion to strided nested tensorzThis is not supported.)Úgb_typeÚcontextÚexplanationÚhintsc                 ó>   •— t          j        ‰ ‰‰j        d¬¦  «        S r¤  rþ  ©rø  r,  r/   s   €€€r6   rÃ   z+MetaConverter.meta_tensor.<locals>.<lambda>~  s$   ø€ ¥Ô 3Ø! 7°!´'À&ð!ñ !ô !€ r8   z.t.size must not be None when copy_data is Truez0t.stride must not be None when copy_data is Truer¦  z;attempted to apply meta conversion to view functorch tensorc                ó  •‡ ‡‡— ‰ j         rÇ‰ j        €t          d¦  «        ‚‰ j        €t          d¦  «        ‚‰ j        €t          d¦  «        ‚ ‰
‰ j        ¦  «        }‰ j        }‰ j        }t
          j        j                             ‰ j	        ¦  «        5  ‰ 
                    t          |||¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   �n­‰ j        �r>‰ j        €t          d¦  «        ‚‰ j        €t          d¦  «        ‚t
          j        j        } |¦   «         5   ‰
‰ j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰ j        }|‰	k    r|}nyt
          j        j                             ‰ j	        ¦  «        5  ‰ 
                    t
          j        j                             ||¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰ j        }‰ j        rt%          |¦  «        r	d|_        �n‡‰ j        r|s‰                     |¦  «        }�ng‰ j        rs‰ j        €t          d¦  «        ‚‰ j        €t          d¦  «        ‚‰                     ‰ j        ‰‰‰‰¦  «        }‰ 
                    t/          |‰ j        ¦  «        ¦  «        }ní‰ j        €t          d	¦  «        ‚‰ j        Š‰ j        Š ‰ˆˆˆ fd
„¦  «        }‰j        r²t          j        ¦   «         5  t9          ¦   «         5  t          j        ‰ j        ‰ j        ‰ j        ‰ j        ¬¦  «        |_         ‰ j!        €t          d¦  «        ‚tE          |j         ‰ j!        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |S )Nz.t.unwrapped must not be None for batchedtensorz*t.level must not be None for batchedtensorz)t.bdim must not be None for batchedtensorz3t.unwrapped must not be None for gradtrackingtensorz/t.level must not be None for gradtrackingtensorTú2t.unwrapped must not be None for functional tensorz6t.current_level must not be None for functional tensorrä  c                 ó>   •— t          j        ‰ ‰‰j        d¬¦  «        S r¤  rþ  rC  s   €€€r6   rÃ   zDMetaConverter.meta_tensor.<locals>._to_fake_tensor.<locals>.<lambda>  s'   ø€ ­Ô(;Ø$)Ø$+Ø*+¬'Ø+1ð	)"ñ )"ô )"€ r8   r¦  r7  )#r   rå   rR   ræ   rç   rJ   r÷   rø   Ú%temporarily_restore_interpreter_stackrí   r±  r   r   rõ   Ú_DisableFuncTorchÚ_wrap_for_gradrC   rk   rF   rº  rÙ   rï   rÊ  r   ru   r»   r    r©  r#   rÿ  ri   rÚ   Úreal_tensorr¼   rp  )r/   ÚftÚlvlrç   rÂ   Údisable_functorchrC   rø  r,  ÚGRAD_TENSOR_SENTINEL_VALUEÚ_to_fake_tensorr   r­   r½  rÁ  rt  s   `      @@€€€€€€€r6   rO  z2MetaConverter.meta_tensor.<locals>._to_fake_tensor¬  s_  øøøø€ ð Ô-ð iFØ œ{Ð2Ý&4Ø$Tñ'"ô '"ð !"ð  !œw˜Ý&4Ø$Pñ'"ô '"ð !"ð  !œv˜~Ý&4Ø$Oñ'"ô '"ð !"ð "1 °´Ñ!=Ô!=˜BØ"#¤'˜CØ#$¤6˜Dõ
 "'Ô!1Ô!=×!cÒ!cØ !Ô 1ñ"ô "ð "ð "ð %)×$?Ò$?Ý$2°2°t¸SÑ$AÔ$Añ%"ô %" ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ùð Ô4ñ OFØ œ{Ð2Ý&4Ø$Yñ'"ô '"ð !"ð  !œw˜Ý&4Ø$Uñ'"ô '"ð !"õ 16´Ô0JÐ-Ø!2Ð!2Ñ!4Ô!4ð Bð BØ%4 _°Q´[Ñ%AÔ%A ðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bà"#¤'˜CØ"Ð&@Ò@Ð@Ø$&  å%*Ô%5Ô%A×%gÒ%gØ$%Ô$5ñ&"ô &"ð !&ð !&ð )-×(CÒ(CÝ(-¬Ô(;×(JÒ(JÈ2ÈsÑ(SÔ(Sñ)&ô )& Að!&ð !&ð !&ñ !&ô !&ð !&ð !&ð !&ð !&ð !&ð !&øøøð !&ð !&ð !&ð !&ð '(¤i˜GØ œð <µ<À±?´?ð <Ø26 ¤¡Ø!"¤ð <¸ð <Ø$(×$8Ò$8¸Ñ$;Ô$; ùØœ_ð 3FØ œ{Ð2Ý&4Ø$Xñ'"ô '"ð !"ð  !œÐ6Ý&4Ø$\ñ'"ô '"ð !"ð "&×!1Ò!1Ø !¤Ø )Ø (ð
 !'Ø 0ñ
"ô 
"˜Bð !%× ;Ò ;Ý 7¸¸A¼OÑ LÔ Lñ!ô !˜A˜Að
  !œxÐ/Ý&4Ð5PÑ&QÔ&QÐ Qà$%¤F˜EØ&'¤h˜GØ ( ð!"ð !"ð !"ð !"ð !"ð !"ñ!ô !˜Að  $œ~ð FÝ%*¤]¡_¤_ð !Fð !Fµk±m´mð !Fð !FÝ49Ô4GØ()¬Ø()¬Ø./¬gØ/0¬xð	5&ñ 5&ô 5& A¤Mð ()¤v ~Ý.<Ø,\ñ/*ô /*ð )*õ %/¨q¬}¸a¼fÑ$EÔ$EÐ$Eð!Fð !Fð !Fñ !Fô !Fð !Fð !Fð !Fð !Fð !Fð !Føøøð !Fð !Fð !Fð !Fð !Fð !Fð !Fñ !Fô !Fð !Fð !Fð !Fð !Fð !Fð !Føøøð !Fð !Fð !Fð !Fð  !˜sm   Â%CÃC
ÃC
Ä"D?Ä?EÅEÆ9GÇGÇGË!M5Ë0A"MÍM5ÍM"	Í"M5Í%M"	Í&M5Í5M9Í<M9rË   rE  z0Expected non-functorch wrapped functional tensorr  )ry  z'Expected StatelessSymbolicContext, got rz   Úcomplex_dtyperK  Ú
real_dtyperA   c                óZ   — t          j        | ¦  «        ot          j        | ¦  «        |k    S rI   )ÚutilsÚis_complex_dtypeÚcorresponding_real_dtype)rP  rQ  s     r6   Ú	is_c_of_rz,MetaConverter.meta_tensor.<locals>.is_c_of_r]  s2   € õ "Ô2°=ÑAÔAð *Ý %Ô >¸}Ñ MÔ MØ)ò!*ðr8   Fz.t.requires_grad must be True for non-leaf viewz0t.creation_meta must not be None for view tensorr"  c                 ó>   •— t          j        ‰ ‰‰j        d¬¦  «        S r¤  rþ  rC  s   €€€r6   rÃ   z+MetaConverter.meta_tensor.<locals>.<lambda>Ù  s'   ø€ ¥EÔ$7Ø %Ø 'Ø&'¤gØ'-ð	%ñ %ô %€ r8   zt.storage must not be None)Úguard_or_falser  z5r.real_tensor must not be None when copy_data is True)r   )Úin_kernel_invocation_managerr	  rÄ  rO   r`   )rX  z,Expected r to be a FakeTensor for nested int)Únt_tensor_id)r/   r:   rm  rÂ  rt  r¿  r1   rà  )r/   r:   rm  rÂ  rt  r¿  r1   rñ  )rû  r:   rü  rÂ  rt  r¿  r1   rf   )r/   r:   r»  rñ  r¼  rñ  rt  r¿  rÁ  r  r1   r<   )
r/   r:   rÁ  rÂ  r½  r	  r   rÚ  r1   ru  )ry   r<   r/   r:   r½  r	  r1   r<   ©r/   r:   r1   r<   )rP  rK  rQ  rK  r1   rA   )€rÎ  rÏ  rÚ   rÉ  rÞ  r  r�  rJ   rõ   Ú_dispatch_tls_local_exclude_setÚhasÚDispatchKeyÚPythonrR   r‘  Ú
contextlibÚnullcontextÚsuppress_guardsr—  Úinference_moderm   rl   rC   rr   rq   r    r¼   r©  r#   r7   rs  rJ  rF   Ú_coalesced_rA   rs   rk   r±  rr  Úenable_gradrŠ   rp   rˆ   r‰   rã   rÓ   rj   r†   rß   ri   rá   rº  r×   r$   Útorch._dynamo.excr=  rR  rÔ   r»   ru   rÿ  rp  rÕ   rw   rÙ   r’   rå   rÊ  Ú_to_functional_tensorÚ_mirror_autograd_meta_torî   ry   rƒ  ry  r5   r~  Úignore_fresh_unbacked_symbolsÚ_dynamorÁ  rÅ  Ú&_dispatch_tls_is_dispatch_key_excludedÚADInplaceOrViewÚ'_dispatch_tls_set_dispatch_key_excludedÚview_as_realÚview_as_complexÚviewr    rä   r  Ú_set_creation_metaÚfake_devicer   r   r   ÚNotImplementedrÒ   rX  r  r¤   rŒ  rv   rŸ  rò   rš   r¬  r4   rY  r	  Úset_r˜   rO   r†  Ú	_set_conjrn   Ú_set_negro   ræ   r   rX   Úresize_rÖ   Ú	_is_paramrØ   rè   Úcreate_symbolic_nested_intÚnested_int_memor›  r™  )0r­   r/   r½  rÙ  rÁ  rt  rÞ  Úmsgrú  r  r/  rC   rÂ   Ú	batch_dimr=  Ú_storage_offsetrå   Úbase_symbolic_contextry  ry   rV  Úold_excludeÚmidrv   r³   rX  r  r«  Úmaybe_fake_mgrrY  r	  Úmb_fake_moderÅ  Úgrad_sourceÚgrad_symbolic_contextrb   rN  rO  r  r;  r   r  r<  r.  rø  r6  r,  rð  s0   ``` ``                              @@@@@@@@@@@@r6   rÊ  zMetaConverter.meta_tensor  s›  øøøøøøøøøøøøøøøøø€ õ <EÔ;LØ˜aœhð<
ñ <
ô <
ˆð ˆ>Ø;Ð;Ð;Ð;Ð;Ð;ð $�^ØE­c°$Ô2BÑ.CÔ.CÐEÐEñô ˆFð
Rð 	õ Œ8×3Ò3Ñ5Ô5×9Ò9½%¼(Ô:NÔ:UÑVÔVð 	&Ý  Ñ%Ô%Ð%ØˆŒ˜ÑˆŒõ4 -7Ô,BˆØÐ Ø&Ô6ˆNð &ð	5	<ð 5	<ð 5	<ð 5	<ð 5	<ð 5	<ð 5	<ðv &ð		ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðJ &ð		ð 	ð 	ð 	ð 	ð 	ð 	ð2 &Ø28ðA	ð A	ð A	ð A	ð A	ð A	ð A	ð A	ð A	ðN5	&ð 5	&ð 5	&ð 5	&ð 5	&ð 5	&ðp ð	U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ð U	ðn ×Ò Ñ"Ô"Ñ*Ø)+Ð&åÔ% a¤nÑ5Ô5ð Y
/ð Y
/Ø”;ñ y	&Øœi�Gà"2Ð"2°1°fÐ>NÑ"OÔ"O�KØ”|Ð+Ý,Ð-LÑMÔMÐMØ”{Ð*Ý,Ð-KÑLÔLÐLð
 !˜ðð ð ð ð ñô �Að* ”~ð 
@àœ6˜>Ý"0Ø Pñ#ô #ð õ #œ]™_œ_ð @ð @­k©m¬mð @ð @Ý#2°1Ñ#5Ô#5ð VÝ&4Ð5TÑ&UÔ&UÐ Uå,7¸¼Ñ,?Ô,?˜AœMð	@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ
 (¨™?œ?ð Ý,ØGñô ð ð —M’M¥$ q¤~Ñ"6Ô"6Ñ7Ô7Ð7Ø”ð /Ø*.˜œØ”ð @¨wð @ð
 !×7Ò7¸¿º¹	¼	ÑBÔB˜Ý"Ô.Ñ0Ô0ð @ð @ØŸMšM­$¨q¬~Ñ*>Ô*>Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ùå0°´Ñ:Ô:ñ y&Øœi�Gà”x¥EÔ$4µeÔ6FÐ#GÐGÐGØœ<Ð/Ý"0Ø Wñ#ô #ð ð œ;Ð.Ý"0Ø Vñ#ô #ð ð œ8Ð+Ý"0Ø Sñ#ô #ð ð %&¤F¨Q¬\Ñ$9¸A¼KÑ$G˜	Ø$%¤H¤N°9¸q±=À9ÈqÁ=Ð3PÔ$Q˜	˜	à$&˜	Ø”x¥EÔ$4µeÔ6FÐ#GÐGÐGØœ>Ð1Ý"0Ø [ñ#ô #ð ð '(¤nÔ&:˜˜àœ>Ð1Ý"0Ø [ñ#ô #ð ð '(¤nÔ&:˜à ˜ð	ð 	ð 	ð 	ð 	ð 	ñô �Að ”~ð 
@àœ6˜>Ý"0Ø Pñ#ô #ð õ #œ]™_œ_ð @ð @­k©m¬mð @ð @Ý#2°1Ñ#5Ô#5ð VÝ&4Ð5TÑ&UÔ&UÐ Uå,7¸¼Ñ,?Ô,?˜AœMð	@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ
 (¨™?œ?ð Ý,ØGñô ð ð ”ð /Ø*.˜œØ”ð 4¨wð 4Ø ×0Ò0°Ñ3Ô3˜ùØ”[ð y&¨Ô)Hð y&ð @Ð?Ð?Ð?Ð?Ð?ð "�MØ ]Ý # A¡¤Ø$<Ø ð	ñ ô ð ñ ð ”[ñ l&Øœi�Gð
 9Ð8¸¸FÑCÔCñ	ØØØ'ð !˜ðð ð ð ð ð ñô �Að
 ”~ð >Ý"œ]™_œ_ð >ð >­k©m¬mð >ð >Ø œv˜~Ý&4Ø$Tñ'"ô '"ð !"ð  !œxÐ/Ý&4Ø$Vñ'"ô '"ð !"õ $3°1Ñ#5Ô#5ð VÝ&4Ð5TÑ&UÔ&UÐ Uå,1Ô,?Ø !¤¨¬¸¼ÈÌð-ñ -ô -˜AœMð  !œv˜~Ý&4Ø$Tñ'"ô '"ð !"õ ' q¤}°a´fÑ=Ô=Ð=ð'>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >õ( (¨™?œ?ð Ý,ØGñô ð ð ”ð /Ø*.˜œØ”ð 4¨wð 4Ø ×0Ò0°Ñ3Ô3˜ùØÔ+ð A&Ø”yð ØCÐCÐCÐCÐCÐCà%˜Ø$aÝ$'¨¡F¤FØ(@Ø"$ð	ñ ô ð ðo!ð o!ð o!ð o!ð o!ð o!ð o!ð o!ð o!ð o!ð o!ð o!ðb (˜¨Ñ*Ô*�A‘Aà”_ð A&¨¬¬¸oÐ)MÐ)MØ”{Ð*Ý,ØPñô ð ð Ô-ð Ý,ØNñô ð ð !%× 0Ò 0ØœØ!Ø ØØ(ñ!ô !�Ið ×3Ò3ÝÔ3°IÑ>Ô>ñô �Aõ Ô2°1Ô3GÈÑKÔKÐKÑKà”Yñ l&ð ”v�~Ý,Ð-VÑWÔWÐWà,0Ð)Ø ð WÐ%5Ð%Aðð ð ð ð ð õ  *Ð*:Ð<TÑUÔUð Ý"0Ø bÍ$ÐO_ÑJ`ÔJ`Ð bÐ bñ#ô #ð ð ,Ô=ÐIØ4DÔ4VÐ1ð %ð6˜	×?Ò?ÑAÔAÐAå'Ô3Ñ5Ô5ðð ð
  $×/Ò/ØœFØ%Ø$Ý!œMÔ0×;Ò;¸FÀGÑLÔLØ1ñ ô  ˜ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ð õ #(¤(×"QÒ"QÝœÔ,Ô<ñ#ô #�Kõ ”H×DÒDÝœÔ,Ô<¸eñô ð ðKØœ:¨¬Ò0Ð0Ø Ø&˜Y t¤z°1´7Ñ;Ô;ð 
SØ#'×#>Ò#>½uÔ?QÐRVÑ?WÔ?WÑ#XÔ#X˜D˜DØ&˜Y q¤w°´
Ñ;Ô;ð SØ#'×#>Ò#>Ý %Ô 5°dÑ ;Ô ;ñ$ô $˜D˜Dð $(×#>Ò#>¸t¿yºyÈÌÑ?QÔ?QÑ#RÔ#R˜Dð& œ9ð ?õ "'¤¡¤ð <ð <Ø$2 N°4¸Ñ$;Ô$; ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð /0¬o˜AœO™Oà œvÔ3°q´ÒFÐFå%*Ô%6Ñ%8Ô%8ð !@ð !@Ø(6¨°t¸QÑ(?Ô(? Að!@ð !@ð !@ñ !@ô !@ð !@ð !@ð !@ð !@ð !@ð !@øøøð !@ð !@ð !@ð !@øð ()¤ð !&Ý*8Ø(Xñ+&ô +&ð %&õ &+¤]¡_¤_ð !&ð !&Õ6NÑ6PÔ6Pð !&ð !&Ø*.×*EÒ*EØ(,¯	ª	°$´*Ñ(=Ô(=ñ+&ô +& Cð!&ð !&ð !&ñ !&ô !&ð !&ð !&ð !&ð !&ð !&ð !&øøøð !&ð !&ð !&ð !&ð !&ð !&ð !&ñ !&ô !&ð !&ð !&ð !&ð !&ð !&ð !&øøøð !&ð !&ð !&ð !&ð 56´O Ô 1Ý%*Ô%6Ñ%8Ô%8ð !?ð !?Ø(6¨°s¸AÑ(>Ô(> Að!?ð !?ð !?ñ !?ô !?ð !?ð !?ð !?ð !?ð !?ð !?øøøð !?ð !?ð !?ð !?ð
 œ?Ð2Ý"0Ø Rñ#ô #ð õ œÔ*×=Ò=¸aÀÄÑQÔQÐQåœ×HÒHÝ!œHÔ0Ô@À+ñô ð ð ø�œ×HÒHÝ!œHÔ0Ô@À+ñô ð ð øøøð %&¤H�A”M‘Mð  œi�Gð Ô/ð.Ø34Ô3Jð.àÔ2ð.ð Ô2ð.õ
  .ðGY
/ð Y
/ð Y
/ð Y
/ñ Y
/ô Y
/ð Y
/ð Y
/ðR 9Ð8¸¸FÐDTÑUÔUñ	ØØØ&ð
 Ô6ð BØ1Ð1Ø¨%¸gðñ ô ˜˜ð %˜Hðð ð ð ð ð ñô ˜ð  œ>ð BÝ!&¤¡¤ð Bð Bµ+±-´-ð Bð BØ#$¤6 >Ý*8Ø(Xñ+&ô +&ð %&ð $%¤8Ð#3Ý*8Ø(Zñ+&ô +&ð %&õ (7°qÑ'9Ô'9ð !&Ý*8Ø(Gñ+&ô +&ð %&õ 16Ô0CØ$%¤F¨A¬H¸A¼GÈAÌHð1"ñ 1"ô 1" ¤õ !+¨1¬=¸!¼&Ñ AÔ AÐ Að#Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bõ& (¨™?œ?ð Ý,ØGñô ð ð ”ð 8Ø*+¬/˜œØ&ð 8ð !%× 4Ò 4°QÑ 7Ô 7˜Aàœ	�AØ�yÝ,Ð-IÑJÔJÐJðð ð ð ð ð ð ð ð
 ”t 4Ô#4Ð4Ð4Øœð 5ð +˜N¨6¨6°!·(²(±*´*¸gÑ+FÔ+FÑGÔGð 5ð !/ ¨q×/?Ò/?Ñ/AÔ/AÀ^Ò/SÑ TÔ Tð	 5ð ×-Ò-¨a°×1BÒ1BÑ1DÔ1DÑEÔEÐEØœ>ð 	Ý#2°1Ñ#5Ô#5ð VÝ&4Ð5TÑ&UÔ&UÐ UØ œ}Ð4Ý&4Ø$[ñ'"ô '"ð !"õ .Ø !× 1Ò 1Ñ 3Ô 3°Q´]×5RÒ5RÑ5TÔ5Tñô ð ùð #×/Ò/°¸HÐ/ÑEÔE˜õ, 'Ô2Ñ4Ô4ð 'ðð ð ð ð ð ð ð ð
 (;Ð':¸1Ñ'=Ô'=˜Ø'Ð3Ø-IÐ-IÈ,Ñ-WÔ-W˜NÝ"œ]™_œ_ð &ð &¨n¨nÑ.>Ô.>ð &ð &Ø!/ð Lð LØ !§¢ s¨N¸EÀ7Ñ KÔ KÐ KðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Là#œ~ð &Ý%*¤]¡_¤_ð !&ð !&µk±m´mð !&ð !&Ý+:¸1Ñ+=Ô+=ð %*Ý.<Ø,Kñ/*ô /*ð )*ð ()¤}Ð'<Ý.<Ø,cñ/*ô /*ð )*ð ()¤xÐ'7Ý.<Ø,^ñ/*ô /*ð )*ð %&¤M×$6Ò$6Ý(9¸#Ñ(>Ô(>Ø()Ô(8Ø()¬Ø()¬ñ	%&ô %&ð %&ð!&ð !&ð !&ñ !&ô !&ð !&ð !&ð !&ð !&ð !&ð !&øøøð !&ð !&ð !&ð !&ð !&ð !&ð !&ñ !&ô !&ð !&ð !&ð !&ð !&ð !&ð !&øøøð !&ð !&ð !&ð !&ð	&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð0 ”6Ð%Ø?Ð?Ð?Ð?Ð?Ð?à", *¨V°VÑ"<Ô"<�KØ,<Ð)ð !Ð,Ð1AÐ1MÝ7Ð8HÈ!Ì&ÑQÔQð Ø4PÐ4PØ !¤¨°YÀñ5ô 5Ð1ð
 "×-Ò-ØœØ!Ø Ø#Ø-ñô �A”Fõ ”×"Ò" 1 a¤iÑ0Ô0Ð0å”×!Ò! ! Q¤XÑ.Ô.Ð.ðsY
/ð Y
/ð Y
/ñ Y
/ô Y
/ð Y
/ð Y
/ð Y
/ð Y
/ð Y
/ð Y
/øøøð Y
/ð Y
/ð Y
/ð Y
/ðx Ô'ÐQ¨A¬GÐ7QÒ,Qð õ �y¨!¨Q¸dÈiÐXÑXÔXÐXð MÐLÐLÐLÐLÐLàŒyÐ$¨¨¸¼	¼È!Ò8KÑ)LÔ)LÐ$à×!Ò!Ñ#Ô#×+Ò+¨AÑ.Ô.Ð.àŒ~ð #à"�”ð Œ|Ð'å& qÑ)Ô)ð YÝ(Ð)WÑXÔXÐXà$%¤K×$JÒ$JØ!"¤ð %Kñ %ô %�Ô!ð
 × Ò   AÑ&Ô&Ð&à×,Ò,¨QÑ/Ô/Ð/sW  Ä:BADÇH,Ç8HÈ	H,ÈHÈH,ÈHÈH,È ADÈ,H0	È0ADÈ3H0	È4BADË(LË5ADÌL	ÌADÌL	Ì	EADÑ#SÑ28R6Ò*SÒ6R:Ò:SÒ=R:Ò>SÓADÓS	ÓADÓS	ÓC
ADÖY=Ö.B,Y&ÙY=Ù&Y*Ù*Y=Ù-Y*Ù.Y=Ù1ADÙ=Z	ÚADÚZ	ÚG
ADáAbâADâb!	â!ADâ$b!	â%A.ADäCn3ç(hç5n3èh	èn3èh	è	9n3éién3éi	én3é"i	é#-n3êk0ê.këk0ëkëk0ë kë!k0ë$n3ë0k4	ë4n3ë7k4	ë8"n3ìl3ì'n3ì3l7	ì7n3ì:l7	ì;An3í>5ADî36o)ï):ADð0AADòu	òBt2ô&u	ô2t6ô6u	ô9t6ô:u	ô=ADõ	u	õADõu	õGADüAAüA@9ü"}	ü;A@9ý}ýA@9ý}ýA@9ý,A@"	ý;BA@ÿ?A@"	Á@A@Á@A@"	Á@A@Á@A@"	Á@A@9Á@"A@&Á@&A@9Á@)A@&Á@*A@9Á@-AAÁ@9A@=Á@=AAÁA A@=ÁAAAÁAADÁAAA	ÁAADÁAAA	ÁAB7ADÁDADÁD"ADT)r   rÁ  rt  r¸   ú$_MetaTensorCallback[_TensorT] | Noner¸   c               ó\  ‡ ‡‡— |€‰ j         }n|}t          |t          j        ¦  «        rf|j        j        dk    s.|j        s'|                     ¦   «         r*|j        �#|j        j	        r‰ xj
        dz  c_
        t          S ‰ xj        dz  c_        n8t          j                             |¦  «        r‰ xj
        dz  c_
        t          S |S ‰€d}‰ j                             ||¬¦  «        Š|r'‰€t#          d¦  «        ‚t%          dˆ ˆˆfd„¬¦  «         t'          j        ¦   «         5 }|                     t          j        j                             ¦   «         ¦  «         t3          ¦   «         }	|	�6|                     t          j        j                             ¦   «         ¦  «         ‰                      ‰||‰|¦  «        }
d d d ¦  «         n# 1 swxY w Y   t          |¦  «        t          j        j        u rd	|
_         tC          |d
d¦  «        r#d	|
_"        tG          |d¦  «        r|j$        |
_$        |
S )NrÍ   r¢   Fr·   z*source must not be None when trace is TrueÚdescribe_sourcec                 ó8   •— ‰ j         j        ‰j        ‰j        dœS )N)r  r¤   rÁ  )r’  r¤   rb  )r­   rÁ  Út_descs   €€€r6   rÃ   z(MetaConverter.__call__.<locals>.<lambda>á  s!   ø€ Ø$(¤NÔ$5Ø œ)Ø$œkð%ð %€ r8   rÅ   TÚ
_is_bufferÚ
persistent)%r´  r5   rJ   r|   rÚ   r’   Úis_quantizedrx   rz   rl   r�  rs  rŽ  Ú	overridesÚis_tensor_liker’  r~   rR   r!   r`  Ú	ExitStackÚenter_contextÚ	_dispatchÚpythonÚsuspend_functionalizationr   r÷   rø   rù   rÊ  r  r  rx  r\   rŠ  rú   r‹  )r­   r/   r½  r   rÁ  rt  r¸   rÙ  Ú
exit_stackÚstrÂ   r‰  s   `   `      @r6   r@  zMetaConverter.__call__¢  s”  øøø€ ð ÐØÔ/ˆIˆIà ˆIõ �a�œÑ&Ô&ð 	ð ”” Ò'Ð'ð ”ð (ð —’‘”ð (ð #$¤'Ð"5¸!¼'Ô:KÐ"5à�	”	˜Q‘�	”	å%Ð%à�”˜A‘�”�ÝŒ_×+Ò+¨AÑ.Ô.ð 	ØˆIŒI˜‰NˆIŒIå!Ð!ð ˆHàˆ>ØˆEð ”×/Ò/°¸Ð/Ñ?Ô?ˆàð 
	Øˆ~Ý$Ð%QÑRÔRÐRÝØ!ðð ð ð ð ð ðñ ô ð õ Ô!Ñ#Ô#ð 	 zØ×$Ò$¥U¤_Ô%;×%UÒ%UÑ%WÔ%WÑXÔXÐXÝ'Ñ)Ô)ˆBØˆ~Ø×(Ò(ÝÔ$Ô0×TÒTÑVÔVñô ð ð × Ò ØØØØØ ñô ˆAð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ  �‰7Œ7•e”hÔ(Ð(Ð(ð ˆAŒKõ �1�l EÑ*Ô*ð 	,àˆAŒLÝ�q˜,Ñ'Ô'ð ,à œ|�”ð ˆs   Ä$BGÇG
ÇG
r  )r1   rA   )r/   r:   r1   rO  r[  )r/   r:   rS  r<   r1   rV   )r³   r¹   r1   r  )r³   r¹   rS  r”   r1   rV   )r³   r¹   r   r¡  r1   r”   )r/   rf   r1   r<   rI   )r/   r=  rÚ   r²  r1   r<   )r/   r<   r1   r<   )r/   r:   r»  rM  r¼  rM  r½  r¾  rt  r¿  r   rÀ  rÁ  rÂ  r1   r<   )r/   r:   r½  r¾  rÙ  rÚ  rÁ  rÛ  rt  rÜ  r1   r<   )r/   rf   r½  r¾  r   r…  rÁ  rÛ  rt  rÜ  r¸   rA   r1   r<   )r  r  r  r®   r”  r—  r™  r›  r�  rŸ  r¬  Úclassmethodr±  r´  rº  rÐ  rÊ  r@  rÏ   r8   r6   rˆ  rˆ  i  s¤  € € € € € Ø,1ð Bð Bð Bð Bð Bð Bð*/ð /ð /ð /ð0ð 0ð 0ð 0ðð ð ð ð#ð #ð #ð #ð1ð 1ð 1ð 1ð$ð $ð $ð $ðð ð ð ð2 ð(ð (ð (ñ „[ð(ð ð -1ð/ð /ð /ð /ñ „[ð/ð ð*ð *ð *ñ „[ð*ðA
ð A
ð A
ð A
ðRT0ð T0ð T0ð T0ðr$ &*ðgð
 :>Ø $Ø37ð ðgð gð gð gð gð gð gð gr8   rˆ  )r/   r0   r1   r2   )r/   r@   r1   rA   )r/   r9   r1   rG   )r/   r9   r1   r9   )rT   r;   rU   r;   r1   rV   )r1   rY   )rX   rc   rd   r@   re   rf   ra   rA   rb   rA   r1   rV   )r/   r0   r1   r€   )rp   r„   r1   rA   )rŽ   r�   r�   r0   r1   r;   )ry   r”   r1   r”   )ry   r”   r—   r”   r1   rV   )rl  rf   rm  rO  r1   rV   )rm  rf   r1   rO  )rt  ru  rv  rw  r1   rA   )pÚ
__future__r   r`  re  rÎ  Ú	threadingr®  rŠ  Úabcr   r   r   r   r   r	   r
   r   r   r   r   r   Útyping_extensionsr   r   r   r   rJ   Útorch._C._autogradr   Útorch._C._functorchr   r   r   r   r   r   r   r   r   r   r   Útorch._dispatch.pythonr    Útorch._loggingr!   Útorch._opaque_baser"   Útorch.utils._mode_utilsr#   Útorch.utils._python_dispatchr$   Útorch.utils.weakr%   Úcollections.abcr&   r'   r(   Útorch._guardsr)   r4   r*   r+   rƒ  r,   r-   Útorch.typesr.   r7   r  ÚDimListr|   r9   r;   r<   r>   rF   rP   rS   rX   Úlocalr]   r[   r_   r   rƒ   rŠ   rt   r�   r“   r˜   rš   r  r›   rœ   r�   r£   r}   r¹   rý   r/  r0  r;  rC  rF  rÿ   rp  rs  r†  rˆ  rõ  Ú_prims_commonrS  rÏ   r8   r6   ú<module>r©     s~  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø !Ð !Ð !Ð !Ð !Ð !ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð BÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aà €€€Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ø +Ð +Ð +Ð +Ð +Ð +Ø )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø FÐ FÐ FÐ FÐ FÐ FØ 0Ð 0Ð 0Ð 0Ð 0Ð 0ð ð (Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3à0Ð0Ð0Ð0Ð0Ð0Ø$Ð$Ð$Ð$Ð$Ð$ØHÐHÐHÐHÐHÐHÐHÐHð
 PÐOÐOÐOÐOÐOÐOÐOØ'Ð'Ð'Ð'Ð'Ð'ð%ð %ð %ð %ð €Øˆw�~Ð'<¸e¼lÑKÔK€Ø€WˆT�]„]€Øˆ7�: U¤\Ð2Ñ2Ô2€Øˆw�~¨U¬\ÀTÐJÑJÔJ€ðð ð ð ðð ð ð ðð ð ð ð,ð ,ð ,ð ,ð
 €i„oÑÔ€ð #€Ô ð ð+ð +ð +ñ „ð+ð  Øð;ð ;ð ;ð ;ð ;ð ;ð~Hð Hð Hð Hðð ð ð ðQð Qð Qð Qð
7ð 7ð 7ð 7ðð ð ð ðð ð ð ð%ð %ð %ð %ð �˜¨Ñ-Ô-€Øˆw�~ sÑ+Ô+€ð ˆw�~ sÑ+Ô+€Ø �L ‘O”OÐ ðcð cð cð cð cñ cô cð cðL	 €�$ÐÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ð €�$ÐÑÔð8ð 8ð 8ð 8ð 8ˆw�xÔ ñ 8ô 8ñ Ôð8ð$ €�$ÐÑÔð
ð 
ð 
ð 
ð 
˜( <Ô0ñ 
ô 
ñ Ôð
ð$ €�$ÐÑÔðIð Ið Ið Ið I�h˜xÔ(¨'°(Ô*;ñ Iô Iñ ÔðIð6ð ð ð ð ˜( G¨LÔ$9ñ ô ð ðð ð ð ð  	°ð ñ ô ð ðð ð ð ð  8¨W°\Ô-Bñ ô ð ð €�$ÐÑÔðXð Xð Xð Xð X�W˜XÔ&ñ Xô Xñ ÔðXðNð ð ð ðð ð ð ð8ð 8ð 8ð 8ðD`ð `ð `ð `ð `�G˜HÔ%ñ `ô `ð `ðF- $Ð #Ð #Ð #Ð #Ð #Ð #Ð #r8   