ó
    Eñi  ã                   ó”  • 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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  S SKJrJr  S SKJr  S SKJr  S S	KJrJrJr  S S
KJr  S SKJ r   S SK!J"r"  S SK#J$r$J%r%  S SK&J'r'J(r(  S SK)J*r*  \(       a
  S SK+r+S SK,J-r-  S SK.r.S SK/J0s  J1r2  S SK3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrC  S SKDJErE  S SKJFrF  S SKJGrG  S SKHJIrIJJrJ  S SKKJLrL  S SKMJNrN  S SKOJPrP  S SKQJRrR  SSKSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[J\r\J]r]J^r^J_r_J`r`  / SQra\
\.RÄ                  RÆ                  /\PS-  4   rd\RÊ                   " S S5      5       rf\RÊ                   " S S 5      5       rgS! rhS"\iS-  S#\2RÔ                  S$\iS-  S%\2RÔ                  S&\k4
S' jrl\.RÚ                  RÜ                  RÞ                  \.RÚ                  RÜ                  Rà                  \.RÚ                  RÜ                  Râ                  \.RÚ                  RÜ                  Rä                  \.RÚ                  RÜ                  Ræ                  \.RÚ                  RÜ                  Rè                  \.RÚ                  RÜ                  Rê                  \.RÚ                  RÜ                  Rì                  \.RÚ                  RÜ                  Rî                  \.RÚ                  RÜ                  Rð                  \.RÚ                  RÜ                  Rò                  \.RÚ                  RÜ                  Rô                  /r{\.RÚ                  RÜ                  Rø                  \.RÚ                  RÜ                  Rú                  \.RÚ                  RÜ                  Rü                  \.RÚ                  RÜ                  Rþ                  \.RÚ                  RÜ                  GR                   \.RÚ                  RÜ                  GR                  \.RÚ                  RÜ                  GR                  \.RÚ                  RÜ                  GR                  \.RÚ                  RÜ                  GR                  /	r…\S( 5       r†S)\‡\.GR                  GR                  \
4   S&\Š\‡\.GR                  GR                  \
4   S*4   4S+ jr‹SFS, jrŒS-S.S/\‡\.GR                  GR                  \
4   S0\‡\.GR                  GR                  \
4   S1\�S-  4S2 jrŽS3\.RÄ                  RÆ                  S4\WS&\Š\.RÄ                  RÆ                  \W4   4S5 jr�S3\.RÄ                  RÆ                  4S6 jr�S7\.RÄ                  RÆ                  S8\WS3\.RÄ                  RÆ                  S9\WS:\‘\g   4
S; jr’S/\‡\.GR                  GR                  \
4   S0\‡\.GR                  GR                  \
4   S1\�S-  S<\k4S= jr“ " S> S.5      r”S? r• SGS3\.RÄ                  RÆ                  S@SAS&SB4SC jjr–SD r—SE r˜g)Hé    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                   ó’   • \ rS rSr% \\   \S'   \\   \S'   \R                  \S'   \R                  \S'   Sr	\\
   S-  \S'   S rS	rg)
rG   éa   ÚinputsÚoutputsÚin_specÚout_specNÚforward_arg_namesc                 ó  • U R                    H0  nUR                  UR                  :X  d  M  UR                  Ul        M2     U R                   H0  nUR                  UR                  :X  d  M  UR                  Ul        M2     g ©N)rK   ÚnamerL   )ÚselfÚoriginal_nodeÚnew_nodeÚiÚos        ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/export/exported_program.pyÚreplace_all_uses_withÚ)ModuleCallSignature.replace_all_uses_withi   sZ   € Ø—”ˆAØ�v‰v˜×+Ñ+Õ+Ø!Ÿ™�–ñ ð —”ˆAØ�v‰v˜×+Ñ+Õ+Ø!Ÿ™�–ò ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úlistr8   Ú__annotations__ÚpytreeÚTreeSpecrO   ÚstrrY   Ú__static_attributes__r\   r[   rX   rG   rG   a   sE   ‡ à�ÑÓØ�,ÑÓØ�_‰_ÓØ�o‰oÓØ*.Ð�t˜C‘y 4Ñ'Ó.õ'r[   rG   c                   ó4   • \ rS rSr% \\S'   Sr\S-  \S'   Srg)rF   ér   ÚfqnNÚ	signaturer\   )	r]   r^   r_   r`   re   rb   rj   rG   rf   r\   r[   rX   rF   rF   r   s   ‡ à	ƒHØ,0€IÐ" TÑ)Ö0r[   rF   c                 óF   ^ • [         R                  " T 5      U 4S j5       nU$ )Nc                  ó^   >• [        5          T" U 0 UD6sS S S 5        $ ! , (       d  f       g = frQ   r.   )ÚargsÚkwargsÚfns     €rX   ÚwrapperÚ/_disable_prexisiting_fake_mode.<locals>.wrappery   s"   ø€ ä#Õ%Ù�tÐ&˜vÑ&÷ &×%×%ús   Œž
,)Ú	functoolsÚwraps)ro   rp   s   ` rX   Ú_disable_prexisiting_fake_modert   x   s%   ø€ Ü‡_‚_�RÓô'ó ð'ð €Nr[   Ú
spec1_typeÚspec1_contextÚ
spec2_typeÚspec2_contextÚreturnc                 ó.  • U b  Uc  XL =(       a    X:H  $ [        U [        [        45      (       a  [        U[        [        45      (       a  X:H  $ [        U [        [        45      (       a  [        U[        [        45      (       a  X:H  $ XL =(       a    X:H  $ )z]Treat containers and their immutable variants as the same type. Otherwise
compare as normal.
)Ú
issubclassÚdictr   ra   r   )ru   rv   rw   rx   s       rX   Ú_fx_collection_equivalence_fnr}   �   s—   € ð Ñ˜ZÑ/ØÐ'×J¨MÑ,JÐJä�*œt¤^Ð4×5Ñ5¼*Ø”Tœ>Ð*÷;ñ ;ð Ñ-Ð-ä�*œt¤^Ð4×5Ñ5¼*Ø”Tœ>Ð*÷;ñ ;ð Ñ-Ð-àÐ#×F¨Ñ(FÐFr[   c           	   #   óø  #   • 0 n[        5       nU R                  5        GH�  u  p4UR                  R                  5       X'   UR	                  U5        [
         H3  nXSR                  ;  d  M  UR                  U5      " [        USS95        M5     [        U5      n[        R                  R                  R                  UR                  ;   a/  UR                  [        R                  R                  R                  	 UR                  [        R                  R                  R                  5      " U5        S n[        U5      (       d$  [        U5      " [        R                   " UUS95        ["         H+  nXƒR                  ;  d  M  UR                  U5      " U5        M-     GM„      S v •  U H_  n	U	R                  R%                  5         U	R                  R'                  X   5        U	R(                  R%                  5         [+        U	5        Ma     g ! U H_  n	U	R                  R%                  5         U	R                  R'                  X   5        U	R(                  R%                  5         [+        U	5        Ma     f = f7f)NT)Údeferred_errorc                 ó\   • US   nUS	 U    U" U0 UD6sS S S 5        $ ! , (       d  f       g = f)NÚoriginal_callabler\   )Úfake_tensor_modeÚoprm   rn   Úorig_cia_callables        rX   Ú$_force_dispatch_to_orig_cia_callableÚQ_override_composite_implicit_decomp.<locals>._force_dispatch_to_orig_cia_callableè   s3   € Ø &Ð':Ñ ;ÐØÐ*Ð+Ú!Ù(¨$Ð9°&Ñ9÷ "×!×!ús   ‹�
+)r�   )ÚsetÚitemsÚ
py_kernelsÚcopyÚaddÚ(_AUTOGRAD_ALIAS_BACKEND_KEYS_TO_OVERRIDEÚpy_implr   r!   ÚtorchÚ_CÚDispatchKeyÚCompositeImplicitAutogradr   r   rr   Ú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
             rX   Ú#_override_composite_implicit_decomprž   ¿   sï  é € ð €LÜ“%€KØ(;×(AÑ(A×(CÑ$ˆØ$/×$:Ñ$:×$?Ñ$?Ó$AˆÑ!Ø�‰˜Ô$ß%MÐ!Ø$×,BÑ,BÕBà×#Ñ#Ð$9Ô:Ü,¨[ÈÑNöñ &Nô 0°Ó<ÐÜ�8‰8×Ñ×9Ñ9¸[×=SÑ=SÓSØ×&Ñ&¤u§x¡x×';Ñ';×'UÑ'UÐVà×ÑœEŸH™H×0Ñ0×JÑJÔKØô	
ò	:ô .¨k×:Ñ:Ü˜[Ô)Ü×!Ò!Ø8Ø&7ñô÷ -ˆCØ×0Ñ0Õ0ð  ×#Ñ# CÔ(Ð):Ö;ô# -ñY )Dð~$ÛãˆBØ�M‰M×ÑÔ!Ø�M‰M× Ñ  Ñ!1Ô2Ø×Ñ×$Ñ$Ô&Ü Ö#ò	 ø“+ˆBØ�M‰M×ÑÔ!Ø�M‰M× Ñ  Ñ!1Ô2Ø×Ñ×$Ñ$Ô&Ü Ö#ò	 üs-   ‚A&I:Á,DI:Æ I:Æ&H Æ*A&I:ÈA'I7É7I:Údecomp_table.c                 ól  • [        [        5       5      n0 n[        U R                  5       5       Ho  nX1;   a  X   X#'   UR	                  U5        X	 M#  [        U5      (       d  M5  UR                  5       nUR                  S5      (       a  [        SU 35      eX   X#'   Mq     U H  n[        X%'   M     X 4$ )NÚatenz)This should be a custom op, got aten op: )
r‡   r   ra   ÚkeysÚremover"   rR   Ú
startswithÚAssertionErrorr)   )rŸ   Úall_preservable_cia_opsr—   rƒ   Úop_nameÚks         rX   Ú,_split_decomp_table_to_cia_and_python_decompr©     sÈ   € ô "Ô"<Ó">Ó?ÐØÐä�<×$Ñ$Ó&Ö'ˆð$ Ó(Ø&2Ñ&6ÐÑ#Ø#×*Ñ*¨2Ô.ØÒ ô $ B×'Ó'Ø—g‘g“iˆGØ×!Ñ! &×)Ñ)Ü$Ø?À¸yÐIóð ð '3Ñ&6ÐÓ#ñ? (óF %ˆÜ!<ÐÓñ %ð Ð,Ð,r[   c                  ó   • [        5       $ )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   r\   r[   rX   rH   rH   B  s   € ô ÓÐr[   ÚeprE   Úcia_to_decompÚpython_decomp_tableÚjoint_loss_indexc                ób!  • SSK Jn  SSKJn  SSKJnJnJn	Jn
J	nJ
n  SSKJn  S nU" X5      (       GdU  U R                  5       n0 [        UR                  SS95      E[        UR!                  SS95      EnSS	KJn  U" U5        0 [        UR                  SS95      E[        UR!                  SS95      En['        U R(                  5      nUc  [+        U" 5       S
S9nUR,                  n[/        UR0                  R2                  [4        5      (       d+  [7        S[9        UR0                  R2                  5       35      eUR0                  R2                  R:                  R<                  nUc  [7        S5      eUR8                  [>        [@        4;  a  [B        RD                  " U/5      n[5        [G        UURH                  U5      5      UR0                  l        URK                  5         [M        U RN                  U RP                  U5        [S        XðRT                  U RN                  RV                  5      n[Y        UU5      n[[        U5      nSSK.J/nJ0n  / nUR0                  Rb                   HÎ  nURd                  S:X  d  M  [/        URf                  S   [h        5      (       ay  S nURf                  S   Rj                  c'  U RP                  URf                  S   Rl                     nO#URf                  S   Rj                  Rn                  nURq                  U5        M°  URq                  URf                  S   5        MÐ     [s        U5      nU   [u        U5         U" U Rv                  5         [y        U5         [B        Rz                  " UURH                  5      nU" U/ US   QUS   R}                  5       Q70 U5       u  n n!n"n#n$U" U U!U"UU#USUS9n%U%RP                  R                  5        V&V's0 s H#  u  n&n'U&[/        U'[€        5      (       a  U$U'   OU'_M%     sn'n&U%l(        U%R‚                  n(U%R„                  n)[‡        U)U5      n)[‰        UU(U)5        [‹        U RN                  U)5      n)U" U(U)U#5      n*[�        U(U)U U!U"UU*5        S S S 5        S S S 5        S S S 5        S S S 5        S S S 5        U
" W(5        U" U(5        U" U(W)5        [�        U(U)5      u  n(n)0 U RT                  EUR                  5        V+V,s0 s H  u  n+n,U+U;  d  M  U+U,_M     sn,n+En-UR                  5        Hf  u  n+n,U+U-;  a9  [/        U,[�        R’                  R”                  5      (       a  [7        SU+< S35      eU+U-;   d  MM  U+U;  d  MU  U-R—                  U+5        Mh     U(U)U-4$ U R(                  R0                  Rb                   Vs/ s H  nURd                  S:X  d  M  UPM     n.nU. Vs/ s H  nURf                  S   PM     n/nU R(                  R!                  5        V+V0s/ s H  u  n+n0U+PM
     n1n+n0U1 H  n+[™        U R(                  U+5        M     [›        U/5      n2U2c  [œ        Rž                  " 5       OU2n3U(       a  [œ        Rž                  OUn4U	" 5          U3   [u        U5         U4" 5          U" U R(                  U/UUS LUb  UOS S9u  n(n5[/        U([�        R                   R¢                  5      (       d   eU(R0                  R¥                  5         S S S 5        S S S 5        S S S 5        S S S 5        S n6W(R0                  Rb                   Vs/ s H  nURd                  S:X  d  M  UPM     n7n[A        U(R0                  R§                  5       R¨                  S   5      n8[«        U75      [«        U.5      :w  a#  [7        S[«        U75       S[«        U.5       35      e[­        U.U75       H  u  n9n:U9Rl                  =U:l6        U:lW        M      0 n;[±        [²        5      n<[µ        5       n=U7 H3  n>U>Rl                  U;U>Rl                  '   [·        U>Rl                  U<U=5        M5     U(R0                  Rb                   H=  nURd                  S:X  a  M  [¹        U;U<U=URl                  URl                  5      Ul6        M?     [»        U(5        SSK^J_n?J`n@  SSKaJbnA  [�        RÆ                  RÈ                  RÊ                  (       dY  SnB[Í        U(5      nCUCbI  W@" U([Î        RÐ                  " U?SWB0S95         [Ó        U(WCS[Õ        U(R0                  5       3S
S9  S S S 5        U(RK                  5         [­        U8WA" U(5      5       H  u  nDn+U+c  M  U+WDl6        M     [×        U RN                  RØ                  5       VEVFs0 s HK  u  nEnF[/        UFRÚ                  [Ü        5      (       a  M'  WFRÚ                  Rl                  U7WE   Rl                  _MM     nGnEnF[×        U RN                  RØ                  5       VEVFs/ s HF  u  nEnF[ß        UFRà                  U6" UFRÚ                  U7UE   5      UFR®                  UFRâ                  5      PMH     nHnEnF/ nI[×        W5Rä                  5       VEV+s0 s H	  u  nEn+U+UE_M     nJnEn+[?        U5Ræ                  Ré                  5       5      nKU8S [«        UK5        Vs/ s H  nURl                  PM     nLnWKUL:w  a  [7        S WK S!WL 35      eU5Ræ                  R                  5        GH
  u  nMnNWJUN   nEU RN                  RØ                  UE   nOUORà                  [ê        Rì                  [ê        Rî                  4;  a  [7        S"WORà                   35      eWORà                  [ê        Rî                  :X  a  [ð        Rò                  O[ð        Rô                  nPWORà                  [ê        Rî                  :X  a  WOR®                  OWORÚ                  Rl                  nQWIRq                  [÷        WP[ù        WMS#9UQS$95        GM     [×        U RN                  Rú                  5       H†  u  nEnFWIRq                  [÷        UEU:X  a  [ð        Rü                  OWFRà                  U6" WFRÚ                  U8[«        WK5      WE-      5      WGRÿ                  UFR®                  UFR®                  5      5      5        Mˆ     UGbè  U5GR                   c  [7        S%5      eU5GR                   GR                  nR[«        U5Rä                  5      [«        U RN                  RØ                  5      :w  aA  [7        S&[«        U5Rä                  5       S'[«        U RN                  RØ                  5       35      e[×        U RN                  RØ                  5       VEVFs0 s H7  u  nEnF[/        UFRÚ                  [ø        5      (       d  M'  U5Rä                  WE   WF_M9     nSnEnFU8[«        WI5      S   HË  nWRURl                     nTWSUT   nFUFRà                  [ê        GR                  :X  a  [ð        GR                  nUWFR®                  nQOJWFRà                  [ê        Rì                  :X  a  [ð        GR                  nUWTnQO[7        S(WFRà                   35      eWIRq                  [÷        WU[ù        URl                  S#9WQ5      5        MÍ     [«        U75      [«        U.5      :w  a#  [7        S[«        U75       S[«        U.5       35      eG[        WHWIS)9n)[­        U.U75       Hº  u  nVnW[/        UVRf                  S   [�        GR                  5      (       d  WVRf                  S   WWRf                  S'   WWR®                  U)GR                  ;   d  WWR®                  U)GR                  ;   d  M‡  WVRf                  R                  5        H  u  nXnYUYWWRf                  UX'   M     M¼     U(U)U RT                  4$ s  sn'n&f ! , (       d  f       GNO= f! , (       d  f       GNY= f! , (       d  f       GNc= f! , (       d  f       GNm= f! , (       d  f       GNw= fs  sn,n+f s  snf s  snf s  sn0n+f ! , (       d  f       G	ND= f! , (       d  f       G	NN= f! , (       d  f       G	NX= f! , (       d  f       G	Nb= fs  snf ! , (       d  f       GN_= fs  snFnEf s  snFnEf s  sn+nEf s  snf s  snFnEf )*Nr   )Ú_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                 óH   • US L=(       d    U R                   R                  S L$ rQ   )Úgraph_signatureÚbackward_signature)r«   r®   s     rX   Ú_is_joint_ir_decompÚO_decompose_and_get_gm_with_new_signature_constants.<locals>._is_joint_ir_decomp_  s)   € à DÐ(÷ AØ×!Ñ!×4Ñ4¸DÐ@ð	
r[   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_opsz	expected z6 not to be a torch.nn.Parameter when not in state_dict)ÚdecompositionsÚtrace_jointÚoutput_loss_indexc                 óž  • [        U [        5      (       a  U $ [        U [        5      (       a  [        UR                  S9$ [        U [        5      (       a  [	        UR                  S9$ [        U [
        5      (       a  [        UR                  S9$ [        U [        5      (       a  [        UR                  S9$ [        S[        U 5       35      e)N©rR   zType of old_arg not supported: )	Ú
isinstancer9   rC   rR   rB   rA   r@   ÚRuntimeErrorÚtype)Úold_argÚnew_phs     rX   Ú
update_argÚF_decompose_and_get_gm_with_new_signature_constants.<locals>.update_argf  s�   € Ü�gÔ/×0Ñ0ØˆNÜ˜¤×0Ñ0Ü! v§{¡{Ñ3Ð3Ü˜¤×0Ñ0Ü! v§{¡{Ñ3Ð3Ü˜Ô!1×2Ñ2Ü#¨¯©Ñ5Ð5Ü˜¤×1Ñ1Ü"¨¯©Ñ4Ð4ÜÐ<¼TÀ'»]¸OÐLÓMÐMr[   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Á   zmutation_names z does not match expected z9expected input_spec.kind to be USER_INPUT or BUFFER, got rÌ   )ÚkindÚargÚtargetzPgraph_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 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¸   Úmoduler|   Únamed_parametersÚnamed_buffersÚ7torch._functorch._aot_autograd.subclass_parametrizationr¿   r   Úgraph_moduler   Ú	_out_specrÍ   ÚgraphÚ_codegenr   r¥   rÏ   Úpytree_infoÚ	orig_argsra   Útuplerc   Útreespec_tupler   Ú_in_specÚ	recompiler   rº   Ú	constantsr'   Ú
state_dictÚnon_persistent_buffersr    r   Útorch._export.non_strict_utilsrÂ   rÃ   Únodesrƒ   Úmetar:   Úfake_valrR   Úreal_objÚappendr   rž   Úexample_inputsr   Útree_unflattenÚvaluesrˆ   r   ÚgmÚsigr$   r&   r%   r*   Ú _remove_unnecessary_copy_op_passrŽ   ÚnnÚ	ParameterÚpopÚdelattrr-   Ú
contextlibÚnullcontextÚfxÚGraphModuleÚeliminate_dead_codeÚoutput_noderm   Ú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_envrr   r’   r   r   Ú	enumeraterÝ   rÚ   r9   r=   rÙ   Ú
persistentÚuser_inputsÚuser_inputs_to_mutater¢   r<   Ú
USER_INPUTÚBUFFERr>   ÚBUFFER_MUTATIONÚUSER_INPUT_MUTATIONr?   rC   rÞ   ÚLOSS_OUTPUTÚgetr»   Úgradients_to_user_inputsÚ	PARAMETERÚGRADIENT_TO_PARAMETERÚGRADIENT_TO_USER_INPUTr;   ÚTensorÚinputs_to_parametersÚinputs_to_buffers)Zr«   r¬   r­   r®   rÇ   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¼   ÚmodÚwrapped_params_buffersr¿   Úunwrapped_params_buffersÚ	fake_moderN   Úorig_arg_namesÚtemp_registered_constantsÚfake_params_buffersÚparams_buffers_to_node_metarÂ   rÃ   Úretracing_argsÚnodeÚreal_script_objÚtxÚretracing_args_unwrappedÚpatched_modÚnew_fake_argsÚnew_fake_kwargsÚnew_fake_constant_attrsÚmap_fake_to_realÚaten_export_artifactri   Úobjrý   Únew_graph_signaturerñ   rR   ÚpÚnew_state_dictÚold_placeholdersÚ	fake_argsÚ_Úbuffers_to_removeÚfake_mode_detÚfake_mode_ctxÚ#custom_triton_ops_decomposition_ctxrº   rÒ   Únew_placeholdersÚnew_outputsÚold_phrÑ   Úname_mapÚfind_availableÚ
used_namesÚphrÔ   rÕ   rÖ   r×   rÀ   ÚoutputrV   ÚspecÚold_new_placeholder_maprÝ   rÞ   Úuser_inputs_indexÚmutation_namesÚexpected_namesÚoutput_nameÚ
input_nameÚ
input_specÚoutput_kindrÛ   Ú	gradientsÚspecsÚsourcerÙ   Úold_noderU   r¨   ÚvsZ                                                                                             rX   Ú2_decompose_and_get_gm_with_new_signature_constantsrX  K  s,  € õ YÝ?÷÷ õ ?ò
ñ ˜r×4Ò4Ø�i‰i‹kˆð"
Ü�3×'Ñ'¸Ð'Ð?Ó@ð"
ä�3×$Ñ$°eÐ$Ð<Ó=ð"
Ðõ
	
ñ 	*¨#Ô.ð$
Ü�3×'Ñ'¸Ð'Ð?Ó@ð$
ä�3×$Ñ$°eÐ$Ð<Ó=ð$
Ð ô .¨b¯o©oÓ>ˆ	ØÑÜ&±³ÀDÑIˆIð —=‘=ˆä˜#Ÿ)™)×,Ñ,¬n×=Ñ=Ü ØHÌÈcÏiÉi×N`ÑN`ÓIaÐHbÐcóð ð Ÿ™×+Ñ+×7Ñ7×AÑAˆð ÑÜ Ð!<Ó=Ð=Ø�=‰=¤¤u Ó-Ü×,Ò,¨h¨ZÓ8ˆHä+ÜØØ—‘Øóó
ˆ�	‰	Ôð 	�‰Œô
 	(¨×(:Ñ(:¸B¿L¹LÈ#ÔNô %CØ—‘ × 2Ñ 2× IÑ Ió%
Ð!ô
 5°YÀÓDÐä&DÀSÓ&IÐ#÷
	
ð
 ˆØ—I‘I—O”OˆDØ�w‰w˜-Õ'Ü˜dŸi™i¨Ñ.Ô0A×BÑBØ&*�OØ—y‘y Ñ'×0Ñ0Ñ8Ø*,¯,©,°t·y±yÀÑ7G×7LÑ7LÑ*M™à*.¯)©)°EÑ*:×*CÑ*C×*LÑ*L˜Ø"×)Ñ)¨/Ö:à"×)Ñ)¨$¯)©)°EÑ*:Ö;ñ $ô ˜IÓ&ˆò Ü/Øõñ 3°2×3DÑ3DÕEÜ�B�Kä'-×'<Ò'<Ø §¡ó(Ð$ñ (ØðØ-¨aÑ0ðà-¨aÑ0×7Ñ7Ó9ñð ØôñØØØØ'Ø á'9ØØ!Ø#Ø'Ø+Ø!4Ø05Ø0Kñ	(Ð$ð$ %9×$BÑ$B×$HÑ$HÔ$Jô2ò %K™˜˜Sð ä% cÔ+;×<Ñ<ð )¨Ò-à ò!ñ
 %Kò2Ð$Ô.ð *×,Ñ,�Ø&:×&>Ñ&>Ð#ô
 LØ+Ð-Fóð $ô :Ø/°Ð5Hôô
 'VØ×&Ñ&Ð(;ó'Ð#ñ <ØÐ+Ð-Dó�	ô (ØØ'ØØ!Ø#Ø'Øô÷y÷ ÷ F÷÷ ñb 	  Ô#Ù˜BÔÙ! "Ð&9Ô:ä"BØÐ#ó#
ÑˆÐð
Ø�m‰mð
ð  8×=Ñ=Ô?ôâ?‘G�D˜!ØÐ5Ñ5ó ��a’Ù?òð
ˆð .×3Ñ3Ö5‰GˆD�!à˜>Ó)Ü˜a¤§¡×!3Ñ!3×4Ñ4Ü(Ø# D¡8Ð+aÐbóð ð �~Õ%ØÐ7Õ7Ø"×&Ñ& tÖ,ñ 6ð Ð&¨Ð6Ð6ð Ÿ™×.Ñ.×4Ò4óÚ4�¸¿¹À=Ñ8P�Ñ4ð ð ñ /?Ó?Ò.> d�—‘˜5Ô!Ñ.>€IÐ?à-/¯_©_×-JÑ-JÔ-LÔMÒ-L¡' $¨›Ñ-LÐÑMÛ!ˆÜ�—‘ Ö&ñ "ô % YÓ/€MØ0=Ñ0E”J×*Ò*Ô,È=€Mö 'ô 	×Òà?ð (ñ 	 Õ!ÚÜ+¨MÕ:Ù+Õ-á/Ø�O‰OØà.Ø(°Ð4à$4Ñ$@Ñ Àdñ	
ÑˆˆOô ˜"œeŸh™h×2Ñ2×3Ñ3Ð3Ð3Ø
�‰×$Ñ$Ô&÷ 	.÷ 	;÷ 	÷ 	"ò(Nð *,¯©¯ªÓTª ¸4¿7¹7ÀmÑ;SŸ©ÐÐTÜ-2°2·8±8×3GÑ3GÓ3I×3NÑ3NÈqÑ3QÓ-R€Kô ÐÓ¤Ð$4Ó 5Ó5ÜØ&¤sÐ+;Ó'<Ð&=Ð=eÔfiÐjzÓf{Ðe|Ð}ó
ð 	
ô Ð.Ð0@ÖA‰ˆ�Ø&,§k¡kÐ1ˆŒ�f–mñ Bð €HÜ%0´Ó%5€NÜ›5€JÛˆØŸG™Gˆ�—‘ÑÜ�R—W‘W˜n¨jÖ9ñ ð —‘—”ˆØ�7‰7�mÓ#ÙÜ.Ø�n j°$·)±)¸T¿Y¹Yó
ˆŽ	ñ ô $ BÔ'÷õ Yä�=‰=×Ñ×;×;ð1ð 	ô # 2Ó&ˆ	ØÑ Ù(ØÜ×!Ò!Ø'°=À+Ð2Nñõô 0ØØØ(Ô)LÈRÏXÉXÓ)VÐ(WÐXØò	÷ð ‡L�L„NÜ˜KÑ)<¸RÓ)@ÖA‰ˆ�ØÓØˆFŽKñ Bô ! ×!3Ñ!3×!?Ñ!?Ô@ôâ@‰GˆAˆtÜ˜$Ÿ(™(Ô$4×5ó 	0ˆ�‰�‰Ð'¨Ñ*×/Ñ/Ò/Ù@ð ñ ô ! ×!3Ñ!3×!?Ñ!?Ô@ôò A‰GˆAˆtô 	Ø�I‰IÙ�t—x‘xÐ!1°!Ñ!4Ó5Ø�K‰KØ�O‰Oö		
ñ Að ñ ð €Lô 1:¸/×:UÑ:UÔ0VÔWÒ0V¡W Q¨˜˜qšÑ0VÐÑWÜ˜/×?Ñ?×DÑDÓFÓG€NØ,7Ð8M¼#¸nÓ:MÑ,NÓOÒ,N D�d—i”iÑ,N€NÐOØ˜Ó'ÜØ˜nÐ-Ð-FÀ~ÐFVÐWó
ð 	
ð $3×#HÑ#H×#NÑ#N×#PÑˆ�ZØ˜jÑ)ˆØ×'Ñ'×3Ñ3°AÑ6ˆ
Ø�?‰?¤9×#7Ñ#7¼×9IÑ9IÐ"JÓJÜ ØKÈJÏOÉOÐK\Ð]óð ð
 �‰¤)×"2Ñ"2Ó2ô ×&Ò&ä×/Ñ/ð 	ð �‰¤)×"2Ñ"2Ó2ð ×Òà—‘×$Ñ$ð 	ð
 	×ÑÜØ Ü"¨Ñ4Øñ÷	
ñ# $Qô4 ˜R×/Ñ/×<Ñ<Ö=‰ˆˆ4Ø×ÑÜØ*+Ð/?Ó*?”
×&Ò&ÀTÇYÁYÙ˜4Ÿ8™8 [´°^Ó1DÀqÑ1HÑ%IÓJØ'×+Ñ+¨D¯K©K¸¿¹ÓEóö	
ñ >ð Ò#Ø×-Ò-Ñ5Ü Øbóð ð $×6Ò6×OÒOˆ	Üˆ×*Ñ*Ó+¬s°2×3EÑ3E×3QÑ3QÓ/RÓRÜ Ø5´c¸/×:UÑ:UÓ6VÐ5Wð X&Ü&)¨"×*<Ñ*<×*HÑ*HÓ&IÐ%JðLóð ô % R×%7Ñ%7×%CÑ%CÔDô
âD‘��4Ü˜$Ÿ(™(¤N×3ó 1ˆO×'Ñ'¨Ñ*¨DÒ0ÙDð 	ñ 
ð
  ¤ LÓ 1Ð 3Ó4ˆDØ˜tŸy™yÑ)ˆFØ˜‘=ˆDØ�y‰yœI×/Ò/Ó/Ü!×7Ò7�ØŸ™‘Ø—‘œi×2Ñ2Ó2Ü!×8Ò8�Ø‘ä$Ð';¸D¿I¹I¸;Ð%GÓHÐHØ×ÑÜØÜ"¨¯	©	Ñ2Øóöñ 5ô& ÐÓ¤Ð$4Ó 5Ó5ÜØ&¤sÐ+;Ó'<Ð&=Ð=eÔfiÐjzÓf{Ðe|Ð}ó
ð 	
õ /Ø¨lñÐô "Ð"2Ð4DÖEÑˆ�(Ü˜(Ÿ-™-¨Ñ.´·²×=Ñ=Ø#+§=¡=°Ñ#7ˆH�M‰M˜%Ñ ð �O‰OÐ2×GÒGÓGØ�‰Ð"5×"GÒ"GÕGà Ÿ™×+Ñ+Ö-‘��1Ø#$�—‘˜aÓ ó .ñ Fð Ð" B§M¡MÐ1Ð1ùó}	2÷7ö ú÷ ŽKú÷ FÖEú÷ö ú÷ ŽIüóDùò*ùò @ùãM÷  	.Ö-ú÷ 	;Ö:ú÷ 	Žú÷ 	"Ö!üòB U÷Vö üó*ùóùó" XùâOùóf
sj  ÍA@Í;Í%)Í1A	Î71Ï(*~?ÐA+Ñ=	Ò)Ò;ÒA@Ó-A@Ó>A@Ö+A@%×A@%×A@*ØA@/Ù=AA+Ú AAÚAAÚA$A@5	Û8AAÜ AAÜAA+Ü3AA=ÝAA=ä#ABæ&ABæ6(ABèAABé-AB ê3AB&ö&AB+ö,AB+þ?ÿ
ÿ	ÿ
&ÿ!)ÿ)
8ÿ3;ÿ;
A@
	Á@A@Á@
A@Á@5
AAÁ@?AAÁA
AAÁAAAÁA
AA(	ÁA#AA+ÁA+
AA:ÁB
ABrý   r8  c                 ó(  • U R                  UR                  5       5         U R                  R                   GH*  nUR                  S:X  d  M  [
        R                  " UR                  5      u  p4U Hì  n[        U[        R                  R                  5      (       d  M.  UR                  UR                  ;   d  UR                  UR                  ;   d  Md  UR                  S:X  d  Mv  UR                  [        R                   R"                  R$                  R&                  L d  M³  UR)                  UR                  S   5        U R                  R+                  U5        Mî     GM-     U R-                  5         SSS5        X4$ ! , (       d  f       X4$ = f)zI
Removes redundant copy_ node that was introduced due to mutated buffer.
rI  Úcall_functionr7   N)Ú_set_replace_hookÚget_replace_hookré   rõ   rƒ   rc   Útree_flattenrm   rÍ   rŽ   r  ÚNoderR   Úbuffers_to_mutateÚparameters_to_mutaterÛ   Úopsr¡   rŠ   ÚdefaultrY   Ú
erase_noderð   )rý   r8  r-  rm   r=  Úouts         rX   rÿ   rÿ   0  s  € ð 
×	Ñ	Ð1×BÑBÓDÕ	EØ—H‘H—N•NˆDØ�w‰w˜(Õ"Ü ×-Ò-¨d¯i©iÓ8‘�Û�CÜ! #¤u§x¡x§}¡}×5Ó5ØŸ™Ð$7×$IÑ$IÓIØŸ8™8Ð':×'OÑ'OÕOð  ŸF™F oÕ5Ø #§
¡
¬e¯i©i¯n©n×.AÑ.A×.IÑ.IÔ Ià×5Ñ5°c·h±h¸q±kÔBØŸH™H×/Ñ/°Ö4ô  ñ #ð 	�‰Œ÷ 
Fð  Ð"Ð"÷! 
FÔ	Eð  Ð"Ð"ús+    )FÁAFÂ2FÃFÃ'9FÄ$AFÆ
Fc           	      óà  • U R                  UR                  5       5         U R                  5        GH   n[        U[        R
                  R                  5      (       d  M/  0 n0 n[        UR                  R                  5       HÊ  nUR                  S:X  a©  UR                  [        R                  L aŒ  UR                  u  pxXG    SU 3n	X•;   af  UR                  XY   5        U H0  n
U
R                   c  M  U
R                   R                  XeU	   5        M2     UR                  R#                  U5        M²  XeU	'   X”U'   M¼  UR$                  XF'   MÌ     GM#     S S S 5        g ! , (       d  f       g = f)NrZ  Ú.)r[  r\  ÚmodulesrÍ   rŽ   r  r  ra   ré   rõ   rƒ   rÛ   ÚoperatorÚgetitemrm   rY   rj   rc  rR   )rý   rº   Úmodule_call_graphrã   Únode_idÚgetitemsr-  rU  ÚidxÚnew_idÚentrys              rX   Ú _common_getitem_elimination_passrp  I  s#  € ð 
×	Ñ	˜o×>Ñ>Ó@Õ	AØ—j‘j—lˆFÜ˜f¤e§h¡h×&:Ñ&:×;Ñ;Ùà02ˆGØ13ˆHÜ˜VŸ\™\×/Ñ/Ö0�Ø—7‘7˜oÓ-°$·+±+Ä×AQÑAQÒ2QØ"&§)¡)‘K�FØ '¡Ð0°°#°Ð7�FØÓ)Ø×2Ñ2°8Ñ3CÔDÛ%6˜EØ$Ÿ™Ó:Ø %§¡× EÑ EØ$(°6Ñ*:ö!"ñ &7ð
 Ÿ™×/Ñ/°Ö5à+/ Ñ(Ø(. ›à$(§I¡I�G“Mô! 1ñ #÷ 
B×	AÖ	Aús    CEÃ6A EÅ
E-Úold_gmÚold_graph_signaturerº   Úold_module_call_graphc                 óô  ^^• [         R                  " U5      nU R                  R                   Vs0 s H  ofR                  U_M     nn0 TR
                  ETR                  Em0 UR
                  EUR                  En0 n	Sn
U R                  R                   Vs/ s H   ofR                  S:X  d  M  UR                  PM"     nn[        [        UU4S jU5      5      nUR                  R                   Vs/ s H   ofR                  S:X  d  M  UR                  PM"     nnUR                  R                   GH  nUR                  R                  S/ 5      =n(       a  UR                  X�S   R                  '   MD  UR                  S:X  d  MV  UR                  U;   a  Mh  UR                  UR                  ;   a  M„  UR                  U;   d  M–  [        UR                  [        5      (       d!  [!        S[#        UR                  5       35      eXº   n[        U[        5      (       d  [!        S[#        U5       35      eUR                  Xž'   U
S-  n
GM     [%        [        5      nUR'                  5        Hb  u  nnUR)                  S	5      (       d  UT;   a  UU	U'   M)  M+  S
R+                  UR-                  S
5      SS 5      nUU   R/                  U5        Md     U GHŒ  nUR0                  nUc  M  / UR2                  QUR4                  Q GHX  nUR                  U;   a  [7        SUR                   S35      eUR                  U	;   a  U	UR                     Ul        MS  UR                  U;   d  Me  UUR                     nUR                  S:X  d  M†  UR                  [8        R:                  R<                  R>                  R@                  [8        R:                  R<                  R>                  RB                  [8        R:                  R<                  R>                  RD                  4;   d  GM   URF                  S   R                  nUU	;  a  [7        SU S35      eU	U   Ul        GM[     GM�     U$ s  snf s  snf s  snf )Nr   rÄ   c                 ó:   >• U T;  =(       a    U TR                   ;  $ rQ   )Úinput_tokens)ÚxÚold_graph_params_buffersrr  s    €€rX   Ú<lambda>Ú0_get_updated_module_call_graph.<locals>.<lambda>„  s$   ø€ �aÐ7Ñ7÷ :ØÐ,×9Ñ9Ñ9ð:r[   Ú	from_nodeéÿÿÿÿz"expected node.name to be str, got z!expected old_name to be str, got r7   zparametrizations.rf  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 tensorsrZ  )$rŠ   Údeepcopyré   rõ   rR   r"  r#  rƒ   rÛ   ra   Úfilterrö   r  rv  rÍ   re   r¥   rÏ   r   rˆ   r¤   ÚjoinÚsplitrù   rj   rK   rL   Ú
ValueErrorrŽ   ra  r¡   ÚtoÚdtype_layoutÚdeviceÚdtyperm   )rq  rr  rý   rº   rs  Únew_module_call_graphr-  Ú	old_nodesÚnew_graph_params_buffersÚ
provenanceÚuser_input_counterÚold_user_input_namesÚnew_user_input_namesÚhistoryÚold_nameÚold_param_to_desugaredrR   rÛ   Ú
old_targetro  rj   rw  rV  rx  s    `                     @rX   Ú_get_updated_module_call_graphr‘  f  s  ù€ ô !ŸMšMÐ*?Ó@Ðà-3¯\©\×-?Ò-?Ó@Ò-? T—‘˜D’Ñ-?€IÐ@ð Ø
×
2Ñ
2ð à
×
/Ñ
/ð Ðð Ø
×
.Ñ
.ð à
×
+Ñ
+ð Ðð "$€JàÐà &§¡× 2Ò 2óÚ 2˜·g±gÀÑ6N‹ˆ�ŒÑ 2ð ð ô  Üõ:à ó	
óÐð !#§¡§¢óÚ .˜·'±'¸]Ñ2J‹ˆ�Œ¡ð ð ð —‘—•ˆØ—i‘i—m‘m K°Ó4Ð4ˆ7Õ4Ø+/¯9©9ˆJ˜r‘{×'Ñ'Ó(ð
 �W‰W˜Õ%à—‘Ð7Õ7Ø—;‘; /×">Ñ">Õ>à—;‘;Ð"6Õ6Ü% d§i¡i´×5Ñ5Ü,Ø@ÄÀdÇiÁiÃÐ@QÐRóð ð  4ÑG�HÜ% h´×4Ñ4Ü,Ø?ÄÀXÃÐ?OÐPóð ð ,0¯9©9�JÑ(Ø&¨!Ñ+Ó&ñ/ ô8 )¬Ó.ÐØ0×6Ñ6Ö8‰ˆˆfà× Ñ Ð!4×5Ñ5àÐ/Ó/Ø#'�
˜4Ó ñ 0ð Ÿ™ &§,¡,¨sÓ"3°A°bÐ"9Ó:ˆJØ" :Ñ.×5Ñ5°dÖ;ñ 9ô 'ˆØ—O‘Oˆ	ØÑÙØ8�9×#Ñ#Ð8 i×&7Ñ&7Ô8ˆAð �v‰vÐ/Ó/Ü Ø$ Q§V¡V Hð -Zð [óð ð �v‰v˜Ó#Ø# A§F¡FÑ+�–ð —‘˜9Õ$Ø$ Q§V¡VÑ,�Ø—;‘; /Õ1°h·o±oÜ—I‘I—N‘N×%Ñ%×2Ñ2Ü—I‘I—N‘N×%Ñ%×,Ñ,Ü—I‘I—N‘N×%Ñ%×+Ñ+ðJö 7ð
 "*§¡¨qÑ!1×!6Ñ!6�JØ!¨Ó3Ü(Ø,¨Z¨Lð 9bð cóð ð (¨
Ñ3�A—FôG 9ñ	 'ðR !Ð ùò_ Aùò ùòs   ±Q+ÂQ0Â0Q0Ã4Q5ÄQ5rÇ   c                óh  • [        U UUUUS9u  nnn[        U R                  U R                  UUU R                  5      nUR
                  R                  U R                  R
                  5        [        UU R                  5      n	[        UUR                  UUU	UU R                  U R                  S9n
U
$ )N©r¬   r­   r®   rÇ   )Úrootré   rº   rò   Úrange_constraintsrj  rú   rñ   )rX  r‘  rç   rº   rj  rö   r•   Ú_get_updated_range_constraintsr•  rE   ré   rú   rñ   )r«   r¬   r­   r®   rÇ   rý   r8  rò   r†  Únew_range_constraintsÚexported_programs              rX   Ú_decompose_exported_programr™  á  sÃ   € ô 	;Ø
Ø#Ø/Ø)Ø$?ñ	ñ	Ø
ØØô ;Ø
�‰Ø
×ÑØ
ØØ
×ÑóÐð ‡G�G‡N�N�2—?‘?×'Ñ'Ô(ä:Ø
Ø
×ÑóÐô
 'ØØ�h‰hØ+ØØ/Ø/Ø×(Ñ(Ø—,‘,ñ	Ðð Ðr[   c                   ó	  • \ rS rSr% Sr\R                  R                  \S'    \	\S'    \
\\4   \S'    S\S'    \\   \S'    \\\S	4   \
\\4   4   S
-  \S'    \
\\4   \S'    \\\      \S'    \\   \S'     SOS
S.S\R&                  R(                  \
\\4   -  S\R                  R*                  S\	S\
\\R,                  \R&                  R.                  -  4   SSS\\   S\\\S	4   \
\\4   4   S
-  S\
\\4   S
-  S\\\      S
-  4S jjjr\\" SS9S 5       5       r\R8                  \" SS9S 5       5       r\\" SS9S 5       5       r\R8                  \" SS9S  5       5       r\\" SS9S! 5       5       r\R8                  \" SS9S" 5       5       r\\" SS9S# 5       5       r\R8                  \" SS9S$ 5       5       r\" SS9S%\ \R&                  R.                     4S& j5       r!\" SS9S%\ \\\R&                  R.                  4      4S' j5       r"\" SS9S%\ \R,                     4S( j5       r#\" SS9S%\ \\\R,                  4      4S) j5       r$\\" SS9S* 5       5       r%\%R8                  \" SS9S+ 5       5       r%\\" SS9S, 5       5       r&\&R8                  \" SS9S- 5       5       r&\\" SS9S. 5       5       r'\'R8                  \" SS9S/ 5       5       r'\\" SS9S0 5       5       r(\(R8                  \" SS9S1 5       5       r(\\" SS9S%\4S2 j5       5       r)\)R8                  \" SS9S3 5       5       r)\\" SS9S%\4S4 j5       5       r*\*R8                  \" SS9S5 5       5       r*\\" SS9S6 5       5       r+\+R8                  \" SS9S7 5       5       r+\\" SS9S8 5       5       r,\,R8                  \" SS9S9 5       5       r,\\" SS9S: 5       5       r-\-R8                  \" SS9S; 5       5       r-S< r.S=\S>\S%\4S? jr/S=\S>\S%\4S@ jr0S%\4SA jr1SPS%\R                  R                  4SB jjr2SC r3\4  SQSD\
\Rj                  Rl                  \74   S
-  SE\8S%S 4SF jj5       r9SG\:S%S 4SH jr;SI r<\" SS9SJ 5       r=\>SK 5       r?S
S
S
SL. SRSM jjr@SNrAg
)SrE   i  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]rj  rú   rñ   r¤  c	                óœ  • [         R                  R                  R                  5       Ul        [        X5      U l        [        U[         R                  R                  5      (       a/  U R                  R                  R                  UR                  5        [        U R                  X65        X0l        X@l        XPl        Uc  [        S5      eX`l        Xpl        U=(       d    0 U l        U	=(       d    [&        /n	[)        S U	 5       5      (       d  [        SU	 35      eX�l        U R-                  5         [/        U R                  5      U l        g )Nz"module_call_graph must not be Nonec              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frQ   )r{   r+   )Ú.0rW  s     rX   Ú	<genexpr>Ú+ExportedProgram.__init__.<locals>.<genexpr>c  s   é € Ð>²I¨q”:˜a¤×*Ð*²Iùs   ‚z2all verifiers must be subclasses of Verifier, got )rŽ   r  ré   ÚCodeGenrê   Ú_create_graph_module_for_exportr›  rÍ   r  rö   r•   rp  rœ  r�  rž  r¥   rŸ  r   r¡  r+   Úallr¢  ÚvalidateÚ_convert_guards_to_coder£  )
rS   r”  ré   rº   rò   r•  rj  rú   rñ   r¤  s
             rX   Ú__init__ÚExportedProgram.__init__B  s  € ô Ÿ™Ÿ™×/Ñ/Ó1ˆŒÜ<¸TÓIˆÔÜ�dœEŸH™H×0Ñ0×1Ñ1Ø×Ñ×#Ñ#×*Ñ*¨4¯9©9Ô5ä(Ø×Ñ ô	
ð 7FÔØ+5ÔØCTÔØÑ$Ü Ð!EÓFÐFØ9JÔØ-Ôà#Ÿ/ rˆŒà×+¤( ˆ	ÜÑ>±IÓ>×>Ñ>Ü ØDÀYÀKÐPóð ð $Œà�‰Œä3°D×4FÑ4FÓGˆÕr[   F)Úis_backward_compatiblec                 ó   • U R                   $ rQ   )r›  ©rS   s    rX   rç   ÚExportedProgram.graph_modulem  s   € ð ×!Ñ!Ð!r[   c                 ó   • [        S5      e)Nz7Unable to set ExportedProgram's graph_module attribute.©rÎ   ©rS   Úvalues     rX   rç   rµ  r  s   € ô ÐTÓUÐUr[   c                 ó.   • U R                   R                  $ rQ   )rç   ré   r´  s    rX   ré   ÚExportedProgram.graphw  s   € ð × Ñ ×&Ñ&Ð&r[   c                 ó   • [        S5      e)Nz0Unable to set ExportedProgram's graph attribute.r·  r¸  s     rX   ré   r»  |  s   € ô ÐMÓNÐNr[   c                 ó   • U R                   $ rQ   )rœ  r´  s    rX   rº   ÚExportedProgram.graph_signature�  s   € ð ×$Ñ$Ð$r[   c                 ó   • [        S5      e)Nz:Unable to set ExportedProgram's graph_signature attribute.r·  r¸  s     rX   rº   r¾  †  s   € ô ÐWÓXÐXr[   c                 ó   • U R                   $ rQ   )r�  r´  s    rX   rò   ÚExportedProgram.state_dict‹  s   € ð ×ÑÐr[   c                 ó   • [        S5      e)Nz5Unable to set ExportedProgram's state_dict attribute.r·  r¸  s     rX   rò   rÁ  �  s   € ô ÐRÓSÐSr[   ry   c              #   óF   #   • U R                  5        H	  u  pUv •  M     g7f)z8
Returns an iterator over original module's parameters.
N)rä   )rS   r=  Úparams      rX   Ú
parametersÚExportedProgram.parameters•  s!   é € ð
 ×-Ñ-Ö/‰HˆAØŒKò 0ùó   ‚!c              #   ój   #   • U R                   R                   H  nXR                  U   4v •  M     g7f)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ò   )rS   Ú
param_names     rX   rä   Ú ExportedProgram.named_parameters�  s/   é € ð ×.Ñ.×9Ô9ˆJØŸo™o¨jÑ9Ð9Ô9ò :ùs   ‚13c              #   óF   #   • U R                  5        H	  u  pUv •  M     g7f)z3
Returns an iterator over original module buffers.
N)rå   )rS   r=  Úbufs      rX   ÚbuffersÚExportedProgram.buffers¦  s!   é € ð
 ×(Ñ(Ö*‰FˆAØŒIò +ùrÇ  c              #   óÚ   #   • [        U R                  R                  5      nU R                  R                   H.  nX!;   a  X R                  U   4v •  M  X R
                  U   4v •  M0     g7f)zv
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ò   )rS   ró   Úbuffer_names      rX   rå   ÚExportedProgram.named_buffers®  s^   é € ô "% T×%9Ñ%9×%PÑ%PÓ!QÐØ×/Ñ/×7Ô7ˆKØÓ4Ø!§>¡>°+Ñ#>Ð>Ô>à!§?¡?°;Ñ#?Ð?Ô?ò	 8ùs   ‚A)A+c                 ó   • U R                   $ rQ   )rž  r´  s    rX   r•  Ú!ExportedProgram.range_constraints»  ó   € ð ×&Ñ&Ð&r[   c                 ó   • [        S5      e)Nz<Unable to set ExportedProgram's range_constraints attribute.r·  r¸  s     rX   r•  rÓ  À  ó   € ô ØJó
ð 	
r[   c                 ó   • U R                   $ rQ   )rŸ  r´  s    rX   rj  Ú!ExportedProgram.module_call_graphÇ  rÔ  r[   c                 ó   • [        S5      e)Nz<Unable to set ExportedProgram's module_call_graph attribute.r·  r¸  s     rX   rj  rØ  Ì  rÖ  r[   c                 ó   • U R                   $ rQ   )r   r´  s    rX   rú   ÚExportedProgram.example_inputsÓ  s   € ð ×#Ñ#Ð#r[   c                 ó0  • Uc  Xl         g [        U[        5      (       a?  [        U5      S:X  a0  [        US   [        5      (       a  [        US   [        5      (       d  [        S5      eUu  p#SSKJn  U" X#U R                  R                  5        Xl         g )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
  r|   r�  Ú_unliftrÞ  Ú	call_specrM   )rS   r¹  rm   rn   rÞ  s        rX   rú   rÛ  Ø  s‡   € ð
 ‰=Ø#(Ô Øô �uœe×$Ñ$Ü�E“
˜a“Ü˜5 ™8¤U×+Ñ+Ü˜5 ™8¤T×*Ñ*äðBóð ð
 ‰ˆÝ0á˜D¨$¯.©.×*@Ñ*@ÔAà$Õr[   c                 óx  •  " S S[         5      n[        U R                  5      S:X  a  U" S S S9$ U R                  S   R                  S:w  a&  [	        SU R                  S   R                  < 35      eU" U R                  S   R
                  R                  U R                  S   R
                  R                  S9$ )Nc                   ó^   • \ rS rSr% \R
                  S-  \S'   \R
                  S-  \S'   Srg)Ú+ExportedProgram.call_spec.<locals>.CallSpeciö  NrM   rN   r\   )r]   r^   r_   r`   rc   rd   rb   rf   r\   r[   rX   ÚCallSpecrã  ö  s    ‡ Ø—_‘_ tÑ+Ó+Ø—o‘o¨Ñ,Ö,r[   rä  r   )rM   rN   Ú z=expected first module_call_graph fqn to be empty string, got )r	   r
  rj  ri   r¥   rj   rM   rN   )rS   rä  s     rX   rà  ÚExportedProgram.call_specó  s·   € ô	-”zô 	-ô ˆt×%Ñ%Ó&¨!Ó+Ù D°4Ñ8Ð8Ø×!Ñ! !Ñ$×(Ñ(¨BÓ.Ü ØOÐPT×PfÑPfÐghÑPi×PmÑPmÑOpÐqóð ñ Ø×*Ñ*¨1Ñ-×7Ñ7×?Ñ?Ø×+Ñ+¨AÑ.×8Ñ8×AÑAñ
ð 	
r[   c                 ó   • [        S5      e)Nz4Unable to set ExportedProgram's call_spec attribute.r·  r¸  s     rX   rà  ræ    ó   € ô ÐQÓRÐRr[   c                 ó    • U R                   S   $ )Nr   ©r¢  r´  s    rX   ÚverifierÚExportedProgram.verifier
  s   € ð �‰˜qÑ!Ð!r[   c                 ó   • [        S5      e)Nz3Unable to set ExportedProgram's verifier attribute.r·  r¸  s     rX   rë  rì    s   € ô ÐPÓQÐQr[   c                 ód   • U R                   c  [        S5      eU R                   S   R                  $ )Nz_verifiers must not be Noner   )r¢  r¥   Údialectr´  s    rX   rï  ÚExportedProgram.dialect  s/   € ð �?‰?Ñ"Ü Ð!>Ó?Ð?Ø�‰˜qÑ!×)Ñ)Ð)r[   c                 ó   • [        S5      e)Nz2Unable to set ExportedProgram's dialect attribute.r·  r¸  s     rX   rï  rð    s   € ô ÐOÓPÐPr[   c                 ó   • U R                   $ rQ   rê  r´  s    rX   r¤  ÚExportedProgram.verifiers   ó   € ð �‰Ðr[   c                 ó   • [        S5      e)Nz4Unable to set ExportedProgram's verifiers attribute.r·  r¸  s     rX   r¤  ró  %  rè  r[   c                 ó   • U R                   $ rQ   ©r¡  r´  s    rX   Útensor_constantsÚ ExportedProgram.tensor_constants*  rô  r[   c                 ó   • [        S5      e)Nz;Unable to set ExportedProgram's tensor_constants attribute.r·  r¸  s     rX   rø  rù  /  s   € ô ØIó
ð 	
r[   c                 ó   • U R                   $ rQ   r÷  r´  s    rX   rñ   ÚExportedProgram.constants6  rô  r[   c                 ó   • [        S5      e)Nz4Unable to set ExportedProgram's constants attribute.r·  r¸  s     rX   rñ   rü  ;  rè  r[   c                 óÈ   • U R                   R                  nUb  [        X#5      n[        R                  " X45      u  pEU R                  U5        [        S U 5       5      nXe4$ )ag  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)
c              3   ó*   #   • U  H	  oS    v •  M     g7f)r7   Nr\   )r¨  rw  s     rX   r©  Ú<ExportedProgram._get_flat_args_with_check.<locals>.<genexpr>T  s   é € Ð<Ò(; 1˜Až$Ò(;ùs   ‚)rà  rM   r1   rc   Útree_flatten_with_pathÚ_check_input_constraintsrí   )rS   rm   rn   rM   Úflat_args_with_pathÚreceived_specÚ	flat_argss          rX   Ú_get_flat_args_with_checkÚ)ExportedProgram._get_flat_args_with_check@  sg   € ð —.‘.×(Ñ(ˆØÑÜ# FÓ4ˆFÜ-3×-JÒ-JØˆNó.
Ñ*Ðð 	×%Ñ%Ð&9Ô:ÜÑ<Ñ(;Ó<Ó<ˆ	ØÐ'Ð'r[   rm   rn   c                 ó  • U R                   R                  nU R                  X5      u  pEUb&  [        XS[        5      (       d  [        SU SU 35      e/ nU R                  R                   GH  nUR                  [        R                  :X  a  M$  UR                  [        R                  [        R                  4;   ac  UR                  SL a*  UR                  U R                  UR                      5        M‹  UR                  U R"                  UR                      5        Mµ  UR                  [        R$                  [        R&                  4;   d  Må  UR                  U R                  UR                      5        GM     [)        U5      nXd-   $ )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)))
z>Trying to flatten user inputs with exported input tree spec: 
z-
but actually got inputs with tree spec of: 
F)rà  rM   r  r0   r}   r�  rº   rÝ   rÙ   r<   r  r  r  r  rù   rñ   rÛ   rò   ÚCONSTANT_TENSORÚ
CUSTOM_OBJrí   )rS   rm   rn   rM   r  r  Úadditional_inputsÚinput_s           rX   Ú_graph_module_flat_inputsÚ)ExportedProgram._graph_module_flat_inputsW  s\  € ð —.‘.×(Ñ(ˆØ#'×#AÑ#AÀ$Ó#OÑ ˆ	ØÑ¤}ØÔ$A÷(
ñ (
ô ØQØ�)ð @à �/ð#óð ð ÐØ×*Ñ*×6Õ6ˆFØ�{‰{œi×2Ñ2Ó2ÙØ—‘Ü×#Ñ#Ü× Ñ ð!ó ð ×$Ñ$¨Ò-ð &×,Ñ,¨T¯^©^¸F¿M¹MÑ-JÖKà%×,Ñ,¨T¯_©_¸V¿]¹]Ñ-KÖLØ—‘Ü×)Ñ)Ü×$Ñ$ð!õ ð "×(Ñ(¨¯©¸¿¹Ñ)F×Gñ# 7ô$ "Ð"3Ó4Ðð !Ñ,Ð,r[   c                 ó   • [        S5      e)Nz\Unable to call ExportedProgram directly. You should use `exported_program.module()` instead.r·  )rS   rm   rn   s      rX   Ú__call__ÚExportedProgram.__call__…  s   € ÜðBó
ð 	
r[   c                 óÐ   • U R                   R                  SSS9R                  SS5      n[        U R                  5      R                  SS5      nSU SU SU R
                   S3nU$ )NF)Úprint_outputÚcoloredÚ
z
    zExportedProgram:
    z
Graph signature: z
Range constraints: )rç   Úprint_readableÚreplacere   rº   r•  )rS   rç   rº   Ústrings       rX   Ú__str__ÚExportedProgram.__str__‹  s‰   € Ø×(Ñ(×7Ñ7Ø¨ð 8ð 
ç
‰'�$˜Ó
!ð 	ô ˜d×2Ñ2Ó3×;Ñ;¸DÀ(ÓKˆðØ�.ð ! Ø /Ð0ð 1"Ø"&×"8Ñ"8Ð!9¸ð=ð 	ð ˆr[   c                 ó¾   • SSK Jn  U" XS9nSS[        4S jjnSS[        4S jjn[        R                  " XC5      Ul        [        R                  " XS5      Ul        U$ )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_guardsÚmodec                 ó   • [        S5      e)Nz%Calling train() is not supported yet.©ÚNotImplementedError©rS   r  s     rX   Ú_trainÚ&ExportedProgram.module.<locals>._train§  s   € Ü%Ð&MÓNÐNr[   c                 ó   • [        S5      e)Nz$Calling eval() is not supported yet.r   r"  s     rX   Ú_evalÚ%ExportedProgram.module.<locals>._evalª  s   € Ü%Ð&LÓMÐMr[   ©T)rß  r  ÚboolÚtypesÚ
MethodTypeÚtrainÚeval)rS   r  r  rã   r#  r&  s         rX   rã   ÚExportedProgram.module˜  sY   € õ 	Dá7¸ÑXˆñ	Oœtõ 	Oñ	Nœdõ 	Nô ×'Ò'¨Ó7ˆŒÜ×&Ò& uÓ5ˆŒØˆr[   c                 óœ   • [        S [        U R                  R                  5       5       [	        U R                  R                  5      5      $ )Nc              3   ój   #   • U  H)  u  pUR                   [        R                  :X  d  M%  Uv •  M+     g 7frQ   )rÙ   r<   r  )r¨  rV   Úss      rX   r©  Ú=ExportedProgram._num_lifted_params_buffers.<locals>.<genexpr>³  s-   é € ð âH‘D�AØ—6‘6œY×1Ñ1Ñ1÷ ‘ÚHùs   ‚$3ª	3)Únextr  rœ  rÝ   r
  r´  s    rX   Ú_num_lifted_params_buffersÚ*ExportedProgram._num_lifted_params_buffers±  sC   € Üñä% d×&;Ñ&;×&GÑ&GÔHóô
 �×%Ñ%×1Ñ1Ó2ó
ð 	
r[   rŸ   rÇ   c                 ó²   • Uc
  [        5       O
[        U5      n[        U[        5      (       a  UR	                  5       n[        U5      u  nn[        U UUSUS9$ )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   r|   rÍ   r3   Úmaterializer©   r™  )rS   rŸ   rÇ   Ú_decomp_tabler¬   r­   s         rX   Úrun_decompositionsÚ"ExportedProgram.run_decompositions»  sn   € ðP )5Ñ(<Ô"Ô$Ä$À|ÓBTð 	ô �mÔ%6×7Ñ7Ø)×5Ñ5Ó7ˆMô" 9¸ÓGñ	
ØØô +ØØ'Ø 3Ø!Ø(Cñ
ð 	
r[   Úpassesc                 ó|  • [        [        U5      5      nSSKJn  U" 5          U" U R                  5      nS S S 5        Wb  UR                  OU R                  nUc  [        S5      eXPR                  L a  UR                  (       d  U $ S[        S[        R                  R                  S[        4S jn[        UUR                  U" U R                  U5      U R                  [        UU R                   5      ["        R$                  " U R&                  5      U R(                  U R*                  U R,                  S9	nUR                  R.                  R1                  U R                  R.                  5        UR                  R.                  R1                  UR                  R.                  5        U$ ! , (       d  f       GN~= f)	Nr   )r´   ztransformed_gm must not be NoneÚold_signatureÚnew_gmry   c           	      óÌ  • / n[        UR                  R                  5       Hõ  u  p4UR                  S:w  a    OâU[	        U R
                  5      :¼  a%  [        SU S[	        U R
                  5       S35      eU R
                  U   n[        UR                  [        [        45      (       a  UR                  O$[        UR                  5      " UR                  5      nUR                  [        UR                  UUR                   UR"                  5      5        M÷     [%        UR                  R                  5      S   nUR                  S:w  a  [        SUR                  < 35      e/ n[        UR&                  S   5       H×  u  p4U[	        U R(                  5      :¼  a%  [        S	U S[	        U R(                  5       S
35      eU R(                  U   n	[        U	R                  [        [        45      (       a  U	R                  O$[        U	R                  5      " UR                  5      nUR                  [+        U	R                  XiR                   5      5        MÙ     [-        X(S9n
U
$ )z7
Update the graph signature's user_input/user_outputs.
rÄ   z9Number of inputs changed after transformation: got index z
 but only z input_specsr|  rI  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Ï   rR   rù   r=   rÙ   rÛ   r  ra   rm   rÞ   r?   r;   )r=  r>  Únew_input_specsrV   r-  Úold_input_specrÚ   r	  Únew_output_specsÚold_output_specÚnew_signatures              rX   Ú_get_updated_graph_signatureÚKExportedProgram._transform_do_not_use.<locals>._get_updated_graph_signature  sU  € ð !ˆOÜ$ V§\¡\×%7Ñ%7Ö8‘�Ø—7‘7˜mÓ+Ùàœ˜M×5Ñ5Ó6Ó6Ü(ØSÐTUÐSVð W$Ü$'¨×(AÑ(AÓ$BÐ#CÀ<ðQóð ð "/×!:Ñ!:¸1Ñ!=�ô "Ø&×*Ñ*Ô-=Ô?PÐ,Q÷ñ ð #×&Ò&ô ˜n×0Ñ0Ô1°$·)±)Ó<ð ð  ×&Ñ&ÜØ&×+Ñ+ØØ&×-Ñ-Ø&×1Ñ1ó	öñ# 9ô4 ˜vŸ|™|×1Ñ1Ó2°2Ñ6ˆKØ�~‰~ Ó)Ü$ØBÀ;Ç>Á>ÑBTÐUóð ð  "ÐÜ$ [×%5Ñ%5°aÑ%8Ö9‘�Øœ˜M×6Ñ6Ó7Ó7Ü(ØTÐUVÐTWð X$Ü$'¨×(BÑ(BÓ$CÐ#DÀMðSóð ð #0×"<Ñ"<¸QÑ"?�ô "Ø'×+Ñ+Ô.>Ô@QÐ-R÷ñ ð $×'Ò'ô ˜o×1Ñ1Ô2°4·9±9Ó=ð ð !×'Ñ'Ü˜×3Ñ3°S×:PÑ:PÓQöñ :ô$ 1Ø+ñˆMð !Ð r[   ©	r”  ré   rº   rò   r•  rj  rú   rñ   r¤  )r6   ra   rá   r´   rç   r¥   Úmodifiedr;   rŽ   r  r  rE   ré   rº   rò   r–  r•  rŠ   r}  rŸ  rú   rñ   r¤  rö   r•   )rS   r;  Úpmr´   ÚresÚtransformed_gmrE  Útransformed_eps           rX   Ú_transform_do_not_useÚ%ExportedProgram._transform_do_not_use  sn  € Üœ˜f›Ó&ˆõ 	@á$Õ&Ù�T×&Ñ&Ó'ˆC÷ 'à-0©_˜×)Ò)À$×BSÑBSˆØÑ!Ü Ð!BÓCÐCð ×.Ñ.Ò.°s·|·|ØˆKð>	!Ü/ð>	!ä—H‘H×(Ñ(ð>	!ô "ô>	!ô@ )ØØ ×&Ñ&Ù8Ø×$Ñ$ nóð —‘Ü<ØØ×&Ñ&óô #Ÿmšm¨D×,CÑ,CÓDØ×.Ñ.Ø—n‘nØ—n‘nñ
ˆð  	×#Ñ#×(Ñ(×/Ñ/°×0AÑ0A×0FÑ0FÔGà×#Ñ#×(Ñ(×/Ñ/°×0@Ñ0@×0EÑ0EÔFØÐ÷} 'Ö&ús   ¢F,Æ,
F;c                 ó`  • SSK Jn  U R                  R                   Vs/ s H  o3R                  S:X  d  M  UPM     nn[        X@R                  R                  5       VVs/ s H'  u  p5UR                  [        R                  :X  d  M%  UPM)     nnnU" XaU R                  5        g s  snf s  snnf )Nr   )Ú"_check_input_constraints_for_graphrÄ   )Útorch._export.utilsrP  ré   rõ   rƒ   r  rº   rÝ   rÙ   r<   r  r•  )rS   r  rP  r9  Úplaceholdersr1  Úinput_placeholderss          rX   r  Ú(ExportedProgram._check_input_constraintsh  s•   € ÝJà#'§:¡:×#3Ò#3ÓMÒ#3˜a·t±t¸}Ñ7LŸÑ#3ˆÐMô ˜L×*>Ñ*>×*JÑ*JÔKô
âK‘�Ø�v‰vœ×-Ñ-Ñ-÷ ÙKð 	ñ 
ñ
 	+Ø°T×5KÑ5Kõ	
ùò Nùó
s   ŸB%¶B%Á $B*ÂB*c                 ó$   • U R                  5         g rQ   )Ú	_validater´  s    rX   r®  ÚExportedProgram.validateu  s   € à�‰Õr[   c                 óž   • [        U R                  5      S:X  a  [        S5      eU R                   H  nU" 5       R                  U 5        M     g )Nr   z0ExportedProgram must have at least one verifier.)r
  r¤  r¥   Úcheck)rS   rW  s     rX   rV  ÚExportedProgram._validatez  s:   € äˆt�~‰~Ó !Ó#Ü Ð!SÓTÐTØ—”ˆAÙ‹C�I‰I�dŽOò  r[   )rò   rñ   r¤  c                ó"  • [        UUR                  UUb  UOU R                  [        R                  " U R
                  5      [        R                  " U R                  5      U R                  Ub  UOU R                  Ub  US9	$ U R                  S9	$ )NrG  )
rE   ré   rò   rŠ   r}  r•  rŸ  rú   rñ   r¤  )rS   rç   rº   rò   rñ   r¤  s         rX   Ú_updateÚExportedProgram._update‚  s…   € ô ØØ×$Ñ$Ø+Ø%/Ñ%;‘zÀÇÁÜ"Ÿmšm¨D×,BÑ,BÓCÜ"Ÿmšm¨D×,CÑ,CÓDØ×.Ñ.Ø#,Ñ#8‘i¸d¿n¹nØ#,Ñ#8�iñ

ð 
	
ð ?C¿n¹nñ

ð 
	
r[   )	r¡  r   r›  rœ  r£  rŸ  rž  r�  r¢  )NNr(  )NF)ry   rE   )Br]   r^   r_   r`   Ú__doc__rŽ   r  r  rb   r;   r|   re   r   ra   rF   rí   r   rÏ   r+   r   ÚModuleÚGraphr!  r  r°  Úpropertyr4   rç   Úsetterré   rº   rò   r   rÅ  rä   rÍ  rå   r•  rj  rú   rà  rë  rï  r¤  rø  rñ   r  r  r  r  rã   r4  rt   Ú_opsÚOperatorBaser   r)  r9  ÚPassTyperM  r  r®  r   rV  r\  rf   r\   r[   rX   rE   rE     sJ  ‡ ñð —8‘8×'Ñ'Ó'ØOà*Ó*ØMà�c˜3�h‘ÓØUà9Ó9ØEà˜_Ñ-Ó-ØJà˜5  c ™?¨D°°c°©NÐ:Ñ;¸dÑBÓBØLà�SÐ0Ð0Ñ1Ó1Ø:à�T˜(‘^Ñ$Ó$ØIà�s‘)Óð IMØ>Bð)Hð 26ò)Hà�h‰h�o‰o  S¨# X¡Ñ.ð)Hð �x‰x�~‰~ð)Hð .ð	)Hð
 ˜˜eŸl™l¨U¯X©X×-?Ñ-?Ñ?Ð?Ñ@ð)Hð 5ð)Hð   Ñ0ð)Hð ˜e C¨ H™o¨t°C¸°H©~Ð=Ñ>ÀÑEð)Hð ˜Ð3Ð3Ñ4°tÑ;ð)Hð ˜˜X™Ñ'¨$Ñ.ö)HðV Ù¨%Ñ0ñ"ó 1ó ð"ð ×ÑÙ¨%Ñ0ñVó 1ó ðVð Ù¨%Ñ0ñ'ó 1ó ð'ð ‡\�\Ù¨%Ñ0ñOó 1ó ðOð Ù¨%Ñ0ñ%ó 1ó ð%ð ×ÑÙ¨%Ñ0ñYó 1ó ðYð Ù¨%Ñ0ñ ó 1ó ð ð ×ÑÙ¨%Ñ0ñTó 1ó ðTñ ¨%Ñ0ð˜H U§X¡X×%7Ñ%7Ñ8ó ó 1ðñ ¨%Ñ0ð: (¨5°°e·h±h×6HÑ6HÐ1HÑ+IÑ"Jó :ó 1ð:ñ ¨%Ñ0ð˜ %§,¡,Ñ/ó ó 1ðñ ¨%Ñ0ð
@˜x¨¨c°5·<±<Ð.?Ñ(@ÑAó 
@ó 1ð
@ð Ù¨%Ñ0ñ'ó 1ó ð'ð ×ÑÙ¨%Ñ0ñ
ó 1ó ð
ð
 Ù¨%Ñ0ñ'ó 1ó ð'ð ×ÑÙ¨%Ñ0ñ
ó 1ó ð
ð
 Ù¨%Ñ0ñ$ó 1ó ð$ð ×ÑÙ¨%Ñ0ñ%ó 1ó ð%ð2 Ù¨%Ñ0ñ
ó 1ó ð
ð  ×ÑÙ¨%Ñ0ñSó 1ó ðSð Ù¨%Ñ0ð"˜#ó "ó 1ó ð"ð ‡_�_Ù¨%Ñ0ñRó 1ó ðRð Ù¨%Ñ0ð*˜ó *ó 1ó ð*ð
 ‡^�^Ù¨%Ñ0ñQó 1ó ðQð Ù¨%Ñ0ñó 1ó ðð ×ÑÙ¨%Ñ0ñSó 1ó ðSð Ù¨%Ñ0ñó 1ó ðð ×ÑÙ¨%Ñ0ñ
ó 1ó ð
ð
 Ù¨%Ñ0ñó 1ó ðð ×ÑÙ¨%Ñ0ñSó 1ó ðSò(ð.,-¨cð ,-¸3ð ,-À3ô ,-ð\
˜cð 
¨Sð 
°Sô 
ð˜ô ñ¨5¯8©8×+?Ñ+?õ ò2
ð $ð HLØ,1ñD
à˜5Ÿ:™:×2Ñ2°HÐ<Ñ=ÀÑDðD
ð &*ðD
ð 
ô	D
ó $ðD
ðLd¨Xð dÐ:Kô dòL
ñ ¨%Ñ0ñó 1ðð ñó ðð ØØñ
ð 
÷
ð 
r[   c                 ól  • U R                   R                   Vs/ s H1  nUR                  R                  SS 5      c  M"  UR                  S   PM3     nnSSKJn  U" U5      nUb  UR                  $ U H:  n[        U[        R                  5      (       d  M$  UR                  R                  s  $    g s  snf )NrÅ   r   r,   )ré   rõ   rö   r  Útorch._guardsr-   rÀ   rÍ   rŽ   ÚSymIntr-  )rý   r-  Úvalsr-   r'  rW  s         rX   r  r  ˜  sš   € ð —H‘H—N’Nóâ"ˆDØ�9‰9�=‰=˜ Ó%ó 	ˆ�	‰	�%ÔÙ"ð 	ð õ
 /á  Ó&€IØÑØ×"Ñ"Ð"ÛˆÜ�aœŸ™×&Ó&Ø—6‘6×#Ñ#Ò#ò ùòs
   ™!B1¾B1Úold_range_constraintszdict[sympy.Symbol, Any] | Noner¥  c                 ób  • Uc  [        S5      e[        U 5      nUc  0 $ [        R                  " U5      nUR                  5        VVs0 s H  u  pEXBR                  ;  d  M  XE_M     nnnUR
                  R                  5        H!  u  pEXBR                  ;  d  M  XC;  d  M  XSU'   M#     U$ s  snnf )Nz&old_range_constraints must not be None)r¥   r  rŠ   rˆ   ÚreplacementsÚvar_to_range)rý   rj  rÀ   r•  r¨   rW  s         rX   r–  r–  ¨  sµ   € ð Ñ$ÜÐEÓFÐFä˜rÓ"€IØÑØˆ	äŸ	š	Ð"7Ó8Ðà*×0Ñ0Ô2ôÚ2‘�°a×?UÑ?UÑ6U‹ˆŠÑ2ð ñ ð ×&Ñ&×,Ñ,Ö.‰ˆØ×*Ñ*Õ*¨qÕ/IØ#$˜aÓ ñ /ð Ðùós   ÁB+Á!B+c                 ó  •  [         R                  R                  X5      nU$ ! [         a[    [        R
                  " SSS9  [         R                  R                  U [         R                  R                  5       5      nXl         U$ f = f)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Úwarnr`  Ú_graph)r”  ré   rý   s      rX   r¬  r¬  À  sy   € ðÜ�X‰X×!Ñ! $Ó.ˆð" €Iøô! ó ô 	�ŠðGð ò	
ô �X‰X×!Ñ! $¬¯©¯©Ó(8Ó9ˆØ�	à€Ið!ús   ‚# £A!BÂBc                 ó\  • [        U 5      nUc  / $ UR                  R                  5        VVs1 s H   u  p#[        S U 5       5      (       d  M  UiM"     nnn[        R
                  R                  R                  R                  UR                  S UR                  5      nUR                   Vs/ s HJ  nUR                  R                  R                  U5      (       d  M/  UR                  UR                  5      PML     nnU Vs/ s H  nSU;  d  M  UPM     sn$ s  snnf s  snf s  snf )Nc              3   óˆ   #   • U  H8  n[        U[        R                  R                  R                  5      (       + v •  M:     g 7frQ   )rÍ   rŽ   r  rU  ÚConstantSource)r¨  rU  s     rX   r©  Ú*_convert_guards_to_code.<locals>.<genexpr>Þ  s4   é € ð 
â!�ô ˜6¤5§=¡=×#7Ñ#7×#FÑ#FÓG×GÑGÚ!ùs   ‚A Ac                 ó   • U R                   $ rQ   rÌ   )r1  s    rX   ry  Ú)_convert_guards_to_code.<locals>.<lambda>ä  s   € ¨A¯FªFr[   z	L['self'])r  Úvar_to_sourcesrˆ   r­  rŽ   r  ÚexperimentalÚsymbolic_shapesÚShapeGuardPythonPrinterÚguardsÚexprÚfree_symbolsÚissubsetÚdoprint)rç   rÀ   ÚvarÚsourcesÚ
local_varsÚ
py_printerÚguardÚrets           rX   r¯  r¯  Ö  s  € Ü˜|Ó,€IØÑØˆ	ð &×4Ñ4×:Ñ:Ô<ôâ<‰LˆCÜñ 
á!ó
÷ 
÷ 	Ù<ð ñ ô —‘×&Ñ&×6Ñ6×NÑNØ× Ñ Ñ"2°I×4LÑ4Ló€Jð
 ×%Ò%óâ%ˆEØ�:‰:×"Ñ"×+Ñ+¨J×7ó 	'ˆ
×Ñ˜5Ÿ:™:Ö&Ù%ð ð ñ  #Ó?šs�e k¸Ñ&>�E™sÑ?Ð?ùó%ùòùò @s#   ®DÁDÂ0.D$Ã"D$Ä
D)ÄD))ry   r3   rQ   )™r  rŠ   Údataclassesrr   rh  r*  rq  Úcollectionsr   Úcollections.abcr   r   r   Útypingr   r   r	   r
   rg  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Ú_pytreerc   rQ  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  re  Ú	dataclassrG   rF   rt   rÏ   ÚContextr)  r}   r�   r�   ÚAutogradCPUÚAutogradCUDAÚAutogradMetaÚAutogradXLAÚAutogradLazyÚAutogradIPUÚAutogradXPUÚAutogradMPSÚAutogradHPUÚAutogradPrivateUse1ÚAutogradPrivateUse2ÚAutogradPrivateUse3rŒ   ÚCPUÚCUDAÚMetaÚXLAÚLazyÚIPUÚXPUÚMPSÚHPUr“   rž   r|   rc  rd  rí   r©   rH   r  rX  rÿ   rp  ra   r‘  r™  rE   r  r–  r¬  r¯  r\   r[   rX   Ú<module>r¹     s  ðó Û Û Û Û Û Û Ý #ß .Ý %ß 8Ó 8ç 1Ý BÝ ?÷ñ õ
 9Ý ;Ý ?ß 6ß IÝ Jö ó
 å;ã ß $Ð $÷÷ ÷ ÷ ó õ$ ,Ý *Ý @ß BÝ 7Ý 1Ý 6Ý :÷÷ ÷ õ ò"€ð �U—X‘X×)Ñ)Ð*¨J¸Ñ,=Ð=Ñ>€ð ×Ñ÷'ð 'ó ð'ð  ×Ñ÷1ð 1ó ð1ò
ðGØ�t‘ðGà—>‘>ðGð �t‘ðGð —>‘>ð	Gð
 
ôGð: 
‡H�H×Ñ×$Ñ$Ø	‡H�H×Ñ×%Ñ%Ø	‡H�H×Ñ×%Ñ%Ø	‡H�H×Ñ×$Ñ$Ø	‡H�H×Ñ×%Ñ%Ø	‡H�H×Ñ×$Ñ$Ø	‡H�H×Ñ×$Ñ$Ø	‡H�H×Ñ×$Ñ$Ø	‡H�H×Ñ×$Ñ$Ø	‡H�H×Ñ×,Ñ,Ø	‡H�H×Ñ×,Ñ,Ø	‡H�H×Ñ×,Ñ,ð,Ð (ð, 
‡H�H×Ñ×ÑØ	‡H�H×Ñ×ÑØ	‡H�H×Ñ×ÑØ	‡H�H×Ñ×ÑØ	‡H�H×Ñ×ÒØ	‡H�H×Ñ×ÒØ	‡H�H×Ñ×ÒØ	‡H�H×Ñ×ÒØ	‡H�H×Ñ×Òð
Ð ð ñP$ó ðP$ðf,-Ø�u—z’z×.Ò.°Ð8Ñ9ð,-à
ˆ4�—
’
×'Ò'¨Ð1Ñ2°CÐ7Ñ8ô,-ô^ðb2Øðb2ð ˜Ÿ
š
×/Ò/°Ð9Ñ:ðb2ð ˜eŸjšj×5Ò5°xÐ?Ñ@ð	b2ð
 ˜D‘jôb2ðJ#Ø�‰×Ñð#Ø3Gð#à
ˆ5�8‰8×ÑÐ!5Ð5Ñ6ô#ð2.Ø�‰×Ñô.ð:x!Ø�H‰H× Ñ ðx!à-ðx!ð 	�‰×Ñðx!ð *ð	x!ð
   Ñ0ôx!ðv4ð ˜Ÿ
š
×/Ò/°Ð9Ñ:ð4ð ˜eŸjšj×5Ò5°xÐ?Ñ@ð	4ð
 ˜D‘jð4ð "&ô4÷n}	
ñ }	
ò@$ð$ ?CñØ�‰×Ñðà;ðð õò0ó,@r[   