ó
    Eñi	‚ ã                  óÊ  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SKJ
r
Jr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJr  S SKJrJrJrJr  S SKrS SKJr  S S	KJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*  S S
K+J,r,  S SK-J.r.  S SK/J0r0  S SK1J2r2  S SK3J4r4  \(       a$  S SK5J6r6J7r7  S SKJ8r8  S SK9J:r:  S SK;J<r<J=r=  S SK>J?r?J@r@  SHS jrA\BrC\" SS\Rˆ                  5      rE\" S5      rF\" S\Rˆ                  S9rG\" S\Rˆ                  SS9rHSIS jrISJS jrJSKS jrKSLS  jrL\Rš                  " 5       rNS!\NlO        \SMS" j5       rPS!S!S#.           SNS$ jjrQSOS% jrRSPS& jrSSOS' jrTSOS( jrUSQS) jrVSRS* jrW      SSS+ jrX\" S,\Y5      rZ\" S-\Y5      r[\" S.\Y5      r\\\" S 5      q] " S/ S05      r^\" SS19 " S2 S35      5       r_\" SS19 " S4 S5\\G   5      5       r`\" SS19 " S6 S7\`S8   5      5       ra\" SS19 " S9 S:\`\G   \\G   5      5       rb " S; S<\\\H   5      rc " S= S>\S!S?9rd " S@ SA\\\H   5      re\" SS19 " SB SC\\G   5      5       rfSTSD jrgSUSE jrh " SF SG\\G   5      riS SKjJkrl  g)Vé    )ÚannotationsN)Úabstractmethod)ÚAbstractContextManagerÚcontextmanager)Ú	dataclass)
ÚAnyÚClassVarÚGenericÚNewTypeÚOptionalÚProtocolÚTYPE_CHECKINGÚ	TypeGuardÚTypeVarÚUnion)Ú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)Úno_dispatch)Úis_traceable_wrapper_subclass)ÚWeakIdKeyDictionary)ÚCallableÚ	Generator)ÚCInterpreter)ÚSource)Ú
FakeTensorÚFakeTensorMode)ÚShapeEnvÚSymbolicContextc                ó$   • SSK Jn  [        X5      $ )Nr   )r+   )Útorch._subclasses.fake_tensorr+   Ú
isinstance)Útr+   s     ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_subclasses/meta_utils.pyÚ_is_fake_tensorr4   =   s   € Ý8ä�aÓ$Ð$ó    Ú_TensorLikeTúMetaTensorDesc[Any]Ú_TÚ_TensorT)ÚboundÚ_TensorT_covT)r:   Ú	covariantc                ó<   •  U R                   $ ! [         a     gf = f)NF)Úis_leafÚRuntimeError©r2   s    r3   Úsafe_is_leafrA   J   s#   € ðØ�y‰yÐøÜó áðús   ‚ Ž
šc                óÒ   • [         R                  R                  [         R                  R                  R                  5         U R
                  sS S S 5        $ ! , (       d  f       g = f©N)ÚtorchÚ_loggingÚhide_warningsÚ	_internalÚsafe_grad_filterÚgradr@   s    r3   Ú	safe_gradrJ   R   s8   € Ü	�‰×	%Ñ	%¤e§n¡n×&>Ñ&>×&OÑ&OÕ	Pà�v‰v÷ 
Q×	P×	Pús   ÁAÁ
A&c                ó8   • [        U 5      nUc  [        S5      eU$ )Nz3Expected tensor to have a gradient but grad is None)rJ   ÚAssertionError)r2   rI   s     r3   Ú_expect_safe_gradrM   X   s!   € Ü�Q‹<€DØ�|ÜÐRÓSÐSØ€Kr5   c                ó.   • X:w  a  [        U  SU 35      eg )Nz != )rL   )ÚaÚbs     r3   Ú	assert_eqrQ   _   s!   € ØƒvÜ ˜s $ q c˜]Ó+Ð+ð r5   Fc               #  ó„   #   • [        [        SS5      n S[        l         S v •  U [        l        g ! U [        l        f = f7f)NÚdisable_inference_modeFT)ÚgetattrÚtlsrS   )Úpriors    r3   Ú$disable_inference_mode_for_fake_proprW   k   s4   é € ä”CÐ1°5Ó9€EØ!%„CÔð+Ûà%*ŒÕ"ø UŒÕ"üs   ‚A  0 ¤A °=½A ©Úskip_symbolicÚ	skip_leafc               ó¤   ^ ^^^• [        U[        R                  5      (       a  [        5       R	                  U5      OUnSU UUU4S jjmT" X5      $ )Nc                ó†  >• T" U R                   UR                   5        T(       d  T" U R                  UR                  5        T" U R                  UR                  5        T(       d  T" U R                  UR                  5        T" U R                  UR                  5        [        [        SS5      (       d"  T" U R                  UR                  5       5        OT" U R                  S5        T" U R                  UR                  5       5        T" U R                  UR                  5       5        T" U R                  S L[        U5      S L5        U R                  b  T" U R                  [        U5      5        U R                  (       a�  T" U R                  UR                  5        T" U R                  UR                  5       5        T" U R                  UR                  5       5        T" U R                   UR!                  5       5        g [#        U 5      (       a`  T" U R                  UR                  5        T" U R                  UR                  5       5        T" U R                  UR                  5       5        g T(       dB  T" U R$                  UR%                  5       5        T" U R&                  UR'                  5       5        T" U R(                  UR+                  5       5        U R(                  (       aN  U R,                  c  [/        S5      eUR0                  c  [/        S5      eT" U R,                  UR0                  5        g g )NrS   Fz*m1.base must not be None for a view tensorz+m2._base must not be None for a view tensor)ÚdtypeÚshapeÚrequires_gradr>   Ú	is_sparserT   rU   Úis_inferenceÚis_conjÚis_negrI   rJ   rM   ÚlayoutÚ	dense_dimÚ
sparse_dimÚis_coalescedÚis_sparse_compressedÚstrideÚstorage_offsetÚis_viewÚ_is_viewÚbaserL   Ú_base)Úm1Úm2rQ   ÚgorZ   rY   s     €€€€r3   rq   Úassert_metadata_eq.<locals>.goƒ   s(  ø€ Ù�"—(‘(˜BŸH™HÔ%ÞÙ�b—h‘h §¡Ô)Ù�"×"Ñ" B×$4Ñ$4Ô5ÞÙ�b—j‘j "§*¡*Ô-ñ 	�"—,‘, §¡Ô-Ü”sÐ4°e×<Ñ<Ù�b—o‘o r§¡Ó'8Õ9á�b—o‘o uÔ-Ù�"—*‘*˜bŸj™j›lÔ+Ù�"—)‘)˜RŸY™Y›[Ô)Ù�"—'‘' Ð%¤y°£}¸DÐ'@ÔAØ�7‰7ÑÙˆr�w‰wÔ)¨"Ó-Ô.ð �<�<Ù�b—i‘i §¡Ô+Ù�b—l‘l B§L¡L£NÔ3Ù�b—m‘m R§]¡]£_Ô5Ù�b—o‘o r§¡Ó'8Õ9Ü! "×%Ñ%Ù�b—i‘i §¡Ô+Ù�b—l‘l B§L¡L£NÔ3Ù�b—m‘m R§]¡]£_Õ5æ Ù˜"Ÿ)™) R§Y¡Y£[Ô1Ù˜"×+Ñ+¨R×->Ñ->Ó-@ÔAÙ�b—j‘j "§+¡+£-Ô0Ø�z�zØ—7‘7‘?Ü(Ð)UÓVÐVØ—8‘8Ñ#Ü(Ð)VÓWÐWÙ�2—7‘7˜BŸH™HÕ%ð r5   )ro   r7   rp   útorch.TensorÚreturnÚNone)r1   rD   ÚTensorÚMetaTensorDescriberÚdescribe_tensor)rQ   ro   rp   rY   rZ   rq   s   `  ``@r3   Úassert_metadata_eqry   u   sH   û€ ô �bœ%Ÿ,™,×'Ñ'ô 	Ó×-Ñ-¨bÔ1àð ÷(&ò (&ñZ ˆb‹:Ðr5   c                ó|   • [        U [        R                  5      =(       a    U R                  [        R                  L $ rC   )r1   rD   rv   rd   Ú
sparse_coor@   s    r3   Úis_sparse_coor|   ´   s'   € Ü�aœŸ™Ó&×G¨1¯8©8´u×7GÑ7GÐ+GÐGr5   c                ó„   • U [         R                  [         R                  [         R                  [         R                  1;   $ rC   )rD   Ú
sparse_csrÚ
sparse_cscÚ
sparse_bsrÚ
sparse_bsc)rd   s    r3   Úis_sparse_compressed_layoutr‚   ¸   s8   € ØÜ×ÑÜ×ÑÜ×ÑÜ×Ñð	ñ ð r5   c                ón   • [        U [        R                  5      =(       a    [        U R                  5      $ rC   )r1   rD   rv   r‚   rd   r@   s    r3   rh   rh   Â   s"   € Ü�aœŸ™Ó&×PÔ+FÀqÇxÁxÓ+PÐPr5   c                ó<   • [        U 5      =(       d    [        U 5      $ rC   )r|   rh   r@   s    r3   Úis_sparse_anyr…   Ç   s   € Ü˜Ó×6Ô3°AÓ6Ð6r5   c                óZ   • [        X5      (       d  [        SU  S[        U5       35      eU$ )Nz	expected z	 but got )r1   rL   Útype)ÚtyÚobjs     r3   Ú_checked_castrŠ   Ë   s.   € Ü�c×ÑÜ˜y¨¨¨I´d¸3³i°[ÐAÓBÐBØ€Jr5   c                ó   • U R                   $ rC   ©Úreal_storage)rm   s    r3   Ú_get_real_storagerŽ   Ñ   s   € Ø×ÑÐr5   c                ó   • Xl         g rC   rŒ   )rm   r�   s     r3   Ú_set_real_storager�   Õ   s
   € ð %Õr5   ÚMetaStorageIdÚMetaTensorIdÚ_DescriberIdc                  ó|   • \ rS rSrSrSS.SS jjrSS jrSS jrSS.     SS	 jjrS
SS.       SS jjr	Sr
g)rw   éä   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_datac               ó  • [         U l        [        [         S-   5      q [        S5      U l        [        S5      U l        [        5       U l        [        5       U l	        Xl
        [        5       U l        [        5       U l        g )Né   r   )ÚDESCRIBER_NEXT_IDÚidr“   r’   Únext_tensor_idr‘   Únext_storage_idr&   Úlookup_tensorÚlookup_storager—   ÚsetÚtraced_tensorsÚtraced_storages©Úselfr—   s     r3   Ú__init__ÚMetaTensorDescriber.__init__ï   sb   € ä#ˆŒÜ(Ô):¸QÑ)>Ó?ÐÜ,8¸«OˆÔÜ.;¸AÓ.>ˆÔä0Ó2ˆÔä1Ó3ˆÔØ"ŒÜ(+«ˆÔÜ),«ˆÕr5   c                óª   • XR                   ;  a6  U R                  U R                   U'   [        U R                  S-   5      U l        U R                   U   $ ©Nr™   )rž   rœ   r’   ©r¤   r2   s     r3   Úget_tensor_idÚ!MetaTensorDescriber.get_tensor_idý   sM   € Ø×&Ñ&Ó&Ø$(×$7Ñ$7ˆD×Ñ˜qÑ!Ü".¨t×/BÑ/BÀQÑ/FÓ"GˆDÔØ×!Ñ! !Ñ$Ð$r5   c                óª   • XR                   ;  a6  U R                  U R                   U'   [        U R                  S-   5      U l        U R                   U   $ r¨   )rŸ   r�   r‘   ©r¤   Úss     r3   Úget_storage_idÚ"MetaTensorDescriber.get_storage_id  sM   € Ø×'Ñ'Ó'Ø%)×%9Ñ%9ˆD×Ñ Ñ"Ü#0°×1EÑ1EÈÑ1IÓ#JˆDÔ Ø×"Ñ" 1Ñ%Ð%r5   ©Útracec               ó*  ^ ^• [        T R                  U5      UR                  5       T R                  (       a  UOS S9mU(       aN  TR                  T R
                  ;  a4  [        SUU 4S jS9  T R
                  R                  TR                  5        T$ )N)r›   ÚsizeÚdataÚdescribe_storagec                 ó:   >• T R                  TR                  5      $ rC   ©Úas_jsonr›   ©Úrr¤   s   €€r3   Ú<lambda>Ú6MetaTensorDescriber.describe_storage.<locals>.<lambda>  ó   ø€  A§I¡I¨d¯g©gÔ$6r5   ©Úmetadata_fn)ÚMetaStorageDescr¯   r´   r—   r›   r¢   r#   Úadd)r¤   r®   r²   r»   s   `  @r3   r¶   Ú$MetaTensorDescriber.describe_storage	  sv   ù€ ô Ø×"Ñ" 1Ó%Ø—‘“ð —n—n‘¨$ñ
ˆö �Q—T‘T ×!5Ñ!5Ó5ÜØ"Ý6òð × Ñ ×$Ñ$ Q§T¡TÔ*Øˆr5   T©Úrecurser²   c               ó^  ^ ^!• [        U5      nUR                  5       nUR                  nUR                  nUR                  n[        U5      n	[        U5      n
UR                  n[        U5      n[        U5      n[        U5      n[        R                  " U5      nS nSnU(       da  [        U5      (       dQ  U(       a  U	(       aC  U(       d<  U
(       d5  U(       d.  T R                  UR                  5       US9nUR!                  5       nS nU(       d.  [        U5      (       d  U(       a  U	(       a  UR#                  5       nS nS nS nU(       d  U(       a  T R%                  ['        U5      US9nOåU(       aÞ  UR(                  R*                  S;  aÄ  UR                  5       (       a  [-        S5      eU
(       d=  [        R.                  " U5        T R%                  [        R0                  " U5      US9nUnO`[        R2                  R5                  5       nT R%                  [7        UU5      US9n[        R2                  R8                  R;                  5       nS nU
(       a2  [        R8                  R<                  R?                  5        n S S S 5        S nS nS nU	(       ae  [A        US5      (       d  [C        S5      eURE                  5       u  nnU Vs0 s H  nUT R%                  [G        UU5      US9_M      nn[+        U5      nSSK$J%n  [L        RO                  U5      n[G        [P        SS	5      n[S        SC0 S
T RU                  U5      _SU_SU(       a  S	OURW                  5       _SU_SURX                  _SUR[                  5       _SUR\                  _SU_SU_SU
_SU_SU_SU_SU_SUR_                  5       _SURa                  5       _S[c        U[        Rd                  Rf                  5      _SU	_SU_SUU;   a  UU   Rh                  Rk                  5       OS _SU_SU_S UR(                  _S!URm                  5       _S"U_S#U_S$[o        [G        US%[q        5       5      5      _S&[G        US'0 5      _S(UR                  (       d  [s        U5      (       a  URu                  5       OS _S)UR                  (       d  [s        U5      (       a  URw                  5       OS _S*UR                  (       a  URy                  5       OS _S+U(       aM  UR                  [        Rz                  [        R|                  1;   a  T R%                  UR                  5       S	US,9OS _S-U(       aM  UR                  [        Rz                  [        R|                  1;   a  T R%                  UR�                  5       S	US,9OS _S.U(       aM  UR                  [        R‚                  [        R„                  1;   a  T R%                  UR‡                  5       S	US,9OS _S/U(       aM  UR                  [        R‚                  [        R„                  1;   a  T R%                  UR‰                  5       S	US,9OS _S0U(       a/  [s        U5      (       a  T R%                  UR‹                  5       S	US,9OS _S1[�        U5      =n b  T R%                  U US9OS _S2UR                  5       (       a)  [        R2                  RŽ                  R‘                  U5      OS _S3U_S4U(       d  U(       a  [“        U5      OS _S5U(       a  [•        U5      OS _S6U(       a<  UR                  5       (       a'  UR–                  b  T R%                  UR–                  US9OS _S7[        R˜                  Rš                  R�                  U5      _S8U_S9U_S:U_S;U_S<U_S=U_S>U_S?T Rž                  (       a  UOS _6m!U(       aN  T!R                   T R¢                  ;  a4  [¥        S@U!U 4SA jSB9  T R¢                  R§                  T!R                   5        T!$ ! , (       d  f       GN›= fs  snf )DNr   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)Ú_tensor_symint_registryrS   Fr›   Ústoragera   r>   r_   Úndimr]   r`   Ú	is_mkldnnÚis_functorch_wrappedr   r   r   rk   rb   rc   Úis_parameterr%   Ú	is_nestedÚ
nested_intÚis_functionalrd   Údevicer´   ri   rj   Údynamo_dynamic_indicesÚ_dynamo_dynamic_indicesÚdynamo_hint_overridesÚ_dynamo_hint_overridesrf   re   rg   Úcrow_indicesrÄ   Úcol_indicesÚccol_indicesÚrow_indicesÚvaluesrI   Úcreation_metaÚ	unwrappedÚlevelÚbdimrm   Ú	fake_modeÚ	view_funcÚattrsÚctxr‡   Úfunctorch_stackÚautograd_meta_fromÚcurrent_levelrµ   rx   c                 ó:   >• T R                  TR                  5      $ rC   r¸   rº   s   €€r3   r¼   Ú5MetaTensorDescriber.describe_tensor.<locals>.<lambda>õ  r¾   r5   r¿   © )TrA   rl   r`   rd   rÑ   r%   r   rÎ   r   r   r   rD   Ú_is_functional_tensorr‚   r¶   Úuntyped_storagerj   ri   rx   r   rÔ   r‡   r?   Ú_syncÚ_from_functional_tensorÚ_CÚ$_functionalization_reapply_views_tlsr   Ú
_functorchrè   ÚpyfunctorchÚ#temporarily_clear_interpreter_stackÚhasattrrL   rÊ   rT   Ú$torch.nested._internal.nested_tensorrË   ÚViewFuncÚfrom_tensorrU   ÚMetaTensorDescrª   ra   r_   Údimr]   rb   rc   r1   ÚnnÚ	ParameterÚnoderÒ   r´   Úlistr    rh   rf   re   rg   r~   r€   rÙ   rÚ   r   r�   rÛ   rÜ   rÝ   rJ   Ú	_autogradÚ_get_creation_metar    r   rn   Ú_subclassesÚfake_tensorÚmaybe_get_fake_moder—   r›   r¡   r#   rÂ   )"r¤   r2   rÅ   r²   r>   rk   r`   rd   rÑ   Úis_traceable_wrapper_subclass_vrÏ   rÎ   Úis_batchedtensor_vÚis_legacy_batchedtensor_vÚis_gradtrackingtensor_vrÓ   rÌ   rj   ri   rß   rç   rè   Úreapply_viewsÚmaybe_functorch_stackrä   rå   Útype_vÚ	raw_attrsÚattrrË   rã   Úis_inference_mode_disabledrI   r»   s"   `                                @r3   rx   Ú#MetaTensorDescriber.describe_tensor  s:  ù€ ô ˜q“/ˆØ—*‘*“,ˆØ—K‘Kˆ	Ø—‘ˆØ—K‘Kˆ	Ü*GÈÓ*JÐ'Ü:¸1Ó=ÐØ—K‘Kˆ	Ü-¨aÓ0ÐÜ$;¸AÓ$>Ð!Ü"7¸Ó":ÐÜ×3Ò3°AÓ6ˆàˆð ˆæÜ*¨6×2Ñ2ÞÖ"AÞö $Þ(ð ×+Ñ+¨A×,=Ñ,=Ó,?ÀuÐ+ÐMˆGØ×-Ñ-Ó/ˆNàˆæÜ*¨6×2Ñ2ÞÖ"Að
 —X‘X“ZˆFð
 ˆ	Ø!ÐØˆÞÖ!8Ø×,Ñ,¬]¸1Ó-=ÀUÐ,ÐK‰Iö ˜qŸx™xŸ}™}°OÓCØ�z‰z�|‰|Ü"Ølóð ö (Ü—’˜A”Ø ×0Ñ0Ü×1Ò1°!Ó4¸Eð 1ð �	ð &'Ñ"ä %§¡× MÑ MÓ O�à ×0Ñ0Ü-¨a°Ó?Àuð 1ð �	ô !&§¡× 3Ñ 3× AÑ AÓ C�à $ÐÞä× Ñ ×,Ñ,×PÑPÔRØ&Ø÷ Sð ˆØˆØˆÞ*Ü˜1Ð2×3Ñ3Ü$ØTóð ð ×1Ñ1Ó3‰NˆI�sñ &óâ%�Dð �d×*Ñ*¬7°1°dÓ+;À5Ð*ÐIÒIÙ%ð ð ô ˜!“WˆFåPä×(Ñ(¨Ó+ˆ	ô &-¬SÐ2JÈEÓ%RÐ"Ü!/ò j"
Ø×!Ñ! !Ô$ðj"
áðj"
ö #=™À!Ç.Á.ÓBRøðj"
ñ ð	j"
ð
 Ÿ/š/ðj"
ð —‘”ðj"
ð —'’'ðj"
ñ  ðj"
ñ  ðj"
ñ  "6ð!j"
ñ" 0ð#j"
ñ$ %>ð%j"
ñ& #:ð'j"
ñ( ð)j"
ð* —I‘I”Kð+j"
ð, —8‘8”:ð-j"
ô. $ A¤u§x¡x×'9Ñ'9Ô:ð/j"
ñ0 +Jð1j"
ñ2  ð3j"
ð8 Ð/Ó/ð (¨Ñ*×/Ñ/×:Ñ:Ô<àøð;j"
ñ> (ð?j"
ñ@ ðAj"
ðB —8’8ðCj"
ðD —‘”ðEj"
ñF ðGj"
ñJ *ðKj"
ôL $(¬°Ð3LÌcËeÓ(TÔ#UðMj"
ôN #*¨!Ð-EÀrÔ"JðOj"
ðR #$§+§+Ô1EÀa×1HÑ1H�—‘”ÈdøðSj"
ðV ()§{§{Ô6JÈ1×6MÑ6M�a—k‘k”mÐSWøðWj"
ðX ./¯[¯[˜Ÿ™Ô)¸døðYj"
öd ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÓOð ×$Ñ$ Q§^¡^Ó%5¸uÈEÐ$ÑRàøðgj"
ön ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÓOð ×$Ñ$ Q§]¡]£_¸eÈ5Ð$ÑQàøðqj"
öx ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÓOð ×$Ñ$ Q§^¡^Ó%5¸uÈEÐ$ÑRàøð{j"
öB ˜qŸx™x¬E×,<Ñ,<¼e×>NÑ>NÐ+OÓOð ×$Ñ$ Q§]¡]£_¸eÈ5Ð$ÑQàøðEj"
öL Ô3°A×6Ñ6ð ×$Ñ$ Q§X¡X£Z¸ÀeÐ$ÑLàøðOj"
ôV & a›LÐ(�DÑ5ð ×$Ñ$ T°Ð$Ñ7àøðYj"
ð^ =>¿J¹J¿L¹L”—‘×"Ñ"×5Ñ5°aÔ8Èdøð_j"
ñb  ðcj"
öh &Ö)@ô   Ô"àøðkj"
ön '9” Ô"¸døðoj"
öt ˜qŸz™zŸ|™|°·±Ñ0Cð ×$Ñ$ Q§W¡W°EÐ$Ñ:àøðwj"
ôz ×'Ñ'×3Ñ3×GÑGÈÔJð{j"
ñ|  ð}j"
ñ@ ðAj"
ñB ðCj"
ñD ðEj"
ñL 2ðMj"
ñN  2ðOj"
ñP (ðQj"
ðR —n—n‘¨$øðSj"
ˆöV �Q—T‘T ×!4Ñ!4Ó4ÜØ!Ý6òð ×Ñ×#Ñ# A§D¡DÔ)Øˆ÷W SÖRüòs   Ê`Ë%`*à
`')r—   r›   rŸ   rž   r�   rœ   r¢   r¡   N©r—   Úboolrt   ru   )r2   rs   rt   r’   )r®   útorch.UntypedStoragert   r‘   )r®   r  r²   r  rt   rÁ   )r2   rs   rÅ   r  r²   r  rt   r7   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r¥   rª   r¯   r¶   rx   Ú__static_attributes__rë   r5   r3   rw   rw   ä   st   † ñð -2÷ /ô%ô&ð 9>ñØ%ðØ15ðà	õð& 37Àeñ]Øð]Ø+/ð]Ø?Cð]à	÷]ð ]r5   rw   )Úfrozenc                  ó>   • \ rS rSr% S\S'   S\S'   S\S'   SS jrS	rg
)rÁ   iû  r‘   r›   Úintr´   úOptional[torch.UntypedStorage]rµ   c                ó¢   • U R                   U[        U R                  [        5      (       a  U R                  S.$ [	        U R                  5      S.$ )N)r›   Údescriber_idr´   )r›   r1   r´   r  Úrepr)r¤   r  s     r3   r¹   ÚMetaStorageDesc.as_json  sF   € à—'‘'Ø(Ü!+¨D¯I©I´s×!;Ñ!;�D—I‘Iñ
ð 	
ô BFÀdÇiÁiÃñ
ð 	
r5   rë   N©r  r“   rt   zdict[str, object])r  r  r  r  Ú__annotations__r¹   r  rë   r5   r3   rÁ   rÁ   û  s   ‡ àÓØ
ƒIð )Ó(÷
r5   rÁ   c                  óV   • \ rS rSr\  S         SS jj5       r\SS j5       rSrg)	r÷   i  Nc                ó   • g rC   rë   ©r¤   r2   Únew_baseÚsymint_visitor_fnÚtensor_visitor_fns        r3   ÚapplyÚViewFunc.apply  s   € ð r5   c                ó`   • [        U 5      (       a
  [        5       $ [        U R                  5      $ rC   )r4   Ú_FakeTensorViewFuncÚ_CustomViewFuncÚ_view_func_unsafer@   s    r3   rø   ÚViewFunc.from_tensor  s'   € ä˜1×ÑÜ&Ó(Ð(ä" 1×#6Ñ#6Ó7Ð7r5   rë   ©NN)
r2   r9   r%  r9   r&  úOptional[Callable[[int], int]]r'  ú,Optional[Callable[[torch.Tensor], _TensorT]]rt   r9   )r2   rs   rt   zViewFunc[Any])	r  r  r  r  r   r(  Ústaticmethodrø   r  rë   r5   r3   r÷   r÷     sb   † àð
 =AØJNðàðð ðð :ð	ð
 Hðð 
ôó ðð ó8ó ó8r5   r÷   c                  óB   • \ rS rSr\  S         SS jj5       rSrg)r+  i  Nc                ón   • [         R                  R                  R                  R	                  UUUU5      $ rC   )rD   r  r  r+   r-  r$  s        r3   r(  Ú_FakeTensorViewFunc.apply   s5   € ô × Ñ ×,Ñ,×7Ñ7×IÑIàØØØó
ð 	
r5   rë   r/  )
r2   rs   r%  rs   r&  r0  r'  z.Optional[Callable[[torch.Tensor], FakeTensor]]rt   r+   )r  r  r  r  r   r(  r  rë   r5   r3   r+  r+    sN   † àð
 =AØLPð
àð
ð ð
ð :ð	
ð
 Jð
ð 
ô
ó ó
r5   r+  r+   c                  óN   • \ rS rSr% S\S'   \  S         SS jj5       rSrg)	r,  i1  zpCallable[[torch.Tensor, Optional[Callable[[int], int]], Optional[Callable[[torch.Tensor], _TensorT]]], _TensorT]ÚfuncNc                ó&   • U R                  X#U5      $ rC   )r7  r$  s        r3   r(  Ú_CustomViewFunc.apply<  s   € ð �y‰y˜Ð6GÓHÐHr5   rë   r/  )
r2   rs   r%  rs   r&  r0  r'  r1  rt   r9   )r  r  r  r  r!  r   r(  r  rë   r5   r3   r,  r,  1  sa   ‡ ðó ð ð
 =AØJNðIàðIð ðIð :ð	Ið
 HðIð 
ôIó óIr5   r,  c                  ó*   • \ rS rSr      SS jrSrg)Ú_MetaTensorCallbackiM  c              ó   • g rC   rë   )r¤   ÚargrÔ   s      r3   Ú__call__Ú_MetaTensorCallback.__call__N  s   € àr5   rë   N)r=  úCallable[[], torch.Tensor]rÔ   úUnion[torch.device, str]rt   r;   ©r  r  r  r  r>  r  rë   r5   r3   r;  r;  M  s   † ðØ-ðØ=Uðà	÷r5   r;  c                  ó    • \ rS rSr% S\S'   Srg)Ú_MetaTensorCallbackKwargsiS  rA  rÔ   rë   N)r  r  r  r  r!  r  rë   r5   r3   rD  rD  S  s   ‡ Ø$Ö$r5   rD  )Útotalc                  ó*   • \ rS rSr      SS jrSrg)Ú_MetaTensorCallbackOptDevicei[  c               ó   • g rC   rë   )r¤   r=  Úkwargss      r3   r>  Ú%_MetaTensorCallbackOptDevice.__call__\  s   € ð
 r5   rë   N)r=  r@  rI  z!Unpack[_MetaTensorCallbackKwargs]rt   r;   rB  rë   r5   r3   rG  rG  [  s#   † ðà'ðð 4ð	ð
 
÷r5   rG  c                  ó  • \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   \R                  rS\S'   SrS\S'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS \S!'   SrS\S"'   SrS\S#'   SrS\S$'   SrS\S%'   SrS\S&'   SrS'\S('   S)rS\S*'   SrS+\S,'   SrS \S-'   SrS \S.'   SrS/\S0'   SrS1\S2'   Sr S1\S3'   Sr!S1\S4'   Sr"S1\S5'   Sr#S1\S6'   Sr$S1\S7'   Sr%S \S8'   Sr&S1\S9'   Sr'S:\S;'   Sr(S<\S='   Sr)S1\S>'   1 S?kr*S@\SA'   Sr+SB\SC'   Sr,SD\SE'   Sr-SF\SG'   Sr.SH\SI'   Sr/S \SJ'   Sr0S \SK'   Sr1SL\SM'   Sr2SN\SO'   Sr3SN\SP'   STSQ jr4\5SUSR j5       r6SSr7g)Vrù   id  r’   r›   r  rÍ   útorch.dtyper]   ztorch.devicerÔ   útuple[int, ...]r´   z	list[int]rÕ   zdict[int, int]r×   útorch.layoutrd   Fr  ra   r>   r_   r`   rÎ   rÏ   r   r   r   rk   rÑ   NzOptional[int]rÒ   r%   rÓ   rb   rc   rÐ   úOptional[tuple[int, ...]]ri   r   rj   zOptional[MetaStorageDesc]rÌ   rf   re   zOptional[bool]rg   zOptional[MetaTensorDesc[Any]]rÙ   rÚ   rÛ   rÜ   rÝ   rß   rá   rm   z(Optional[dict[str, MetaTensorDesc[Any]]]rä   zOptional[CreationMeta]rÞ   rI   >
   rå   rµ   r‡   rà   râ   rã   rÒ   rè   ræ   rç   zClassVar[set[str]]Ú_UNSERIALIZABLEzOptional[object]rå   zOptional[type]r‡   zOptional[FakeTensorMode]râ   zOptional[ViewFunc[Any]]rã   rà   rè   zOptional[list[CInterpreter]]ræ   úOptional[torch.Tensor]rç   rµ   c                ó’  ^• SU4S jjm[         R                  " U 5       Vs0 s H„  n[        XR                  5      UR                  L a  M'  UR                  S:X  a  [        XR                  5      (       d  MS  UR                  T" UR                  [        XR                  5      5      _M†     nnUR                  SU05        U$ s  snf )Nc                óÚ  >• U S;   a  g U [         R                  ;   a  [        U5      $ [        U[        R
                  [        R                  [        R                  45      (       a  [        U5      $ [        U[        R                  5      (       a  [        U5      $ [        U[        [        45      (       a  U Vs/ s H  nT" X5      PM     sn$ [        U[        [         45      (       a  UR                  $ [        U[        5      (       a  [        U5      $ U S:X  aD  [        U[        5      (       a/  UR!                  5        VVs0 s H  u  p2X2R                  _M     snn$ U$ s  snf s  snnf )N)rµ   rç   rä   )rù   rP  r  r1   rD   rÔ   r]   rd   ÚSymIntÚtuplerþ   rÁ   r›   r   ÚstrÚdictÚitems)ÚkÚvÚv1Úk1Újsons       €r3   r]  Ú$MetaTensorDesc.as_json.<locals>.jsonÕ  s  ø€ ð Ð2Ó2ØØ”N×2Ñ2Ó2Ü˜A“w�Ü˜!œeŸl™l¬E¯K©K¼¿¹ÐF×GÑGÜ˜A“w�Ü˜!œUŸ\™\×*Ñ*Ü˜A“w�Ü˜!œe¤T˜]×+Ñ+Ù./Ó0ªa¨™˜Qž©aÑ0Ð0Ü˜!œo¬~Ð>×?Ñ?Ø—t‘t�Ü˜!œ\×*Ñ*Ü˜1“v�Ø�G‹|¤
¨1¬d× 3Ñ 3Ø01·±´	Ô:²	¡f b˜ŸE™Eš	±	Ò:Ð:ØˆHùò 1ùó ;s   Â:E"ÅE'rÕ   r  )rY  rV  rZ  Úobjectrt   r_  )ÚdataclassesÚfieldsrT   ÚnameÚdefaultÚupdate)r¤   r  Úfieldr»   r]  s       @r3   r¹   ÚMetaTensorDesc.as_jsonÔ  s¨   ø€ ÷	ô. %×+Ò+¨DÔ1ó

â1�ä˜Ÿj™jÓ)¨U¯]©]Ð:ó Dð
 —J‘JÐ":Ó:Ü# D¯*©*×5ó DˆE�J‰J™˜UŸZ™Z¬°·z±zÓ)BÓCÒCÙ1ð 	
ð 

ð 	
�‰�. ,Ð/Ô0Øˆùò

s   ¢&CÁ(CÁ85Cc                ó   • U R                   $ rC   )r´   ©r¤   s    r3   r^   ÚMetaTensorDesc.shapeø  s   € à�y‰yÐr5   rë   r   )rt   rM  )8r  r  r  r  r!  rD   Ústridedrd   ra   r>   r_   r`   rÎ   rÏ   r   r   r   rk   rÑ   rÒ   r%   rÓ   rb   rc   rÐ   ri   rj   rÌ   rf   re   rg   rÙ   rÚ   rÛ   rÜ   rÝ   rß   rá   rm   rä   rÞ   rI   rP  rå   r‡   râ   rã   rà   rè   ræ   rç   rµ   r¹   Úpropertyr^   r  rë   r5   r3   rù   rù   d  s;  ‡ àÓØ
ƒIØÓØÓð ÓØ%Ó%Ø)Ó)à Ÿ=™=€FˆLÓ(Ø€L�$ÓØ€GˆTÓØ€M�4ÓØ€IˆtÓØ€IˆtÓØ!&Ð˜$Ó&Ø"Ð�dÓ"Ø$)Ð˜TÓ)Ø"'Ð˜4Ó'Ø€GˆTÓØ€IˆtÓð !%€J�Ó$Ø*/Ð! 4Ó/Ø€M�4ÓØ€GˆTÓØ€FˆDÓØ€L�$ÓØ(,€FÐ%Ó,Ø€N�CÓð
 *.€GÐ&Ó-Ø $€J�Ó$Ø#€Iˆ}Ó#Ø#'€L�.Ó'Ø26€LÐ/Ó6Ø15€KÐ.Ó5Ø26€LÐ/Ó6Ø15€KÐ.Ó5Ø,0€FÐ)Ó0Ø/3€IÐ,Ó3Ø€Dˆ-ÓØ*.€DÐ
'Ó.àð 
Ð3ó ð -1€MÐ)Ó0Ø*.€DÐ
'Ó.ò+€OÐ'ó ð !€CÐ	Ó Ø€Dˆ.ÓØ*.€IÐ'Ó.Ø)-€IÐ&Ó-ð  €Eˆ=ÓØ#'€M�=Ó'Ø48€OÐ1Ó8Ø15ÐÐ.Ó5ð
 $(€DÐ
 Ó'ô"ðH óó ór5   rù   c                ó`   • [        U5      [        R                  La  g U R                  U5        g rC   )r‡   rD   rv   Úcopy_)ÚdstÚsrcs     r3   Ú
_safe_copyrp  	  s    € ÜˆCƒyœŸ™Ò$ØØ‡I�Iˆc…Nr5   c                ó\   • [        U 5      [        R                  La  g U R                  5       $ rC   )r‡   rD   rv   Úclone)ro  s    r3   Ú_safe_cloners    s!   € ÜˆCƒyœŸ™Ò$ØØ�9‰9‹;Ðr5   c                  ó  • \ rS rSrSS.SS jjrSS jrSS jrSS jrSS jrSS	 jr	SS
 jr
      SS jr\SS j5       r\ S     SS jj5       r\S S j5       r            S!S jr SSSSSS.             S"S jjjrSrg)#ÚMetaConverteri  Fr–   c               óÌ   • [         R                  " 5       U l        [         R                  " 5       U l        SU l        SU l        S U l        SU l        Xl        [        US9U l
        g )Nr   r–   )ÚweakrefÚWeakValueDictionaryÚstorage_memoÚtensor_memoÚhitÚmissÚdel_hookÚarg_cntr—   rw   Ú	describerr£   s     r3   r¥   ÚMetaConverter.__init__  s_   € ô ×'Ò'Ó)ð 	Ôô ×'Ò'Ó)ð 	Ôð ˆŒØˆŒ	ØˆŒØˆŒð
 #ŒÜ,°yÑAˆ�r5   c                óL   • U R                   S:„  =(       a    U R                  S:H  $ )Nr   )r{  r|  rh  s    r3   Ú
successfulÚMetaConverter.successful2  s   € Ø�x‰x˜!‰|×. §	¡	¨Q¡Ð.r5   c                óN   • U R                   R                  UR                  S 5      $ rC   )rz  Úgetr›   r©   s     r3   Úget_tensor_memoÚMetaConverter.get_tensor_memo5  s   € Ø×Ñ×#Ñ# A§D¡D¨$Ó/Ð/r5   c                óŠ   • U R                   R                  UR                  S 5      nUc  [        SUR                   S35      eU$ )NzTensor memo for id z is None)rz  r…  r›   rL   )r¤   r2   r»   s      r3   Ú_checked_get_tensor_memoÚ&MetaConverter._checked_get_tensor_memo8  sA   € Ø×Ñ× Ñ  §¡ tÓ,ˆØ‰9Ü Ð#6°q·t±t°f¸HÐ!EÓFÐFØˆr5   c                ó4   • X R                   UR                  '   g rC   )rz  r›   )r¤   r2   rZ  s      r3   Úset_tensor_memoÚMetaConverter.set_tensor_memo>  s   € Ø!"×Ñ˜Ÿ™Òr5   c                óN   • U R                   R                  UR                  S 5      $ rC   )ry  r…  r›   r­   s     r3   Úget_storage_memoÚMetaConverter.get_storage_memoA  s   € Ø× Ñ ×$Ñ$ Q§T¡T¨4Ó0Ð0r5   c                ó4   • X R                   UR                  '   g rC   )ry  r›   )r¤   r®   rZ  s      r3   Úset_storage_memoÚMetaConverter.set_storage_memoD  s   € Ø"#×Ñ˜!Ÿ$™$Òr5   c                óÌ  ^• U R                  T5      =nc¬  U" U4S j5      R                  5       nU R                  (       am  [        R                  " 5          [        5          TR                  c  [        S5      e[        UTR                  R                  5       5        S S S 5        S S S 5        U R                  TU5        U$ U$ ! , (       d  f       N,= f! , (       d  f       N5= f)Nc                 ó`   >• [         R                  " T R                  [         R                  SS9$ ©NÚmeta©r]   rÔ   )rD   Úemptyr´   Úuint8)r®   s   €r3   r¼   Ú,MetaConverter.meta_storage.<locals>.<lambda>P  s   ø€ œŸš A§F¡F´%·+±+ÀfÒMr5   z.s.data must not be None when copy_data is True)r�  rí   r—   rD   Úno_gradr$   rµ   rL   r�   rr  r’  )r¤   r®   ÚcallbackÚmemoÚr_ss    `   r3   Úmeta_storageÚMetaConverter.meta_storageG  sª   ø€ ð ×)Ñ)¨!Ó,Ð,ˆDÑ5ÙÜMóç‰oÓð ð �~�~ô —]’]•_¤k¥mØ—v‘v‘~Ü,ØLóð ô & c¨1¯6©6¯<©<«>Ô:÷ '4—_ð ×!Ñ! ! SÔ)ØˆJàˆK÷ '4¥mú—_•_ús$   ÁCÁ!=CÂCÃ
C	ÃCÃ
C#c                ó8   • [         R                  " [        U5      $ rC   )ÚtypingÚcastr9   )Úclsr2   s     r3   Ú_checked_cast_tensor_tÚ$MetaConverter._checked_cast_tensor_t`  s   € ô �{Š{œ8 QÓ'Ð'r5   Nc                ó.   • U R                  U" 5       5      $ rC   )r¦  )r¥  r2   rÔ   s      r3   Ú_identity_callableÚ MetaConverter._identity_callablee  s   € ð ×)Ñ)©!«#Ó.Ð.r5   c                óœ   • [         R                  R                  R                  SS5      nU" U5      n[        R
                  " [        U5      $ )Nz9Internal error: Tried to backward() through example inputr™   )rD   rð   Ú
_functionsÚDelayedErrorr£  r¤  r9   )r¥  r2   ÚerrfnÚerrs       r3   Ú_backward_errorÚMetaConverter._backward_errorm  s>   € ä—‘×#Ñ#×0Ñ0ØGØó
ˆñ �A‹hˆÜ�{Š{œ8 SÓ)Ð)r5   c                ó^(  ^ ^^^^^!^"^#^$^%^&^'^(^)^*^+• [         R                  " UTR                  S9m%Tc$  SSKJn  U" S[        T R                  5       35      mSn[        R                  R                  5       R                  [        R                  R                  R                  5      (       a  [        U5      eT =R                  S-  sl        [        R                   m(Tb  TR"                  m(T4       S<U4S jjjm+T4       S=U+4S jjjnTT4           S>U%U U4S	 jjjm&          S?U#4S
 jjm#T4       S@U#U%U&U(U UU+U4S jjjn	T R%                  T5      Gc  Sm![        R&                  " TR(                  5         TR*                  (       Ga{  TR,                  n
T%" U4S j5      nT R.                  (       a~  TR0                  c  [        S5      e[        R2                  " 5          [5        5          [7        U5      (       d  [        S5      e[9        TR0                  5      Ul        S S S 5        S S S 5        [=        U5      (       d  [        S5      eUR?                  [A        TRB                  5      5        TRD                  (       a  SUl"        TRD                  (       aj  U
(       dc  T RG                  URI                  5       5      n[        RJ                  " 5          UR?                  [A        TRB                  5      5        S S S 5        GO½GO»[M        TRN                  5      (       GaP  TR,                  n
TRN                  [        RP                  [        RR                  1;   aŽ  TRT                  c  [        S5      eTRV                  c  [        S5      eTRX                  c  [        S5      eTRZ                  TRT                  -
  TRV                  -
  nTRX                  R\                  US-   US-    m$OSm$TRN                  [        R^                  [        RP                  1;   a/  TR`                  c  [        S5      eTR`                  Rb                  m'O.TRd                  c  [        S5      eTRd                  Rb                  m'T%" U$U'U4S j5      nT R.                  (       a~  TR0                  c  [        S5      e[        R2                  " 5          [5        5          [7        U5      (       d  [        S5      e[9        TR0                  5      Ul        S S S 5        S S S 5        [=        U5      (       d  [        S5      eTRD                  (       a  SUl"        TRD                  (       a  U
(       d  T Rg                  U5      nGOPTRh                  (       a+  TRj                  (       d  SSK6J7n  U" S[q        T5      S/ S9  GOTRr                  (       GaŽ  TR,                  n
T+" TT5      u  m)m*nT%" U)U*U4S j5      nT R.                  (       aø  [        R2                  " 5          [5        5          TRt                  c  [        S5      eTRv                  c  [        S 5      e[7        U5      (       d  [        S5      e[        Rx                  " TRt                  TRv                  TRb                  TR                  S!9Ul        TR0                  c  [        S5      e[{        UR:                  TR0                  5        S S S 5        S S S 5        [=        U5      (       d  [        S5      eTRD                  (       a  SUl"        TRD                  (       a  U
(       d  T Rg                  U5      nG	OtTR|                  (       aA  TR~                  (       a  SSK6J7n  U" S"[q        T5      S/ S9  SAU!U"U%U UUU4S# jjm"T"" T5      nG	O"TR€                  (       aµ  TR                  R‚                  S$;  a›  TR„                  c  [        S%5      eTR|                  (       a  [        S&5      eT R‡                  TR„                  TT%TT5      nT RG                  [        Rˆ                  " U5      5      n[        RŠ                  " TRŒ                  U5        GO\TR~                  (       Ga  TRŽ                  c  [        S'5      eS nT(       aJ  TbG  SS(KHJIn  [•        TU5      (       d  [        S)[ƒ        T5       35      eTR–                  b  TR–                  nT R‡                  TRŽ                  TT%[        R˜                  Rš                  R�                  TS*5      U5      nSS+KHJOn  U" TU5              SBS, jn[        R                  R¡                  [        R                  R                  R¢                  5      n[        R                  R¥                  [        R                  R                  R¢                  S-5         URb                  TRb                  :X  a  OºU" URb                  TRb                  5      (       a&  T RG                  [        R¦                  " U5      5      nOrU" TRb                  URb                  5      (       a&  T RG                  [        R¨                  " U5      5      nO*T RG                  UR«                  TRb                  5      5      nTR,                  (       a9  [        R2                  " 5          U	" UT5      nS S S 5        TRD                  Wl"        OûTRŽ                  RD                  TRD                  :X  a(  [        RJ                  " 5          U	" UT5      nS S S 5        O¯TRD                  (       d  [        S.5      e[        R2                  " 5          [­        5          T RG                  UR«                  UR\                  5      5      nS S S 5        S S S 5        TRD                  Wl"        [        RJ                  " 5          U	" UT5      nS S S 5        TR®                  c  [        S/5      e[        R                  R°                  R³                  WTR®                  5        [        R                  R¥                  [        R                  R                  R¢                  U5        TR                  UlZ        GO?TR,                  n
TR¶                  (       d"  TR¸                  (       d  TR|                  (       d  TRº                  (       a  [¼        sS S S 5        $ T+" TTT5      u  m)m*nTRj                  (       a	  T&" TT)T*S09nOÿT%" U)U*U4S1 j5      nT R.                  (       aà  [        R2                  " 5          [5        5          TRt                  c  [        S5      eTRv                  c  [        S 5      e[7        U5      (       d  [        S5      e[        Rx                  " TRt                  TRv                  TRb                  TR                  S!9Ul        [{        UR:                  TR0                  5        S S S 5        S S S 5        [=        U5      (       d  [        S5      eTRD                  (       a)  TRD                  Ul"        U
(       d  T Rg                  U5      nTR¾                  nUc  [        S25      eURÀ                  T RÂ                  ;  aÑ  URh                  (       d(  URw                  5       T*:X  a¬  URÅ                  5       U:X  a˜  T RÇ                  UURÉ                  5       5        T R.                  (       ae  [7        U5      (       d  [        S5      eUR:                  c  [        S35      e[Ë        URÉ                  5       UR:                  RÉ                  5       5        GO_T RÍ                  UT%S49n[        R                   " 5       nSS5KgJhnJin  U" U5      nUb  U" U5      n[        R2                  " 5          T(" 5          U   URÕ                  UUT)T*5        S S S 5        T R.                  (       aÁ  [        R2                  " 5          [5        5          [7        U5      (       d  [        S5      eUR:                  c  [        S35      eTRv                  c  [        S 5      eUR:                  RÕ                  [×        U5      TRÄ                  TRt                  TRv                  5        S S S 5        S S S 5        S S S 5        S S S 5        TRØ                  b1  SS6KJNn  T R‡                  TRØ                  TT%U" TS75      T5      Wll        [        R                  RÛ                  WTRÜ                  5        [        R                  Rß                  UTRà                  5        S S S 5        TR¸                  =(       a    TRâ                  T!:H  n[å        [æ        TWSUS89  SS9KHJtn   TR¾                  bC  U " TR¾                  Rt                  S:H  5      (       a  URÉ                  5       Rë                  S5        TRì                  (       a  SUlw        TRð                  bC  [7        U5      (       d  [        S:5      eURò                  Rõ                  TRð                  S;9Ul{        T Rù                  TU5        T Rû                  T5      $ ! , (       d  f       GNT= f! , (       d  f       GN^= f! , (       d  f       GNá= f! , (       d  f       GN©= f! , (       d  f       GN³= f! , (       d  f       GNñ= f! , (       d  f       GNû= f! , (       d  f       GN(= f! , (       d  f       GN-= f! , (       d  f       GN= f! , (       d  f       GN‰= f! , (       d  f       GNc= f! [        R                  R¥                  [        R                  R                  R¢                  U5        f = f! , (       d  f       GN�= f! , (       d  f       GN§= f! , (       d  f       GNâ= f! , (       d  f       GN*= f! , (       d  f       GN4= f! , (       d  f       GN>= f! , (       d  f       GNH= f! , (       d  f       GNÀ= f)CN©rÔ   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™   c           
     óˆ  >^	• SSK Jm	  U R                  c  [        S5      eT
Gbw  U R                  n[        U	4S jU R                   5       5      =(       d8    [        U	4S jU R                   5       5      =(       d    T	" U R                  5      nUb2  UR                  T
L a#  U R                  U R                  U R                  4$ Ub-  U(       d&  Uc#  U R                  U R                  U R                  4$ [        U
4S jU R                   5       5      n[        U
4S jU R                   5       5      nT
R                  U R                  5      nT
R                  UUU[        U R                  5       Vs/ s H  oˆU R                  ;   PM     snUUU R                  S9$ U R                  U R                  U R                  4$ s  snf )	Nr   )Úis_symbolicút.stride must not be Nonec              3  ó4   >#   • U  H  nT" U5      v •  M     g 7frC   rë   )Ú.0Úszr·  s     €r3   Ú	<genexpr>ÚVMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offset.<locals>.<genexpr>Å  s   øé € Ð9²&¨B™ BŸ˜²&ùó   ƒc              3  ó4   >#   • U  H  nT" U5      v •  M     g 7frC   rë   )rº  Úsdr·  s     €r3   r¼  r½  Æ  s   øé € Ð>²X¨r™; rŸ?˜?²Xùr¾  c              3  óF   >#   • U  H  nTR                  U5      v •  M     g 7frC   ©Ú#_maybe_specialize_sym_int_with_hint)rº  r»  Ú	shape_envs     €r3   r¼  r½  Õ  s&   øé € ð #â"(˜Bð "×EÑEÀb×IÐIÚ"(ùó   ƒ!c              3  óF   >#   • U  H  nTR                  U5      v •  M     g 7frC   rÂ  )rº  rÀ  rÄ  s     €r3   r¼  r½  Ù  s&   øé € ð %â"*˜Bð "×EÑEÀb×IÐIÚ"*ùrÅ  )Úsymbolic_contextÚhint_overrides)Ú%torch.fx.experimental.symbolic_shapesr·  ri   rL   râ   Úanyr´   rj   rÄ  rU  rÃ  Ú-_create_symbolic_sizes_strides_storage_offsetÚrangerÍ   rÕ   r×   )r2   ro  rÇ  râ   Úhas_symbolicÚt_sizeÚt_strideÚt_storage_offsetÚdr·  rÄ  s            @€r3   Ú sym_sizes_strides_storage_offsetÚCMetaConverter.meta_tensor.<locals>.sym_sizes_strides_storage_offsetµ  sš  ù€ õ Jà�x‰xÑÜ$Ð%@ÓAÐAàÒ$ØŸK™K�	äÔ9°!·&²&Ó9Ó9÷ 5ÜÔ>°Q·X²XÓ>Ó>÷5á" 1×#3Ñ#3Ó4ð ð
 Ñ(¨Y×-@Ñ-@ÀIÒ-Mð ŸF™F A§H¡H¨a×.>Ñ.>Ð?Ð?àÑ)Þ(Ø(Ñ0àŸF™F A§H¡H¨a×.>Ñ.>Ð?Ð?ô #ô #à"#§&¢&ó#ó �Fô  %ô %à"#§(¢(ó%ó  �Hð (1×'TÑ'TØ×(Ñ(ó(Ð$ð %×RÑRØØ Ø(Ü@EÀaÇfÁfÄÓNÂ¸1˜a×6Ñ6Ô6ÁÑNØØ)9Ø'(×'>Ñ'>ð Sð ð ð Ÿ™ §¡¨!×*:Ñ*:Ð;Ð;ùò Os   Å2F?c                ó`   >• T" XU5      u  nnn[         R                  " UUU R                  SS9$ r–  ©rD   Úempty_stridedr]   )Úinner_tÚ	inner_srcrÇ  Úinner_sizesÚinner_stridesÚ_inner_storage_offsetrÒ  s         €r3   Úempty_createÚ/MetaConverter.meta_tensor.<locals>.empty_createì  sA   ø€ ñ 1°ÐEUÓVñ	ØØØ%ä×&Ò&ØØØ—m‘mØñ	ð r5   c           	     óv  >^^^• SSK Jm  SSKJm  U R                  c  [        S5      eU R                  c  [        S5      eUb  UOU R                  nUb  UOU R                  nUb(  [        UT5      (       d  [        S[        U5       35      e              SUUUU
U4S jjmUc  [        S5      eT" XX#T	U5      nUR                  U:w  a(  [        S	U R                   S
U SUR                   35      eUR                  5       U:w  a,  [        S	U R                   SU SUR                  5        35      eU$ )Nr   ©Ú
AttrSource)ÚSubclassSymbolicContextú%t.attrs must not be None for subclassú$t.type must not be None for subclassz.Expected SubclassSymbolicContext or None, got c           	     ó”  >• U R                   c  TR                  U TUUU5      $ 0 nU R                   R                  5        HÈ  u  pxS n	Ubs  [        UT5      (       d  [	        S[        U5       35      eUR                  U   =n
 b8  [        [        R                  R                  R                  R                  U
5      n	T" XW5      n[        R                  " XHR                  S9nT" UUR                   UR"                  U	UU5      nXÖU'   MÊ     U R
                  c  [	        S5      eU R
                  R%                  X`R&                  X5      $ )Nz&Expected SubclassSymbolicContext, got r³  rã  )rä   Úmeta_tensorrX  r1   rL   r‡   Úinner_contextsrŠ   rD   ÚfxÚexperimentalÚsymbolic_shapesr.   Ú	functoolsÚpartialrÔ   r´   ri   Ú__tensor_unflatten__rå   )r2   Ú
outer_sizeÚouter_striderÇ  r�  ÚsourceÚinner_tensorsr  Úmeta_tensor_descÚcurrent_contextÚcurrent_context_Úcurrent_sourceÚinner_callbackÚnew_empty_tensorrà  rá  Ú_empty_create_subclassr¤   rÄ  s                 €€€€€r3   r÷  ÚXMetaConverter.meta_tensor.<locals>.empty_create_subclass.<locals>._empty_create_subclass(  s_  ø€ ð —7‘7‘?Ø×+Ñ+ØØ!Ø ØØ(óð ð !#�Ø./¯g©g¯m©m®oÑ*�DØ&*�OØ'Ñ3Ü)Ð*:Ð<S×TÑTÜ"0Ø"HÌÐN^ÓI_ÐH`Ð aó#ð ð 1A×0OÑ0OÐPTÑ0UÐUÐ,Ø!%ñ&ô /<Ü %§¡× 5Ñ 5× EÑ E× UÑ UØ 0ó/˜Oñ
 &0°Ó%=�NÜ%.×%6Ò%6Ø ×)@Ñ)@ñ&�Nñ (>Ø(Ø(×-Ñ-Ø(×/Ñ/Ø'Ø&Ø&ó(Ð$ð +; $Ó'ñ7 />ð: —6‘6‘>Ü(Ð)OÓPÐPØ—v‘v×2Ñ2Ø!§5¡5¨*óð r5   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 )r2   r7   rí  rO  rî  rO  rÇ  ú?Optional[torch.fx.experimental.symbolic_shapes.SymbolicContext]r�  ú&_MetaTensorCallbackOptDevice[_TensorT]rï  útorch._guards.Sourcert   r9   )Útorch._dynamo.sourcerà  rÉ  rá  rä   rL   r‡   r´   ri   r1   r^   )r2   rí  rî  rÇ  rï  Úsubrà  rá  r÷  r�  r¤   rÄ  s         @@@€€€r3   Úempty_create_subclassÚ8MetaConverter.meta_tensor.<locals>.empty_create_subclass  sŽ  û€ õ 8ÝUà�w‰w‰Ü$Ð%LÓMÐMØ�v‰v‰~Ü$Ð%KÓLÐLð (2Ñ'=™À1Ç6Á6ˆJà+7Ñ+C™<ÈÏÉˆLàÑ+´JØ Ð"9÷5ñ 5ô %ØDÄTÐJZÓE[ÐD\Ð]óð ð7Ø&ð7à5ð7ð 8ð7ð#ð	7ð Að7ð -ð7ð ÷7ó 7ðr ‰~Ü$Ð%>Ó?Ð?Ù(Ø˜|¸xÈóˆCð �y‰y˜JÓ&Ü$Ø1°!·&±&°ð :&Ø&0 \°¸S¿Y¹Y¸KðIóð ð �z‰z‹|˜|Ó+Ü$Ø1°!·&±&°ð :'Ø'3 n°KÀÇ
Á
Ã¸~ðOóð ð
 ˆJr5   c                ó^  >• SSK Jn  SSKJnJnJn  S nU R                  (       a3  U R                  c  [        S5      eT" U R                  U" US5      X#5      nUR                  /U R                  -  n	U R                  (       a”  U R                  c  [        S5      e0 n
U R                  R                  5        HB  u  p¼[        U[        5      (       d  [        S[!        U5       35      eT" XÄ" X5      X#5      X«'   MD     U" U	S /U R                  -  U
UUS9nU$ U" U	S /U R                  -  US	9nU$ )
Nr   rß  )Ú
DimDynamicÚStatelessSymbolicContextrá  ú't.base must not be None for view tensorrn   râ  zExpected attr to be str, got )Údynamic_sizesÚconstraint_sizesræ  Útensor_sourceÚview_base_context)r  r  r  )rü  rà  rÉ  r  r  rá  rk   rm   rL   ÚDYNAMICrÍ   r%   rä   rX  r1   rV  r‡   )r2   rï  rÄ  r�  rà  r  r  rá  r  Út_dynamic_sizesræ  r  ÚinnerÚt_symbolic_contextÚall_dynamic_symbolic_contexts                 €r3   r  Ú?MetaConverter.meta_tensor.<locals>.all_dynamic_symbolic_context{  sJ  ø€ õ 8÷ñ ð ð ð �y�yØ—6‘6‘>Ü(Ð)RÓSÐSÙ$@Ø—F‘F™J v¨wÓ7¸ó%Ð!ð
  *×1Ñ1Ð2°Q·V±VÑ;ˆOØ×.×.Ø—7‘7‘?Ü(Ð)PÓQÐQð ð ð $%§7¡7§=¡=¦?‘K�DÜ% d¬C×0Ñ0Ü,Ø;¼DÀ»J¸<ÐHóð ñ ,HØ˜z¨&Ó7¸ó,�NÓ(ñ $3ñ &=Ø"1Ø&* V¨a¯f©f¡_Ø#1Ø"(Ø&7ñ&Ð"ð &Ð%ñ &>Ø"1Ø&* V¨a¯f©f¡_Ø&7ñ&Ð"ð &Ð%r5   c           	     ó*  >^^^^• [        5          T" UT5      u  p4nUR                  (       dK  [        U 5      (       d;  T" 5          TR                  U R                  X4U5      5      sS S S 5        sS S S 5        $ SSKJm  SSKJmJn  S
UUUU4S jjn0 mUR                  (       aw  UR                  c  [        S5      eUR                  c  [        S5      eT" XUS9nUR                  5       u  pšU	 H(  n[        X‹5      TUR                  U   R                  '   M*     TT4       SUUUU4S jjjnUR                  c  [        S	5      eUR                  R!                  XX|5      n["        R$                  " U" UR'                  5       U5      5        ["        R$                  " U" UR)                  5       U5      5        ["        R$                  " U" UR+                  5       U5      5        UsS S S 5        $ ! , (       d  f       GNˆ= f! , (       d  f       g = f)Nr   )ÚEphemeralSource)r  Úsym_eqc                óô   >^• SSK Jm  TS L=(       a2    [        TT5      =(       a    [        U4S jTR                   5       5      nU(       d  Tc  U $ T" S5      nTR                  XS S9nTR                  X0US9$ )Nr   )r  c              3  ó@   >#   • U  H  nUTR                   L v •  M     g 7frC   )ÚSTATIC)rº  Úxr  s     €r3   r¼  Ú_MetaConverter.meta_tensor.<locals>.view_from_base.<locals>.symint_visitor_fn.<locals>.<genexpr>ô  s#   øé € ð  â%C ð  ×!2Ñ!2Õ2Ú%Cùs   ƒr&  )Úpositive)Úhintrï  )rÉ  r  r1   Úallr  Úcreate_symbolÚcreate_symintnode)	r®   Úall_static_sizesÚ
sym_sourceÚsymbolr  r  r  rÄ  rÇ  s	       @€€€€r3   r&  ÚLMetaConverter.meta_tensor.<locals>.view_from_base.<locals>.symint_visitor_fní  s”   ù€ åPð )°Ð4÷ Ü&Ð'7Ð9QÓR÷äô  à%5×%CÒ%Có ó ð %ö (¨9Ñ+<Ø ˜ñ "1Ð1DÓ!E�Jà&×4Ñ4°QÈTÐ4ÐR�FØ$×6Ñ6Ø¨zð 7ð ð r5   râ  rã  ©rí  rî  c                óì   >• U c  g T
R                   R                  U 5      nT	R                  U5      nUb  U$ T
R                   R                  U 5      nT" S5      nT
R	                  UUUUT" XVX5      5      $ )Nr'  )r  rª   r…  rx   rå  )Ú	visited_trÄ  r�  Ú
visited_idÚfake_visited_tÚvisited_descÚtemp_sourcer  r  Úreal_to_fake_mappingr¤   s          €€€€r3   r'  ÚLMetaConverter.meta_tensor.<locals>.view_from_base.<locals>.tensor_visitor_fn%  s�   ø€ ð !Ñ(à#ð "&§¡×!=Ñ!=¸iÓ!H�JØ%9×%=Ñ%=¸jÓ%I�NØ%Ñ1Ø-Ð-à#'§>¡>×#AÑ#AÀ)Ó#L�Lñ #2Ð2EÓ"F�KØ×+Ñ+Ø$Ø!Ø Ø#Ù4Ø(°yóóð r5   z,t.view_func must not be None for view replay)r®   r  rt   r  )r!  rs   rÄ  ú8Optional[torch.fx.experimental.symbolic_shapes.ShapeEnv]r�  rú  rt   rs   )r"   r%   r¦  Ú
as_stridedrü  r  rÉ  r  r  rä   rL   r‡   rÊ   rT   r›   rã   r(  rD   Ú_checkr´   ri   rj   )rm   r2   rÄ  ÚsizesÚstridesrj   r  r&  Úfake_trä   Ú_r  r'  r  r  r&  r  r�  rþ  Úmaybe_suppressr¤   rï  rÒ  rÇ  s     `          @@@€€€€€€€€r3   Úview_from_baseÚ1MetaConverter.meta_tensor.<locals>.view_from_baseÏ  sâ  ü€ ô *Õ+á3SØ�vó4Ñ0� ð ×7×7Ü9¸$×?Ñ?ñ
 (Õ)Ø#×:Ñ:Ø ŸO™O¨E¸NÓKó ÷ *Ð)÷ ,Ñ+õ" A÷÷
ò ð< (*Ð$Ø×2×2Ø—w‘w‘Ü,Ð-TÓUÐUð —v‘v‘~Ü,Ð-SÓTÐTñ (=Ø¸'ñ(�Fð  &×8Ñ8Ó:‘H�EÛ %˜ÜAHÈÓAVÐ,¨Q¯W©W°T©]×-=Ñ-=Ó>ñ !&ð "ØGOð(Ø+ð(ð ð	(ð Eð(ð "÷(ó (ðX —;‘;Ñ&Ü(Ð)WÓXÐXð Ÿ™×*Ñ*ØÐ.ó�ô —’™V F§K¡K£M°5Ó9Ô:Ü—’™V F§M¡M£O°WÓ=Ô>Ü—’™V F×$9Ñ$9Ó$;¸^ÓLÔMØ÷S ,Ñ+÷ *Ö)ú÷ ,Õ+ús*   �5HÁ!G2Á&	HÁ9E/HÇ2
H	Ç<HÈ
Héþÿÿÿc            	     óÈ   >• [         R                  R                  R                  T R                  T R
                  T R                  T R                  [         R                  SS9$ )Nr—  )r]   rd   rÔ   )	rD   ÚopsÚatenÚ_sparse_coo_tensor_with_dimsrf   re   r´   r]   r{   r@   s   €r3   r¼   Ú+MetaConverter.meta_tensor.<locals>.<lambda>l  sF   ø€ ¤§	¡	§¡× KÑ KØŸL™LØŸK™KØŸF™FØ"#§'¡'Ü#(×#3Ñ#3Ø#)ð !Lñ !r5   ú.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                 ó°   >• [         R                  R                  R                  STR                  TR
                  T TTR                  TR                  SS9$ )Nr   r—  )rd   r]   rÔ   )rD   r4  r5  Ú#_sparse_compressed_tensor_with_dimsre   r^   rd   r]   )Ú	blocksizeÚindex_dtyper2   s   €€€r3   r¼   r7  ¶  sF   ø€ ¤§	¡	§¡× RÑ RØØŸK™KØŸG™GØ%Ø'Ø#$§8¡8Ø"#§'¡'Ø#)ð !Sñ 	!r5   )Úunimplementedz;attempted to apply meta conversion to strided nested tensorzThis is not supported.)Úgb_typeÚcontextÚexplanationÚhintsc                 óF   >• [         R                  " T TTR                  SS9$ r–  rÕ  ©r+  r,  r2   s   €€€r3   r¼   r7  ë  s   ø€ ¤× 3Ò 3Ø! 7°!·'±'À&ò!r5   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           	     óT  >^ ^^• T R                   (       aË  T R                  c  [        S5      eT R                  c  [        S5      eT R                  c  [        S5      eT
" T R                  5      nT R                  nT R                  n[
        R                  R                  R                  T R                  5         TR                  [        XU5      5      nS S S 5        U$ T R                  (       GaW  T R                  c  [        S5      eT R                  c  [        S5      e[
        R                  R                  nU" 5          T
" T R                  5      nS S S 5        T R                  nUT	:X  a  WnOu[
        R                  R                  R                  T R                  5         TR                  [
        R                  R                  R                  WU5      5      nS S S 5        T R                   nT R"                  (       a  [%        W5      (       a	  SUl        U$ T R"                  (       a  U(       d  TR'                  W5      nW$ T R(                  (       av  T R                  c  [        S5      eT R*                  c  [        S5      eTR-                  T R                  TTTT5      nTR                  [/        UT R*                  5      5      nU$ T R0                  c  [        S	5      eT R2                  mT R0                  mT" UUU 4S
 j5      nTR4                  (       a¯  [
        R6                  " 5          [9        5          [
        R:                  " T R2                  T R0                  T R<                  T R>                  S9Ul         T RB                  c  [        S5      e[E        UR@                  T RB                  5        S S S 5        S S S 5        U$ U$ ! , (       d  f       W$ = f! , (       d  f       GN“= f! , (       d  f       GN= f! , (       d  f       NP= f! , (       d  f       U$ = f)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                 óF   >• [         R                  " T TTR                  SS9$ r–  rÕ  rD  s   €€€r3   r¼   ÚDMetaConverter.meta_tensor.<locals>._to_fake_tensor.<locals>.<lambda>r  s    ø€ ¬×(;Ò(;Ø$)Ø$+Ø*+¯'©'Ø+1ò	)"r5   r˜  r8  )#r   rß   rL   rà   rá   rD   rò   ró   Ú%temporarily_restore_interpreter_stackræ   r¦  r   r   rð   Ú_DisableFuncTorchÚ_wrap_for_gradr>   r_   rA   r°  rÓ   rè   rå  r   ri   r´   r—   rœ  r$   rÖ  r]   rÔ   Úreal_tensorrµ   rp  )r2   ÚftÚlvlrá   r»   Údisable_functorchr>   r+  r,  ÚGRAD_TENSOR_SENTINEL_VALUEÚ_to_fake_tensorr�  r¤   rÄ  rï  rÇ  s   `      @@€€€€€€€r3   rQ  Ú2MetaConverter.meta_tensor.<locals>._to_fake_tensor  s‚  û€ ð ×-×-Ø Ÿ{™{Ñ2Ü&4Ø$Tó'"ð !"ð  !Ÿw™w™Ü&4Ø$Pó'"ð !"ð  !Ÿv™v™~Ü&4Ø$Oó'"ð !"ñ "1°·±Ó!=˜BØ"#§'¡'˜CØ#$§6¡6˜Dô
 "'×!1Ñ!1×!=Ñ!=×!cÑ!cØ !× 1Ñ 1õ"ð %)×$?Ñ$?Ü$2°2¸SÓ$Aó%" ÷"ðn  !˜ðc ×4×4Ð4Ø Ÿ{™{Ñ2Ü&4Ø$Yó'"ð !"ð  !Ÿw™w™Ü&4Ø$Uó'"ð !"ô 16·±×0JÑ0JÐ-Ù!2Õ!4Ù%4°Q·[±[Ó%A ÷ "5à"#§'¡'˜CØ"Ð&@Ó@Ø$&¡ä%*×%5Ñ%5×%AÑ%A×%gÑ%gØ$%×$5Ñ$5õ&"ð )-×(CÑ(CÜ(-¯©×(;Ñ(;×(JÑ(JÈ2ÈsÓ(Só)& A÷&"ð '(§i¡i˜GØ ŸŸ´<À·?±?Ø26 ¤ðp  !˜ðo "#§§¾Ø$(×$8Ñ$8¸Ó$; ðl  !˜ðk Ÿ_Ÿ_Ø Ÿ{™{Ñ2Ü&4Ø$Xó'"ð !"ð  !Ÿ™Ñ6Ü&4Ø$\ó'"ð !"ð "&×!1Ñ!1Ø !§¡Ø )Ø (ð
 !'Ø 0ó
"˜Bð !%× ;Ñ ;Ü 7¸¸A¿O¹OÓ Ló!˜AðB  !˜ð9  !Ÿx™xÑ/Ü&4Ð5PÓ&QÐ Qà$%§F¡F˜EØ&'§h¡h˜GÙ (ö!"ó!˜Að  $Ÿ~Ÿ~Ü%*§]¢]¥_´kµmÜ49×4GÒ4GØ()¯©Ø()¯©Ø./¯g©gØ/0¯x©xñ	5& A¤Mð ()§v¡v¡~Ü.<Ø,\ó/*ð )*ô %/¨q¯}©}¸a¿f¹fÔ$E÷ 7D§_ð  !˜˜q˜÷o"ô "ðn  !˜ú÷O "5Ö!4ú÷&"ö &"ú÷h 7Dµmú§_¤_ð  !˜úsI   Â;OÅO#Æ':O5Ì5PÍ A=PÎ=PÏ
O Ï#
O2Ï5
PÐ
P	ÐPÐ
P'rÇ   rF  z0Expected non-functorch wrapped functional tensorr  )r  z'Expected StatelessSymbolicContext, got rn   )Úcompute_unbacked_bindingsc                ón   • [         R                  " U 5      =(       a    [         R                  " U 5      U:H  $ rC   )ÚutilsÚis_complex_dtypeÚcorresponding_real_dtype)Úcomplex_dtypeÚ
real_dtypes     r3   Ú	is_c_of_rÚ,MetaConverter.meta_tensor.<locals>.is_c_of_rË  s2   € ô "×2Ò2°=ÓA÷ *Ü %× >Ò >¸}Ó MØ)ñ!*ðr5   Fz.t.requires_grad must be True for non-leaf viewz0t.creation_meta must not be None for view tensorr  c                 óF   >• [         R                  " T TTR                  SS9$ r–  rÕ  rD  s   €€€r3   r¼   r7  G  s    ø€ ¤E×$7Ò$7Ø %Ø 'Ø&'§g¡gØ'-ò	%r5   zt.storage must not be Nonez5r.real_tensor must not be None when copy_data is True)r�  )Úin_kernel_invocation_managerr  rß  rI   rX   )Úguard_or_falsez,Expected r to be a FakeTensor for nested int)Únt_tensor_id)r2   r7   ro  rû  rÇ  rù  rt   z,tuple[tuple[int, ...], tuple[int, ...], int])r×  r7   rØ  rû  rÇ  rù  rt   rs   )r2   r7   rí  rM  rî  rM  rÇ  rù  rï  zOptional[torch._guards.Source]rt   r9   )
r2   r7   rï  rû  rÄ  r(  r�  ú_MetaTensorCallback[_TensorT]rt   z5torch.fx.experimental.symbolic_shapes.SymbolicContext)rm   r9   r2   r7   rÄ  r(  rt   r9   ©r2   r7   rt   r9   )rX  rL  rY  rL  rt   r  )~rê  rë  rÔ   rü  r´  Úlenrz  rD   rð   Ú_dispatch_tls_local_exclude_setÚhasÚDispatchKeyÚPythonrL   r~  Ú
contextlibÚnullcontextÚsuppress_guardsr†  Úinference_modera   r`   r>   r—   rµ   rœ  r$   r4   rs  rL  rA   Ú_coalesced_r  rg   r_   r¦  rr  Úenable_gradr‚   rd   r€   r�   rf   re   rÝ   rÍ   r^   r~   rÙ   r]   rÛ   r°  rÑ   r%   Útorch._dynamo.excr>  rV  rÎ   r´   ri   rÖ  rp  rÏ   rk   rÓ   r‡   rß   rå  Ú_to_functional_tensorÚ_mirror_autograd_meta_torç   rm   rÉ  r  r1   r  Ú_dynamorï  rà  rS  Ú&_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Ì   r›   ry  rj   r’  rí   r�   r   r0   r]  r  Úset_rŽ   rI   Ú	_set_conjrb   Ú_set_negrc   rà   ry   rQ   r^  Úresize_rÐ   Ú	_is_paramrÒ   râ   Úcreate_symbolic_nested_intÚnested_int_memorŒ  r‰  ),r¤   r2   rÄ  Ú	callback_rï  rÇ  r´  ÚmsgrÜ  r0  r>   r»   Ú	batch_dimr>  Ú_storage_offsetrß   Úbase_symbolic_contextr  rm   rS  rZ  Úold_excludeÚmidrj   r®   rŸ  Úmaybe_fake_mgrr]  r  Úmb_fake_moderà  rZ   r^  rP  rQ  r  r<  r�  rþ  r=  r/  r+  r,  rÒ  s,   ``` ``                           @@@@@@@@@@@r3   rå  ÚMetaConverter.meta_tensor|  s  ÿÿ€ ô <E×;LÒ;LØ˜aŸh™hñ<
ˆð ‰>Ý;ñ $Ø-¬c°$×2BÑ2BÓ.CÐ-DÐEóˆFð
Rð 	ô �8‰8×3Ñ3Ó5×9Ñ9¼%¿(¹(×:NÑ:N×:UÑ:U×VÑVÜ  Ó%Ð%Ø�Š˜Ñ�ô4 -7×,BÑ,BˆØÑ Ø&×6Ñ6ˆNð !ð5	<Ø"ð5	<à%ð5	<ðð5	<ð :÷5	<ð 5	<ðx !ð	Ø(ð	à+ð	ðð	ð ÷	ð 	ð6 !Ø5;ðt	Ø"ðt	à'ðt	ð *ðt	ðð	t	ð 3ðt	ð ÷t	ò t	ðt5	&Ø"ð5	&à(ð5	&ð Pð5	&ð 4ð	5	&ð
 C÷5	&ðr ðP	ØðP	à"ðP	ððP	ð ÷P	÷ P	ðd ×Ñ Ó"Ò*Ø)+Ð&ä×%Ò% a§n¡nÕ5Ø—;—;�;ØŸi™i�Gñ
 !ôó	�Að —~—~àŸ6™6™>Ü"0Ø Pó#ð ô #Ÿ]š]�_¬k­mÜ#2°1×#5Ñ#5Ü&4Ð5TÓ&UÐ Uä,7¸¿¹Ó,?˜AœM÷	 /<Ÿ_ô
 (¨Ÿ?™?Ü,ØGóð ð —M‘M¤$ q§~¡~Ó"6Ô7Ø——Ø*.˜œØ——®wð
 !×7Ñ7¸¿¹»	ÓB˜Ü"×.Ò.Õ0ØŸM™M¬$¨q¯~©~Ó*>Ô?÷ 1Ñ0ùä0°·±×:Ò:ØŸi™i�Gà—x‘x¤E×$4Ñ$4´e×6FÑ6FÐ#GÓGØŸ<™<Ñ/Ü"0Ø Wó#ð ð Ÿ;™;Ñ.Ü"0Ø Vó#ð ð Ÿ8™8Ñ+Ü"0Ø Só#ð ð %&§F¡F¨Q¯\©\Ñ$9¸A¿K¹KÑ$G˜	Ø$%§H¡H§N¡N°9¸q±=À9ÈqÁ=Ð$Q™	à$&˜	Ø—x‘x¤E×$4Ñ$4´e×6FÑ6FÐ#GÓGØŸ>™>Ñ1Ü"0Ø [ó#ð ð '(§n¡n×&:Ñ&:™àŸ>™>Ñ1Ü"0Ø [ó#ð ð '(§n¡n×&:Ñ&:˜á ö	ó�Að —~—~àŸ6™6™>Ü"0Ø Pó#ð ô #Ÿ]š]�_¬k­mÜ#2°1×#5Ñ#5Ü&4Ð5TÓ&UÐ Uä,7¸¿¹Ó,?˜AœM÷	 /<Ÿ_ô
 (¨Ÿ?™?Ü,ØGóð ð ——Ø*.˜œØ——®wØ ×0Ñ0°Ó3˜ùØ—[—[¨×)H×)Hõ @ñ "Ø ]Ü # A£Ø$<Ø ô	ð —[—[�[ØŸi™i�Gñ
 9¸¸FÓCñ	ØØØ'ñ !öó�Að
 —~—~Ü"Ÿ]š]�_¬k­mØ Ÿv™v™~Ü&4Ø$Tó'"ð !"ð  !Ÿx™xÑ/Ü&4Ø$Vó'"ð !"ô $3°1×#5Ñ#5Ü&4Ð5TÓ&UÐ Uä,1×,?Ò,?Ø !§¡¨¯©¸¿¹ÈÏÉñ-˜AœMð  !Ÿv™v™~Ü&4Ø$Tó'"ð !"ô ' q§}¡}°a·f±fÔ=÷' /<Ÿ_ô( (¨Ÿ?™?Ü,ØGóð ð ——Ø*.˜œØ——®wØ ×0Ñ0°Ó3˜ùØ×+×+Ø—y—yÝCá%Ø$aÜ$'¨£FØ(@Ø"$ò	÷o!õ o!ñb (¨Ó*’Aà—_—_¨¯©¯©¸oÓ)MØ—{‘{Ñ*Ü,ØPóð ð ×-×-Ü,ØNóð ð !%× 0Ñ 0ØŸ™Ø!Ø ØØ(ó!�Ið ×3Ñ3Ü×3Ò3°IÓ>ó�Aô ×2Ò2°1×3GÑ3GÈÖKà—Y—Y�Yð —v‘v‘~Ü,Ð-VÓWÐWà,0Ð)Þ Ð%5Ñ%Aõô  *Ð*:Ð<T×UÑUÜ"0Ø"IÌ$ÐO_ÓJ`ÐIaÐ bó#ð ð ,×=Ñ=ÑIØ4D×4VÑ4VÐ1à×+Ñ+ØŸ™Ø!Ø ÜŸ™×,Ñ,×7Ñ7¸ÀÓHØ-ó�Dõñ .¨i¸Ô>ðØ'2ðØ@Kðàôô #(§(¡(×"QÑ"QÜŸ™×,Ñ,×<Ñ<ó#�Kô —H‘H×DÑDÜŸ™×,Ñ,×<Ñ<¸eôðKØŸ:™:¨¯©Ó0Ø Ù& t§z¡z°1·7±7×;Ñ;Ø#'×#>Ñ#>¼u×?QÒ?QÐRVÓ?WÓ#X™DÙ& q§w¡w°·
±
×;Ñ;Ø#'×#>Ñ#>Ü %× 5Ò 5°dÓ ;ó$™Dð $(×#>Ñ#>¸t¿y¹yÈÏÉÓ?QÓ#R˜Dð& Ÿ9Ÿ9ô "'§¢¥Ù$2°4¸Ó$; ÷ "1ð /0¯o©o˜A�Oà Ÿv™v×3Ñ3°q·±ÓFä%*×%6Ò%6Õ%8Ù(6°t¸QÓ(? A÷ &9Ð%8ð ()§§Ü*8Ø(Xó+&ð %&ô &+§]¢]¥_Ô6NÕ6PØ*.×*EÑ*EØ(,¯	©	°$·*±*Ó(=ó+& C÷ 7Q§_ð 56·O±O Ô 1Ü%*×%6Ò%6Õ%8Ù(6°s¸AÓ(> A÷ &9ð
 Ÿ?™?Ñ2Ü"0Ø Ró#ð ô Ÿ™×*Ñ*×=Ñ=¸aÀÇÁÔQäŸ™×HÑHÜ!ŸH™H×0Ñ0×@Ñ@À+ôð %&§H¡H�A–Mð  Ÿi™i�Gð ×/×/°1×3J×3JØ×2×2Ø×2×2ä-÷g 6Ñ5ñr 9¸¸FÐDTÓUñ	ØØØ&ð
 ×6×6Ù1Ø¨%¸gñ™ñ %öó˜ð  Ÿ>Ÿ>Ü!&§¢¥´+µ-Ø#$§6¡6¡>Ü*8Ø(Xó+&ð %&ð $%§8¡8Ñ#3Ü*8Ø(Zó+&ð %&ô (7°q×'9Ñ'9Ü*8Ø(Gó+&ð %&ô 16×0CÒ0CØ$%§F¡F¨A¯H©H¸A¿G¹GÈAÏHÉHñ1" ¤ô !+¨1¯=©=¸!¿&¹&Ô A÷# 3@§ô& (¨Ÿ?™?Ü,ØGóð ð ——Ø*+¯/©/˜œÞ&ð !%× 4Ñ 4°QÓ 7˜AàŸ	™	�AØ‘yÜ,Ð-IÓJÐJØ—t‘t 4×#4Ñ#4Ó4ØŸŸàŸH™H›J¨'Ó1Ø !× 0Ñ 0Ó 2°nÓ Dð ×-Ñ-¨a°×1BÑ1BÓ1DÔEØŸ>Ÿ>Ü#2°1×#5Ñ#5Ü&4Ð5TÓ&UÐ UØ Ÿ}™}Ñ4Ü&4Ø$[ó'"ð !"ô .Ø !× 1Ñ 1Ó 3°Q·]±]×5RÑ5RÓ5Tôùð #×/Ñ/°¸HÐ/ÐE˜ô, '×2Ò2Ó4ð '÷ñ
 (;¸1Ó'=˜Ø'Ñ3Ù-IÈ,Ó-W˜NÜ"Ÿ]š]�_©nÕ.>Ú!/Ø !§¡ s¨N¸EÀ7Ô K÷ "0à#Ÿ~Ÿ~Ü%*§]¢]¥_´kµmÜ+:¸1×+=Ñ+=Ü.<Ø,Kó/*ð )*ð ()§}¡}Ñ'<Ü.<Ø,có/*ð )*ð ()§x¡xÑ'7Ü.<Ø,^ó/*ð )*ð %&§M¡M×$6Ñ$6Ü(9¸#Ó(>Ø()×(8Ñ(8Ø()¯©Ø()¯©ô	%&÷ 7D§_÷	 /?Ÿ_ð0 —6‘6Ñ%Ý?ð
 "×-Ñ-ØŸ™Ø!Ø Ù" 6¨6Ó2Ø(ó�A”Fô —‘×"Ñ" 1 a§i¡iÔ0ä—‘×!Ñ! ! Q§X¡XÔ.÷o 6ðt ×'Ñ'×Q¨A¯G©GÐ7QÑ,Qð ô œy¨!¨Q¸dÈiÒXõ Mà�y‰yÑ$©¸¿	¹	¿¹È!Ñ8K×)LÑ)Là×!Ñ!Ó#×+Ñ+¨AÔ.à�~�~à"�”ð �|‰|Ñ'ä& q×)Ñ)Ü(Ð)WÓXÐXà$%§K¡K×$JÑ$JØ!"§¡ð %Kð %�Ô!ð
 × Ñ   AÔ&à×,Ñ,¨QÓ/Ð/÷C /<®múŸ_ž_ú÷. 1Ö0ú÷j /<®múŸ_ž_ú÷R /<®múŸ_ž_ú÷d "1¦ú÷ &9Ö%8ú÷ 7QÖ6Pú§_¦_ú÷
 &9Ö%8ûô Ÿ™×HÑHÜ!ŸH™H×0Ñ0×@Ñ@À+õú÷N 3@¶-ú§¦ú÷J "0¦ú÷ 7D¶mú§_¦_ú÷	 /?Ö.>úŸ_ž_ú÷_ 6Ö5ús„  Æ	A)APÇ2AJÇ=6AJ È3AJÈ;B+APË&%AJ$ÌGAPÓAKÓ6AJ6ÔAKÔDAPØAK,Ø(CAKÛ0AK,Û8KAPçC;AMë
AK>ëAAMì0
ALì::AMí4AL4í?+AL"î*AL4î2.AMï 
AMï*AAMð>B*APó2AAPõAN1õB0ANø	AN1øF7APÿAPÿAO9ÿAO	ÿ(.AO9Á@AO'	Á@!BAOÁB2AO'	ÁB:AO9ÁCAPÁC
BAPÁJ 
AJÁJ
AJÁJ
AJ!	ÁJAPÁJ$
AJ3	ÁJ.APÁJ6
AKÁK AKÁK
AK	ÁKAPÁK
AK)ÁK$AK,ÁK,
AK;	ÁK6APÁK>
AL	ÁLAMÁL
AL	ÁLAMÁL"
AL1ÁL,AL4ÁL4
AM	ÁL>AMÁM
AM	ÁMAMÁMAANÁNAPÁN
AN.ÁN)AN1ÁN1
AO 	ÁN;APÁO
AOÁOAO9ÁO
AO$ÁOAO'	ÁO'
AO6ÁO1AO9ÁO9
APÁPAPÁP
AP	ÁPAPÁP
AP,T)r�  rï  rÇ  r²   c               óö  ^ ^^• Uc  T R                   nOUn[        U[        R                  5      (       a™  UR                  R
                  S:X  dN  UR                  (       d=  UR                  5       (       aC  UR                  b6  UR                  R                  (       a  T =R                  S-  sl
        [        $ T =R                  S-  sl        OA[        R                  R                  U5      (       a  T =R                  S-  sl
        [        $ U$ Tc  SnT R                  R!                  XS9mU(       a  Tc  [#        S5      e[%        SU UU4S jS9  [&        R(                  " 5        nUR+                  [        R,                  R.                  R1                  5       5        [3        5       n	U	b7  UR+                  [        R4                  R6                  R9                  5       5        T R;                  TUUTU5      n
S S S 5        [        U5      [        R<                  R>                  L a  S	W
l         [C        US
S5      (       a)  S	W
l"        [G        US5      (       a  URH                  U
l$        W
$ ! , (       d  f       Nx= f)NrÉ   r™   Fr±   z*source must not be None when trace is TrueÚdescribe_sourcec                 ó`   >• T R                   R                  TR                  TR                  S.$ )N)r  r›   rï  )r  r›   rb  )r¤   rï  Út_descs   €€€r3   r¼   Ú(MetaConverter.__call__.<locals>.<lambda>=  s#   ø€ Ø$(§N¡N×$5Ñ$5Ø Ÿ)™)Ø$Ÿk™kò%r5   r¿   TÚ
_is_bufferÚ
persistent)%r©  r1   rD   rv   rÔ   r‡   Úis_quantizedrl   rn   r`   r|  ry  r{  Ú	overridesÚis_tensor_liker  rx   rL   r#   rg  Ú	ExitStackÚenter_contextÚ	_dispatchÚpythonÚsuspend_functionalizationr!   rò   ró   rô   rå  rû   rü   r~  rT   r�  rõ   r‘  )r¤   r2   rÄ  r�  rï  rÇ  r²   r�  Ú
exit_stackÚstr»   rŽ  s   `   `      @r3   r>  ÚMetaConverter.__call__þ  sì  ú€ ð ÑØ×/Ñ/‰Ià ˆIô �aœŸ™×&Ñ&ð —‘—‘ Ó'ð ——ð —‘—‘ !§'¡'Ñ"5¸!¿'¹'×:K×:Kà—	’	˜Q‘•	ä%Ð%à—’˜A‘–Ü�_‰_×+Ñ+¨A×.Ñ.Ø�IŠI˜‰N�Iä!Ð!ð ˆHà‰>ØˆEð —‘×/Ñ/°Ð/Ð?ˆæØ‰~Ü$Ð%QÓRÐRÜØ!öòô ×!Ò!Ô# zØ×$Ñ$¤U§_¡_×%;Ñ%;×%UÑ%UÓ%WÔXÜ'Ó)ˆBØ‰~Ø×(Ñ(Ü×$Ñ$×0Ñ0×TÑTÓVôð × Ñ ØØØØØ óˆA÷ $ô  �‹7”e—h‘h×(Ñ(Ò(ð ˆAŒKô �1�l E×*Ñ*àˆAŒLÜ�q˜,×'Ñ'à Ÿ|™|�”ð ˆ÷= $Õ#ús   Å'BI*É*
I8)r~  r—   r}  r  r{  r|  ry  rz  r  )rt   r  )r2   r7   rt   rQ  ra  )r2   r7   rZ  r9   rt   ru   )r®   rÁ   rt   r  )r®   rÁ   rZ  r  rt   ru   )r®   rÁ   r�  z0Callable[[Callable[[], torch.Tensor]], _TensorT]rt   r  )r2   rs   rt   r9   rC   )r2   r@  rÔ   z"Optional[Union[torch.device, str]]rt   r9   )r2   r9   rt   r9   )r2   r7   rÄ  úOptional[ShapeEnv]r�  r`  rï  úOptional[Source]rÇ  úOptional[SymbolicContext]rt   r9   )r2   rs   rÄ  r�  r�  z'Optional[_MetaTensorCallback[_TensorT]]rï  rž  rÇ  rŸ  r²   r  rt   r9   )r  r  r  r  r¥   r‚  r†  r‰  rŒ  r�  r’  r   Úclassmethodr¦  r©  r°  rå  r>  r  rë   r5   r3   ru  ru    sb  † Ø,1÷ Bô*/ô0ôô#ô1ô$ðàðð Cðð 
ô	ð2 ó(ó ð(ð ð 6:ð/à%ð/ð 3ð/ð 
ô	/ó ð/ð ó*ó ð*ð@0àð@0ð &ð@0ð 1ð	@0ð
 !ð@0ð 4ð@0ð 
ô@0ðJ$ )-ðgð
 =AØ#'Ø6:ð ñgàðgð &ðgð
 :ðgð !ðgð 4ðgð ðgð 
÷gñ gr5   ru  )r2   r_  rt   zTypeIs[FakeTensor])r2   ú(Union[MetaTensorDesc[Any], torch.Tensor]rt   r  )r2   r6   rt   zOptional[_TensorLikeT])r2   r6   rt   r6   )rO   r8   rP   r8   rt   ru   )rt   zGenerator[None, None, None])rQ   z Callable[[object, object], None]ro   r¡  rp   rs   rY   r  rZ   r  rt   ru   )r2   r_  rt   zTypeGuard[torch.Tensor])rd   rN  rt   r  )rˆ   ztype[_T]r‰   r_  rt   r8   )rm   r  rt   r  )rm   r  r�   r  rt   ru   )rn  rs   ro  rQ  rt   ru   )ro  rs   rt   rQ  )mÚ
__future__r   rg  r`  rê  Ú	threadingr£  rw  Úabcr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Útyping_extensionsr   r   r   r   rD   Útorch._C._autogradr   Útorch._C._functorchr   r   r   r   r   r   r   r   r   r    r!   Útorch._dispatch.pythonr"   Útorch._loggingr#   Útorch.utils._mode_utilsr$   Útorch.utils._python_dispatchr%   Útorch.utils.weakr&   Úcollections.abcr'   r(   r)   Útorch._guardsr*   r0   r+   r,   rÉ  r-   r.   r4   rþ   ÚDimListrv   r6   r8   r9   r;   rA   rJ   rM   rQ   ÚlocalrU   rS   rW   ry   r|   r‚   rh   r…   rŠ   rŽ   r�   r  r‘   r’   r“   rš   rw   rÁ   r÷   r+  r,  r;  rD  rG  rù   rp  rs  ru  Útorch._prims_commonÚ_prims_commonrU  rë   r5   r3   Ú<module>r³     sà  ðÝ "ã Û Û Û Û Û Ý ß =Ý !÷÷ ÷ ÷ BÓ Aã Ý +÷÷ ÷ ñ õ <Ý +Ý /Ý FÝ 0ö ß3å0Ý$ßH÷
 Pô%ð €Ù�~Ð'<¸e¿l¹lÓK€ÙˆTƒ]€Ù�: U§\¡\Ñ2€Ù�~¨U¯\©\ÀTÑJ€ôôôô,ð
 ‡o‚oÓ€ð #€Ô ð ó+ó ð+ð  Øñ;Ø/ð;à0ð;ð 	ð;ð
 ð;ð ð;ð 
õ;ô~HôôQô
7ôôð%Ø
ð%Ø.Bð%à	ô%ñ ˜¨Ó-€Ù�~ sÓ+€ñ �~ sÓ+€Ù  “OÐ ÷Tñ Tñn �$Ñ÷
ð 
ó ð
ñ �$Ñô8ˆw�xÑ ó 8ó ð8ñ$ �$Ñô
˜( <Ñ0ó 
ó ð
ñ$ �$ÑôI�h˜xÑ(¨'°(Ñ*;ó Ió ðIô6˜( G¨LÑ$9ô ô% 	°ò %ô 8¨W°\Ñ-Bô ñ �$ÑôU�W˜XÑ&ó Uó ðUôHôôI�G˜HÑ%ô IöX* $r5   