§
    O�’j_  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dl mZ d dlmZmZmZmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZ d dlm Z  d dl!m"Z" d dl#m$Z$m%Z% d dl&m'Z'm(Z( d dl)m*Z* er
d dl+Z+d dl,m-Z- d dl.Z.d dl/m0c m1Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZE d dlmFZF d dlmGZG d dlHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dlQmRZR ddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z` g d¢Zae
e.jb        jc        gePdz  f         Zdeje         G d„ d¦  «        ¦   «         Zfeje         G d„ d ¦  «        ¦   «         Zgd!„ Zhd"eidz  d#e2jj        d$eidz  d%e2jj        d&ekf
d'„Zle.jm        jn        jo        e.jm        jn        jp        e.jm        jn        jq        e.jm        jn        jr        e.jm        jn        js        e.jm        jn        jt        e.jm        jn        ju        e.jm        jn        jv        e.jm        jn        jw        e.jm        jn        jx        e.jm        jn        jy        e.jm        jn        jz        gZ{e.jm        jn        j|        e.jm        jn        j}        e.jm        jn        j~        e.jm        jn        j        e.jm        jn        j€        e.jm        jn        j�        e.jm        jn        j‚        e.jm        jn        jƒ        e.jm        jn        j„        g	Z…ed(„ ¦   «         Z†d)e‡e.jˆ        j‰        e
f         d&eŠe‡e.jˆ        j‰        e
f         d*f         fd+„Z‹dGd-„ZŒd.d/d0e‡e.jˆ        j‰        e
f         d1e‡e.jˆ        j‰        e
f         d2e�dz  fd3„ZŽd4e.jb        jc        d5eWd&eŠe.jb        jc        eWf         fd6„Z�d4e.jb        jc        fd7„Z�d8e.jb        jc        d9eWd4e.jb        jc        d:eWd;e‘eg         f
d<„Z’d0e‡e.jˆ        j‰        e
f         d1e‡e.jˆ        j‰        e
f         d2e�dz  d=ekfd>„Z“ G d?„ d/¦  «        Z”d@„ Z•	 dHd4e.jb        jc        dAdBd&dCfdD„Z–dE„ Z—dF„ Z˜dS )Ié    N)Údefaultdict)ÚCallableÚIterator)Úcontextmanager)ÚAnyÚfinalÚ
NamedTupleÚTYPE_CHECKING)ÚtracingÚTracingContext)Úautograd_not_implemented)ÚFakeScriptObject)Ú_deregister_op_implÚ_is_op_registered_to_fake_ruleÚregister_op_impl)ÚFakeTensorMode)Ú_ConstantAttributeType)Ú#first_call_function_nn_module_stack)Ú_PyTreeCodeGenÚ_PyTreeInfo)Úimmutable_dictÚimmutable_list)Úinsert_deferred_runtime_asserts)ÚValueRanges)Ú_build_cacheÚ_collect_all_valid_cia_opsÚ_collect_and_set_constant_attrsÚ_collect_param_buffer_metadataÚ_detect_fake_mode_from_gmÚ_fakify_params_buffersÚ_get_decomp_for_ciaÚ_is_preservable_cia_opÚ_name_hoo_subgraph_placeholdersÚ7_override_graph_signature_for_temp_registered_constantsÚ/_overwrite_signature_for_non_persistent_buffersÚ)_populate_param_buffer_metadata_to_new_gmÚ_register_constants_as_buffersÚ_rename_without_collisionsÚ_special_op_to_preserve_ciaÚplaceholder_naming_pass)ÚVerifier©Údetect_fake_mode©Úunset_fake_temporarily)Úis_equivalentÚreorder_kwargs©ÚCustomDecompTable)Úcompatibility)Ú
PassResult)ÚPassManageré   )ÚArgumentSpecÚConstantArgumentÚCustomObjArgumentÚExportGraphSignatureÚ	InputKindÚ	InputSpecÚ
OutputKindÚ
OutputSpecÚSymBoolArgumentÚSymFloatArgumentÚSymIntArgumentÚTensorArgumentÚTokenArgument)ÚExportedProgramÚModuleCallEntryÚModuleCallSignatureÚdefault_decompositionsc                   óŠ   — e Zd ZU ee         ed<   ee         ed<   ej        ed<   ej        ed<   dZee	         dz  ed<   d„ Z
dS )rG   ÚinputsÚoutputsÚin_specÚout_specNÚforward_arg_namesc                 óž   — | j         D ]}|j        |j        k    r|j        |_        Œ| j        D ]}|j        |j        k    r|j        |_        Œd S ©N)rJ   ÚnamerK   )ÚselfÚoriginal_nodeÚnew_nodeÚiÚos        úKC:\Projects\DSCons\.venv\Lib\site-packages\torch\export\exported_program.pyÚreplace_all_uses_withz)ModuleCallSignature.replace_all_uses_withi   sb   € Ø”ð 	'ð 	'ˆAØŒv˜Ô+Ò+Ð+Ø!œ�”øØ”ð 	'ð 	'ˆAØŒv˜Ô+Ò+Ð+Ø!œ�”øð	'ð 	'ó    )Ú__name__Ú
__module__Ú__qualname__Úlistr8   Ú__annotations__ÚpytreeÚTreeSpecrN   ÚstrrX   © rY   rW   rG   rG   a   s}   € € € € € € à�ÔÐÐÑØ�,ÔÐÐÑØŒ_ÐÐÑØŒoÐÐÑØ*.Ð�t˜C”y 4Ñ'Ð.Ð.Ñ.ð'ð 'ð 'ð 'ð 'rY   rG   c                   ó.   — e Zd ZU eed<   dZedz  ed<   dS )rF   ÚfqnNÚ	signature)rZ   r[   r\   ra   r^   re   rG   rb   rY   rW   rF   rF   r   s1   € € € € € € à	€H€H�HØ,0€IÐ" TÑ)Ð0Ð0Ñ0Ð0Ð0rY   rF   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                  ód   •— t          ¦   «         5   ‰| i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S rP   r.   )ÚargsÚkwargsÚfns     €rW   Úwrapperz/_disable_prexisiting_fake_mode.<locals>.wrappery   s…   ø€ å#Ñ%Ô%ð 	'ð 	'Ø�2�tÐ&˜vÐ&Ð&ð	'ð 	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   �%¥)¬))Ú	functoolsÚwraps)rj   rk   s   ` rW   Ú_disable_prexisiting_fake_modern   x   s8   ø€ Ý„_�RÑÔð'ð 'ð 'ð 'ñ Ôð'ð €NrY   Ú
spec1_typeÚspec1_contextÚ
spec2_typeÚspec2_contextÚreturnc                 ó*  — | �|€
| |u o||k    S t          | t          t          f¦  «        r"t          |t          t          f¦  «        r||k    S t          | t          t          f¦  «        r"t          |t          t          f¦  «        r||k    S | |u o||k    S )zeTreat containers and their immutable variants as the same type. Otherwise
    compare as normal.
    )Ú
issubclassÚdictr   r]   r   )ro   rp   rq   rr   s       rW   Ú_fx_collection_equivalence_fnrw   �   s·   € ð Ð˜ZÐ/Ø˜ZÐ'ÐJ¨M¸]Ò,JÐJå�*�t¥^Ð4Ñ5Ô5ð .½*Ø•T�>Ð*ñ;ô ;ð .ð  Ò-Ð-å�*�t¥^Ð4Ñ5Ô5ð .½*Ø•T�>Ð*ñ;ô ;ð .ð  Ò-Ð-à˜Ð#ÐF¨¸Ò(FÐFrY   c              #   óÂ  K  — i }t          ¦   «         }|                      ¦   «         D �]`\  }}|j                             ¦   «         ||<   |                     |¦  «         t
          D ]8}||j        vr- |                     |¦  «        t          |d¬¦  «        ¦  «         Œ9t          |¦  «        }t          j
        j        j        |j        v r|j        t          j
        j        j        =  |                     t          j
        j        j        ¦  «        |¦  «         d„ }t          |¦  «        s, t          |¦  «        t          j        ||¬¦  «        ¦  «         t"          D ])}||j        vr |                     |¦  «        |¦  «         Œ*�Œb	 d V — |D ]c}	|	j                             ¦   «          |	j                             ||	         ¦  «         |	j                             ¦   «          t+          |	¦  «         Œdd S # |D ]c}	|	j                             ¦   «          |	j                             ||	         ¦  «         |	j                             ¦   «          t+          |	¦  «         Œdw xY w)NT)Údeferred_errorc                 ó`   — |d         }|d= | 5   ||i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S )NÚoriginal_callablerb   )Úfake_tensor_modeÚoprh   ri   Úorig_cia_callables        rW   Ú$_force_dispatch_to_orig_cia_callablezQ_override_composite_implicit_decomp.<locals>._force_dispatch_to_orig_cia_callableè   s”   € Ø &Ð':Ô ;ÐØÐ*Ð+Ø!ð :ð :Ø(Ð(¨$Ð9°&Ð9Ð9ð:ð :ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   Ž#£'ª')r{   )ÚsetÚitemsÚ
py_kernelsÚcopyÚaddÚ(_AUTOGRAD_ALIAS_BACKEND_KEYS_TO_OVERRIDEÚpy_implr   r!   ÚtorchÚ_CÚDispatchKeyÚCompositeImplicitAutogradr   r   rl   ÚpartialÚ_BACKEND_KEYS_TO_OVERRIDEÚclearÚupdateÚ_dispatch_cacher   )
Úcia_ops_to_callableÚsaved_tablesÚpatched_opsÚop_overloadÚdecomp_callableÚoverride_dispatch_keyr~   r   Úkeyr}   s
             rW   Ú#_override_composite_implicit_decompr—   ¿   s   è è € ð €LÝ‘%”%€KØ(;×(AÒ(AÑ(CÔ(Cð =<ñ =<Ñ$ˆ�_Ø$/Ô$:×$?Ò$?Ñ$AÔ$Aˆ�[Ñ!Ø�Š˜Ñ$Ô$Ð$Ý%Mð 	ð 	Ð!Ø$¨KÔ,BÐBÐBà:�×#Ò#Ð$9Ñ:Ô:Ý,¨[ÈÐNÑNÔNñô ð øõ
 0°Ñ<Ô<ÐÝŒ8ÔÔ9¸[Ô=SÐSÐSØÔ&¥u¤xÔ';Ô'UÐVàKˆ×Ò�EœHÔ0ÔJÑKÔKØñ	
ô 	
ð 	
ð	:ð 	:ð 	:õ .¨kÑ:Ô:ð 	Ø)Õ˜[Ñ)Ô)ÝÔ!Ø8Ø&7ðñ ô ñô ð õ -ð 	<ð 	<ˆCØ˜+Ô0Ð0Ð0ð  )�×#Ò# CÑ(Ô(Ð):Ñ;Ô;Ð;øñ#	<ð&$Øˆˆˆàð 	$ð 	$ˆBØŒM×ÒÑ!Ô!Ð!ØŒM× Ò  ¨bÔ!1Ñ2Ô2Ð2ØÔ×$Ò$Ñ&Ô&Ð&Ý Ñ#Ô#Ð#Ð#ð		$ð 	$ø�+ð 	$ð 	$ˆBØŒM×ÒÑ!Ô!Ð!ØŒM× Ò  ¨bÔ!1Ñ2Ô2Ð2ØÔ×$Ò$Ñ&Ô&Ð&Ý Ñ#Ô#Ð#Ð#ð		$øøøs   Æ
G6 Ç6A(IÚdecomp_table.c                 ó¤  — t          t          ¦   «         ¦  «        }i }t          |                      ¦   «         ¦  «        D ]}||v r$| |         ||<   |                     |¦  «         | |= Œ*t          |¦  «        rF|                     ¦   «         }|                     d¦  «        rt          d|› �¦  «        ‚| |         ||<   Œ€|D ]}t          ||<   Œ|| fS )NÚatenz)This should be a custom op, got aten op: )
r€   r   r]   ÚkeysÚremover"   rQ   Ú
startswithÚAssertionErrorr)   )r˜   Úall_preservable_cia_opsr�   r}   Úop_nameÚks         rW   Ú,_split_decomp_table_to_cia_and_python_decompr¢     s  € õ "Õ"<Ñ">Ô">Ñ?Ô?ÐØÐå�<×$Ò$Ñ&Ô&Ñ'Ô'ð 7ð 7ˆð$ Ð(Ð(Ð(Ø&2°2Ô&6Ð Ñ#Ø#×*Ò*¨2Ñ.Ô.Ð.Ø˜RÐ Ð õ $ BÑ'Ô'ð 	7Ø—g’g‘i”iˆGØ×!Ò! &Ñ)Ô)ð Ý$ØIÀÐIÐIñô ð ð '3°2Ô&6Ð Ñ#øð %ð =ð =ˆÝ!<Ð˜AÑÐà Ð,Ð,rY   r3   c                  ó   — t          ¦   «         S )z¸
    This is the default decomposition table which contains decomposition of
    all ATEN operators to core aten opset. Use this API together with
    :func:`run_decompositions()`
    r2   rb   rY   rW   rH   rH   B  s   € õ ÑÔÐrY   ÚeprE   Úcia_to_decompÚpython_decomp_tableÚjoint_loss_indexc                ó>  ‡R‡S‡T‡U‡V— ddl m} ddlm} ddlm}m}m}	m}
m	}m
} ddlm} d„ } || |¦  «        �s]|                      ¦   «         }i t          |                     d¬¦  «        ¦  «        ¥t          |                     d¬¦  «        ¦  «        ¥ŠVdd	lm}  ||¦  «         i t          |                     d¬¦  «        ¦  «        ¥t          |                     d¬¦  «        ¦  «        ¥}t'          | j        ¦  «        }|€t+           |¦   «         d
¬¦  «        }|j        }t/          |j        j        t4          ¦  «        s)t7          dt9          |j        j        ¦  «        › �¦  «        ‚|j        j        j        j        }|€t7          d¦  «        ‚|j        t>          t@          fvrtC          j"        |g¦  «        }t5          tG          ||j$        |¦  «        ¦  «        |j        _        | %                    ¦   «          tM          | j'        | j(        |¦  «         tS          || j*        | j'        j+        ¦  «        }tY          ||¦  «        }t[          |¦  «        }ddl.m/}m0} g }|j        j1        D ]¬}|j2        dk    rŸt/          |j3        d         th          ¦  «        r_d }|j3        d         j5        €| j(        |j3        d         j6                 }n|j3        d         j5        j7        }| 8                    |¦  «         ŒŒ| 8                    |j3        d         ¦  «         Œ­ts          |¦  «        }|5  tu          |¦  «        5   || j;        ¦  «        5  ty          |¦  «        5  tC          j=        ||j$        ¦  «        } ||g |d         ¢|d          >                    ¦   «         ¢R i |¦  «        5 \  }} }!}"ŠS ||| |!||"|d|¬¦  «        }#ˆSfd„|#j(         ?                    ¦   «         D ¦   «         |#_(        |#j@        }$|#jA        }%t…          |%|¦  «        }%t‡          ||$|%¦  «         t‰          | j'        |%¦  «        }% ||$|%|"¦  «        }&t‹          |$|%|| |!||&¦  «         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   d d d ¦  «         n# 1 swxY w Y    |
|$¦  «          ||$¦  «          ||$|%¦  «         t�          |$|%¦  «        \  }$}%i | j*        ¥ˆVfd„| ?                    ¦   «         D ¦   «         ¥}'‰V ?                    ¦   «         D ]X\  }(})|(|'vr2t/          |)tŽ          jH        jI        ¦  «        rt7          d|(›d�¦  «        ‚|(|'v r|(|vr|' J                    |(¦  «         ŒY|$|%|'fS d„ | j        j        j1        D ¦   «         }*d„ |*D ¦   «         }+d„ | j                             ¦   «         D ¦   «         },|,D ]}(t—          | j        |(¦  «         Œt™          |+¦  «        }-|-€t›          jN        ¦   «         n|-}.|rtš          jN        n|}/ |	¦   «         5  |.5  tu          |¦  «        5   |/¦   «         5   || j        |+||d u|�|nd ¬¦  «        \  }$ŠRt/          |$tŽ          jO        jP        ¦  «        sJ ‚|$j         Q                    ¦   «          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   d„ ŠUd„ |$j        j1        D ¦   «         ŠTtA          |$j         R                    ¦   «         jS        d         ¦  «        }0t©          ‰T¦  «        t©          |*¦  «        k    r/t7          dt©          ‰T¦  «        › dt©          |*¦  «        › �¦  «        ‚t«          |*‰T¦  «        D ]\  }1}2|1j6        x|2_6        |2_V        Œi }3t¯          t°          ¦  «        }4t³          ¦   «         }5‰TD ]'}6|6j6        |3|6j6        <   tµ          |6j6        |4|5¦  «         Œ(|$j        j1        D ]0}|j2        dk    rŒt·          |3|4|5|j6        |j6        ¦  «        |_6        Œ1t¹          |$¦  «         ddl]m^}7m_}8 dd l`ma}9 tŽ          jb        jc        jd        sud!}:tË          |$¦  «        };|;�b |8|$tÍ          jg        |7d"|:i¬#¦  «        ¦  «        5  tÑ          |$|;d$tÓ          |$j        ¦  «        › �d
¬%¦  «         d d d ¦  «         n# 1 swxY w Y   |$ %                    ¦   «          t«          |0 |9|$¦  «        ¦  «        D ]\  }<}(|(�|(|<_6        ŒˆTfd&„tÕ          | j'        jk        ¦  «        D ¦   «         }=ˆTˆUfd'„tÕ          | j'        jk        ¦  «        D ¦   «         }>g }?d(„ tÕ          ‰Rjl        ¦  «        D ¦   «         }@t?          ‰Rjm         n                    ¦   «         ¦  «        }Ad)„ |0d t©          |A¦  «        …         D ¦   «         }B|A|Bk    rt7          d*|A› d+|B› �¦  «        ‚‰Rjm         ?                    ¦   «         D ]Ý\  }C}D|@|D         }E| j'        jk        |E         }F|Fjo        tà          jq        tà          jr        fvrt7          d,|Fjo        › �¦  «        ‚|Fjo        tà          jr        k    rtæ          jt        ntæ          ju        }G|Fjo        tà          jr        k    r|FjV        n|Fjv        j6        }H|? 8                    tï          |Gtñ          |C¬-¦  «        |H¬.¦  «        ¦  «         ŒÞtÕ          | j'        jy        ¦  «        D ]ƒ\  }E}I|? 8                    tï          |E|k    rtæ          jz        n|Ijo         ‰U|Ijv        |0t©          |A¦  «        |Ez            ¦  «        |= {                    |IjV        |IjV        ¦  «        ¦  «        ¦  «         Œ„|��~‰Rj|        €t7          d/¦  «        ‚‰Rj|        j}        }Jt©          ‰Rjl        ¦  «        t©          | j'        jk        ¦  «        k    r>t7          d0t©          ‰Rjl        ¦  «        › d1t©          | j'        jk        ¦  «        › �¦  «        ‚ˆRfd2„tÕ          | j'        jk        ¦  «        D ¦   «         }K|0t©          |?¦  «        d …         D ]²}|J|j6                 }L|K|L         }I|Ijo        tà          j~        k    rtæ          j        }M|IjV        }Hn;|Ijo        tà          jq        k    rtæ          j€        }M|L}Hnt7          d3|Ijo        › �¦  «        ‚|? 8                    tï          |Mtñ          |j6        ¬-¦  «        |H¦  «        ¦  «         Œ³t©          ‰T¦  «        t©          |*¦  «        k    r/t7          dt©          ‰T¦  «        › dt©          |*¦  «        › �¦  «        ‚�t          |>|?¬4¦  «        }%t«          |*‰T¦  «        D ]„\  }N}Ot/          |Nj3        d         tŽ          j‚        ¦  «        s|Nj3        d         |Oj3        d<   |OjV        |%jƒ        v s|OjV        |%j„        v r)|Nj3         ?                    ¦   «         D ]\  }P}Q|Q|Oj3        |P<   ŒŒ…|$|%| j*        fS )5Nr   )Ú_materialize_and_lift_constants)Úaot_export_module)Ú2_disable_custom_triton_op_functional_decompositionÚ_export_to_aten_irÚ_ignore_backend_decompsÚ_verify_nn_module_stackÚ_verify_placeholder_namesÚ_verify_stack_trace)ÚShapeEnvc                 ó&   — |d up| j         j        d uS rP   )Úgraph_signatureÚbackward_signature)r¤   r§   s     rW   Ú_is_joint_ir_decompzO_decompose_and_get_gm_with_new_signature_constants.<locals>._is_joint_ir_decomp_  s#   € à DÐ(ð AØÔ!Ô4¸DÐ@ð	
rY   F)Úremove_duplicate)Ú!unwrap_tensor_subclass_parametersT)Ú	shape_envÚexportz6expected mod.graph._codegen to be _PyTreeCodeGen, got zout_spec must not be None)Ú&_enable_graph_inputs_of_type_nn_moduleÚ_fakify_script_objectsÚplaceholderÚvalr7   )r˜   Ú_prettify_placeholder_namesÚdecompose_custom_triton_opsc                 óV   •— i | ]%\  }}|t          |t          ¦  «        r‰|         n|“Œ&S rb   )Ú
isinstancer   )Ú.0rd   ÚobjÚmap_fake_to_reals      €rW   ú
<dictcomp>zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<dictcomp>ï  sP   ø€ ð 2ð 2ð 2ñ !˜˜Sð å% cÕ+;Ñ<Ô<ð!Ð(¨Ô-Ð-à ð	2ð 2ð 2rY   c                 ó$   •— i | ]\  }}|‰v¯	||“ŒS rb   rb   )rÂ   rQ   ÚpÚwrapped_params_bufferss      €rW   rÅ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<dictcomp>+  s5   ø€ ð ð ð á�D˜!ØÐ5Ð5Ð5ð �aà5Ð5Ð5rY   z	expected z6 not to be a torch.nn.Parameter when not in state_dictc                 ó(   — g | ]}|j         d k    ¯|‘ŒS ©r¼   ©r}   ©rÂ   Únodes     rW   ú
<listcomp>zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<listcomp>@  s+   € ð ð ð Ø¸¼À=Ò8PÐ8PˆÐ8PÐ8PÐ8PrY   c                 ó(   — g | ]}|j         d          ‘ŒS )r½   )ÚmetarÌ   s     rW   rÎ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<listcomp>C  s   € Ð?Ð?Ð? d�”˜5Ô!Ð?Ð?Ð?rY   c                 ó   — g | ]\  }}|‘ŒS rb   rb   )rÂ   rQ   Ú_s      rW   rÎ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<listcomp>E  s   € ÐMÐMÐM¡' $¨˜ÐMÐMÐMrY   )ÚdecompositionsÚtrace_jointÚoutput_loss_indexc                 ó¾  — t          | t          ¦  «        r| S t          | t          ¦  «        rt          |j        ¬¦  «        S t          | t          ¦  «        rt	          |j        ¬¦  «        S t          | t
          ¦  «        rt          |j        ¬¦  «        S t          | t          ¦  «        rt          |j        ¬¦  «        S t          dt          | ¦  «        › �¦  «        ‚)N©rQ   zType of old_arg not supported: )	rÁ   r9   rC   rQ   rB   rA   r@   ÚRuntimeErrorÚtype)Úold_argÚnew_phs     rW   Ú
update_argzF_decompose_and_get_gm_with_new_signature_constants.<locals>.update_argf  sÌ   € Ý�gÕ/Ñ0Ô0ð 		5ØˆNÝ˜¥Ñ0Ô0ð 	5Ý! v¤{Ð3Ñ3Ô3Ð3Ý˜¥Ñ0Ô0ð 	5Ý! v¤{Ð3Ñ3Ô3Ð3Ý˜Õ!1Ñ2Ô2ð 	5Ý#¨¬Ð5Ñ5Ô5Ð5Ý˜¥Ñ1Ô1ð 	5Ý"¨¬Ð4Ñ4Ô4Ð4ÝÐL½TÀ'¹]¼]ÐLÐLÑMÔMÐMrY   c                 ó(   — g | ]}|j         d k    ¯|‘ŒS rÊ   rË   rÌ   s     rW   rÎ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<listcomp>s  s$   € ÐTÐTÐT ¸4¼7ÀmÒ;SÐ;S˜Ð;SÐ;SÐ;SrY   znew_placeholders length z( does not match old_placeholders length )Ú_node_metadata_hookÚ_set_node_metadata_hook)Ú_graph_output_nameszUFile "torch/fx/passes/runtime_assert.py", line 24, in insert_deferred_runtime_assertsÚstack_trace)Úmetadatazexported program: )r¹   c                 óz   •— i | ]7\  }}t          |j        t          ¦  «        °|j        j        ‰|         j        “Œ8S rb   )rÁ   Úargr9   rQ   )rÂ   rU   ÚspecÚnew_placeholderss      €rW   rÅ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<dictcomp>³  sO   ø€ ð ð ð áˆAˆtÝ˜$œ(Õ$4Ñ5Ô5ðØŒŒÐ'¨Ô*Ô/ðð ð rY   c           
      ó‚   •— g | ];\  }}t          |j         ‰|j        ‰|         ¦  «        |j        |j        ¦  «        ‘Œ<S rb   )r=   Úkindrä   ÚtargetÚ
persistent)rÂ   rU   rå   ræ   rÜ   s      €€rW   rÎ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<listcomp>¹  s_   ø€ ð ð ð ñ ˆAˆtõ 	ØŒIØˆJ�t”xÐ!1°!Ô!4Ñ5Ô5ØŒKØŒOñ		
ô 	
ðð ð rY   c                 ó   — i | ]\  }}||“Œ	S rb   rb   )rÂ   rU   rQ   s      rW   rÅ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<dictcomp>Ê  s   € ÐWÐWÐW¡W Q¨˜˜qÐWÐWÐWrY   c                 ó   — g | ]	}|j         ‘Œ
S rb   r×   rÌ   s     rW   rÎ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<listcomp>Ì  s   € ÐOÐOÐO D�d”iÐOÐOÐOrY   zmutation_names z does not match expected z9expected input_spec.kind to be USER_INPUT or BUFFER, got r×   )rè   rä   ré   zPgraph_signature.backward_signature must not be None when joint_loss_index is setz#graph_signature.user_inputs length z# does not match input_specs length c                 óf   •— i | ]-\  }}t          |j        t          ¦  «        ¯‰j        |         |“Œ.S rb   )rÁ   rä   rC   Úuser_inputs)rÂ   rU   rå   r³   s      €rW   rÅ   zF_decompose_and_get_gm_with_new_signature_constants.<locals>.<dictcomp>ÿ  sI   ø€ ð 
ð 
ð 
á��4Ý˜$œ(¥NÑ3Ô3ð
ØÔ'¨Ô*¨Dð
ð 
ð 
rY   zUnknown input kind: ©Úinput_specsÚoutput_specs)…Ú(torch._export.passes.lift_constants_passr©   Útorch._functorch.aot_autogradrª   Útorch.export._tracer«   r¬   r­   r®   r¯   r°   Ú%torch.fx.experimental.symbolic_shapesr±   Úmodulerv   Únamed_parametersÚnamed_buffersÚ7torch._functorch._aot_autograd.subclass_parametrizationr·   r   Úgraph_moduler   Ú	_out_specrÁ   ÚgraphÚ_codegenr   rž   rÙ   Úpytree_infoÚ	orig_argsr]   Útupler_   Útreespec_tupler   Ú_in_specÚ	recompiler   r³   Ú	constantsr'   Ú
state_dictÚnon_persistent_buffersr    r   Útorch._export.non_strict_utilsrº   r»   Únodesr}   rÐ   r:   Úfake_valrQ   Úreal_objÚappendr   r—   Úexample_inputsr   Útree_unflattenÚvaluesr�   ÚgmÚsigr$   r&   r%   r*   Ú _remove_unnecessary_copy_op_passr‡   ÚnnÚ	ParameterÚpopÚdelattrr-   Ú
contextlibÚnullcontextÚfxÚGraphModuleÚeliminate_dead_codeÚoutput_noderh   ÚlenÚzipré   r   Úintr€   r   r(   r#   Ú(torch._export.passes._node_metadata_hookrÞ   rß   Ú4torch._functorch._aot_autograd.input_output_analysisrà   Ú_dynamoÚconfigÚdo_not_emit_runtime_assertsÚ_get_shape_envrl   r‹   r   r   Ú	enumeraterð   rî   Úuser_inputs_to_mutater›   rè   r<   Ú
USER_INPUTÚBUFFERr>   ÚBUFFER_MUTATIONÚUSER_INPUT_MUTATIONrä   r?   rC   rñ   ÚLOSS_OUTPUTÚgetr´   Úgradients_to_user_inputsÚ	PARAMETERÚGRADIENT_TO_PARAMETERÚGRADIENT_TO_USER_INPUTr;   ÚTensorÚinputs_to_parametersÚinputs_to_buffers)Wr¤   r¥   r¦   r§   r¿   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   rµ   Úmodr·   Úunwrapped_params_buffersÚ	fake_moderM   Úorig_arg_namesÚtemp_registered_constantsÚfake_params_buffersÚparams_buffers_to_node_metarº   r»   Úretracing_argsrÍ   Úreal_script_objÚtxÚretracing_args_unwrappedÚpatched_modÚnew_fake_argsÚnew_fake_kwargsÚnew_fake_constant_attrsÚaten_export_artifactr  Únew_graph_signaturer  Únew_state_dictrQ   rÇ   Úold_placeholdersÚ	fake_argsÚbuffers_to_removeÚfake_mode_detÚfake_mode_ctxÚ#custom_triton_ops_decomposition_ctxÚnew_outputsÚold_phrÛ   Úname_mapÚfind_availableÚ
used_namesÚphrÞ   rß   rà   rá   r¸   ÚoutputÚold_new_placeholder_maprð   rñ   Úuser_inputs_indexÚmutation_namesÚexpected_namesÚoutput_nameÚ
input_namerU   Ú
input_specÚoutput_kindré   rå   Ú	gradientsÚspecsÚsourcerè   Úold_noderT   r¡   Úvr³   rÄ   ræ   rÜ   rÈ   sW                                                                                     @@@@@rW   Ú2_decompose_and_get_gm_with_new_signature_constantsr`  K  s!  øøøøø€ ð YÐXÐXÐXÐXÐXØ?Ð?Ð?Ð?Ð?Ð?ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ?Ð>Ð>Ð>Ð>Ð>ð
ð 
ð 
ð Ð˜rÐ#3Ñ4Ô4ñ Y7Ø�iŠi‰kŒkˆð"
Ý�3×'Ò'¸Ð'Ñ?Ô?Ñ@Ô@ð"
å�3×$Ò$°eÐ$Ñ<Ô<Ñ=Ô=ð"
Ðð
	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	*Ð)¨#Ñ.Ô.Ð.ð$
Ý�3×'Ò'¸Ð'Ñ?Ô?Ñ@Ô@ð$
å�3×$Ò$°eÐ$Ñ<Ô<Ñ=Ô=ð$
Ð õ .¨b¬oÑ>Ô>ˆ	ØÐÝ&°°±´ÀDÐIÑIÔIˆIð ”=ˆå˜#œ)Ô,­nÑ=Ô=ð 	Ý ØcÍÈcÌiÔN`ÑIaÔIaÐcÐcñô ð ð œÔ+Ô7ÔAˆð ÐÝ Ð!<Ñ=Ô=Ð=ØŒ=¥¥u Ð-Ð-ÝÔ,¨h¨ZÑ8Ô8ˆHå+ÝØØ”Øñô ñ
ô 
ˆŒ	Ôð 	�Š‰Œˆõ
 	(¨Ô(:¸B¼LÈ#ÑNÔNÐNõ %CØ�” Ô 2Ô Iñ%
ô %
Ð!õ
 5°YÀÑDÔDÐå&DÀSÑ&IÔ&IÐ#ð
	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 ˆØ”I”Oð 
	<ð 
	<ˆDØŒw˜-Ò'Ð'Ý˜dœi¨Ô.Õ0AÑBÔBð <Ø&*�OØ”y Ô'Ô0Ð8Ø*,¬,°t´yÀÔ7GÔ7LÔ*M˜˜à*.¬)°EÔ*:Ô*CÔ*L˜Ø"×)Ò)¨/Ñ:Ô:Ð:Ð:à"×)Ò)¨$¬)°EÔ*:Ñ;Ô;Ð;øå˜IÑ&Ô&ˆð ðP	ð P	å/Øñô ðP	ð P	ð
 3Ð2°2Ô3DÑEÔEðP	ð P	õ �B‰KŒKðP	ð P	õ (.Ô'<Ø ¤ñ(ô (Ð$ð (Ð'ØðØ-¨aÔ0ðà-¨aÔ0×7Ò7Ñ9Ô9ðð ð Øñô ð DñØØØØ'Ø à'9Ð'9ØØ!Ø#Ø'Ø+Ø!4Ø05Ø0Kð	(ñ 	(ô 	(Ð$ð2ð 2ð 2ð 2ð %9Ô$B×$HÒ$HÑ$JÔ$Jð2ñ 2ô 2Ð$Ô.ð *Ô,�Ø&:Ô&>Ð#õ
 LØ+Ð-Fñô ð $õ :Ø/°Ð5Hñô ð õ
 'VØÔ&Ð(;ñ'ô 'Ð#ð <Ð;ØÐ+Ð-Dñô �	õ (ØØ'ØØ!Ø#Ø'Øñô ð ðyDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð DðP	ð P	ð P	ñ P	ô P	ð P	ð P	ð P	ð P	ð P	ð P	øøøð P	ð P	ð P	ð P	ð P	ð P	ð P	ñ P	ô P	ð P	ð P	ð P	ð P	ð P	ð P	øøøð P	ð P	ð P	ð P	ð P	ð P	ð P	ñ P	ô P	ð P	ð P	ð P	ð P	ð P	ð P	øøøð P	ð P	ð P	ð P	ð P	ð P	ð P	ñ P	ô P	ð P	ð P	ð P	ð P	ð P	ð P	øøøð P	ð P	ð P	ð P	ðd 	 Ð Ñ#Ô#Ð#ØÐ˜BÑÔÐØ!Ð! "Ð&9Ñ:Ô:Ð:å"BØÐ#ñ#
ô #
ÑˆÐð
ØŒmð
ðð ð ð à7×=Ò=Ñ?Ô?ðñ ô ð
ˆð .×3Ò3Ñ5Ô5ð 
	-ð 
	-‰GˆD�!à˜>Ð)Ð)Ý˜a¥¤Ô!3Ñ4Ô4ð Ý(Øb DÐbÐbÐbñô ð ð �~Ð%Ð%ØÐ7Ð7Ð7Ø"×&Ò& tÑ,Ô,Ð,øàÐ&¨Ð6Ð6ðð ØœÔ.Ô4ðñ ô Ðð @Ð?Ð.>Ð?Ñ?Ô?€IàMÐM¨R¬_×-JÒ-JÑ-LÔ-LÐMÑMÔMÐØ!ð 'ð 'ˆÝ�” Ñ&Ô&Ð&Ð&õ % YÑ/Ô/€MØ0=Ð0E•JÔ*Ñ,Ô,Ð,È=€Mð 'ð	@�
ÔÐà?ð (ð 	 ÐÑ!Ô!ð'ð 'àð'ð 'õ 	,¨MÑ:Ô:ð'ð 'ð 	,Ð+Ñ-Ô-ð	'ð 'ð 0Ð/ØŒOØà.Ø(°Ð4à$4Ð$@Ð Ð Àdð	
ñ 	
ô 	
ÑˆˆOõ ˜"�eœhÔ2Ñ3Ô3Ð3Ð3Ð3Ø
Œ×$Ò$Ñ&Ô&Ð&ð#'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð*Nð Nð Nð UÐT¨¬¬ÐTÑTÔTÐÝ-2°2´8×3GÒ3GÑ3IÔ3IÔ3NÈqÔ3QÑ-RÔ-R€Kõ ÐÑÔ¥Ð$4Ñ 5Ô 5Ò5Ð5ÝØ}¥sÐ+;Ñ'<Ô'<Ð}Ð}ÕfiÐjzÑf{Ôf{Ð}Ð}ñ
ô 
ð 	
õ Ð.Ð0@ÑAÔAð 2ð 2‰ˆ�Ø&,¤kÐ1ˆŒ�f”m�mð €HÝ%0µÑ%5Ô%5€NÝ™5œ5€JØð :ð :ˆØœGˆ�”ÑÝ�R”W˜n¨jÑ9Ô9Ð9Ð9Ø””ð 
ð 
ˆØŒ7�mÒ#Ð#ØÝ.Ø�n j°$´)¸T¼Yñ
ô 
ˆŒ	ˆ	õ
 $ BÑ'Ô'Ð'ðð ð ð ð ð ð ð ð YÐXÐXÐXÐXÐXåŒ=ÔÔ;ð ð1ð 	õ # 2Ñ&Ô&ˆ	ØÐ Ø(Ð(ØÝÔ!Ø'°=À+Ð2Nðñ ô ñô ð ð õ 0ØØØXÕ)LÈRÌXÑ)VÔ)VÐXÐXØð	ñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡L‚L�N„N€NÝ˜KÐ)<Ð)<¸RÑ)@Ô)@ÑAÔAð ð ‰ˆ�ØÐØˆFŒKøðð ð ð å  Ô!3Ô!?Ñ@Ô@ðñ ô Ððð ð ð ð õ ! Ô!3Ô!?Ñ@Ô@ðñ ô €Kð €Lð XÐWµ	¸/Ô:UÑ0VÔ0VÐWÑWÔWÐÝ˜/Ô?×DÒDÑFÔFÑGÔG€NØOÐO¨KÐ8M½#¸nÑ:MÔ:MÐ8MÔ,NÐOÑOÔO€NØ˜Ò'Ð'ÝØW˜nÐWÐWÀ~ÐWÐWñ
ô 
ð 	
ð $3Ô#H×#NÒ#NÑ#PÔ#Pð 
ð 
Ñˆ�ZØ˜jÔ)ˆØÔ'Ô3°AÔ6ˆ
ØŒ?¥9Ô#7½Ô9IÐ"JÐJÐJÝ Ø]ÈJÌOÐ]Ð]ñô ð ð
 Œ¥)Ô"2Ò2Ð2õ Ô&Ð&åÔ/ð 	ð Œ¥)Ô"2Ò2Ð2ð ÔÐà”Ô$ð 	ð
 	×ÒÝØ Ý"¨Ð4Ñ4Ô4Øðñ ô ñ	
ô 	
ð 	
ð 	
õ ˜RÔ/Ô<Ñ=Ô=ð 
ð 
‰ˆˆ4Ø×ÒÝØ*+Ð/?Ò*?Ð*?•
Ô&Ð&ÀTÄYØ�
˜4œ8 [µ°^Ñ1DÔ1DÀqÑ1HÔ%IÑJÔJØ'×+Ò+¨D¬K¸¼ÑEÔEñô ñ	
ô 	
ð 	
ð 	
ð Ñ#ØÔ-Ð5Ý Øbñô ð ð $Ô6ÔOˆ	ÝˆÔ*Ñ+Ô+­s°2Ô3EÔ3QÑ/RÔ/RÒRÐRÝ ðLµc¸/Ô:UÑ6VÔ6Vð Lð LÝ&)¨"Ô*<Ô*HÑ&IÔ&IðLð Lñô ð ð
ð 
ð 
ð 
å$ RÔ%7Ô%CÑDÔDð
ñ 
ô 
ˆð
  ¥ LÑ 1Ô 1Ð 3Ð 3Ô4ð 	ð 	ˆDØ˜tœyÔ)ˆFØ˜”=ˆDØŒy�IÔ/Ò/Ð/Ý!Ô7�Øœ��Ø”�iÔ2Ò2Ð2Ý!Ô8�Ø��å$Ð%G¸D¼IÐ%GÐ%GÑHÔHÐHØ×ÒÝØÝ"¨¬	Ð2Ñ2Ô2Øñô ñô ð ð õ ÐÑÔ¥Ð$4Ñ 5Ô 5Ò5Ð5ÝØ}¥sÐ+;Ñ'<Ô'<Ð}Ð}ÕfiÐjzÑf{Ôf{Ð}Ð}ñ
ô 
ð 	
ö /Ø¨lðñ ô Ðõ "Ð"2Ð4DÑEÔEð 	%ð 	%Ñˆ�(Ý˜(œ-¨Ô.µ´Ñ=Ô=ð 	8Ø#+¤=°Ô#7ˆHŒM˜%Ñ ð ŒOÐ2ÔGÐGÐGØŒÐ"5Ô"GÐGÐGà œ×+Ò+Ñ-Ô-ð %ð %‘��1Ø#$�”˜aÑ Ð øØÐ" B¤MÐ1Ð1s5  Ì+R:Ì;R#ÍRÍAQ5	Î(B*QÑQ5	ÑQ"Ñ"Q5	Ñ%Q"Ñ&Q5	Ñ)RÑ5Q9Ñ9RÑ<Q9Ñ=RÒ R#ÒRÒR#ÒRÒR#ÒR:Ò#R'	Ò'R:Ò*R'	Ò+R:Ò:R>ÓR>Ø9\Ø<[*Ù[ÙAZ<	Ú0[Ú<[ Û [Û[ Û[Û[*Û[Û[*Û[Û[*Û\Û*[.	Û.\Û1[.	Û2\Ü\Ü\ã)c6ã6c:ã=c:r  rD  c                 ój  — |                       |                     ¦   «         ¦  «        5  | j        j        D ]Ð}|j        dk    rÃt          j        |j        ¦  «        \  }}|D ]¤}t          |t          j
        j        ¦  «        rƒ|j        |j        v s|j        |j        v rg|j        dk    r\|j        t          j        j        j        j        u r:|                     |j        d         ¦  «         | j                             |¦  «         Œ¥ŒÑ|                      ¦   «          ddd¦  «         n# 1 swxY w Y   | |fS )zQ
    Removes redundant copy_ node that was introduced due to mutated buffer.
    rR  Úcall_functionr7   N)Ú_set_replace_hookÚget_replace_hookrü   r  r}   r_   Útree_flattenrh   rÁ   r‡   r  ÚNoderQ   Úbuffers_to_mutateÚparameters_to_mutateré   Úopsrš   rƒ   ÚdefaultrX   Ú
erase_noder  )r  rD  rÍ   rh   rÒ   Úouts         rW   r  r  0  sj  € ð 
×	Ò	Ð1×BÒBÑDÔDÑ	EÔ	Eð ð Ø”H”Nð 	5ð 	5ˆDØŒw˜(Ò"Ð"Ý Ô-¨d¬iÑ8Ô8‘��aØð 
5ð 
5�CÝ! #¥u¤x¤}Ñ5Ô5ð 	5ØœÐ$7Ô$IÐIÐIØœ8Ð':Ô'OÐOÐOð  œF oÒ5Ð5Ø #¤
­e¬i¬nÔ.AÔ.IÐ IÐ Ià×5Ò5°c´h¸q´kÑBÔBÐBØœH×/Ò/°Ñ4Ô4Ð4øøØ
�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð  Ð"Ð"Ð"s   ¨C2D&Ä&D*Ä-D*c           	      ó˜  — |                       |                     ¦   «         ¦  «        5  |                      ¦   «         D ]ó}t          |t          j        j        ¦  «        sŒ"i }i }t          |j        j	        ¦  «        D ]³}|j
        dk    rœ|j        t          j        u r‰|j        \  }}||         › d|› �}	|	|v rc|                     ||	         ¦  «         |D ]*}
|
j        �!|
j                             |||	         ¦  «         Œ+|j                             |¦  «         Œž|||	<   |	||<   Œ©|j        ||<   Œ´Œô	 d d d ¦  «         d S # 1 swxY w Y   d S )Nrb  ú.)rc  rd  ÚmodulesrÁ   r‡   r  r  r]   rü   r  r}   ré   ÚoperatorÚgetitemrh   rX   re   rk  rQ   )r  r³   Úmodule_call_graphrö   Únode_idÚgetitemsrÍ   r]  ÚidxÚnew_idÚentrys              rW   Ú _common_getitem_elimination_passrx  I  sÄ  € ð 
×	Ò	˜o×>Ò>Ñ@Ô@Ñ	AÔ	Að .ð .Ø—j’j‘l”lð 	.ð 	.ˆFÝ˜f¥e¤hÔ&:Ñ;Ô;ð Øà02ˆGØ13ˆHÝ˜Vœ\Ô/Ñ0Ô0ð .ð .�Ø”7˜oÒ-Ð-°$´+ÅÔAQÐ2QÐ2QØ"&¤)‘K�F˜CØ '¨¤Ð7Ð7°#Ð7Ð7�FØ Ð)Ð)Ø×2Ò2°8¸FÔ3CÑDÔDÐDØ%6ð "ð "˜EØ$œÐ:Ø %¤× EÒ EØ$(¨(°6Ô*:ñ!"ô !"ð !"øð œ×/Ò/°Ñ5Ô5Ð5Ð5à+/˜ Ñ(Ø(.˜ ™˜à$(¤I�G˜D‘M�Mð!.ð	.ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   ¨D	D?Ä?EÅEÚold_gmÚold_graph_signaturer³   Úold_module_call_graphc                 óÂ  ‡‡— t          j        |¦  «        }d„ | j        j        D ¦   «         }i ‰j        ¥‰j        ¥}i |j        ¥|j        ¥}i |¥‰j        ¥‰j        ¥Ši |¥|j        ¥|j        ¥}	i }
d}d„ | j        j        D ¦   «         }t          t          ˆˆfd„|¦  «        ¦  «        }d„ |j        j        D ¦   «         }|j        j        D ]é}|j
                             dg ¦  «        x}r|j        |
|d         j        <   Œ5|j        dk    r©|j        |	v s |j        |j        v s’|j        |v r‰t!          |j        t"          ¦  «        s$t%          d	t'          |j        ¦  «        › �¦  «        ‚||         }t!          |t"          ¦  «        st%          d
t'          |¦  «        › �¦  «        ‚|j        |
|<   |dz  }Œêt)          t          ¦  «        }|                     ¦   «         D ]o\  }}|                     d¦  «        s
||v r||
|<   Œ$d                     |                     d¦  «        dd…         ¦  «        }||                              |¦  «         Œp|D �]}|j        }|€Œg |j        ¢|j        ¢D ]í}|j        |v rt;          d|j        › d�¦  «        ‚|j        |
v r|
|j                 |_        Œ?|j        |v r¥||j                 }|j        dk    r�|j        t<          j        j         j!        j"        t<          j        j         j!        j#        t<          j        j         j!        j$        fv r6|j%        d         j        }||
vrt;          d|› d�¦  «        ‚|
|         |_        Œî�Œ|S )Nc                 ó   — i | ]
}|j         |“ŒS rb   r×   rÌ   s     rW   rÅ   z2_get_updated_module_call_graph.<locals>.<dictcomp>o  s   € Ð@Ð@Ð@ T�”˜DÐ@Ð@Ð@rY   r   c                 ó2   — g | ]}|j         d k    ¯|j        ‘ŒS rÊ   ©r}   ré   rÌ   s     rW   rÎ   z2_get_updated_module_call_graph.<locals>.<listcomp>‰  s-   € ð ð ð Ø°d´gÀÒ6NÐ6NˆŒÐ6NÐ6NÐ6NrY   c                 ó   •— | ‰vo| ‰j         vS rP   )Úinput_tokens)ÚxÚold_graph_non_user_inputsrz  s    €€rW   ú<lambda>z0_get_updated_module_call_graph.<locals>.<lambda>Ž  s!   ø€ �aÐ8Ð8ð :ØÐ,Ô9Ð9ð rY   c                 ó2   — g | ]}|j         d k    ¯|j        ‘ŒS rÊ   r  rÌ   s     rW   rÎ   z2_get_updated_module_call_graph.<locals>.<listcomp>“  s-   € ð ð ð Ø°$´'¸]Ò2JÐ2JˆŒÐ2JÐ2JÐ2JrY   Ú	from_nodeéÿÿÿÿr¼   z"expected node.name to be str, got z!expected old_name to be str, got r7   zparametrizations.rn  zIt looks like z� is a tensor subclass. Preserving submodule that takes subclass parameter is not supported in inference IR because we desugar them, resulting in more tensorsrb  )&rƒ   Údeepcopyrü   r  r2  r3  Ú!inputs_to_lifted_tensor_constantsÚinputs_to_lifted_custom_objsr]   ÚfilterrÐ   r,  rQ   r}   ré   r�  rÁ   ra   rž   rÙ   r   r�   r�   ÚjoinÚsplitr  re   rJ   rK   Ú
ValueErrorr‡   ri  rš   ÚtoÚdtype_layoutÚdeviceÚdtyperh   )ry  rz  r  r³   r{  Únew_module_call_graphÚ	old_nodesÚold_graph_params_buffersÚnew_graph_params_buffersÚnew_graph_non_user_inputsÚ
provenanceÚuser_input_counterÚold_user_input_namesÚnew_user_input_namesrÍ   ÚhistoryÚold_nameÚold_param_to_desugaredrQ   ré   Ú
old_targetrw  re   r‚  r^  rƒ  s    `                       @rW   Ú_get_updated_module_call_graphr   f  sg  øø€ õ !œMÐ*?Ñ@Ô@Ðà@Ð@¨V¬\Ô-?Ð@Ñ@Ô@€Ið Ø
Ô
2ð à
Ô
/ð Ðð Ø
Ô
.ð à
Ô
+ð Ðð!Ø
"ð!à
Ô
?ð!ð Ô
:ð!Ðð
!Ø
"ð!à
Ô
;ð!ð Ô
6ð!Ðð "$€JàÐðð Ø &¤Ô 2ðñ ô Ðõ  Ýð:ð :ð :ð :ð :à ñ	
ô 	
ñô Ððð Ø "¤¤ðñ ô Ðð ””ð ,ð ,ˆØ”i—m’m K°Ñ4Ô4Ð4ˆ7ð 	,Ø+/¬9ˆJ�w˜r”{Ô'Ñ(Ð(ð
 ŒW˜Ò%Ð%à”Ð8Ð8Ð8Ø”; /Ô">Ð>Ð>à”;Ð"6Ð6Ð6Ý% d¤iµÑ5Ô5ð Ý,ØRÅÀdÄiÁÄÐRÐRñô ð ð  4Ð4FÔG�HÝ% hµÑ4Ô4ð Ý,ØPÅÀXÁÄÐPÐPñô ð ð ,0¬9�J˜xÑ(Ø&¨!Ñ+Ð&øõ
 )­Ñ.Ô.ÐØ0×6Ò6Ñ8Ô8ð <ð <‰ˆˆfà× Ò Ð!4Ñ5Ô5ð 	<àÐ/Ð/Ð/Ø#'�
˜4Ñ øàŸš &§,¢,¨sÑ"3Ô"3°A°b°DÔ"9Ñ:Ô:ˆJØ" :Ô.×5Ò5°dÑ;Ô;Ð;Ð;ð 'ð '4ñ '4ˆØ”Oˆ	ØÐØØ8�9Ô#Ð8 iÔ&7Ð8ð #	4ð #	4ˆAð ŒvÐ/Ð/Ð/Ý ð[ Q¤Vð [ð [ð [ñô ð ð Œv˜Ð#Ð#Ø# A¤FÔ+�”�ð ”˜9Ð$Ð$Ø$ Q¤VÔ,�Ø”; /Ò1Ð1°h´oÝ”I”NÔ%Ô2Ý”I”NÔ%Ô,Ý”I”NÔ%Ô+ðJð 7ð 7ð
 "*¤¨qÔ!1Ô!6�JØ!¨Ð3Ð3Ý(ðc¨Zð cð cð cñô ð ð (¨
Ô3�A”FøñG#	4ðJ !Ð rY   r¿   c          
      ó8  — t          | ||||¬¦  «        \  }}}t          | j        | j        ||| j        ¦  «        }|j                             | j        j        ¦  «         t          || j        ¦  «        }	t          ||j
        |||	|| j        | j        ¬¦  «        }
|
S )N©r¥   r¦   r§   r¿   )Úrootrü   r³   r  Úrange_constraintsrr  r  r  )r`  r   rú   r³   rr  rÐ   rŽ   Ú_get_updated_range_constraintsr¤  rE   rü   r  r  )r¤   r¥   r¦   r§   r¿   r  rD  r  r“  Únew_range_constraintsÚexported_programs              rW   Ú_decompose_exported_programr¨  ë  sÎ   € õ 	;Ø
Ø#Ø/Ø)Ø$?ð	ñ 	ô 	ñ	Ø
ØØõ ;Ø
ŒØ
ÔØ
ØØ
Ôñô Ðð „G‡N‚N�2”?Ô'Ñ(Ô(Ð(å:Ø
Ø
Ôñô Ðõ
 'ØØŒhØ+ØØ/Ø/ØÔ(Ø”,ð	ñ 	ô 	Ðð ÐrY   c                   ó  — e Zd ZU dZej        j        ed<   	 eed<   	 e	e
ef         ed<   	 ded<   	 ee         ed<   	 eeedf         e	e
ef         f         d	z  ed
<   	 e	e
ef         ed<   	 eee                  ed<   	 ee
         ed<   	 	 dNd	dœdej        j        e	e
ef         z  dej        j        dede	e
ej        ej        j        z  f         dddee         deeedf         e	e
ef         f         d	z  de	e
ef         d	z  deee                  d	z  fd„Ze ed¬¦  «        d„ ¦   «         ¦   «         Zej         ed¬¦  «        d„ ¦   «         ¦   «         Ze ed¬¦  «        d„ ¦   «         ¦   «         Zej         ed¬¦  «        d„ ¦   «         ¦   «         Ze ed¬¦  «        d „ ¦   «         ¦   «         Zej         ed¬¦  «        d!„ ¦   «         ¦   «         Ze ed¬¦  «        d"„ ¦   «         ¦   «         Zej         ed¬¦  «        d#„ ¦   «         ¦   «         Z ed¬¦  «        d$eej        j                 fd%„¦   «         Z  ed¬¦  «        d$eee
ej        j        f                  fd&„¦   «         Z! ed¬¦  «        d$eej                 fd'„¦   «         Z" ed¬¦  «        d$eee
ej        f                  fd(„¦   «         Z#e ed¬¦  «        d)„ ¦   «         ¦   «         Z$e$j         ed¬¦  «        d*„ ¦   «         ¦   «         Z$e ed¬¦  «        d+„ ¦   «         ¦   «         Z%e%j         ed¬¦  «        d,„ ¦   «         ¦   «         Z%e ed¬¦  «        d-„ ¦   «         ¦   «         Z&e&j         ed¬¦  «        d.„ ¦   «         ¦   «         Z&e ed¬¦  «        d/„ ¦   «         ¦   «         Z'e'j         ed¬¦  «        d0„ ¦   «         ¦   «         Z'e ed¬¦  «        d$efd1„¦   «         ¦   «         Z(e(j         ed¬¦  «        d2„ ¦   «         ¦   «         Z(e ed¬¦  «        d$e
fd3„¦   «         ¦   «         Z)e)j         ed¬¦  «        d4„ ¦   «         ¦   «         Z)e ed¬¦  «        d5„ ¦   «         ¦   «         Z*e*j         ed¬¦  «        d6„ ¦   «         ¦   «         Z*e ed¬¦  «        d7„ ¦   «         ¦   «         Z+e+j         ed¬¦  «        d8„ ¦   «         ¦   «         Z+e ed¬¦  «        d9„ ¦   «         ¦   «         Z,e,j         ed¬¦  «        d:„ ¦   «         ¦   «         Z,d;„ Z-d<ed=ed$efd>„Z.d<ed=ed$efd?„Z/d$e
fd@„Z0dOd$ej        j        fdB„Z1dC„ Z2e3	 	 dPdDe	ej4        j5        e6f         d	z  dEe7d$d fdF„¦   «         Z8dGe9d$d fdH„Z:dI„ Z; ed¬¦  «        dJ„ ¦   «         Z<e=dK„ ¦   «         Z>d	d	d	dLœ	 dQdM„Z?d	S )RrE   aÄ  
    Package of a program from :func:`export`. It contains
    an :class:`torch.fx.Graph` that represents Tensor computation, a state_dict containing
    tensor values of all lifted parameters and buffers, and various metadata.

    You can call an ExportedProgram like the original callable traced by
    :func:`export` with the same calling convention.

    To perform transformations on the graph, use ``.module`` property to access
    an :class:`torch.fx.GraphModule`. You can then use
    `FX transformation <https://pytorch.org/docs/stable/fx.html#writing-transformations>`_
    to rewrite the graph. Afterwards, you can simply use :func:`export`
    again to construct a correct ExportedProgram.
    Ú_graph_moduleÚ_graph_signatureÚ_state_dictzdict[sympy.Symbol, ValueRanges]Ú_range_constraintsÚ_module_call_graph.NÚ_example_inputsÚ
_constantsÚ
_verifiersÚ_guards_code)Ú	verifiersr£  rü   r³   r  r¤  údict[sympy.Symbol, Any]rr  r  r  r³  c	                ó~  — t           j        j                             ¦   «         |_        t          ||¦  «        | _        t          |t           j        j        ¦  «        r$| j        j	         
                    |j	        ¦  «         t          | j        ||¦  «         || _        || _        || _        |€t          d¦  «        ‚|| _        || _        |pi | _        |	pt&          g}	t)          d„ |	D ¦   «         ¦  «        st          d|	› �¦  «        ‚|	| _        |                      ¦   «          t/          | j        ¦  «        | _        d S )Nz"module_call_graph must not be Nonec              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rP   )ru   r+   )rÂ   r_  s     rW   ú	<genexpr>z+ExportedProgram.__init__.<locals>.<genexpr>m  s,   è è € Ð>Ð>¨q•:˜a¥Ñ*Ô*Ð>Ð>Ð>Ð>Ð>Ð>rY   z2all verifiers must be subclasses of Verifier, got )r‡   r  rü   ÚCodeGenrý   Ú_create_graph_module_for_exportrª  rÁ   r  rÐ   rŽ   rx  r«  r¬  r­  rž   r®  r¯  r°  r+   Úallr±  ÚvalidateÚ_convert_guards_to_coder²  )
rR   r£  rü   r³   r  r¤  rr  r  r  r³  s
             rW   Ú__init__zExportedProgram.__init__L  s?  € õ œœ×/Ò/Ñ1Ô1ˆŒÝ<¸TÀ5ÑIÔIˆÔÝ�d�EœHÔ0Ñ1Ô1ð 	6ØÔÔ#×*Ò*¨4¬9Ñ5Ô5Ð5å(ØÔ Ð1Bñ	
ô 	
ð 	
ð 7FˆÔØ+5ˆÔØCTˆÔØÐ$Ý Ð!EÑFÔFÐFØ9JˆÔØ-ˆÔà#˜/ rˆŒàÐ+¥( ˆ	ÝÐ>Ð>°IÐ>Ñ>Ô>Ñ>Ô>ð 	Ý ØPÀYÐPÐPñô ð ð $ˆŒà�Š‰Œˆå3°DÔ4FÑGÔGˆÔÐÐrY   F)Úis_backward_compatiblec                 ó   — | j         S rP   )rª  ©rR   s    rW   rú   zExportedProgram.graph_modulew  s   € ð Ô!Ð!rY   c                 ó    — t          d¦  «        ‚)Nz7Unable to set ExportedProgram's graph_module attribute.©rØ   ©rR   Úvalues     rW   rú   zExportedProgram.graph_module|  s   € õ ÐTÑUÔUÐUrY   c                 ó   — | j         j        S rP   )rú   rü   rÀ  s    rW   rü   zExportedProgram.graph�  s   € ð Ô Ô&Ð&rY   c                 ó    — t          d¦  «        ‚)Nz0Unable to set ExportedProgram's graph attribute.rÂ  rÃ  s     rW   rü   zExportedProgram.graph†  s   € õ ÐMÑNÔNÐNrY   c                 ó   — | j         S rP   )r«  rÀ  s    rW   r³   zExportedProgram.graph_signature‹  s   € ð Ô$Ð$rY   c                 ó    — t          d¦  «        ‚)Nz:Unable to set ExportedProgram's graph_signature attribute.rÂ  rÃ  s     rW   r³   zExportedProgram.graph_signature�  s   € õ ÐWÑXÔXÐXrY   c                 ó   — | j         S rP   )r¬  rÀ  s    rW   r  zExportedProgram.state_dict•  s   € ð ÔÐrY   c                 ó    — t          d¦  «        ‚)Nz5Unable to set ExportedProgram's state_dict attribute.rÂ  rÃ  s     rW   r  zExportedProgram.state_dictš  s   € õ ÐRÑSÔSÐSrY   rs   c              #   óF   K  — |                       ¦   «         D ]	\  }}|V — Œ
dS )zH
        Returns an iterator over original module's parameters.
        N)r÷   )rR   rÒ   Úparams      rW   Ú
parameterszExportedProgram.parametersŸ  s<   è è € ð
 ×-Ò-Ñ/Ô/ð 	ð 	‰HˆAˆuØˆKˆKˆKˆKð	ð 	rY   c              #   óJ   K  — | j         j        D ]}|| j        |         fV — ŒdS )z—
        Returns an iterator over original module parameters, yielding
        both the name of the parameter as well as the parameter itself.
        N)r³   rÍ  r  )rR   Ú
param_names     rW   r÷   z ExportedProgram.named_parameters§  sB   è è € ð Ô.Ô9ð 	:ð 	:ˆJØ˜dœo¨jÔ9Ð9Ð9Ð9Ð9Ð9ð	:ð 	:rY   c              #   óF   K  — |                       ¦   «         D ]	\  }}|V — Œ
dS )zC
        Returns an iterator over original module buffers.
        N)rø   )rR   rÒ   Úbufs      rW   ÚbufferszExportedProgram.buffers°  s<   è è € ð
 ×(Ò(Ñ*Ô*ð 	ð 	‰FˆAˆsØˆIˆIˆIˆIð	ð 	rY   c              #   óD  K  — t          | j        j        ¦  «        }d}| j        j        D ]u}||v r|| j        |         fV — Œ|| j        v r|| j        |         fV — Œ3|| j        v r|| j        |         fV — ŒN|€| j                             ¦   «         }|||         fV — ŒvdS )zŽ
        Returns an iterator over original module buffers, yielding
        both the name of the buffer as well as the buffer itself.
        N)r€   r³   r  rÒ  r  r  rú   )rR   r  Úgm_state_dictÚbuffer_names       rW   rø   zExportedProgram.named_buffers¸  sî   è è € õ "% TÔ%9Ô%PÑ!QÔ!QÐð ˆØÔ/Ô7ð 	>ð 	>ˆKØÐ4Ð4Ð4Ø! 4¤>°+Ô#>Ð>Ð>Ð>Ð>Ð>Ø ¤Ð/Ð/Ø! 4¤?°;Ô#?Ð?Ð?Ð?Ð?Ð?Ø ¤Ð.Ð.Ø! 4¤>°+Ô#>Ð>Ð>Ð>Ð>Ð>ð !Ð(Ø$(Ô$5×$@Ò$@Ñ$BÔ$B�MØ! =°Ô#=Ð=Ð=Ð=Ð=Ð=ð	>ð 	>rY   c                 ó   — | j         S rP   )r­  rÀ  s    rW   r¤  z!ExportedProgram.range_constraintsÒ  ó   € ð Ô&Ð&rY   c                 ó    — t          d¦  «        ‚)Nz<Unable to set ExportedProgram's range_constraints attribute.rÂ  rÃ  s     rW   r¤  z!ExportedProgram.range_constraints×  ó   € õ ØJñ
ô 
ð 	
rY   c                 ó   — | j         S rP   )r®  rÀ  s    rW   rr  z!ExportedProgram.module_call_graphÞ  r×  rY   c                 ó    — t          d¦  «        ‚)Nz<Unable to set ExportedProgram's module_call_graph attribute.rÂ  rÃ  s     rW   rr  z!ExportedProgram.module_call_graphã  rÙ  rY   c                 ó   — | j         S rP   )r¯  rÀ  s    rW   r  zExportedProgram.example_inputsê  s   € ð Ô#Ð#rY   c                 óH  — |€	|| _         d S t          |t          ¦  «        rIt          |¦  «        dk    r6t          |d         t          ¦  «        rt          |d         t          ¦  «        st          d¦  «        ‚|\  }}ddlm}  |||| j        j	        ¦  «         || _         d S )Né   r   r7   zqExample inputs should be a tuple containing example arguments (as a tuple), and example kwargs (as a dictionary).)Ú_check_inputs_match)
r¯  rÁ   r   r  rv   rŽ  Ú_unliftrß  Ú	call_specrL   )rR   rÄ  rh   ri   rß  s        rW   r  zExportedProgram.example_inputsï  sÄ   € ð
 ˆ=Ø#(ˆDÔ ØˆFõ �u�eÑ$Ô$ð		å�E‘
”
˜a’�Ý˜5 œ8¥UÑ+Ô+ð  å˜5 œ8¥TÑ*Ô*ð  õ ðBñô ð ð
 ‰ˆˆfØ0Ð0Ð0Ð0Ð0Ð0àÐ˜D &¨$¬.Ô*@ÑAÔAÐAà$ˆÔÐÐrY   c                 óP  —  G d„ dt           ¦  «        }t          | j        ¦  «        dk    r |d d ¬¦  «        S | j        d         j        dk    r"t	          d| j        d         j        ›�¦  «        ‚ || j        d         j        j        | j        d         j        j        ¬¦  «        S )Nc                   óD   — e Zd ZU ej        dz  ed<   ej        dz  ed<   dS )ú+ExportedProgram.call_spec.<locals>.CallSpecNrL   rM   )rZ   r[   r\   r_   r`   r^   rb   rY   rW   ÚCallSpecrä    s8   € € € € € € Ø”_ tÑ+Ð+Ð+Ñ+Ø”o¨Ñ,Ð,Ð,Ñ,Ð,Ð,rY   rå  r   )rL   rM   Ú z=expected first module_call_graph fqn to be empty string, got )r	   r  rr  rd   rž   re   rL   rM   )rR   rå  s     rW   rá  zExportedProgram.call_spec
  sÖ   € ð	-ð 	-ð 	-ð 	-ð 	-•zñ 	-ô 	-ð 	-õ ˆtÔ%Ñ&Ô&¨!Ò+Ð+Ø�8 D°4Ð8Ñ8Ô8Ð8ØÔ! !Ô$Ô(¨BÒ.Ð.Ý ØqÐPTÔPfÐghÔPiÔPmÐqÐqñô ð ð ˆxØÔ*¨1Ô-Ô7Ô?ØÔ+¨AÔ.Ô8ÔAð
ñ 
ô 
ð 	
rY   c                 ó    — t          d¦  «        ‚)Nz4Unable to set ExportedProgram's call_spec attribute.rÂ  rÃ  s     rW   rá  zExportedProgram.call_spec  ó   € õ ÐQÑRÔRÐRrY   c                 ó   — | j         d         S )Nr   ©r±  rÀ  s    rW   ÚverifierzExportedProgram.verifier!  s   € ð Œ˜qÔ!Ð!rY   c                 ó    — t          d¦  «        ‚)Nz3Unable to set ExportedProgram's verifier attribute.rÂ  rÃ  s     rW   rë  zExportedProgram.verifier&  s   € õ ÐPÑQÔQÐQrY   c                 óR   — | j         €t          d¦  «        ‚| j         d         j        S )Nz_verifiers must not be Noner   )r±  rž   ÚdialectrÀ  s    rW   rî  zExportedProgram.dialect+  s+   € ð Œ?Ð"Ý Ð!>Ñ?Ô?Ð?ØŒ˜qÔ!Ô)Ð)rY   c                 ó    — t          d¦  «        ‚)Nz2Unable to set ExportedProgram's dialect attribute.rÂ  rÃ  s     rW   rî  zExportedProgram.dialect2  s   € õ ÐOÑPÔPÐPrY   c                 ó   — | j         S rP   rê  rÀ  s    rW   r³  zExportedProgram.verifiers7  ó   € ð ŒÐrY   c                 ó    — t          d¦  «        ‚)Nz4Unable to set ExportedProgram's verifiers attribute.rÂ  rÃ  s     rW   r³  zExportedProgram.verifiers<  rè  rY   c                 ó   — | j         S rP   ©r°  rÀ  s    rW   Útensor_constantsz ExportedProgram.tensor_constantsA  rñ  rY   c                 ó    — t          d¦  «        ‚)Nz;Unable to set ExportedProgram's tensor_constants attribute.rÂ  rÃ  s     rW   rõ  z ExportedProgram.tensor_constantsF  s   € õ ØIñ
ô 
ð 	
rY   c                 ó   — | j         S rP   rô  rÀ  s    rW   r  zExportedProgram.constantsM  rñ  rY   c                 ó    — t          d¦  «        ‚)Nz4Unable to set ExportedProgram's constants attribute.rÂ  rÃ  s     rW   r  zExportedProgram.constantsR  rè  rY   c                 óÔ   — | j         j        }|�t          ||¦  «        }t          j        ||f¦  «        \  }}|                      |¦  «         t          d„ |D ¦   «         ¦  «        }||fS )a¯  Flatten args, kwargs using pytree, then, check specs.

        Args:
            args: List[Any] original args passed to __call__
            kwargs: Dict[str, Any] original kwargs passed to __call

        Returns:
            A tuple of (flat_args, received_spec)
            flat_args is flattened args / kwargs
            received_spec is the pytree spec produced while flattening the
            tuple (args, kwargs)
        Nc              3   ó&   K  — | ]}|d          V — ŒdS )r7   Nrb   )rÂ   r‚  s     rW   r·  z<ExportedProgram._get_flat_args_with_check.<locals>.<genexpr>k  s&   è è € Ð<Ð< 1˜!˜Aœ$Ð<Ð<Ð<Ð<Ð<Ð<rY   )rá  rL   r1   r_   Útree_flatten_with_pathÚ_check_input_constraintsr   )rR   rh   ri   rL   Úflat_args_with_pathÚreceived_specÚ	flat_argss          rW   Ú_get_flat_args_with_checkz)ExportedProgram._get_flat_args_with_checkW  s�   € ð ”.Ô(ˆØÐÝ# F¨GÑ4Ô4ˆFÝ-3Ô-JØ�6ˆNñ.
ô .
Ñ*Ð˜]ð 	×%Ò%Ð&9Ñ:Ô:Ð:ÝÐ<Ð<Ð(;Ð<Ñ<Ô<Ñ<Ô<ˆ	Ø˜-Ð'Ð'rY   rh   ri   c                 ó’  — | j         j        }|                      ||¦  «        \  }}|�+t          ||t          ¦  «        st          d|› d|› �¦  «        ‚g }d}| j        j        D �]P}|j        t          j
        k    rŒ|j        t          j        t          j        fv rÔ|j        du r&|                     | j        |j                 ¦  «         Œg|j        | j        v r&|                     | j        |j                 ¦  «         Œ›|j        | j        v r&|                     | j        |j                 ¦  «         ŒÏ|€| j                             ¦   «         }|                     ||j                 ¦  «         �Œ|j        t          j        t          j        fv r%|                     | j        |j                 ¦  «         �ŒRt+          |¦  «        }||z   S )a,  Transform args, kwargs of __call__ to args for graph_module.

        self.graph_module takes stuff from state dict as inputs.
        The invariant is for ep: ExportedProgram is
        ep(args, kwargs) ==
          ep.postprocess(ep.graph_module(ep.graph_module_flat_inputs(args, kwargs)))
        Nz>Trying to flatten user inputs with exported input tree spec: 
z-
but actually got inputs with tree spec of: 
F)rá  rL   r   r0   rw   rŽ  r³   rð   rè   r<   r'  r.  r(  rê   r  r  ré   r  rú   ÚCONSTANT_TENSORÚ
CUSTOM_OBJr   )	rR   rh   ri   rL   rÿ  rþ  Úadditional_inputsrÔ  Úinput_s	            rW   Ú_graph_module_flat_inputsz)ExportedProgram._graph_module_flat_inputsn  s÷  € ð ”.Ô(ˆØ#'×#AÒ#AÀ$ÈÑ#OÔ#OÑ ˆ	�=ØÐ¥}Ø˜7Õ$Añ(
ô (
Ðõ ð#Øð#ð #ð !ð#ð #ñô ð ð ÐØˆØÔ*Ô6ð 	Hñ 	HˆFØŒ{�iÔ2Ò2Ð2ØØ”ÝÔ#ÝÔ ð!ð ð ð Ô$¨Ð-Ð-ð &×,Ò,¨T¬^¸F¼MÔ-JÑKÔKÐKÐKØ”] d¤oÐ5Ð5Ø%×,Ò,¨T¬_¸V¼]Ô-KÑLÔLÐLÐLØ”] d¤nÐ4Ð4Ø%×,Ò,¨T¬^¸F¼MÔ-JÑKÔKÐKÐKð
 %Ð,Ø(,Ô(9×(DÒ(DÑ(FÔ(F˜Ø%×,Ò,¨]¸6¼=Ô-IÑJÔJÐJÑJØ”ÝÔ)ÝÔ$ð!ð ð ð "×(Ò(¨¬¸¼Ô)FÑGÔGÐGùÝ!Ð"3Ñ4Ô4Ðð ! 9Ñ,Ð,rY   c                 ó    — t          d¦  «        ‚)Nz\Unable to call ExportedProgram directly. You should use `exported_program.module()` instead.rÂ  )rR   rh   ri   s      rW   Ú__call__zExportedProgram.__call__¦  s   € ÝðBñ
ô 
ð 	
rY   c                 óØ   — | j                              dd¬¦  «                             dd¦  «        }t          | j        ¦  «                             dd¦  «        }d|› d|› d| j        › d�}|S )NF)Úprint_outputÚcoloredú
z
    zExportedProgram:
    z
Graph signature: z
Range constraints: )rú   Úprint_readableÚreplacera   r³   r¤  )rR   rú   r³   Ústrings       rW   Ú__str__zExportedProgram.__str__¬  sš   € ØÔ(×7Ò7Ø¨ð 8ñ 
ô 
ç
Š'�$˜Ñ
!Ô
!ð 	õ ˜dÔ2Ñ3Ô3×;Ò;¸DÀ(ÑKÔKˆð=Øð=ð =à /ð=ð =ð #'Ô"8ð=ð =ð =ð 	ð ˆrY   Tc                 óÄ   — ddl m}  || |¬¦  «        }ddt          fd„}ddt          fd„}t          j        ||¦  «        |_        t          j        ||¦  «        |_        |S )	añ  
        Returns a self contained GraphModule with all the parameters/buffers inlined.

        - When `check_guards=True` (default), a `_guards_fn` submodule is generated
          and a call to a `_guards_fn` submodule is inserted right after placeholders
          in the graph. This module checks guards on inputs.
        - When `check_guards=False`, a subset of these checks are performed by a
          forward pre-hook on the graph module. No `_guards_fn` submodule is generated.

        r7   )Ú&_unlift_exported_program_lifted_states)Úcheck_guardsTÚmodec                 ó    — t          d¦  «        ‚)Nz%Calling train() is not supported yet.©ÚNotImplementedError©rR   r  s     rW   Ú_trainz&ExportedProgram.module.<locals>._trainÈ  s   € Ý%Ð&MÑNÔNÐNrY   c                 ó    — t          d¦  «        ‚)Nz$Calling eval() is not supported yet.r  r  s     rW   Ú_evalz%ExportedProgram.module.<locals>._evalË  s   € Ý%Ð&LÑMÔMÐMrY   ©T)rà  r  ÚboolÚtypesÚ
MethodTypeÚtrainÚeval)rR   r  r  rö   r  r  s         rW   rö   zExportedProgram.module¹  s§   € ð 	DÐCÐCÐCÐCÐCà7Ð7¸È<ÐXÑXÔXˆð	Oð 	O�tð 	Oð 	Oð 	Oð 	Oð	Nð 	N�dð 	Nð 	Nð 	Nð 	Nõ Ô'¨°Ñ7Ô7ˆŒÝÔ& u¨fÑ5Ô5ˆŒØˆrY   c                 ó’   — t          d„ t          | j        j        ¦  «        D ¦   «         t	          | j        j        ¦  «        ¦  «        S )Nc              3   óJ   K  — | ]\  }}|j         t          j        k    ¯|V — Œd S rP   ©rè   r<   r'  )rÂ   rU   Úss      rW   r·  z=ExportedProgram._num_lifted_params_buffers.<locals>.<genexpr>Ô  sB   è è € ð ð á�A�qØ”6�YÔ1Ò1Ð1ð à1Ð1Ð1Ð1ðð rY   )Únextr%  r«  rð   r  rÀ  s    rW   Ú_num_lifted_params_buffersz*ExportedProgram._num_lifted_params_buffersÒ  sQ   € Ýðð å% dÔ&;Ô&GÑHÔHðñ ô õ
 �Ô%Ô1Ñ2Ô2ñ
ô 
ð 	
rY   r˜   r¿   c                 óÞ   — |€t          ¦   «         nt          |¦  «        }t          |t          ¦  «        r|                     ¦   «         }t          |¦  «        \  }}t          | ||d|¬¦  «        S )a“  
        Run a set of decompositions on the exported program and returns a new
        exported program. By default we will run the Core ATen decompositions to
        get operators in the
        `Core ATen Operator Set <https://pytorch.org/docs/stable/torch.compiler_ir.html>`_.

        For now, we do not decompose joint graphs.

        Args:
            decomp_table:
             An optional argument that specifies decomp behaviour for Aten ops
             (1) If None, we decompose to core aten decompositions
             (2) If empty, we don't decompose any operator


        Some examples:

        If you don't want to decompose anything

        .. code-block:: python

            ep = torch.export.export(model, ...)
            ep = ep.run_decompositions(decomp_table={})

        If you want to get a core aten operator set except for certain operator, you can do following:

        .. code-block:: python

            ep = torch.export.export(model, ...)
            decomp_table = torch.export.default_decompositions()
            decomp_table[your_op] = your_custom_decomp
            ep = ep.run_decompositions(decomp_table=decomp_table)
        Nr¢  )rH   rv   rÁ   r3   Úmaterializer¢   r¨  )rR   r˜   r¿   Ú_decomp_tabler¥   r¦   s         rW   Úrun_decompositionsz"ExportedProgram.run_decompositionsÜ  sŒ   € ðP )5Ð(<Õ"Ñ$Ô$Ð$Å$À|ÑBTÔBTð 	õ �mÕ%6Ñ7Ô7ð 	8Ø)×5Ò5Ñ7Ô7ˆMõ" 9¸ÑGÔGñ	
ØØõ +ØØ'Ø 3Ø!Ø(Cð
ñ 
ô 
ð 	
rY   Úpassesc                 óÒ  — t          t          |¦  «        ¦  «        }ddlm}  |¦   «         5   || j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |�|j        n| j        }|€t          d¦  «        ‚|| j        u r	|j        s| S dt          dt          j	        j
        dt          fd„}t          ||j         || j        |¦  «        | j        t          || j        ¦  «        t#          j        | j        ¦  «        | j        | j        | j        ¬¦	  «	        }|j        j                             | j        j        ¦  «         |j        j                             |j        j        ¦  «         |S )	Nr   )r­   ztransformed_gm must not be NoneÚold_signatureÚnew_gmrs   c           	      ój  — g }t          |j        j        ¦  «        D ]Ý\  }}|j        dk    r nÌ|t	          | j        ¦  «        k    r(t          d|› dt	          | j        ¦  «        › d�¦  «        ‚| j        |         }t          |j        t          t          f¦  «        r|j        n! t          |j        ¦  «        |j        ¦  «        }|                     t          |j        ||j        |j        ¦  «        ¦  «         ŒÞt%          |j        j        ¦  «        d         }|j        dk    rt          d|j        ›�¦  «        ‚g }t          |j        d         ¦  «        D ]Ê\  }}|t	          | j        ¦  «        k    r(t          d	|› dt	          | j        ¦  «        › d
�¦  «        ‚| j        |         }	t          |	j        t          t          f¦  «        r|	j        n! t          |	j        ¦  «        |j        ¦  «        }|                     t+          |	j        ||	j        ¦  «        ¦  «         ŒËt-          ||¬¦  «        }
|
S )zO
            Update the graph signature's user_input/user_outputs.
            r¼   z9Number of inputs changed after transformation: got index z
 but only z input_specsr‡  rR  z,expected last node to have op='output', got r   z:Number of outputs changed after transformation: got index z output_specsrï   )r%  rü   r  r}   r  rð   rž   rÁ   rä   r9   r:   rÙ   rQ   r  r=   rè   ré   rê   r]   rh   rñ   r?   r;   )r.  r/  Únew_input_specsrU   rÍ   Úold_input_specrä   r  Únew_output_specsÚold_output_specÚnew_signatures              rW   Ú_get_updated_graph_signaturezKExportedProgram._transform_do_not_use.<locals>._get_updated_graph_signature4  s´  € ð !ˆOÝ$ V¤\Ô%7Ñ8Ô8ð ð ‘��4Ø”7˜mÒ+Ð+Ø�Eà�˜MÔ5Ñ6Ô6Ò6Ð6Ý(ðQÐTUð Qð QÝ$'¨Ô(AÑ$BÔ$BðQð Qð Qñô ð ð "/Ô!:¸1Ô!=�õ "Ø&Ô*Õ-=Õ?PÐ,Qñô ð=�NÔ&Ð&ð 2�˜nÔ0Ñ1Ô1°$´)Ñ<Ô<ð ð  ×&Ò&ÝØ&Ô+ØØ&Ô-Ø&Ô1ñ	ô ñô ð ð õ ˜vœ|Ô1Ñ2Ô2°2Ô6ˆKØŒ~ Ò)Ð)Ý$ØUÀ;Ä>ÐUÐUñô ð ð  "ÐÝ$ [Ô%5°aÔ%8Ñ9Ô9ð ð ‘��4Ø�˜MÔ6Ñ7Ô7Ò7Ð7Ý(ðSÐUVð Sð SÝ$'¨Ô(BÑ$CÔ$CðSð Sð Sñô ð ð #0Ô"<¸QÔ"?�õ "Ø'Ô+Õ.>Õ@QÐ-Rñô ð>�OÔ'Ð'ð 3�˜oÔ1Ñ2Ô2°4´9Ñ=Ô=ð ð !×'Ò'Ý˜Ô3°S¸/Ô:PÑQÔQñô ð ð õ 1Ø+Ð:Jðñ ô ˆMð !Ð rY   ©	r£  rü   r³   r  r¤  rr  r  r  r³  )r6   r]   rô   r­   rú   rž   Úmodifiedr;   r‡   r  r  rE   rü   r³   r  r¥  r¤  rƒ   rˆ  r®  r  r  r³  rÐ   rŽ   )rR   r,  Úpmr­   ÚresÚtransformed_gmr6  Útransformed_eps           rW   Ú_transform_do_not_usez%ExportedProgram._transform_do_not_use#  s×  € Ý�˜f™œÑ&Ô&ˆð 	@Ð?Ð?Ð?Ð?Ð?à$Ð$Ñ&Ô&ð 	(ð 	(Ø�"�TÔ&Ñ'Ô'ˆCð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(à-0¨_˜Ô)Ð)À$ÔBSˆØÐ!Ý Ð!BÑCÔCÐCð ˜TÔ.Ð.Ð.°s´|Ð.ØˆKð>	!Ý/ð>	!å”HÔ(ð>	!õ "ð>	!ð >	!ð >	!ð >	!õ@ )ØØ Ô&Ø8Ð8ØÔ$ nñô ð ”Ý<ØØÔ&ñô õ #œm¨DÔ,CÑDÔDØÔ.Ø”nØ”nð
ñ 
ô 
ˆð  	Ô#Ô(×/Ò/°Ô0AÔ0FÑGÔGÐGàÔ#Ô(×/Ò/°Ô0@Ô0EÑFÔFÐFØÐs   ­A
Á
AÁAc                 óª   — ddl m} d„ | j        j        D ¦   «         }d„ t	          || j        j        ¦  «        D ¦   «         } |||| j        ¦  «         d S )Nr   )Ú"_check_input_constraints_for_graphc                 ó(   — g | ]}|j         d k    ¯|‘ŒS rÊ   rË   )rÂ   rÇ   s     rW   rÎ   z<ExportedProgram._check_input_constraints.<locals>.<listcomp>Œ  s$   € ÐMÐMÐM˜a°q´t¸}Ò7LÐ7L˜Ð7LÐ7LÐ7LrY   c                 óB   — g | ]\  }}|j         t          j        k    ¯|‘ŒS rb   r$  )rÂ   rÇ   r%  s      rW   rÎ   z<ExportedProgram._check_input_constraints.<locals>.<listcomp>�  s6   € ð 
ð 
ð 
á��1ØŒv�Ô-Ò-Ð-ð à-Ð-Ð-rY   )Útorch._export.utilsr?  rü   r  r  r³   rð   r¤  )rR   rý  r?  ÚplaceholdersÚinput_placeholderss        rW   rü  z(ExportedProgram._check_input_constraints‰  s‡   € ØJÐJÐJÐJÐJÐJàMÐM 4¤:Ô#3ÐMÑMÔMˆð
ð 
å˜L¨$Ô*>Ô*JÑKÔKð
ñ 
ô 
Ðð
 	+Ð*ØÐ 3°TÔ5Kñ	
ô 	
ð 	
ð 	
ð 	
rY   c                 ó.   — |                       ¦   «          d S rP   )Ú	_validaterÀ  s    rW   r»  zExportedProgram.validate–  s   € à�ŠÑÔÐÐÐrY   c                 ó¢   — t          | j        ¦  «        dk    rt          d¦  «        ‚| j        D ]} |¦   «                              | ¦  «         Œ d S )Nr   z0ExportedProgram must have at least one verifier.)r  r³  rž   Úcheck)rR   r_  s     rW   rF  zExportedProgram._validate›  sX   € åˆtŒ~ÑÔ !Ò#Ð#Ý Ð!SÑTÔTÐTØ”ð 	ð 	ˆAØˆA‰CŒC�IŠI�d‰OŒOˆOˆOð	ð 	rY   )r  r  r³  c                óØ   — t          ||j        ||�|n| j        t          j        | j        ¦  «        t          j        | j        ¦  «        | j        |�|n| j        |�|n| j	        ¬¦	  «	        S )Nr7  )
rE   rü   r  rƒ   rˆ  r¤  r®  r  r  r³  )rR   rú   r³   r  r  r³  s         rW   Ú_updatezExportedProgram._update£  sw   € õ ØØÔ$Ø+Ø%/Ð%;�z�zÀÄÝ"œm¨DÔ,BÑCÔCÝ"œm¨DÔ,CÑDÔDØÔ.Ø#,Ð#8�i�i¸d¼nØ#,Ð#8�i�i¸d¼nð

ñ 

ô 

ð 
	
rY   )NNr  )NF)rs   rE   )@rZ   r[   r\   Ú__doc__r‡   r  r  r^   r;   rv   ra   r   r]   rF   r   r   rÙ   r+   r  ÚModuleÚGraphr1  r  r½  Úpropertyr4   rú   Úsetterrü   r³   r  r   rÍ  r÷   rÒ  rø   r¤  rr  r  rá  rë  rî  r³  rõ  r  r   r  r  r  rö   r'  rn   Ú_opsÚOperatorBaser   r  r+  ÚPassTyper=  rü  r»  r   rF  rJ  rb   rY   rW   rE   rE   "  sU
  € € € € € € ðð ð ”8Ô'Ð'Ð'Ñ'ØOà*Ð*Ð*Ñ*ØMà�c˜3�h”ÐÐÑØUà9Ð9Ð9Ñ9ØEà˜_Ô-Ð-Ð-Ñ-ØJà˜5  c œ?¨D°°c°¬NÐ:Ô;¸dÑBÐBÐBÑBØLà�SÐ0Ð0Ô1Ð1Ð1Ñ1Ø:à�T˜(”^Ô$Ð$Ð$Ñ$ØIà�s”)ÐÐÑð IMØ>Bð)Hð 26ð)Hð )Hð )HàŒhŒo  S¨# X¤Ñ.ð)Hð ŒxŒ~ð)Hð .ð	)Hð
 ˜˜eœl¨U¬XÔ-?Ñ?Ð?Ô@ð)Hð 5ð)Hð   Ô0ð)Hð ˜e C¨ Hœo¨t°C¸°H¬~Ð=Ô>ÀÑEð)Hð ˜Ð3Ð3Ô4°tÑ;ð)Hð ˜˜XœÔ'¨$Ñ.ð)Hð )Hð )Hð )HðV Ø€]¨%Ð0Ñ0Ô0ð"ð "ñ 1Ô0ñ „Xð"ð ÔØ€]¨%Ð0Ñ0Ô0ðVð Vñ 1Ô0ñ ÔðVð Ø€]¨%Ð0Ñ0Ô0ð'ð 'ñ 1Ô0ñ „Xð'ð „\Ø€]¨%Ð0Ñ0Ô0ðOð Oñ 1Ô0ñ „\ðOð Ø€]¨%Ð0Ñ0Ô0ð%ð %ñ 1Ô0ñ „Xð%ð ÔØ€]¨%Ð0Ñ0Ô0ðYð Yñ 1Ô0ñ ÔðYð Ø€]¨%Ð0Ñ0Ô0ð ð  ñ 1Ô0ñ „Xð ð ÔØ€]¨%Ð0Ñ0Ô0ðTð Tñ 1Ô0ñ ÔðTð €]¨%Ð0Ñ0Ô0ð˜H U¤XÔ%7Ô8ð ð ð ñ 1Ô0ðð €]¨%Ð0Ñ0Ô0ð: (¨5°°e´hÔ6HÐ1HÔ+IÔ"Jð :ð :ð :ñ 1Ô0ð:ð €]¨%Ð0Ñ0Ô0ð˜ %¤,Ô/ð ð ð ñ 1Ô0ðð €]¨%Ð0Ñ0Ô0ð>˜x¨¨c°5´<Ð.?Ô(@ÔAð >ð >ð >ñ 1Ô0ð>ð2 Ø€]¨%Ð0Ñ0Ô0ð'ð 'ñ 1Ô0ñ „Xð'ð ÔØ€]¨%Ð0Ñ0Ô0ð
ð 
ñ 1Ô0ñ Ôð
ð
 Ø€]¨%Ð0Ñ0Ô0ð'ð 'ñ 1Ô0ñ „Xð'ð ÔØ€]¨%Ð0Ñ0Ô0ð
ð 
ñ 1Ô0ñ Ôð
ð
 Ø€]¨%Ð0Ñ0Ô0ð$ð $ñ 1Ô0ñ „Xð$ð ÔØ€]¨%Ð0Ñ0Ô0ð%ð %ñ 1Ô0ñ Ôð%ð2 Ø€]¨%Ð0Ñ0Ô0ð
ð 
ñ 1Ô0ñ „Xð
ð  ÔØ€]¨%Ð0Ñ0Ô0ðSð Sñ 1Ô0ñ ÔðSð Ø€]¨%Ð0Ñ0Ô0ð"˜#ð "ð "ð "ñ 1Ô0ñ „Xð"ð „_Ø€]¨%Ð0Ñ0Ô0ðRð Rñ 1Ô0ñ „_ðRð Ø€]¨%Ð0Ñ0Ô0ð*˜ð *ð *ð *ñ 1Ô0ñ „Xð*ð
 „^Ø€]¨%Ð0Ñ0Ô0ðQð Qñ 1Ô0ñ „^ðQð Ø€]¨%Ð0Ñ0Ô0ðð ñ 1Ô0ñ „Xðð ÔØ€]¨%Ð0Ñ0Ô0ðSð Sñ 1Ô0ñ ÔðSð Ø€]¨%Ð0Ñ0Ô0ðð ñ 1Ô0ñ „Xðð ÔØ€]¨%Ð0Ñ0Ô0ð
ð 
ñ 1Ô0ñ Ôð
ð
 Ø€]¨%Ð0Ñ0Ô0ðð ñ 1Ô0ñ „Xðð ÔØ€]¨%Ð0Ñ0Ô0ðSð Sñ 1Ô0ñ ÔðSð(ð (ð (ð.6-¨cð 6-¸3ð 6-À3ð 6-ð 6-ð 6-ð 6-ðp
˜cð 
¨Sð 
°Sð 
ð 
ð 
ð 
ð˜ð ð ð ð ðð ¨5¬8Ô+?ð ð ð ð ð2
ð 
ð 
ð $ð HLØ,1ðD
ð D
à˜5œ:Ô2°HÐ<Ô=ÀÑDðD
ð &*ðD
ð 
ð	D
ð D
ð D
ñ $Ô#ðD
ðLd¨Xð dÐ:Kð dð dð dð dðL
ð 
ð 
ð €]¨%Ð0Ñ0Ô0ðð ñ 1Ô0ðð ðð ñ „Uðð ØØð
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
rY   c                 óÀ   — d„ | j         j        D ¦   «         }ddlm}  ||¦  «        }|�|j        S |D ]*}t          |t          j        ¦  «        r|j        j        c S Œ+d S )Nc                 ó^   — g | ]*}|j                              d d¦  «        ®|j         d          ‘Œ+S )r½   N)rÐ   r,  rÌ   s     rW   rÎ   z"_get_shape_env.<locals>.<listcomp>º  s?   € ð ð ð àØŒ9�=Š=˜ Ñ%Ô%Ð1ð 	Œ	�%Ôà1Ð1Ð1rY   r   r,   )	rü   r  Útorch._guardsr-   r¸   rÁ   r‡   ÚSymIntrÍ   )r  Úvalsr-   r6  r_  s        rW   r$  r$  ¹  sš   € ðð à”H”Nðñ ô €Dð
 /Ð.Ð.Ð.Ð.Ð.à Ð  Ñ&Ô&€IØÐØÔ"Ð"Øð $ð $ˆÝ�a�œÑ&Ô&ð 	$Ø”6Ô#Ð#Ð#Ð#ð	$ð$ð $rY   Úold_range_constraintszdict[sympy.Symbol, Any] | Noner´  c                 ó  ‡— |€t          d¦  «        ‚t          | ¦  «        Š‰€i S t          j        |¦  «        }ˆfd„|                     ¦   «         D ¦   «         }‰j                             ¦   «         D ]\  }}|‰j        vr	||vr|||<   Œ|S )Nz&old_range_constraints must not be Nonec                 ó.   •— i | ]\  }}|‰j         v¯||“ŒS rb   )Úreplacements)rÂ   r¡   r_  r¸   s      €rW   rÅ   z2_get_updated_range_constraints.<locals>.<dictcomp>Õ  s3   ø€ ð ð ð Ù��A°a¸yÔ?UÐ6UÐ6Uˆˆ1Ð6UÐ6UÐ6UrY   )rž   r$  rƒ   r�   Úvar_to_ranger[  )r  rX  r¤  r¡   r_  r¸   s        @rW   r¥  r¥  É  sÇ   ø€ ð Ð$ÝÐEÑFÔFÐFå˜rÑ"Ô"€IØÐØˆ	åœ	Ð"7Ñ8Ô8Ððð ð ð Ø*×0Ò0Ñ2Ô2ðñ ô Ðð Ô&×,Ò,Ñ.Ô.ð %ð %‰ˆˆ1Ø�IÔ*Ð*Ð*¨qÐ8IÐ/IÐ/IØ#$Ð˜aÑ øØÐrY   c                 ó  — 	 t           j                             | |¦  «        }ni# t          $ r\ t	          j        dd¬¦  «         t           j                             | t           j                             ¦   «         ¦  «        }||_        Y nw xY w|S )NzóUnable to execute the generated python source code from the graph. The graph module will no longer be directly callable, but you can still run the ExportedProgram, and if needed, you can run the graph module eagerly using torch.fx.Interpreter.rÞ  )Ú
stacklevel)r‡   r  r  ÚSyntaxErrorÚwarningsÚwarnrM  Ú_graph)r£  rü   r  s      rW   r¹  r¹  á  s˜   € ðÝŒX×!Ò! $¨Ñ.Ô.ˆˆøÝð ð ð õ 	ŒðGð ð	
ñ 	
ô 	
ð 	
õ ŒX×!Ò! $­¬¯ªÑ(8Ô(8Ñ9Ô9ˆØˆŒ	ˆ	ˆ	ðøøøð  €Is   ‚ # £A#B	ÂB	c                 ó  ‡‡— t          | ¦  «        }|€g S d„ |j                             ¦   «         D ¦   «         Št          j        j        j                             |j        d„ |j        ¦  «        Šˆˆfd„|j        D ¦   «         }d„ |D ¦   «         S )Nc                 óJ   — h | ] \  }}t          d „ |D ¦   «         ¦  «        ¯|’Œ!S )c              3   ó`   K  — | ])}t          |t          j        j        j        ¦  «         V — Œ*d S rP   )rÁ   r‡   r!  r]  ÚConstantSource)rÂ   r]  s     rW   r·  z4_convert_guards_to_code.<locals>.<setcomp>.<genexpr>ÿ  sK   è è € ð 
ð 
àõ ˜6¥5¤=Ô#7Ô#FÑGÔGÐGð
ð 
ð 
ð 
ð 
ð 
rY   )rº  )rÂ   ÚvarÚsourcess      rW   ú	<setcomp>z*_convert_guards_to_code.<locals>.<setcomp>ü  sX   € ð ð ð áˆC�Ýð 
ð 
à!ð
ñ 
ô 
ñ 
ô 
ðØðð ð rY   c                 ó   — | j         S rP   r×   )r%  s    rW   r„  z)_convert_guards_to_code.<locals>.<lambda>  s   € ¨A¬F€ rY   c                 ó‚   •— g | ];}|j         j                             ‰¦  «        ¯!‰                     |j         ¦  «        ‘Œ<S rb   )ÚexprÚfree_symbolsÚissubsetÚdoprint)rÂ   ÚguardÚ
local_varsÚ
py_printers     €€rW   rÎ   z+_convert_guards_to_code.<locals>.<listcomp>  sR   ø€ ð ð ð àØŒ:Ô"×+Ò+¨JÑ7Ô7ðØ×Ò˜5œ:Ñ&Ô&ðð ð rY   c                 ó   — g | ]}d |v¯|‘Œ	S )z	L['self']rb   )rÂ   rp  s     rW   rÎ   z+_convert_guards_to_code.<locals>.<listcomp>  s"   € Ð?Ð?Ð?�e k¸Ð&>Ð&>ˆEÐ&>Ð&>Ð&>rY   )	r$  Úvar_to_sourcesr�   r‡   r  ÚexperimentalÚsymbolic_shapesÚShapeGuardPythonPrinterÚguards)rú   r¸   Úretrq  rr  s      @@rW   r¼  r¼  ÷  sÀ   øø€ Ý˜|Ñ,Ô,€IØÐØˆ	ðð à%Ô4×:Ò:Ñ<Ô<ðñ ô €Jõ ”Ô&Ô6×NÒNØÔ Ð"2Ð"2°IÔ4Lñô €Jðð ð ð ð àÔ%ðñ ô €Cð @Ð?˜sÐ?Ñ?Ô?Ð?rY   )rs   r3   rP   )™r  rƒ   Údataclassesrl   rp  r  r`  Úcollectionsr   Úcollections.abcr   r   r   Útypingr   r   r	   r
   rU  r   r   Útorch._higher_order_ops.utilsr   Ú"torch._library.fake_class_registryr   Útorch._subclasses.fake_implsr   r   r   Útorch._subclasses.fake_tensorr   Útorch.fx._symbolic_tracer   Útorch.fx._utilsr   Útorch.fx.graphr   r   Útorch.fx.immutable_collectionsr   r   Útorch.fx.passes.runtime_assertr   ÚsympyÚtorch.utils._sympy.value_rangesr   r‡   Útorch.utils._pytreeÚutilsÚ_pytreer_   rB  r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Útorch._export.verifierr+   r-   r/   Útorch.export._tree_utilsr0   r1   Útorch.export.decomp_utilsr3   Útorch.fx._compatibilityr4   Útorch.fx.passes.infra.pass_baser5   Ú"torch.fx.passes.infra.pass_managerr6   r³   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   Ú__all__r  r  rR  Ú	dataclassrG   rF   rn   rÙ   ÚContextr  rw   rˆ   r‰   ÚAutogradCPUÚAutogradCUDAÚAutogradMetaÚAutogradXLAÚAutogradLazyÚAutogradIPUÚAutogradXPUÚAutogradMPSÚAutogradHPUÚAutogradPrivateUse1ÚAutogradPrivateUse2ÚAutogradPrivateUse3r…   ÚCPUÚCUDAÚMetaÚXLAÚLazyÚIPUÚXPUÚMPSÚHPUrŒ   r—   rv   rP  rQ  r   r¢   rH   r  r`  r  rx  r]   r   r¨  rE   r$  r¥  r¹  r¼  rb   rY   rW   ú<module>rª     sp  ðð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø BÐ BÐ BÐ BÐ BÐ BØ ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð
 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ JÐ JÐ JÐ JÐ JÐ Jð ð <ð
 €L€L€Là;Ð;Ð;Ð;Ð;Ð;à €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð$ ,Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *Ø @Ð @Ð @Ð @Ð @Ð @Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð"ð ð €ð �U”XÔ)Ð*¨J¸Ñ,=Ð=Ô>€ð Ôð'ð 'ð 'ð 'ð 'ñ 'ô 'ñ Ôð'ð  Ôð1ð 1ð 1ð 1ð 1ñ 1ô 1ñ Ôð1ð
ð ð ðGØ�t‘ðGà”>ðGð �t‘ðGð ”>ð	Gð
 
ðGð Gð Gð Gð: 
„HÔÔ$Ø	„HÔÔ%Ø	„HÔÔ%Ø	„HÔÔ$Ø	„HÔÔ%Ø	„HÔÔ$Ø	„HÔÔ$Ø	„HÔÔ$Ø	„HÔÔ$Ø	„HÔÔ,Ø	„HÔÔ,Ø	„HÔÔ,ð,Ð (ð, 
„HÔÔØ	„HÔÔØ	„HÔÔØ	„HÔÔØ	„HÔÔØ	„HÔÔØ	„HÔÔØ	„HÔÔØ	„HÔÔð
Ð ð ðP$ð P$ñ „ðP$ðf,-Ø�u”zÔ.°Ð8Ô9ð,-à
ˆ4�”
Ô'¨Ð1Ô2°CÐ7Ô8ð,-ð ,-ð ,-ð ,-ð^ð ð ð ðb2Øðb2ð ˜œ
Ô/°Ð9Ô:ðb2ð ˜eœjÔ5°xÐ?Ô@ð	b2ð
 ˜D‘jðb2ð b2ð b2ð b2ðJ#ØŒÔð#Ø3Gð#à
ˆ5Œ8ÔÐ!5Ð5Ô6ð#ð #ð #ð #ð2.ØŒÔð.ð .ð .ð .ð:B!ØŒHÔ ðB!à-ðB!ð 	ŒÔðB!ð *ð	B!ð
   Ô0ðB!ð B!ð B!ð B!ðJ4ð ˜œ
Ô/°Ð9Ô:ð4ð ˜eœjÔ5°xÐ?Ô@ð	4ð
 ˜D‘jð4ð "&ð4ð 4ð 4ð 4ðnT

ð T

ð T

ð T

ð T

ñ T

ô T

ð T

ðn$ð $ð $ð$ ?Cðð ØŒÔðà;ðð ðð ð ð ð0ð ð ð,@ð @ð @ð @ð @rY   