+
    –°³jU* ã                   ó
  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIt^ RIHu Ht ^ RIHu Ht ^ R	IHt ^ R
IHt ^ RIH t  ^ RI!H"t" ^ RI#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+ ^ RI,H-t- ^ RI.H/t/H0t0H1t1 ^ RIH2t2H3t3 ^RI4H5t5 ]Pl                  ! ]74      t8. RPOt9 ! R R]4      t:]! RR7       ! R R4      4       t;Rs<]
R 4       t=RQR R llt> ! R R 4      t? ! R! R]?]P€                  P‚                  4      tB ! R" R]?]P€                  P‚                  4      tC ! R# R] Pˆ                  4      tE ! R$ R]?]P€                  P‚                  4      tFRRR% R& lltGR' R( ltHR) R* ltIR+ tJR, tKR- R. ltLR/ R0 ltMR1 R2 ltNR3 R4 ltOR5 R6 ltPR7 R8 ltQR9 R: ltRRRR; R< lltSR= R> ltTR? R@ ltU ! RA RB4      tV] ! RC RD4      4       tWRE RF ltXRSRG RH lltY ! RI RJ4      tZRK RL lt[RM t\RRRN RO llt]R# )Té    N)Údefaultdict)ÚCallable)Úcontextmanager)Údeepcopy)Ú	dataclass)ÚEnum)ÚAnyÚcast)ÚFakeScriptObject)Úis_custom_class_obj)ÚExportedProgram)Úreorder_kwargs)ÚConstantArgumentÚExportGraphSignatureÚ	InputKindÚModuleCallSignatureÚSymBoolArgumentÚSymFloatArgumentÚSymIntArgumentÚTensorArgument)Úis_fx_symbolic_tracing)Ú	_get_attrÚ_get_attr_via_attr_listÚ_print_readable)Ú
GetAttrKeyÚSequenceKey)Ú_remove_effect_tokensÚFlatArgsAdapterÚInterpreterModuleÚInterpreterModuleDispatcherÚUnflattenedModulec                   ó&   € ] tR t^3tRtRtRtRtRtR# )Ú	_AttrKindÚ	parameterÚbufferÚconstantÚmodule© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	PARAMETERÚBUFFERÚCONSTANTÚMODULEÚ__static_attributes__r(   ó    ÚW/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/export/unflatten.pyr#   r#   3   s   † Ø€IØ€FØ€HØ„Fr2   r#   T)Úfrozenc                   ó0   a € ] tR t^:t o RtV 3R ltRtV tR# )Ú	_TensorIDzJCustom tensor identifier containing storage, stride, and size information.c                ó^   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[;R&   S[;R&   S[;R&   # )é   Úuntyped_storageÚstrideÚsizeÚstorage_offset)ÚtorchÚUntypedStorageÚtupleÚint)ÚformatÚ__classdict__s   "€r3   Ú__annotate__Ú_TensorID.__annotate__:   s=   ø‡ ‚ ñ ×)Ñ)Ñ)ñ	 ñ
 �Mñ ñ �Kñ ñ Ñò r2   r(   N)r)   r*   r+   r,   Ú__doc__Ú__annotate_func__r1   Ú__classdictcell__©rB   s   @r3   r6   r6   :   s   ø‡ € áT÷ ƒ r2   r6   c               #   ó:   "  € \         p R s  Rx € V s R#   T s i ; i5i)FN)ÚRUN_WITH_INTERPRETER)Úold_flags    r3   Ú_disable_interpreterrL   G   s&   é € ô $€HØ Ðð(Ûà'Òø˜xÑüs   ‚	Œ �”˜c          
      ó|   € V ^8„  d   QhR\         R\        P                  P                  R\        R\
        R\        /# )r8   Úfrom_objÚ	to_moduleÚtargetÚ	attr_kindÚ
persistent)r	   r=   ÚnnÚModuleÚstrr#   Úbool)rA   s   "r3   rC   rC   T   sI   € ÷ C0ñ C0ÜðC0ä�x‰x�‰ðC0ô ðC0ô ð	C0ô
 ñC0r2   c                 óú  a	€ VP                  R 4      Ev rVV0pV F†  o	\        4       pV Fq  p\        VS	4      '       g*   \        VS	\        P
                  P                  4       4       VP                  V	3R lVP                  P                  4        4       4       Ks  	  TpKˆ  	  V EFÐ  pV\        P                  8X  dU   \        V \        P
                  P                  4      '       g   \        R\        V 4       24      hVP!                  W`4       Km  V\        P"                  8X  dM   \        V \        P$                  4      '       g   \        R\        V 4       24      hVP'                  W`VR7       KÎ  V\        P(                  8X  d‰   \        V \*        4      '       d   \        R4      h\        V \        P$                  \        P,                  34      '       g)   \/        V 4      '       g   \        R\        V 4       24      h\        WV 4       EKk  V\        P0                  8X  g   EKƒ  \        V \        P
                  P                  4      '       g   \        R\        V 4       24      h\        WV 4       EKÓ  	  R# )	Ú.c              3   óT   <"  € T F  w  r\        VS4      '       g   K  Vx € K  	  R # 5i©N)Ú_is_call_name)Ú.0ÚkÚt_callÚitems   &  €r3   Ú	<genexpr>Ú_assign_attr.<locals>.<genexpr>n   s&   øé € ð á!;‘I�AÜ   D×)÷ ’Û!;ùs   ƒ(ž
(z9expected torch.nn.Parameter for PARAMETER attr_kind, got z0expected torch.Tensor for BUFFER attr_kind, got )rR   z2FakeScriptObject should only exist during tracing.zVexpected torch.Tensor, torch.ScriptObject, or opaque type for CONSTANT attr_kind, got z3expected torch.nn.Module for MODULE attr_kind, got N)ÚsplitÚsetÚhasattrÚsetattrr=   rS   rT   ÚupdateÚ_modulesÚitemsr#   r-   Ú
isinstanceÚ	ParameterÚAssertionErrorÚtypeÚregister_parameterr.   ÚTensorÚregister_bufferr/   r   ÚScriptObjectr   r0   )
rN   rO   rP   rQ   rR   ÚprefixÚfieldÚ
to_modulesÚtsr_   s
   &&&&&    @r3   Ú_assign_attrru   T   s  ø€ ð —\‘\ #Ó&�N€Vð �€JÛˆÜ#&£5ˆÛ#ˆIÜ˜9 d×+Ò+Ü˜	 4¬¯©¯©Ó):Ô;ð �I‰Iô à!*×!3Ñ!3×!9Ñ!9Ô!;óö ñ $ð Š
ñ! ô$  ˆ	Øœ	×+Ñ+Ô+Ü˜h¬¯©×(:Ñ(:×;Ò;Ü$ØOÔPTÐU]ÓP^ÐO_Ð`óð ð ×(Ñ(¨Ö9Øœ)×*Ñ*Ô*Ü˜h¬¯©×5Ò5Ü$ØFÄtÈHÃ~ÐFVÐWóð ð ×%Ñ% eÀ*Ð%ÖMØœ)×,Ñ,Ô,Ü˜(Ô$4×5Ò5Ü$ØHóð ô Øä—L‘LÜ×&Ñ&ð÷ò ô *¨(×3Ò3Ü$ØlÔmqÐrzÓm{Ðl|Ð}óð ô �I h×/Øœ)×*Ñ*×*Ü˜h¬¯©¯©×8Ò8Ü$ØIÌ$ÈxË.ÐIYÐZóð ô �I h×/óE  r2   c                   ó>   a € ] tR t^št o V 3R lR ltV 3R ltRtV tR# )Ú_SubmoduleBasec                ó.   <€ V ^8„  d   QhRS[ R,          /# ©r8   ÚreturnN©rU   )rA   rB   s   "€r3   rC   Ú_SubmoduleBase.__annotate__�   s   ø€ ÷ ñ ™3 �:ñ r2   c                ó   € V P                   # )zÓ
Subclass of this class - InterpreterModule, InterpreterModuleDispatcher, represents
corresponding model in eager model. To get this type information for those modules
in eager model we need to use this method.
)Ú_ty©Úselfs   &r3   Ú	type_nameÚ_SubmoduleBase.type_name�   s   € ð �x‰xˆr2   c                ó4   <€ V ^8„  d   Qh/ S[ R,          ;R&   # )r8   Nr~   r{   )rA   rB   s   "€r3   rC   r|   š   s   ø‡ ‚ Ù	ˆt��Oò r2   r(   N)r)   r*   r+   r,   r�   rF   r1   rG   rH   s   @r3   rw   rw   š   s   ø‡ € ÷ð ÷ ƒ r2   rw   c                   óh   a a€ ] tR t^¦t oRtR	V3R lV 3R llltR tR tR
R ltV3R lt	Rt
VtV ;t# )r   z¼A module that uses torch.fx.Interpreter to execute instead of the usual
codegen that GraphModule uses. This provides better stack trace information
and makes it easier to debug execution.
c                ó\   <€ V ^8„  d   QhRS[ P                  P                  RS[R,          /# )r8   ÚgraphÚtyN©r=   ÚfxÚGraphrU   )rA   rB   s   "€r3   rC   ÚInterpreterModule.__annotate__®   s+   ø€ ÷ 	:ñ 	:á�x‰x�~‰~ð	:ñ �$�Jñ	:r2   c                ór   <€ \         SV `  4        Wn        W n        W P                  n        \
        V n        R # rZ   )ÚsuperÚ__init__r†   r~   Úowning_modulerJ   Ú_run_with_interpreter)r€   r†   r‡   Ú	__class__s   &&&€r3   rŽ   ÚInterpreterModule.__init__®   s,   ø€ ô
 	‰ÑÔØŒ
ØŒØ#'�
‰
Ô Ü%9ˆÖ"r2   c                óB  a€ V P                   f   \        R4      h\        4       '       g`   \        P                  P                  4       '       g   V P                  '       g*   \        V P                   4      P                  ! V .VO5/ SB # S'       dÖ   \        V4      pV P                  \        V4      R  pVP                  V3R lV 4       4       \        V4      \        S4      8w  d$   \        R\        V4       R\        S4       24      h\        V4      \        V P                  4      8w  d.   \        R\        V4       R\        V P                  4       24      h\        V4      p\        P                  P                  W P                   R7      P"                  ! VRR	/ # )
Nz&Didn't finalize this InterpreterModulec              3   óH   <"  € T F  pVS9   g   K  SV,          x € K  	  R # 5irZ   r(   )r\   Ú
kwarg_nameÚkwargss   & €r3   r`   Ú,InterpreterModule.forward.<locals>.<genexpr>Ì   s*   øé € ð  á&1˜
Ø! VÑ+ô '�F˜:×&Ò&Û&1ùs   ƒ	"‘"zkwarg_names length z does not match kwargs length zarg_list length z! does not match arg_names length ©r†   Úenable_io_processingF)Úgraph_modulerk   r   r=   ÚcompilerÚis_dynamo_compilingr�   rl   ÚforwardÚlistÚ	arg_namesÚlenÚextendr?   r‰   ÚInterpreterr†   Úrun)r€   Úargsr–   Úarg_listÚkwarg_namess   &*l  r3   r�   ÚInterpreterModule.forward¹   sj  ø€ Ø×ÑÒ$Ü Ð!IÓJÐJÜ%×'Ò'Ü�N‰N×.Ñ.×0Ò0¸×8R×8RÐ8Rô ˜×)Ñ)Ó*×2Ò2°4ÐI¸$ÒIÀ&ÑIÐIçô
   ›:�Ø"Ÿn™n¬S°«]¨_Ð=�Ø—‘ô  á&1ó ô ô �{Ó#¤s¨6£{Ô2Ü(Ø-¬c°+Ó.>Ð-?Ð?]Ô^aÐbhÓ^iÐ]jÐkóð ô �x“=¤C¨¯©Ó$7Ô7Ü(Ø*¬3¨x«=¨/Ð9ZÔ[^Ð_c×_mÑ_mÓ[nÐZoÐpóð ô ˜X“�ä—8‘8×'Ñ'¨·J±JÐ'Ó?×CÒCØðØ,1ñð r2   c                ó^  € \         P                  P                  W P                  4      V P                  R &   V P                  P                  4        . V n        V P                  P                   F;  pVP                  R8X  g   K  V P                  P                  VP                  4       K=  	  R# )rš   ÚplaceholderN)r=   r‰   ÚGraphModuler†   Ú__dict__ÚlintrŸ   ÚnodesÚopÚappendrP   ©r€   Únodes   & r3   ÚfinalizeÚInterpreterModule.finalizeã   sr   € ô ).¯©×(<Ñ(<¸TÇ:Á:Ó(Nˆ�‰�nÑ%Ø�
‰
�‰Ôð ˆŒØ—J‘J×$Ô$ˆDØ�w‰w˜-Ö'Ø—‘×%Ñ% d§k¡kÖ2ó %r2   c                ó"   € \        V R VVVV4      # )r   ©r   ©r€   Úprint_outputÚinclude_strideÚinclude_deviceÚcoloreds   &&&&&r3   Úprint_readableÚ InterpreterModule.print_readableô   ó#   € ô ØØØØØØó
ð 	
r2   c                ó\   <€ V ^8„  d   Qh/ S[ P                  P                  R,          ;R&   # )r8   Nrš   )r=   r‰   rª   )rA   rB   s   "€r3   rC   r‹   ¦   s!   ø‡ ‚ ñ —(‘(×&Ñ&¨Õ-Ñ-ò r2   )r�   r~   rŸ   r†   rZ   ©TFFF)r)   r*   r+   r,   rE   rŽ   r�   r²   r»   rF   r1   rG   Ú__classcell__©r‘   rB   s   @@r3   r   r   ¦   s,   ù‡ € ñ÷	:õ 	:ò(òT3ô"
÷] … r2   c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltR tR tR	R ltRt	Vt
V ;t# )
r    i  zÕ
A module that carries a sequence of InterpreterModules corresponding to
a sequence of calls of that module. Each call to the module dispatches
to the next InterpreterModule, and wraps back around after the last.
c                óF   <€ V ^8„  d   QhRS[ S[,          RS[S[,          /# )r8   ÚattrsÚcall_modules)rc   rU   rž   r   )rA   rB   s   "€r3   rC   Ú(InterpreterModuleDispatcher.__annotate__  s%   ø€ ÷ 	ñ 	™c¡#�hð 	±dÑ;LÕ6Mñ 	r2   c           	     ó  <€ \         SV `  4        V'       g   \        R 4      hV^ ,          P                  V n        V F   p\	        W\        V^ ,          V4      4       K"  	  V^ ,          P                  V n        W n        ^ V n        R# )zcall_modules must not be emptyN)	r�   rŽ   rk   rg   re   Úgetattrr~   Ú_call_modulesÚ
_num_calls)r€   rÄ   rÅ   Úaccessorr‘   s   &&& €r3   rŽ   Ú$InterpreterModuleDispatcher.__init__  sk   ø€ Ü‰ÑÔßÜ Ð!AÓBÐBØ$ Q�×0Ñ0ˆŒÛˆHÜ�D¤G¨L¸­O¸XÓ$FÖGñ à •?×&Ñ&ˆŒØ)ÔØˆŽr2   c                óà   € V P                   V P                  ,          pV P                  ^,           \        V P                   4      ,          V n         V! V/ VB #   \         d
    ^ T n        h i ; i)é   )rÉ   rÊ   r    Ú	Exception)r€   r¤   r–   Úcall_modules   &*, r3   r�   Ú#InterpreterModuleDispatcher.forward  sd   € Ø×(Ñ(¨¯©Õ9ˆØŸ?™?¨QÕ.´#°d×6HÑ6HÓ2IÕIˆŒð	Ù Ð/¨Ñ/Ð/øÜô 	ØˆDŒOØð	ús   ÁA ÁA-c                ó   € V P                   # rZ   )rÉ   r   s   &r3   rÅ   Ú(InterpreterModuleDispatcher.call_modules   s   € Ø×!Ñ!Ð!r2   c           	     óˆ   € V P                    Uu. uF  pVP                  VVVV4      NK  	  ppR P                  V4      # u upi )Ú
)rÉ   r»   Újoin)r€   r·   r¸   r¹   rº   ÚmodÚoutputss   &&&&&  r3   r»   Ú*InterpreterModuleDispatcher.print_readable#  s[   € ð ×)Ò)ó
ñ *�ð ×ÑØØØØö	ñ *ð 	ð 
ð �y‰y˜Ó!Ð!ùò
s   �?)rÉ   rg   rÊ   r~   r¿   )r)   r*   r+   r,   rE   rŽ   r�   rÅ   r»   r1   rG   rÀ   rÁ   s   @@r3   r    r      s(   ù‡ € ñ÷	ó 	òò"÷"ô "r2   c                   ój   a € ] tR tRt o Rt]P                  R	V 3R lR ll4       tV 3R lR ltRt	V t
R# )
r   i6  zF
Adapts input arguments with ``input_spec`` to align ``target_spec``.
Nc                ó¸   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[S[S[3,          R,          RS[R,          RS[S[,          /# )r8   Útarget_specÚ
input_specÚ
input_argsÚmetadataNÚobjrz   )ÚpytreeÚTreeSpecrž   r	   ÚdictrU   )rA   rB   s   "€r3   rC   ÚFlatArgsAdapter.__annotate__<  sh   ø€ ÷ 	ñ 	á—_‘_ð	ñ —O‘Oð	ñ ™•Ið		ñ
 ‘s™C�x•. 4Õ'ð	ñ �4�Zð	ñ 
‰c�ñ	r2   c                ó   € R# )z=NOTE: This adapter may mutate given ``input_args_with_path``.Nr(   )r€   rÜ   rÝ   rÞ   rß   rà   s   &&&&&&r3   ÚadaptÚFlatArgsAdapter.adapt;  s   € ñ 	r2   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r8   rz   )rž   rU   )rA   rB   s   "€r3   rC   rä   G  s   ø€ ÷ ñ ¡D©¥Iñ r2   c                ó   € . # )z>Returns a list of paths that are used to access the flat args.r(   r   s   &r3   Úget_flat_arg_pathsÚ"FlatArgsAdapter.get_flat_arg_pathsG  s   € àˆ	r2   r(   )NN)r)   r*   r+   r,   rE   ÚabcÚabstractmethodræ   rë   r1   rG   rH   s   @r3   r   r   6  s3   ø‡ € ñð 	×Ñ÷	ñ 	ó ð	÷ö r2   c                   óp   a a€ ] tR tRt oRV3R lV 3R llltR tR tR tR tR t	R	 t
RR
 ltRtVtV ;t# )r!   iL  c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r8   Úexport_moduleÚflat_args_adapterN)r   r   )rA   rB   s   "€r3   rC   ÚUnflattenedModule.__annotate__M  s(   ø€ ÷ Kñ Ká&ðKñ +¨TÕ1ñKr2   c           	     ó(  <a,€ \         S-V `  4        VP                  P                  e   \	        R4      hR pVP
                   Uu. uF  qDP                  NK  	  ppV^ ,          R8w  d   \        RV^ ,          : 24      h\        VP                  4      p\        VP                  4      V n        \        P                  P                  4       V n	        W P                  n        \        VP
                  4      V n        W n        VP                  P                   V n        W P                   R&   RV n        \$        V n        \)        W`P                  4       \+        V4       \-        V4      V n        \1        4       V n        \5        W`4      w  rxV P2                  P7                  VP9                  4       4       \;        VP<                  W4       VP>                  V n        . V n         VPB                  p	\E        4       p
/ pV P                  PF                   F“  pWœ,          pV! V4      V9  dB   \        PH                  PK                  VPM                  4       VPN                  R7      W³! V4      &   \Q        W³! V4      ,          V V\R        PT                  R7       V
PW                  V4       K•  	  \E        V P                  PX                  4      p\E        4       p/ pV P                  PZ                   F”  pWÎ9   d   RpVP\                  V,          pM
R	pWœ,          pV! V4      V9  d   VPM                  4       V3VV! V4      &   \Q        VV! V4      ,          ^ ,          V V\R        P^                  VR
7       VPW                  V4       K–  	  V	Pa                  4        Få  w  ppWÊ9   g   WÏ9   d   K  RpV! V4      V9   g+   \c        V\        PH                  PJ                  4      '       g   R	pV'       dO   V! V4      V9  d   VR	3VV! V4      &   \Q        VV! V4      ,          ^ ,          V V\R        P^                  R	R
7       K¥  V! V4      V9  d   VW³! V4      &   \Q        W³! V4      ,          V V\R        PT                  R7       Kç  	  / pVP\                  Pa                  4        Fz  w  ppV! V4      V9  d<   \c        V\        Pd                  4      '       d   VPM                  4       pVVV! V4      &   VV! V4      ,          p\Q        VV V\R        Pf                  R7       K|  	  \i        \j        4      o,\E        4       pV,3R lp\E        4       pV P                  Pl                   EFÄ  pVPn                  \p        PT                  8X  g4   VPn                  \p        P^                  8X  Ed   VPr                  '       Ed   \u        VPv                  R4      '       g"   \        R\y        VPv                  4       24      h\c        VPz                  \|        4      '       g"   \        R\y        VPz                  4       24      hV! V! VPB                  VPz                  ,          4      VPv                  P~                  VPz                  4       VPW                  VPz                  4       VPW                  VPz                  4       EKV  VPn                  \p        P^                  8X  d   VPr                  '       dB   VPn                  \p        P€                  8X  g#   VPn                  \p        P‚                  8X  g   EKÈ  \u        VPv                  R4      '       g/   \        RVPn                   R\y        VPv                  4       24      h\c        VPz                  \|        4      '       g/   \        RVPn                   R\y        VPz                  4       24      hV! V! VP\                  VPz                  ,          4      VPv                  P~                  VPz                  4       VPW                  VPz                  4       EKÇ  	  VP\                  Pa                  4        Ff  w  ppVV9  g   K  V! V4      pVS,9  d   \        RV: R24      hS,V,          ^ ,          w  p p!V! VV V4       VPW                  XPz                  4       Kh  	  VPB                  Pa                  4        F=  w  ppVV9  g   K  V! V4      p"V"S,9  d   K   S,V",          ^ ,          w  p p!V! V"V V4       K?  	  / p#S,P9                  4        F,  p$V$ U%u. uF  p%V%^,          NK  	  p&p%V$ F  w  p'p!V&V#V'&   K  	  K.  	  \…        V V#. 4       \‡        VP9                  4       4      p(V Uu. uF  pVV(9  g   K  VNK  	  ppV P‰                  V(V4       V Uu. uF  pRV9  g   K  VNK  	  ppV P                  PŠ                   U)u. uF  p)V)PŒ                  R8X  g   K  V)NK  	  up)V nG        R	V nH        \“        V4       U*Uu/ uF	  w  p*pVV*bK  	  p+p*pV P•                  RR7       F  w  pp!VV+9  g   K  \—        V+4      V+V&   K  	  \™        V V+4       V P                  P›                  4        V P�                  4        R # u upi u up%i u upi u upi u up)i u upp*i )Nz%Unflattening on JointExportModule NYIc                óæ   € \        V \        P                  4      '       dH   \        V P	                  4       V P                  4       V P                  4       V P                  4       R7      # \        V 4      # )z8Returns _TensorID dataclass for tensors, otherwise id().)r9   r:   r;   r<   )	ri   r=   rn   r6   r9   r:   r;   r<   Úid)rà   s   &r3   Ú_idÚ'UnflattenedModule.__init__.<locals>._idV  sU   € ä˜#œuŸ|™|×,Ò,Ü Ø$'×$7Ñ$7Ó$9ØŸ:™:›<ØŸ™›Ø#&×#5Ñ#5Ó#7ô	ð ô �c“7ˆNr2   Ú z+expected first fqn to be empty string, got Úunflattened_moduleF)Úrequires_grad)rQ   T)rQ   rR   c                 ó>   <€ SV ,          pVP                  W34       R # rZ   )r¯   )Úobj_idÚ	node_nameÚtarget_nameÚ	name_listÚ
consts_maps   &&& €r3   Úadd_to_consts_mapÚ5UnflattenedModule.__init__.<locals>.add_to_consts_mapó  s   ø€ Ø" 6Õ*ˆIØ×Ñ˜iÐ5Ö6r2   Únamez-expected s.arg to have 'name' attribute, got z!expected s.target to be str, got z1expected s.arg to have 'name' attribute for kind z, got z%expected s.target to be str for kind z	constant z id not found in consts_mapÚ@r©   ©Úremove_duplicate)Or�   rŽ   Úgraph_signatureÚbackward_signatureÚ
ValueErrorÚmodule_call_graphÚfqnrk   r   r†   r=   r‰   rŠ   r�   rò   rš   ÚmetaÚadaptedrJ   r�   Ú#_inplace_buffer_and_input_mutationsÚ_fix_nn_module_stacksÚ_root_module_typer~   Ú_IValsÚivalsÚ_outline_submodulesrf   ÚvaluesÚ_copy_graph_attrsÚ_graph_moduleÚrange_constraintsÚequality_constraintsÚ
state_dictrc   Ú
parametersrS   rj   Úclonerû   ru   r#   r-   ÚaddÚnon_persistent_buffersÚbuffersÚ	constantsr.   rh   ri   rn   r/   r   rž   Úinput_specsÚkindr   rR   rd   Úargrl   rP   rU   r  ÚCONSTANT_TENSORÚ
CUSTOM_OBJÚ_sink_paramsÚ_deduplicate_modulesÚ_dispatch_modulesr­   r®   Úinput_placeholdersÚcheck_input_constraintsÚ	enumerateÚnamed_modulesr    Ú_reorder_submodulesr¬   r²   ).r€   rñ   rò   r÷   ÚentryÚfqn_listÚexport_graphÚseen_modulesÚ
seen_attrsr  Úassigned_paramsÚid_to_paramr  Úparamr  Úassigned_buffersÚid_to_bufferrR   r%   ÚtensorÚ	is_bufferÚid_to_constr  r&   Ú	_constantÚconsts_targetsr  Úadded_params_buffersÚsÚ
const_nameÚconstÚconst_idÚph_nameÚ_Ú	tensor_idÚinputs_to_stateÚnode_targetÚtÚtargetsÚnÚredirected_call_indicesr±   ÚiÚ	fqn_orderr  r‘   s.   &&&                                         @€r3   rŽ   ÚUnflattenedModule.__init__M  s	  ù€ ô
 	‰ÑÔØ×(Ñ(×;Ñ;ÒGÜÐDÓEÐEò		ð ,9×+JÒ+JÓKÑ+J %—I”IÑ+JˆÐKØ�A�;˜"ÔÜ Ø=¸hÀq½k¹_ÐMóð ô   × 3Ñ 3Ó4ˆÜ'¨×(EÑ(EÓFˆÔÜ—X‘X—^‘^Ó%ˆŒ
Ø#'�
‰
Ô Ü!)¨-×*IÑ*IÓ!JˆÔØ!2Ôà!×.Ñ.×3Ñ3ˆŒ	Ø*.�	‰	Ð&Ñ'ð ˆŒÜ%9ˆÔ"ä+¨L×:NÑ:NÔOÜ˜lÔ+Ü$ \Ó2ˆŒä“XˆŒ
ä#6°|Ó#JÑ ˆð 	�
‰
×Ñ˜,×-Ñ-Ó/Ô0ô 	˜-×5Ñ5°tÔHà!.×!@Ñ!@ˆÔØ*,ˆÔ!ð #×-Ñ-ˆ
Ü$'£Eˆð ð 	ð ×(Ñ(×3Ô3ˆDØÕ$ˆEÙ�5‹z Ô,Ü*/¯(©(×*<Ñ*<Ø—K‘K“M°×1DÑ1Dð +=ó +�˜C ›JÑ'ô Ø˜C ›JÕ'ØØÜ#×-Ñ-õ	ð ×Ñ Ö%ñ 4ô "% T×%9Ñ%9×%PÑ%PÓ!QÐÜ%(£UÐØOQˆØ×(Ñ(×0Ô0ˆDØÔ-Ø"�
Ø&×0Ñ0°Õ6‘à!�
Ø#Õ)�á�6‹{ ,Ô.Ø-3¯\©\«^¸ZÐ,H�™S ›[Ñ)äØ™S ›[Õ)¨!Õ,ØØÜ#×*Ñ*Ø%õð × Ñ  Ö&ñ% 1ð, '×,Ñ,Ö.‰LˆD�&ØÔ&¨$Ô*BÙàˆIÙ�6‹{˜lÔ*´*ØœŸ™×*Ñ*÷3ò 3ð !�	çá˜“K |Ô3ð Øð1�L¡ V£Ñ-ô Ø ¡ V£Õ-¨aÕ0ØØÜ'×.Ñ.Ø#÷ñ �v“; kÔ1Ø/5�K  F£Ñ,ÜØ  F£Õ,ØØÜ'×1Ñ1÷	ñ9 /ðH TVˆØ*×4Ñ4×:Ñ:Ö<‰MˆC�Ù�8‹} KÔ/Ü˜h¬¯©×5Ò5Ø'Ÿ~™~Ó/�HØ-5�™C ›MÑ*Ø#¡C¨£MÕ2ˆIÜØØØÜ#×,Ñ,÷	ñ =ô DOÌtÓCTˆ
Ü#&£5ˆõ	7ô *-«ÐØ×%Ñ%×1Õ1ˆAØ�v‰vœ×,Ñ,Ô,Ø—‘œ)×*Ñ*Õ*¨q¯|¯|©|ä˜qŸu™u f×-Ò-Ü(ØGÌÈQÏUÉUËÀ}ÐUóð ô " !§(¡(¬C×0Ò0Ü(Ø;¼DÀÇÁ»NÐ;KÐLóð ñ "Ù˜×0Ñ0°·±Õ:Ó;Ø—E‘E—J‘JØ—H‘Hôð
 ×"Ñ" 1§8¡8Ô,Ø$×(Ñ(¨¯©×2à—‘œ)×*Ñ*Ô*ØŸŸ˜Ø—6‘6œY×6Ñ6Ô6Ø—6‘6œY×1Ñ1×1ä˜qŸu™u f×-Ò-Ü(ØKÈAÏFÉFÈ8ÐSYÔZ^Ð_`×_dÑ_dÓZeÐYfÐgóð ô " !§(¡(¬C×0Ò0Ü(Ø?ÀÇÁ¸xÀvÌdÐST×S[ÑS[ËnÐM]Ð^óð ñ "Ù˜×/Ñ/°·±Õ9Ó:Ø—E‘E—J‘JØ—H‘Hôð
 ×"Ñ" 1§8¡8×,ñM 2ðR "/×!8Ñ!8×!>Ñ!>Ö!@ÑˆJ˜Ø Ö/Ù˜u›:�Ø :Ô-Ü(Ø# J¡>Ð1LÐMóð ð (¨Õ1°!Õ4‘
�˜Ù! (¨G°ZÔ@Ø$×(Ñ(¨¯©Ö2ñ "Að )×3Ñ3×9Ñ9Ö;‰KˆC�ØÐ.Ö.Ù ›K�	Ø JÔ.ñ Ø'¨	Õ2°1Õ5‘
�˜Ù! )¨W°cÖ:ñ <ð 13ˆØ%×,Ñ,Ö.ˆKÙ%0Ó1¡[ �q˜—t�t¡[ˆGÐ1Û#‘��1Ø%,� Ó"ó $ñ /ô
 	�T˜?¨BÔ/ä"6°|×7JÑ7JÓ7LÓ"MÐÙ#+ÓR¡8˜C¨sÐ:QÑ/Q—C�C¡8ˆÐRà×ÑÐ6¸ÔGÙ#+Ó>¡8˜C¨s¸#©~—C�C¡8ˆÐ>ð "ŸZ™Z×-Ò-ó#
Ù-�T°·±¸MÑ1I�DˆDÑ-ñ#
ˆÔð (,ˆÔ$ä*3°HÔ*=Ô>Ñ*=¡  3�S˜!’VÑ*=ˆ	Ñ>à×)Ñ)¸5Ð)ÖA‰GˆD�!Ø˜9Ö$Ü"% i£.�	˜$“ñ Bô 	˜D )Ô,Ø�
‰
�‰ÔØ�‰Žùòo Lùòx 2ùò Sùò ?ùò
#
ùó
 ?s6   Ái5äi:å#	i?å1i?æ	jæjæ=j	çj	ç8jc                ó  € V P                  4        Fv  w  r\        VR ,           4       \        VR4      '       g   K+  \        VP                  \
        P                  P                  4      '       g   Ka  \        VP                  4       Kx  	  R# )Ú:r†   N)r,  Úprintrd   ri   r†   r=   r‰   rŠ   )r€   r  r×   s   &  r3   Ú_print_graphÚUnflattenedModule._print_graphZ  sT   € Ø×*Ñ*Ö,‰HˆCÜ�#˜•)ÔÜ�s˜G×$Ô$¬°C·I±I¼u¿x¹x¿~¹~×)NÔ)NÜ�c—i‘iÖ ó -r2   c                ó¢  € V P                   ^ ,          P                  pW$P                  8X  d   V# V P                  f   \	        R4      hV P                  P                  VP                  VVV P                  VR7      p\        V4      VP                  P                  8w  d/   \	        R\        V4       RVP                  P                   24      hV# )r   zeThere is no flat args adapter specified. Are you sure you are calling this with the right arguments? )rÜ   rÝ   rÞ   rß   rà   z<Flat args adaption failed, number of args mismatch Adapted: z 
Exported module: )	r  Ú	signatureÚin_specrò   Ú	TypeErrorræ   r  r    Ú
num_leaves)r€   Ú	flat_argsrU  ÚinputrT  s   &&&& r3   Ú_adapt_flat_argsÚ"UnflattenedModule._adapt_flat_args`  sÚ   € Ø×*Ñ*¨1Õ-×7Ñ7ˆ	Ø×'Ñ'Ô'ØÐà×!Ñ!Ò)ÜðOóð ð
 ×.Ñ.×4Ñ4Ø%×-Ñ-Ø"Ø$ØŸ™Øð 5ó ˆIô �9‹~ ×!2Ñ!2×!=Ñ!=Ô=Üð Ü # I£Ð/ð 0(Ø(1×(9Ñ(9×(DÑ(DÐ'EðGóð ð
 Ðr2   c           	     óÞ  € V P                   ^ ,          P                  pTpV'       d   \        W#P                  4      p\        P
                  ! W34      w  rVV Uu. uF  qw^,          NK  	  pp\        4       '       d   V# WcP                  8w  dT   V P                  '       g)   \        RV R2RVP                   24       \        R4       V P                  W†V4      pRV n        V P                  '       dï   ^ RIHp	 V P                  RJ dº   V P                  '       d   V P                  P                  4       M. p
V
'       d=   \        V
4      \        V4      8w  d$   \!        R\        V
4       R\        V4       24      h\#        V4       UUu. uF/  w  r¼\%        VR	7      \'        V
'       d	   W«,          MR
R7      3V3NK1  	  pppMTpV	! V P(                  WÐP*                  4       V# u upi u uppi )r   zGInput treespec does not match with exported module's: 
Input treespec: z. zExported module treespec: z5Adapting flat arg to match exported module's treespecT)Ú"_check_input_constraints_for_graphzflat_arg_paths length z! does not match flat_args length )Úidxz<unknown location>)r  )r  rT  r   rU  rá   Útree_flatten_with_pathr   r  rP  rZ  r*  Útorch._export.utilsr]  rò   rë   r    rk   r+  r   r   r)  r  )r€   r¤   r–   rT  Úreordered_kwargsÚflat_args_with_pathrU  ÚxrX  r]  Úflat_arg_pathsr^  r#  Únew_flat_args_with_paths   &*,           r3   Úprocess_forward_inputsÚ(UnflattenedModule.process_forward_inputs{  sò  € Ø×*Ñ*¨1Õ-×7Ñ7ˆ	à!ÐßÜ-¨f×6GÑ6GÓHÐä'-×'DÒ'DØÐ$ó(
Ñ$Ðñ $7Ó7Ñ#6˜a�q—T�TÑ#6ˆ	Ð7ä!×#Ò#ØÐà×'Ñ'Ô'Ø—<—<�<Üð'Ø'. i¨rð3à0°×1BÑ1BÐ0CÐDôô
 ÐMÔNØ×-Ñ-¨iÀ$ÓGˆIØˆDŒLà×'×'Ð'õ Oà�|‰|˜tÓ#ð ×-×-Ð-ð ×*Ñ*×=Ñ=Ô?àð ÷
 "¤c¨.Ó&9¼SÀ»^Ô&KÜ(Ø0´°^Ó1DÐ0EÐEfÔgjÐktÓguÐfvÐwóð ô %.¨iÔ$8ô+ñ %9™˜ô (¨CÔ0Ü&ç#1ð &4Ö%8à%9ôðð ó
ñ %9ð (ñ +Ð'ð +>Ð'á.Ø×'Ñ'Ð)@×BXÑBXôð Ðùòi 8ùó>+s   ÁG$Æ
5G)c                óÆ  € V P                   ! V/ VB pV P                  ^ ,          P                  p\        4       '       dl   \        P
                  P                  W P                  R7      P                  ! VRR/ p\        V\        4      '       d   \        V4      ^8X  d
   V^ ,          # V# \        P                  P                  4       '       g   V P                  '       g)   \        V P                   4      P"                  ! V .VO5!  pM:\        P
                  P                  W P                  R7      P                  ! VRR/ p\$        P&                  ! WdP(                  4      # )r   r˜   r™   F)rf  r  rT  r   r=   r‰   r¢   r†   r£   ri   r?   r    r›   rœ   r�   rl   rš   r�   rá   Útree_unflattenÚout_spec)r€   r¤   r–   rX  rT  Ú
return_valÚtree_outs   &*,    r3   r�   ÚUnflattenedModule.forward»  s  € Ø×/Ò/°Ð@¸Ñ@ˆ	Ø×*Ñ*¨1Õ-×7Ñ7ˆ	ä!×#Ò#ÜŸ™×-Ñ-¨d¿*¹*Ð-ÓE×IÒIØðØ16ñˆJô ˜*¤e×,Ò,´°Z³ÀAÔ1EØ! !•}Ð$ØÐä�>‰>×-Ñ-×/Ò/°t×7Q×7QÐ7QÜ˜D×-Ñ-Ó.×6Ò6°tÐH¸iÓH‰Hä—x‘x×+Ñ+¨D¿
¹
Ð+ÓC×GÒGØðØ16ñˆHô ×$Ò$ X×/AÑ/AÓBÐBr2   c                ó¦   € \         P                  P                  W P                  4      V P                  R &   V P                  P                  4        R# )rš   N)r=   r‰   rª   r†   r«   r¬   r   s   &r3   r²   ÚUnflattenedModule.finalizeÐ  s1   € Ü(-¯©×(<Ñ(<¸TÇ:Á:Ó(Nˆ�‰�nÑ%Ø�
‰
�‰Ör2   c                óD  a€ \        \        4      oV P                   F’  pVP                  '       g   K  VP                  '       g   K+  VP                  p\        WP                  WD4      4      pRV9   d   VP                  R4      MVR.w  rgSV,          P                  \        V4      V34       K”  	  \        \        4      pV FO  p	RV	9   d.   V	P                  R^4      w  r«WŠ,          P                  V4       K7  VR,          P                  V	4       KQ  	  SP                  4        FÅ  w  r¬\        V4       UUu. uF  w  rÕVNK	  	  ppp\        V4      ^8”  g   K5  \!        \        V4      4       FV  p\#        W¯^,           4      pWA9  g   K  VP                  R4      Ev pp\%        V V4      P&                  P)                  V4       KX  	  V P+                  V
\-        WŠ,          V4      4       KÇ  	  V3R lpV P/                  RR7       FŽ  w  rE\1        VR4      '       d   V! WEP2                  4       K+  \1        VR	4      '       g   K?  VP4                   F?  p\1        VR4      '       g   \7        R
\9        V4       24      hV! VVP2                  4       KA  	  K�  	  R# u uppi )z¼For a module whose call signatures are preserved, replace
multiple modules corresponding to multiple calls to that module
with a single dispatcher module that tracks which module to call.
r  Ú0rX   rù   c                 óØ   <€ VP                    FX  pVP                  R 8X  g   K  VP                  P                  R4      ^ ,          pV '       d   V  RV 2MTpVS9   g   KR  W2n        KZ  	  R# )rÐ   r  rX   N)r­   r®   rP   rb   )rq   r†   r±   r  ÚpathÚcalled_moduless   &&   €r3   Úelide_call_indicesÚ?UnflattenedModule._dispatch_modules.<locals>.elide_call_indicesþ  sW   ø€ ØŸœ�Ø—7‘7˜mÖ+ØŸ+™+×+Ñ+¨CÓ0°Õ3�Cß06˜f˜X Q s eÑ,¸C�DØ˜~Ö-Ø&)žó $r2   Fr  r†   rÉ   z-expected mod_ to have 'graph' attribute, got N)r   rž   r  r  rT  r   Úgetrb   r¯   r@   rc   Úrsplitr  rh   Úsortedr    ÚrangeÚ
_call_namer   rg   ÚpopÚset_submoduler    r,  rd   r†   rÉ   rk   rl   )r€   rJ  r<  r.  r  r×   Úbaser^  Ú	attrs_maprP   Úorig_fqnr  Úindexed_call_modulesrC  rÅ   rK  rq   ru  Úmod_rt  s   &&&                @r3   r(  Ú#UnflattenedModule._dispatch_modulesÔ  s'  ø€ ô %¤TÓ*ˆØ×+Ô+ˆEØ�y�yŠy˜UŸ_Ÿ_š_ð —i‘i�Ü ×&AÑ&AÀ#Ó&KÓL�Ø.1°S¬j˜CŸI™I cœN¸sÀC¸j‘	�Ø˜tÕ$×+Ñ+¬S°«X°s¨OÖ<ñ ,ô  ¤Ó$ˆ	Û$ˆFØ�fŒ}Ø!'§¡¨s°AÓ!6‘�ØÕ#×'Ñ'¨Ö-à˜"•×!Ñ! &Ö)ñ %ð /=×.BÑ.BÖ.DÑ*ˆHÜ.4Ð5IÔ.JÔKÑ.J¡F A›CÑ.JˆLÑKÜ�<Ó  1Ö$Üœs <Ó0Ö1�AÜ$ X°1­uÓ5�CØÖ9Ø(+¯	©	°#«™˜ Ü/°°fÓ=×FÑF×JÑJÈ4ÖPñ	 2ð
 ×"Ñ"ØÜ/°	Õ0CÀ\ÓRöñ /Eõ	*ð ×*Ñ*¸EÐ*ÖB‰HˆCÜ�s˜G×$Ò$Ù" 3¯	©	Ö2Ü˜˜o×.Ô.Ø×-Ô-�DÜ" 4¨×1Ò1Ü,ØKÌDÐQUËJÈ<ÐXóð ñ ' s¨D¯J©JÖ7ó .ó	 Cùó- Ls   Ä:Jc                ó"   € \        V R VVVV4      # )r!   rµ   r¶   s   &&&&&r3   r»   Ú UnflattenedModule.print_readable  r½   r2   )r�   r~   r  r*  r  rò   r†   r  r)  r  r  r  r  rZ   r¿   )r)   r*   r+   r,   rŽ   rQ  rZ  rf  r�   r²   r(  r»   r1   rG   rÀ   rÁ   s   @@r3   r!   r!   L  s=   ù‡ € ÷Kõ KòZ!òò6>ò@Cò*ò;8÷z
ô 
r2   c                óJ   € V ^8„  d   QhR\         R\        R,          R\        /# )r8   r'   rò   Nrz   )r   r   r!   )rA   s   "r3   rC   rC   "  s)   € ÷ !ñ !Üð!Ü0?À$Õ0Fð!äñ!r2   c                ó”   € \        V 4      p \        W4      p\        P                  P	                  VP
                  RRR7      Vn        V# )aÁ  Unflatten an ExportedProgram, producing a module with the same module
hierarchy as the original eager module. This can be useful if you are trying
to use :mod:`torch.export` with another system that expects a module
hierarchy instead of the flat graph that :mod:`torch.export` usually produces.

.. note:: The args/kwargs of unflattened modules will not necessarily match
    the eager module, so doing a module swap (e.g. :code:`self.submod =
    new_mod`) will not necessarily work. If you need to swap a module out, you
    need to set the :code:`preserve_module_call_signature` parameter of
    :func:`torch.export.export`.

Args:
    module (ExportedProgram): The ExportedProgram to unflatten.
    flat_args_adapter (Optional[FlatArgsAdapter]): Adapt flat args if input TreeSpec does not match with exported module's.

Returns:
    An instance of :class:`UnflattenedModule`, which has the same module
    hierarchy as the original eager module pre-export.
z*do not trace into preprocessing the inputsT)ÚreasonÚ	recursive)r   r!   r=   Ú_dynamoÚdisablerf  )r'   rò   Úms   && r3   Ú	unflattenr�  "  sL   € ô, # 6Ó*€FÜ˜&Ó4€Aô  %Ÿ}™}×4Ñ4Ø	× Ñ Ø;Øð  5ó  €AÔð €Hr2   c                ó\   € V ^8„  d   QhR\         P                  P                  R\        RR/# )r8   r†   r  rz   N)r=   r‰   rŠ   r   )rA   s   "r3   rC   rC   F  s3   € ÷ H)ñ H)Ü�8‰8�>‰>ðH)ä)ðH)ð 
ñH)r2   c           	     óÆ  a€ \        \        \        V P                  4      4      4      pVP                  R8w  g   \        VP                  4      ^8w  d1   \        RVP                  : R\        VP                  4       R24      hVP                  ^ ,          pV P                   Uu/ uF"  qDP                  R8X  g   K  VP                  VbK$  	  pp/ pVP                  P                  4        UUu/ uF  w  rxW‡bK	  	  p	ppVP                  P                  4        UUu/ uF  w  rxWyV,          bK  	  pppVP                  VP                  4       \        V4      p
VRV
  FÇ  pWkP                  ,          pW\,          pV P                  V4      ;_uu_ 4        V P                  R\         P"                  P$                  P&                  P(                  WÛ34      oVP*                  P                  4        F  w  r~VSP*                  V&   K  	  RRR4       VP-                  SV3R l4       KÉ  	  \/        W:R 4      pV3Vn        R# u upi u uppi u uppi   + '       g   i     LR; i)	a  Transform buffer and input mutations from their functionalized form
into copy_ nodes in the graph.

Functionalization represents a buffer mutation by passing the buffer as
an input and output. For example, consider the eager code:
    def forward(self, x):
        self.buffer += x
        return x * x

This corresponds to a graph that looks like:
    def forward(self, buffer, x):
        mutated_buffer = aten.add(buffer, x)
        mul = aten.mul(x, x)
        return (mutated_buffer, mul)

We want to inplace this into something that looks like the original
eager code:
    def forward(self, buffer, x):
        mutated_buffer = aten.add(buffer, x)
        buffer.copy_(mutated_buffer)
        mul = aten.mul(x, x)
        return (mul,)

Input mutations are handled similarly.
Úoutputz8expected output node with op='output' and 1 arg, got op=z with z argsr©   NÚcall_functionc                 ó   <€ V SJ# rZ   r(   )rc  Únew_nodes   &€r3   Ú<lambda>Ú5_inplace_buffer_and_input_mutations.<locals>.<lambda>‰  s
   ø€ ¸1ÀHÑ;Lr2   )ÚnextÚiterÚreversedr­   r®   r    r¤   rk   r  Úinputs_to_buffersrh   Úbuffers_to_mutaterf   Úuser_inputs_to_mutateÚinserting_afterÚcreate_noder=   ÚopsÚatenÚcopy_Údefaultr  Úreplace_all_uses_withr?   )r†   r  Úoutput_nodeÚreturn_argsr±   Úinput_name_to_nodeÚmutation_name_to_input_namer]   Ú
buffer_fqnÚbuffer_fqn_to_input_nameÚnum_mutationsÚmutationÚ
input_nameÚ
input_nodeÚvÚuser_outputsr“  s   &&              @r3   r  r  F  s&  ø€ ô: ”tœH U§[¡[Ó1Ó2Ó3€KØ‡~�~˜Ô!¤S¨×)9Ñ)9Ó%:¸aÔ%?ÜØFÀ{Ç~Á~ÑFXÐX^Ô_bÐcn×csÑcsÓ_tÐ^uÐuzÐ{ó
ð 	
ð ×"Ñ" 1Õ%€Kð %*§K¢KóÙ$/˜D·7±7¸mÑ3KŒˆ�	‰	�4Š¡Kð ð ð #%Ðð ,;×+LÑ+L×+RÑ+RÔ+Tô Ù+T™-˜!ˆ
ŠÑ+Tð ñ  ð
 -×>Ñ>×DÑDÔFô#áF‰MˆAð 	
 JÕ/Ò/ÙFð  ñ #ð
  ×&Ñ& ×'LÑ'LÔMäÐ3Ó4€Mà  Ó/ˆØ0·±Õ?ˆ
Ø'Õ3ˆ
à×"Ñ" 8×,Õ,à×(Ñ(Ø¤§¡§¡×!5Ñ!5×!=Ñ!=À
Ð?UóˆHð !Ÿ™×+Ñ+Ö-‘�Ø#$�—‘˜aÓ ñ .÷ -ð 	×&Ñ& xÔ1LÖMñ 0ô" ˜ ^Ð4Ó5€LØ%Ð(€KÖùòIùó ùó#÷ -×,ús%   Â%H?Â<H?Ã.IÄI
ÆA3IÉI c                óf   € V ^8„  d   QhR\         P                  P                  R\        R,          /# )r8   r†   rz   Nrˆ   )rA   s   "r3   rC   rC   ‘  s&   € ÷ ñ œUŸX™XŸ^™^ð ´°dµ
ñ r2   c                 óÂ   € V P                    FN  pR VP                  9  d   K  VP                  R ,          P                  4        F  w  r#V'       d   K  Vu u # 	  KP  	  R# )Únn_module_stackN)r­   r  r  )r†   r±   rs  r‡   s   &   r3   r  r  ‘  sM   € Ø—”ˆØ D§I¡IÔ-ÙàŸ	™	Ð"3Õ4×;Ñ;Ö=‰HˆDß‘4Ø”	ó >ñ	 ñ r2   c           	      ó<  € V P                    EF  pR VP                  9  d   K  VP                  R ,          pVP                  4        UUu. uF&  w  r4RV9   d   VP                  R4      ^ ,          MTNK(  	  pppVvrg^pV F!  p	\	        Wi4      '       d   V^,          pT	pK!   M	  V\        V4      8  g   Kª  \        P                  RVV\        V4      V,
          4       \        \        VP                  4       4      RV 4      VP                  R &   EK  	  R# u uppi )r±  r  zPnn_module_stack fqns %s at node %s do not form a stack! dropping last %d entriesN)r­   r  r  rb   Ú
_is_prefixr    ÚlogÚwarningrã   rž   rh   )
r†   r±   r±  r  Ú_tÚfqnsÚprev_fqnÚ	next_fqnsÚnum_valid_indicesÚcurr_fqns
   &         r3   r  r  œ  s  € ð —•ˆØ D§I¡IÔ-ÙàŸ)™)Ð$5Õ6ˆð +×1Ñ1Ô3ô
á3‘�ð "%¨¤ˆC�I‰I�c‹N˜1Ö°Ò4Ù3ð 	ñ 
ð  $ÐˆØÐÛ!ˆHä˜(×-Ò-Ø! QÕ&Ð!Ø#’ñ ñ "ð œs ?Ó3Ö3Ü�K‰KØbØØÜ�OÓ$Ð'8Õ8ô	ô ,0Ü�_×*Ñ*Ó,Ó-Ð.@Ð/@ÐAó,ˆD�I‰IÐ'Ô(ó= ùó

s   Á
,Dc                ób   € \        V 4      \        V4      8  ;'       d    VR\        V 4       V 8H  # )z2Check whether `candidate` is a prefix of `target`.N)r    )Ú	candidaterP   s   &&r3   r³  r³  Ã  s.   € äˆy‹>œC ›KÑ'×QÐQ¨FÐ3C´S¸³^Ð,DÈ	Ñ,QÐQr2   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r8   Ú
parent_fqnÚ	child_fqnrz   r{   )rA   s   "r3   rC   rC   È  s!   € ÷ 6ñ 6¤#ð 6´#ð 6¼#ñ 6r2   c                 óÜ   € V R 8X  d   V# V P                  R4      pVP                  R4      pVR\        V4       V8w  d   \        RV RV  R24      hRP                  V\        V4      R 4      # )rù   rX   NzChild module 'z(' is not a descendant of parent module 'za'.This is currently unsupported.Please try to make child module attach to parent module directly.)rb   r    ÚRuntimeErrorrÖ   )r¿  rÀ  Úparent_splitÚchild_splits   &&  r3   Ú_compute_accessorrÅ  È  sŒ   € Ø�RÔàÐà×#Ñ# CÓ(€LØ—/‘/ #Ó&€Kð Ð&”S˜Ó&Ð'¨<Ô7ÜØ˜Y˜KÐ'OÐPZÈ|ð \Pð Pó
ð 	
ð
 �8‰8�K¤ LÓ 1Ð 3Ð4Ó5Ð5r2   c                ó€   € V ^8„  d   QhR\         P                  P                  R\         P                  P                  /# )r8   rc  Úy)r=   rS   rT   )rA   s   "r3   rC   rC   Ú  s*   € ÷ 6ñ 6¤§¡§¡ð 6´E·H±H·O±Oñ 6r2   c                 ó¬  € R  R lp\        V P                  \        P                  P                  4      '       g"   \        R\        V P                  4       24      h\        VP                  \        P                  P                  4      '       g"   \        R\        VP                  4       24      hV! V P                  4      V! VP                  4      8H  # )c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# )r8   r†   rz   rˆ   )rA   s   "r3   rC   Ú._check_graph_equivalence.<locals>.__annotate__Û  s"   € ÷ ñ œ%Ÿ(™(Ÿ.™.ð ¬Sñ r2   c                 ód  a
€ . p/ o
R  V
3R llp\        V P                  4       Fî  w  r4\        P                  ! W$P                  4       Uu. uF  p\        V4      NK  	  ppT\        P                  ! W$P                  4      P                  4        UUu. uF  w  rxV RV 2NK  	  upp,          pVP                  R
9   d   VP                  MRp	VP                  V RVP                   RV	 RRP                  V4       R24       VS
\        V4      &   Kð  	  R	P                  V4      # u upi u uppi )c                ó$   € V ^8„  d   QhR\         /# ré   r{   )rA   s   "r3   rC   ÚB_check_graph_equivalence.<locals>.graph_dump.<locals>.__annotate__ß  s   € ÷ 	ñ 	œSñ 	r2   c                 ó²   <€ \        V \        P                  P                  4      '       d#   R \	        S\        V 4      ,          4      ,           # \	        V 4      # )Ú%)ri   r=   r‰   ÚNoderU   rö   )r#  Ú	nodes_idxs   &€r3   Úarg_dumpÚ>_check_graph_equivalence.<locals>.graph_dump.<locals>.arg_dumpß  s:   ø€ Ü˜#œuŸx™xŸ}™}×-Ò-ØœS ¬2¨c«7Õ!3Ó4Õ4Ð4Ü�s“8ˆOr2   Ú=rù   z: Ú[z](z, Ú)rÕ   )r‘  Úget_attr)r+  r­   rá   Útree_mapr¤   rU   r–   rh   r®   rP   r¯   rÖ   rö   )r†   ÚretrÒ  rK  r±   r#  Ú	args_dumpÚkeyÚvaluerP   rÑ  s   &         @r3   Ú
graph_dumpÚ,_check_graph_equivalence.<locals>.graph_dumpÛ  s  ø€ ØˆØ$&ˆ	÷	ð 	ô
 ! §¡Ö-‰GˆAÜ-3¯_ª_¸XÇyÁyÔ-QÓRÑ-Q cœ˜SžÑ-QˆIÐRØä"(§/¢/°(¿K¹KÓ"H×"NÑ"NÔ"Pôá"P‘J�Cð �%�q˜˜Ó Ù"Pòõ ˆIð %)§G¡GÐ/LÔ$L�T—[’[ÐRTˆFà�J‰J˜!˜˜B˜tŸw™w˜i q¨¨°°4·9±9¸YÓ3GÐ2HÈÐJÔKØ"#ˆI”b˜“hÓñ .ð �y‰y˜‹~Ðùò Sùós   ÁD'ÂD,
z+expected x.graph to be torch.fx.Graph, got z+expected y.graph to be torch.fx.Graph, got )ri   r†   r=   r‰   rŠ   rk   rl   )rc  rÇ  rÝ  s   && r3   Ú_check_graph_equivalencerß  Ú  sš   € õô* �a—g‘gœuŸx™xŸ~™~×.Ò.ÜØ9¼$¸q¿w¹w»-¸ÐIó
ð 	
ô �a—g‘gœuŸx™xŸ~™~×.Ò.ÜØ9¼$¸q¿w¹w»-¸ÐIó
ð 	
ñ �a—g‘gÓ¡*¨Q¯W©WÓ"5Ñ5Ð5r2   c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# ©r8   Úgmrz   ©r=   rS   rT   rU   )rA   s   "r3   rC   rC   û  s"   € ÷ ñ ”%—(‘(—/‘/ð ¬Cñ r2   c                 ól   € ^ p\        V RV 24      '       d   V^,          pK   RV 2p\        WV4       V# )r   Ú_spec_)rd   re   )râ  ÚspecrK  r  s   &&  r3   Ú	_add_specrç  û  s=   € Ø	€AÜ
�"˜˜q˜c�l×
#Ò
#Ø	ˆQ�ŠØ�A�3ˆ<€DÜˆB�dÔØ€Kr2   c                ó€   € V ^8„  d   QhR\         P                  P                  R\         P                  P                  /# rá  )r=   r‰   rª   rÐ  )rA   s   "r3   rC   rC     s,   € ÷ ñ œ%Ÿ(™(×.Ñ.ð ¼¿¹¿¹ñ r2   c                 ó´   € V P                   P                  \        P                  V34      pV P                   P                  \        P
                  V^ 34      pV# )r   )r†   r‘  rá   Útree_flattenÚoperatorÚgetitem)râ  r±   ÚflattenÚ	getitem_0s   &&  r3   Ú_generate_flattenrï    sF   € Ø�h‰h×$Ñ$¤V×%8Ñ%8¸4¸'ÓB€GØ—‘×&Ñ&¤x×'7Ñ'7¸'À1¸ÓF€IØÐr2   c                ó¬   € V ^8„  d   QhR\         P                  P                  \        ,          \        ,          R\         P                  P
                  /# rá  ©r=   r‰   rª   r   r!   rÐ  )rA   s   "r3   rC   rC   
  s>   € ÷ Rñ RÜ�‰×ÑÔ0Õ0Ô3DÕDðRä
‡X�X‡]�]ñRr2   c                 ó¤   € \        W4      pV P                  P                  V4      pV P                  P                  \        P
                  W34      # rZ   )rç  r†   r×  r‘  Ú	fx_pytreeÚtree_flatten_spec)râ  r±   ræ  r  Ú	spec_nodes   &&&  r3   Ú_generate_flatten_specrö  
  sB   € ô �RÓ€DØ—‘×!Ñ! $Ó'€IØ�8‰8×!Ñ!¤)×"=Ñ"=ÀÐ?PÓQÐQr2   c                ó¬   € V ^8„  d   QhR\         P                  P                  \        ,          \        ,          R\         P                  P
                  /# rá  rñ  )rA   s   "r3   rC   rC     s>   € ÷ Mñ MÜ�‰×ÑÔ0Õ0Ô3DÕDðMä
‡X�X‡]�]ñMr2   c                 ó¤   € \        W4      pV P                  P                  V4      pV P                  P                  \        P
                  W34      # rZ   )rç  r†   r×  r‘  rá   ri  )râ  r­   ræ  r  rõ  s   &&&  r3   Ú_generate_unflattenrù    sB   € ô �RÓ€DØ—‘×!Ñ! $Ó'€IØ�8‰8×!Ñ!¤&×"7Ñ"7¸%Ð9KÓLÐLr2   c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# )r8   r×   rP   rã  )rA   s   "r3   rC   rC     s"   € ÷ %ñ %œŸ™Ÿ™ð %´ñ %r2   c                 óÖ   € VP                  R 4      Ev r#V FE  p\        WR4      pVf    R# \        V\        P                  P
                  4      '       g    R# Tp KG  	  \        WR4      # )rX   N)rb   rÈ   ri   r=   rS   rT   )r×   rP   rq   rr   r_   Úsubmods   &&    r3   Ú_get_submodulerý    s\   € Ø—\‘\ #Ó&�N€VãˆÜ˜ DÓ)ˆàŠ>Úä˜&¤%§(¡(§/¡/×2Ò2ÚàŠñ ô �3˜tÓ$Ð$r2   c          
      óò   € V ^8„  d   QhR\         P                  P                  R\        R\         P                  P                  R\        \        .\         P                  P                  3,          R,          /# )r8   r×   rP   Úmodule_to_addÚcreate_moduleN)r=   rS   rT   rU   r   )rA   s   "r3   rC   rC   +  sY   € ÷ )ñ )Ü	�‰�‰ð)äð)ô —8‘8—?‘?ð)ô œS˜E¤5§8¡8§?¡?Ð2Õ3°dÕ:ñ	)r2   c           	      ó”  € VP                  R 4      Ev rE\        V4       F”  w  rg\        WR4      pVfQ   Ve#   V! R P                  VRV^,            4      4      pM\        P
                  P                  4       p\        WV4       \        V\        P
                  P                  4      '       g    R# Tp K–  	  V P                  WR4       R# )rX   NF)
rb   r+  rÈ   rÖ   r=   rS   rT   re   ri   Ú
add_module)	r×   rP   rÿ  r   rq   rr   rK  r_   rü  s	   &&&&     r3   Ú_add_submoduler  +  sž   € ð —\‘\ #Ó&�N€Vä˜VÖ$‰ˆÜ˜ DÓ)ˆàŠ>ØÒ(Ù& s§x¡x°°w¸¸Q½°Ó'@ÓA‘äŸ™Ÿ™Ó*�Ü�C˜vÔ&ä˜&¤%§(¡(§/¡/×2Ò2ÚàŠñ %ð ‡N�N�5Ö(r2   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r8   r~  rI  rz   )rU   r@   )rA   s   "r3   rC   rC   E  s!   € ÷ 1ñ 1”Sð 1œSð 1¤Sñ 1r2   c                 ó0   € V^8X  d   V # V  RV^,
           2# )rÎ   r  r(   )r~  rI  s   &&r3   r{  r{  E  s$   € ð ˜”6ˆ4Ð0 $  q¨¨Q­¨Ð0Ð0r2   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )r8   Ú	call_namer~  rz   )rU   rV   )rA   s   "r3   rC   rC   K  s&   € ÷ Jñ JœSð J¬ð J´ñ Jr2   c                 ój   € \         P                  ! \         P                  ! V4      R ,           V 4      RJ# )z(@\d+)?$N)ÚreÚmatchÚescape)r  r~  s   &&r3   r[   r[   K  s%   € ä�8Š8”B—I’I˜d“O kÕ1°9Ó=ÀTÐIÐIr2   c                   óx   a € ] tR tRt o RV 3R lR lltR tR tR tV 3R lR	 ltR
 t	R t
R tR tR tRtV tR# )Ú_ModuleFrameiP  Nc                ó0  <€ V ^8„  d   QhRS[ P                  P                  RS[S[ P                  P                  R3,          RS[S[S[S[R,          S[3,          ,          RS[S[S[	3,          RS[ P                  P                  S[,          R,          /# )r8   Ú
flat_graphr­   .Úmodule_stackNr  r'   )r=   r‰   rŠ   r?   rÐ  rž   rU   r@   rã   r   rª   r!   )rA   rB   s   "€r3   rC   Ú_ModuleFrame.__annotate__Q  s“   ø€ ÷ t9ñ t9á—H‘H—N‘Nðt9ñ ‘U—X‘X—]‘] CÐ'Õ(ðt9ñ ™5¡¡c¨D¥j±#Ð!5Õ6Õ7ðt9ñ  ¡Ñ%8Ð 8Õ9ðt9ñ —‘×$Ñ$Ñ'8Õ8¸4Õ?ñt9r2   c                óZ  a aa!€ VS n         VS n        VS n        VS n        VS n        VS n        SS n        VS n        V	S n        V
S n	        R S n
        S P                  R,          w  S n        o!p\        S P                  V^,           4      S n        S  Ve.   VS n        \        VR4      '       d   VP                   M/ S n        McS P
                  P#                  S P                  \%        \&        P(                  P+                  4       S!R7      4      S n        SP                   S n        S P                  P,                  S n        / S n        / S n        RS n        SEe_   \5        SP                  S P                  4      pVV V!3R lp\7        SP                  VS P                  V4       SP,                  P9                  V4      S n        S P                  S P                  ,          '       dJ   S P                  S P                  ,          ^ ,          pVP                  P:                  S P                  n        S P                  S P                  ,          P=                  \?        S P                  P                  S P                  P                  S P2                  S P                  V^,           S P                  R7      4       V
P#                  S P                  4      pVEež   S P                  Ee�   VP@                  PB                  ^8w  d#   \E        RVP@                  PB                   24      hVP@                  PF                  \H        Jd#   \E        RVP@                  PF                   24      hVP@                  PK                  4       w  ppVPF                  \H        Jd   \E        RVPF                   24      hVPF                  \L        Jd   \E        R	VPF                   24      hS P,                  PO                  R4      ;_uu_ 4        \Q        VPB                  4       Uu. uF!  pS P,                  PS                  R
V 24      NK#  	  pp/ pVPT                   F!  pS P,                  PS                  V4      VV&   K#  	  \W        S P                  \I        V4      V3VP@                  4      p\Y        VPZ                  4       Fù  w  ppS P,                  P]                  R\^        P`                  VV3\c        V\d        4      '       g   VPf                  MRV 2R7      p\c        V\d        4      '       d   Kr  VPf                  S P                  9   g   K�  \h        Ph                  ! S P                  VPf                  ,          Pj                  4      Vn5        VS P0                  S P                  VPf                  ,          &   Kû  	  RRR4       S P                  P,                  Pm                  S P2                  4      ;_uu_ 4        . pVPZ                   Fæ  p\c        V\d        4      '       d   VP=                  VPn                  4       K6  VPf                  S P                  9  d   VP=                  R4       Kd  \c        V\p        \r        \t        \v        34      '       g   \E        R\G        V4       24      hVP=                  S P                  Py                  S P                  VPf                  ,          4      4       Kè  	  \{        S P                  P                  VVP@                  4      pS P                  P,                  P}                  \^        P`                  V^ 34      pS P                  P,                  P}                  \^        P`                  V^34      p\Q        VPB                  4       Uu. uF9  pS P                  P,                  P}                  \^        P`                  VV34      NK;  	  ppVPT                   U u/ uF:  p V S P                  P,                  P}                  \^        P`                  VV 34      bK<  	  pp RRR4       S P2                  f   \E        R4      h\I        X4      S P2                  n?        XS P2                  n@        R# R# R# u upi   + '       g   i     EL×; iu upi u up i   + '       g   i     L}; i)FNr  ©r‡   c                 ó
  <€ SP                   '       d   SP                    R V  2MT pVSP                  9   d   SP                  V,          # \        \        P                  P                  4       SR7      pVSP                  V&   V# )rX   r  )r  Úcreated_modulesr   r=   r‰   rŠ   )r  rs  rü  Úparentr€   r‡   s   &  €€€r3   r   Ú,_ModuleFrame.__init__.<locals>.create_module…  sl   ø€ Ø06·
·
°
˜&Ÿ*™*˜ Q s eÑ,À�Ø˜4×/Ñ/Ô/Ø×/Ñ/°Õ5Ð5Ü*¬5¯8©8¯>©>Ó+;ÀÔC�Ø-3�×$Ñ$ TÑ*Ø�r2   )r¿  Úparent_moduleÚparent_call_moduler  Úcall_idxr'   z)expected in_spec to have 2 children, got z'expected in_spec.type to be tuple, got z)expected args_spec.type to be tuple, got z*expected kwargs_spec.type to be dict, got Ú_positional_arg_r‘  Ú
_constant_)r®   rP   r¤   r  z_expected input to be TensorArgument, SymIntArgument, SymBoolArgument, or SymFloatArgument, got z#parent_call_module must not be Noneéÿÿÿÿ)Ar  r­   Ú
seen_nodesr1  r2  r  r  r  Ú	module_idr  Úverboser  r{  rÀ  r'   rd   r  rw  r   r=   r‰   rŠ   r†   Únode_mapÚnode_to_placeholderr  rÅ  r  rÐ   rg   r¯   Ú_SubmoduleEntryrU  Únum_childrenrk   rl   r?   Úchildrenrã   rœ  rz  r©   Úcontextrö  r+  Úinputsr�  rë  rì  ri   r   r  Úcopyr  Úinserting_beforerÜ  r   r   r   r   Úremap_inputrù  r‘  r¤   r–   )"r€   r  r­   r  r1  r2  r  r  r  r  r  r'   Ú	num_callsrË   r   Úbase_module_framerT  Ú	args_specÚkwargs_specr^  Ú	arg_nodesÚkwarg_nodesr  rX  r#  Úflat_arg_nodeÚinput_nodesrY  Úinputs_nodeÚ	args_nodeÚkwargs_noderK  r]   r‡   s"   f&&&&&&f&&&&                     @r3   rŽ   Ú_ModuleFrame.__init__Q  s  ú€ ð %ˆŒØˆŒ
Ø$ˆŒØ(ˆÔØ$ˆŒØ.ˆÔØˆŒØ(ˆÔØ"ˆŒà!2ˆÔØˆŒà"&×"3Ñ"3°BÕ"7ÑˆŒ�"�iä# D§H¡H¨i¸!­mÓ<ˆŒáØÒØ ˆDŒKÜ)0°¸×)AÒ)A˜ŸšÀrˆD�Jà×.Ñ.×2Ñ2Ø—‘Ü!¤%§(¡(§.¡.Ó"2°rÔ:óˆDŒKð  Ÿ™ˆDŒJà—[‘[×&Ñ&ˆŒ
ð =?ˆŒØ#%ˆÔ à8<ˆÔØÓÜ(¨¯©°T·^±^ÓDˆH÷ô ˜6Ÿ=™=¨(°D·K±KÀÔOØ&,§l¡l×&>Ñ&>¸xÓ&HˆDÔ#Ø× Ñ  §¡×0Ô0Ø$(×$5Ñ$5°d·n±nÕ$EÀaÕ$HÐ!Ø'8×'?Ñ'?×'HÑ'H�—‘Ô$Ø×Ñ˜dŸn™nÕ-×4Ñ4ÜØ#Ÿ{™{Ÿ™Ø"&§+¡+×"4Ñ"4Ø'+×'>Ñ'>ØŸ™Ø&¨�]ØŸ;™;ôô	ð &×)Ñ)¨$¯.©.Ó9ˆ	ØÓ  T§[¡[Ó%<Ø× Ñ ×-Ñ-°Ô2Ü$Ø?À	×@QÑ@Q×@^Ñ@^Ð?_Ð`óð ð × Ñ ×%Ñ%¬UÓ2Ü$Ø=¸i×>OÑ>O×>TÑ>TÐ=UÐVóð ð &/×%6Ñ%6×%?Ñ%?Ó%AÑ"ˆI�{Ø�~‰~¤UÓ*Ü$Ø?À	ÇÁÐ?OÐPóð ð ×Ñ¤tÓ+Ü$Ø@À×AQÑAQÐ@RÐSóð ð —‘×+Ñ+¨D×1Õ1ô  % Y×%;Ñ%;Ô<óá<˜ð —J‘J×*Ñ*Ð-=¸c¸UÐ+CÖDÙ<ð ð ð !�Ø'×/Ô/�DØ(,¯
©
×(>Ñ(>¸tÓ(D�K Ó%ñ 0ä2Ø—K‘KÜ˜9Ó% {Ð3Ø×%Ñ%ó�	ô
 !*¨)×*:Ñ*:Ö ;‘H�C˜Ø$(§J¡J×$:Ñ$:Ø*Ü'×/Ñ/Ø'¨Ð-ô $.¨cÔ3C×#DÒ#Dð  ŸHšHà#-¨c¨UÐ!3ð %;ó 	%�Mô " #Ô'7×8Ò8Ù à—x‘x 4§?¡?Ö2Ü-1¯YªY°t·±ÀsÇxÁxÕ7P×7UÑ7UÓ-V˜Ô*à)ð ×0Ñ0°·±ÀÇÁÕ1JÓKñ! !<÷ 2ðB —‘×"Ñ"×3Ñ3°D×4KÑ4K×LÕLØ:<�Ø&×-Ô-�EÜ! %Ô)9×:Ò:Ø#×*Ñ*¨5¯;©;Ö7ØŸ™¨4¯?©?Ô:Ø#×*Ñ*¨4Ö0ä)Ø!ä .Ü .Ü /Ü 0ð	÷ ò  ô #1ð#MÜMQÐRWË[ÈMð![ó#ð ð $×*Ñ*Ø ŸK™K×3Ñ3°D·O±OÀEÇJÁJÕ4OÓPöñ' .ô. 2Ø—K‘K×&Ñ&ØØ×%Ñ%ó�ð !ŸK™K×-Ñ-×;Ñ;Ü×$Ñ$ {°AÐ&6ó�	ð #Ÿk™k×/Ñ/×=Ñ=Ü×$Ñ$ {°AÐ&6ó�ô
 # 9×#9Ñ#9Ô:óá:˜ð —K‘K×%Ñ%×3Ñ3´H×4DÑ4DÀyÐRSÀnÖUÙ:ð ð ð )×0Ò0ó	ñ 1˜ð �t—{‘{×(Ñ(×6Ñ6Ü ×(Ñ(¨;¸Ð*:óò ñ 1ð	 ð ÷S Mð^ ×&Ñ&Ò.Ü$Ð%JÓKÐKä+0°Ó+;ˆD×#Ñ#Ô(Ø-8ˆD×#Ñ#Ö*ñO &=Ñ ùò(÷ 2×1Ð1üòLùò÷S M×LúsR   Ï<a<Ð'a7Ð;D a<Õ A.a<×-F'bÞ?bßbß#A bà#bá7a<á<b	â
bâb*	c                óÖ  € V P                   R 8X  d   \        RV R24      hVP                  V P                  Jd   \        R4      hV P                  P	                  R4      ;_uu_ 4        V P                  P                  VP                  VP                  R7      pRRR4       \        P                  ! VP                  4      Xn	        W P                  V&   R#   + '       g   i     LE; i)rù   zCannot add placeholder z to root moduleú6expected x.graph to be flat_graph, got different graphN)Ú	type_expr)r  rk   r†   r  r)  r©   r  rl   r(  r  r"  )r€   rc  Úplaceholder_nodes   && r3   Úadd_placeholderÚ_ModuleFrame.add_placeholder  s¯   € Ø�8‰8�rŒ>Ü Ð#:¸1¸#¸_Ð!MÓNÐNØ�7‰7˜$Ÿ/™/Ó)Ü ØHóð ð �Z‰Z×(Ñ(¨×.Õ.Ø#Ÿz™z×5Ñ5°a·f±fÈÏÉÐ5ÓOÐ÷ /ô !%§	¢	¨!¯&©&Ó 1ÐÔØ&6× Ñ  Ó#÷ /×.ús   Á)2CÃC(	c                óÈ  € \         P                  ! \        P                  P                  V P
                  VP                  4      p\         P                  ! \        P                  P                  V P
                  VP                  4      pV P                  P                  VP                  W#4      p\        P                  ! VP                  4      Vn        W@P                  V&   V# rZ   )rá   Útree_map_onlyr=   r‰   rÐ  r*  r¤   r–   r†   r‘  rP   r(  r  r!  )r€   rc  r¤   r–   r±   s   &&   r3   Úcopy_sym_call_functionÚ#_ModuleFrame.copy_sym_call_function  s�   € ô ×#Ò#¤E§H¡H§M¡M°4×3CÑ3CÀQÇVÁVÓLˆÜ×%Ò%¤e§h¡h§m¡m°T×5EÑ5EÀqÇxÁxÓPˆØ�z‰z×'Ñ'¨¯©°$Ó?ˆÜ—I’I˜aŸf™fÓ%ˆŒ	Ø�‰�aÑØˆr2   c                óº  € VP                   V P                  Jd   \        R 4      hWP                  9   d   V P                  V,          # V P	                  RV R24       WP
                  9   d   V P
                  V,          # VP                  R8X  g(   V P                  P                  V P                  4      f¨   V P                  V4       V P                  ev   V P                  P                   P                  V P                  4      ;_uu_ 4        V P                  P                  ^ V P                  P                  V4      4       RRR4       V P
                  V,          # VP                  R8X  Ed{   VP                   \"        P$                  P&                  P(                  P*                  \"        P$                  P&                  P,                  P.                  \"        P$                  P&                  P0                  P*                  \"        P$                  P&                  P2                  P4                  \"        P$                  P&                  P6                  P.                  \"        P$                  P&                  P8                  P.                  39   g8   \;        VP                   R4      '       d@   VP                   P<                  R8X  d%   V P?                  V4       V P                  V,          # V P                  P                  V P                  4      e   V P@                  PC                  W4      # \E        RVP                   R	V 24      h  + '       g   i     EL; i)
r8  zremap_input(rÖ  r©   Nr‘  r*   Ú	_operatorz(Could not run remap_input() on op type: z
 for node )#r†   r  rk   r!  rP  r"  r®   r  rw  r  r;  r  r  r)  Ú
insert_argr*  rP   r=   rž  rŸ  Úsym_sizer@   r_   r¡  ÚunbindÚsumÚdim_IntListÚviewÚdiffrd   r*   r?  r  ÚreadrÂ  )r€   rc  s   &&r3   r*  Ú_ModuleFrame.remap_input$  sY  € Ø�7‰7˜$Ÿ/™/Ó)Ü ØHóð ð —‘ÔØ—=‘= Õ#Ð#Ø�
‰
�\ !  AÐ&Ô'Ø×(Ñ(Ô(Ø×+Ñ+¨AÕ.Ð.à�D‰D�MÔ! T×%;Ñ%;×%?Ñ%?ÀÇÁÓ%IÒ%Qð × Ñ  Ô#Ø×&Ñ&Ò2ð —[‘[×&Ñ&×7Ñ7¸×8OÑ8O×PÕPØ×+Ñ+×6Ñ6°q¸$¿+¹+×:QÑ:QÐRSÓ:TÔU÷ Qà×+Ñ+¨AÕ.Ð.Ø�T‰T�_Õ$Ø�H‰Hä—	‘	—‘×'Ñ'×+Ñ+Ü—	‘	—‘×#Ñ#×+Ñ+Ü—	‘	—‘×%Ñ%×)Ñ)Ü—	‘	—‘×"Ñ"×.Ñ.Ü—	‘	—‘×#Ñ#×+Ñ+Ü—	‘	—‘×#Ñ#×+Ñ+ðôô ˜Ÿ™ ,×/Ò/°A·H±H×4GÑ4GÈ;Ô4Vð ×'Ñ'¨Ô*Ø—=‘= Õ#Ð#Ø×#Ñ#×'Ñ'¨¯©Ó1Ò=ð —:‘:—?‘? 4Ó+Ð+äØ:¸1¿4¹4¸&À
È1È#ÐNóð ÷1 Q×PÐPús   Ä6M	Í	M	c                ó   <€ V ^8„  d   QhRR/# ry   r(   )rA   rB   s   "€r3   rC   r  R  s   ø€ ÷ (ñ (¨tñ (r2   c                óz  € R pV P                   P                  4        F1  pVP                  P                  R/ 4      pVf   TpK'  W18w  g   K/  / p M	  V'       db   V P                  f   \        R4      hWP                  P                  R&   V P                   P                  4        F  pVP                  R K  	  R # R # )NÚcustomzBparent_call_module must not be None when uplifting custom metadata)r!  r  r  rw  r  rk   )r€   Úcustom_metar±   Ú	curr_metas   &   r3   Úuplift_common_custom_metadataÚ*_ModuleFrame.uplift_common_custom_metadataR  s®   € àˆØ—M‘M×(Ñ(Ö*ˆDØŸ	™	Ÿ™ h°Ó3ˆIØÒ"à'�ÙàÖ'Ø �Ùñ +÷ à×&Ñ&Ò.Ü$ØXóð ð 6A×#Ñ#×(Ñ(¨Ñ2ØŸ™×,Ñ,Ö.�Ø—I‘I˜hÒ'ó /ñ r2   c           	     óæ  a a€ S P                   P                  S P                  R 4       . pS P                  P	                  S P
                  4      pVEeE   S P                  Ee6   VP                   F–  p\        V\        \        \        \        \        34      '       d]   VP                  S P                  9   d/   VP!                  S P                  VP                  ,          4       Kw  VP!                  R 4       KŠ  \#        RV 24      h	  V 3R lo\%        S P&                  \(        ;QJ d    . V3R lV 4       F  NK  	  5M! V3R lV 4       4      VP*                  4      p\-        S P                  P&                  S P.                  VP*                  4      pTpMž. pS P0                   Fg  pVP2                   FT  pVP                  S P                  9  g   K   VP!                  V4       VP!                  S P0                  V,          4        Ke  	  Ki  	  S P.                  p\5        V4      ^8X  d
   V^ ,          p\        V\6        \8        P:                  P<                  34      '       g   \?        R\A        V4       24      hS PB                  PE                  V4       Vf   R # \        V\8        P:                  P<                  4      '       d   VPF                  P	                  R4      M)V U	u. uF  q™PF                  P	                  R4      NK  	  up	VPF                  R&   S PI                  4        \5        V4      ^8X  d'   Vf#   VS P                  P0                  V^ ,          &   R # \K        V4       F|  w  r«Vf   K  \8        P:                  PM                  V4      V
,          PN                  pVPF                  P	                  R4      VPF                  R&   VS P                  P0                  V&   K~  	  R # u up	i )Nz'Unsupported data type for output node: c                 ó  <€ V f   R # SP                   V P                  ,          pVSP                  9   d   SP                  V,          # VSP                  9   d   SP                  V,          # \	        RV  RSP
                   24      h)NzCould not find output node z	. Graph: )r  r  r!  r"  rÂ  r†   )r�  Ú	seen_noder€   s   & €r3   Úget_actual_output_nodeÚ=_ModuleFrame.finalize_outputs.<locals>.get_actual_output_node…  sx   ø€ Ø’>Ùà ŸO™O¨F¯K©KÕ8�	Ø §¡Ô-ØŸ=™=¨Õ3Ð3Ø $×":Ñ":Ô:Ø×3Ñ3°IÕ>Ð>ä&Ø5°f°X¸YÀtÇzÁzÀlÐSóð r2   c              3   ó4   <"  € T F  pS! V4      x € K  	  R # 5irZ   r(   )r\   r�  rV  s   & €r3   r`   Ú0_ModuleFrame.finalize_outputs.<locals>.<genexpr>•  s   øé € ÐPÁ<¸Ñ,¨V×4Ð4Ã<ùs   ƒz8expected graph_outputs to be list or torch.fx.Node, got Úval)(r  r|  r  r  rw  rÀ  r  rØ   ri   r   r   r   r   r   r  r  r¯   rÂ  rù  r'   r?   rj  rö  r  r!  Úusersr    rž   r=   r‰   rÐ  rk   rl   r†   r�  r  rQ  r+  ÚProxyr±   )r€   Úorig_outputsrT  r�  Útree_out_nodeÚ
parent_outÚgraph_outputsÚ	orig_nodeÚ	user_nodeÚorK  Úorig_outputÚ	proxy_outrV  s   f            @r3   Úfinalize_outputsÚ_ModuleFrame.finalize_outputsj  s  ù€ Ø×Ñ× Ñ  §¡¨4Ô0àˆà×*Ñ*×.Ñ.¨t¯~©~Ó>ˆ	ØÓ  T§[¡[Ó%<Ø#×+Ô+�ÜØä&Ü&Ü'Ü(Ü(ð÷	ò 	ð —{‘{ d§o¡oÔ5Ø$×+Ñ+¨D¯O©O¸F¿K¹KÕ,HÖIà$×+Ñ+¨DÖ1ä&ØAÀ&ÀÐJóð ñ! ,õ(ô 0Ø—‘ß”ÔPÁ<ÓP—‘ÔPÁ<ÓPÓPØ×"Ñ"óˆMô
 0FØ—‘×"Ñ" D×$;Ñ$;¸Y×=OÑ=Oó0ˆJð BO‰MàˆMà!Ÿ]œ]�	Ø!*§¤�IØ —~‘~¨T¯_©_Ö<à$×+Ñ+¨IÔ6Ø%×,Ñ,¨T¯]©]¸9Õ-EÔFÚó "1ñ +ð ×0Ñ0ˆJÜ�=Ó! QÔ&Ø -¨aÕ 0�ä˜-¬$´·±·±Ð)>×?Ò?Ü ØJÌ4ÐP]ÓK^ÐJ_Ð`óð ð 	�
‰
×Ñ˜-Ô(ð ÒÙô ˜-¬¯©¯©×7Ò7ð ×Ñ×"Ñ" 5Ô)á-:Ó;©]¨—&‘&—*‘*˜UÖ#©]Ñ;ð 	�‰˜Ñð
 	×*Ñ*Ô,äˆ|Ó Ô! iÒ&7Ø4>ˆD�K‰K× Ñ  ¨a¥Ó1ä"+¨LÖ"9‘�ØÒ&Ùä!ŸH™HŸN™N¨:Ó6°qÕ9×>Ñ>�	Ø(3×(8Ñ(8×(<Ñ(<¸UÓ(C�	—‘˜uÑ%Ø4=�—‘×$Ñ$ [Ó1ó #:ùò <s   Ë(#O.c                óÚ   € V P                  R VP                  4       4       V P                  P                  WP                  4      V P
                  V&   WP                  VP                  &   R# )ÚcopyingN)rP  Úformat_noder†   Ú	node_copyr*  r!  r  r  r°   s   &&r3   Ú	copy_nodeÚ_ModuleFrame.copy_nodeÈ  sL   € Ø�
‰
�9˜d×.Ñ.Ó0Ô1Ø"Ÿj™j×2Ñ2°4×9IÑ9IÓJˆ�‰�dÑØ%)�‰˜Ÿ	™	Ó"r2   c                ó  € \        V P                  P                  4       F>  w  rV P                  WP                  P                  R 4      VP                  4       4       K@  	  ^ pV P                  V,          pVP                  R8X  d0   V P                  V4       V^,          pV P                  V,          pK@  V P                  V4       V P                  P                   F'  pVP                  R8X  g   K  V P                  V4       K)  	  R# )r±  r©   r�  N)
r+  r  r­   rP  r  rw  rj  r®   rl  Úrun_from)r€   rK  r±   Únode_idxs   &   r3   Ú	run_outerÚ_ModuleFrame.run_outerÍ  sÀ   € Ü  §¡×!6Ñ!6Ö7‰GˆAØ�J‰J�qŸ)™)Ÿ-™-Ð(9Ó:¸D×<LÑ<LÓ<NÖOñ 8ð ˆØ�z‰z˜(Õ#ˆØ�g‰g˜Ô&Ø�N‰N˜4Ô Ø˜�MˆHØ—:‘:˜hÕ'ŠDà�‰�hÔð —O‘O×)Ô)ˆDØ�w‰w˜(Ö"Ø—‘˜tÖ$ó *r2   c                óD   € V P                   '       d   \        V/ VB  R # R # rZ   )r   rP  )r€   r¤   r–   s   &*,r3   rP  Ú_ModuleFrame.printà  s   € Ø�<�<ˆ<ä�4Ð"˜6Ô"ñ r2   c                óŒ  € ^ pV\        V P                  4      8  Ed    V P                  V,          pVP                  R8X  d   \        RV 24      hV P	                  4        V P	                  RWP                  4       4       V P	                  V P                  4       \        V P                  4      pVP                  R8X  d   V^8X  d   V# V P                  4        V# \        VP                  P                  R/ 4      4      ^ 8X  d   \        RV 24      hTP                  R,          p^ RIHp \        V4      ^8X  d   We9   d   V P                  pMnVP                  R,          P                  4        UU	U
u. uF?  w  pw  ršT	V	'       d   T
MRR	V9   d"   \        VP                  R	4      R,          4      M^ 3NKA  	  pp	pp
VRV V P                  8w  dJ   V P                  4        V P	                  R
V P                   4       V P	                  V P"                  4       V# Vf   \        R4      h\%        V P                  V4      '       dé   Wt,          pV P	                  RV4       \'        VP                  R,          P)                  4       4      V,          p\+        V P,                  V P                  V P.                  V P0                  V P2                  V P4                  V V P                  V.,           VP                  R	4      ^ ,          V P6                  4
      P9                  V4      pV^,          pEK+  WpP                  8w  d   \        RV RV P                   24      hVP                  R8X  d7   V P2                  V P:                  ,          P=                  VP>                  4       V PA                  V4       V^,          pEKº  R# u up
p	pi )r   r©   z%unexpected placeholder node at index ÚSTEPr�  r±  z(Unable to find nn_module_stack for node )Ú_EMPTY_NN_MODULE_STACK_KEYNr  Ú	outliningz"node_module_stack must not be NonezCreating new stack frame forzexpected node_module_stack z to equal module_stack r×  r  )!r    r­   r®   rk   rP  rj  r  rf  r  rw  rÂ  Ú(torch._export.passes._node_metadata_hookrw  rh   r@   rb   r  r†   r³  rž   Úkeysr  r  r  r1  r2  r  r  ro  rÀ  r  rP   rl  )r€   rp  Ú
module_idxr±   Údepthr±  rw  Únode_module_stackr]   rs  r‡   Únext_moduleÚnext_module_keys   &&           r3   ro  Ú_ModuleFrame.run_fromå  s;  € Øˆ
àœ˜TŸZ™Z›Õ(Ø—:‘:˜hÕ'ˆDØ�w‰w˜-Ô'Ü$Ð'LÈXÈJÐ%WÓXÐXà�J‰JŒLØ�J‰J�v˜x×)9Ñ)9Ó);Ô<Ø�J‰J�t×(Ñ(Ô)Ü˜×)Ñ)Ó*ˆEØ�w‰w˜(Ô"Ø˜A”:ð $�Oð ×%Ñ%Ô'Ø�ä�4—9‘9—=‘=Ð!2°BÓ7Ó8¸AÔ=Ü"Ð%MÈdÈVÐ#TÓUÐUà"Ÿi™iÐ(9Õ:ˆOõô
 �OÓ$¨Ô)Ø.ÔAð %)×$5Ñ$5Ñ!ð *.¯©Ð3DÕ)E×)KÑ)KÔ)Mõ%ñ *N™˜™:˜Dð	 ß"™¨Ø14¸´œ˜AŸG™G C›L¨Õ,Ô-¸qóñ
 *Nð "ò %ð !  %Ð(¨D×,=Ñ,=Ô=ð ×%Ñ%Ô'Ø—
‘
˜;¨¯©Ô1Ø—
‘
˜4Ÿ:™:Ô&Ø�à Ò(Ü$Ð%IÓJÐJä˜$×+Ñ+Ð->×?Ò?ð 0Õ6�Ø—
‘
Ð9¸;ÔGô #' t§y¡yÐ1BÕ'C×'HÑ'HÓ'JÓ"KÈEÕ"R�Ü'Ø—O‘OØ—J‘JØ—O‘OØ×%Ñ%Ø—O‘OØ×(Ñ(ØØ×%Ñ%¨¨Õ5Ø#×)Ñ)¨#Ó.¨qÕ1Ø×*Ñ*ó÷ ‘(˜8Ó$ð ð ˜a•�
Úð !×$5Ñ$5Ô5Ü$Ø1Ð2CÐ1DÐD[Ð\`×\mÑ\mÐ[nÐoóð ð �w‰w˜*Ô$à—‘ §¡Õ/×3Ñ3°D·K±KÔ@à�N‰N˜4Ô à˜�M‹Hñ} )ùôF%s   Å5AN?)rÀ  r  r  r  r†   r  r'   r  r  r  r!  r"  r­   r  r  r2  r1  r  r   rZ   )r)   r*   r+   r,   rŽ   r;  r?  r*  rQ  rf  rl  rq  rP  ro  r1   rG   rH   s   @r3   r  r  P  sN   ø‡ € ÷t9ò t9òl7òò,÷\(ð (ò0\>ò|*ò
%ò&#÷
að ar2   r  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )r#  iI  c                óÚ   <€ V ^8„  d   Qh/ S[ ;R&   S[P                  P                  ;R&   S[P                  P
                  ;R&   S[ ;R&   S[;R&   S[P                  P                  ;R&   # )r8   r¿  r  r  r  r  r'   )rU   r=   rS   rT   r‰   rÐ  r@   )rA   rB   s   "€r3   rC   Ú_SubmoduleEntry.__annotate__I  sf   ø‡ ‚ á�Oñ ñ —8‘8—?‘?Ñ"ñ ñ Ÿ™Ÿ™Ñ%ñ	 ñ
 
�Hñ ñ �Mñ ñ �H‰H�O‰OÑò r2   r(   N)r)   r*   r+   r,   rF   r1   rG   rH   s   @r3   r#  r#  I  s   ø‡ ‡ „ r2   r#  c                óX   € V ^8„  d   QhR\         P                  P                  R\        /# )r8   Ú
orig_graphÚroot_module)r=   r‰   rŠ   r!   )rA   s   "r3   rC   rC   S  s#   € ÷ $ñ $¤E§H¡H§N¡Nð $ÔARñ $r2   c                 óL  € / p\        \        4      p\        \        4      p/ p\        T \	        V P
                  4      TTTTR R.RVP                   Uu/ uF.  pVP                  '       g   K  VP                  VP                  bK0  	  upVR7      P                  4        W43# u upi )Nrù   )r'   )rù   Nr   )
r   rž   rc   r  r?   r­   r  rT  r  rq  )r…  r†  r  r1  r2  r  r.  s   &&     r3   r  r  S  s¥   € Ø+-€JÜ5@ÄÓ5F€LÜ&1´#Ó&6€JØ24€OÜØÜˆj×ÑÓØØØØØØ	ˆØ
ð %×6Ò6ó	
á6�Ø��ô 'ˆE�I‰I�u—‘Ò&Ù6ñ	
ð
 ô÷  �i„kØÐ#Ð#ùò	
s   ÁB!Á,B!c                ó†   € V ^8„  d   QhR\         P                  P                  R\        \        \
        3,          R\        /# )r8   r  rL  rq   )r=   rS   rT   rã   rU   r@   )rA   s   "r3   rC   rC   l  s4   € ÷ ,ñ ,Ü�H‰H�O‰Oð,Ü(,¬S´#¨X­ð,Ü@Cñ,r2   c                 óÞ  € VR 8X  d_   \        VP                  4       4      R,           F:  p\        W4      e   K  \        W\        P
                  P                  4       4       K<  	  . p\        V P                  P                  4       4       F›  w  rVVf   K  W%,           p\        WaVP                  R4      ^ ,          R,           R7       \        W4       VP                  R4      ^ ,          pVP                  VP                  W1P                  V\        V4      4      4      WV34       K�  	  VP                  \         P"                  ! ^ 4      R7       V F  w  r…pV P%                  WV4       K  	  R# )rù   :rÎ   NNNr  rX   )rq   )rÛ  )rž   rz  rý  r  r=   rS   rT   rg   rh   r-  rb   Údelattrr¯   rw  r    Úsortrë  Ú
itemgetterÚregister_module)	r  rL  rq   r  r%  r  ÚchildÚbase_fqnrC  s	   &&&      r3   r-  r-  l  s  € ð �„|Ü˜	Ÿ™Ó(Ó)¨"×-Ð-ˆCÜ˜fÓ*Ô2Ü˜v¬E¯H©H¯O©OÓ,=Ö>ñ .ð €HÜ˜FŸO™O×1Ñ1Ó3Ö4‰ˆØŠ=ÙØ�mˆÜ˜E°S·Y±Y¸s³^ÀAÕ5FÈÕ5LÕMÜ�ÔØ—9‘9˜S“> !Õ$ˆØ�‰Ø�]‰]˜3§¡¨h¼¸I»Ó GÓHÈ$ÐVö	
ñ 5ð ‡M�M”h×)Ò)¨!Ó,€MÔ-Û"‰ˆ�Ø×Ñ˜tÖ+ó #r2   c                   ó<   a € ] tR tRt o RtR tR tR tR tRt	V t
R# )	r  i…  a  
Collect the intermediate values of mutations in a graph.

Example: in the following graph, suppose that buf_in and buf_out
are the input and output values of a buffer.

    buf_in = placeholder()
    ...
    ival1 = f0(buf_in, ...)  # inside self.n0(...)
    ...
    ival2 = f1(ival1, ...)  # inside self.n1(...)
    ...
    buf_out = f2(ival2, ...)  # inside self.n2(...)
    return buf_out, ...

Here ival1 and ival2 are intermediate values created inside
calls to n0 and n1 respectively, and used inside calls to
n1 and n2 respectively.
c                ó.   € \        \        4      V n        R # rZ   )r   rc   Únode_names_by_fqnr   s   &r3   rŽ   Ú_IVals.__init__š  s   € ä!,¬SÓ!1ˆÖr2   c                ó†   € \        V\        P                  P                  4      '       d   VP                  P
                  # R # )F)ri   r=   Ú_opsÚ
OpOverloadÚ_schemaÚ
is_mutable)r€   rP   s   &&r3   Ú_is_mutableÚ_IVals._is_mutablež  s,   € Ü�fœeŸj™j×3Ñ3×4Ò4Ø—>‘>×,Ñ,Ð,Ùr2   c                óÐ  € VP                   R8w  d   \        RVP                   : 24      hV P                  VP                  4      p\	        RVP                  V4       V'       gb   \        \        VP                  R,          P                  4       4      4      w  rEV P                  V,          P                  VP                  4       VP                  VP                  ^ ,          4      # )z9
Read state corresponding to a given intermediate value.
r‘  z,expected node.op to be 'call_function', got zChecking mutabilityr±  )r®   rk   r™  rP   rP  r–  r˜  r  r  r’  r  r  r*  r¤   )r€   Úmfr±   Úbr  rC  s   &&&   r3   rJ  Ú_IVals.read£  s¯   € ð
 �7‰7�oÔ%Ü Ø>¸t¿w¹w¹kÐJóð ð ×Ñ˜TŸ[™[Ó)ˆÜÐ# T§[¡[°!Ô4ßô œ( 4§9¡9Ð->Õ#?×#FÑ#FÓ#HÓIÓJ‰FˆCØ×"Ñ" 3Õ'×+Ñ+¨D¯I©IÔ6Ø�~‰~˜dŸi™i¨�lÓ+Ð+r2   c                óh  € V EF  pV EF  pVP                   P                  pV P                  VP                  ,          pVP                   Uu. uF  qfP
                  V9   g   K  VNK  	  ppV Fœ  pVP                  V4      ;_uu_ 4        VP                  R\        P                  P                  P                  P                  VP                  ^ ,          V34      p	\        P                  ! VP                  4      V	n        RRR4       Kž  	  EK	  	  EK  	  R# u upi   + '       g   i     KÂ  ; i)zD
Update states corresponding to intermediate values that were read.
r‘  N)r'   r†   r’  r  r­   r  rœ  r�  r=   rž  rŸ  r   r¡  r¤   r(  r  )
r€   Ú
partitionsÚshared_submodulesr.  r†   Ú
node_namesrI  r­   r±   r“  s
   &&        r3   rf   Ú_IVals.updateµ  sæ   € ô ",ÐÜ*�ØŸ™×*Ñ*�Ø!×3Ñ3°E·I±IÕ>�
Ø$)§K¢KÓH¡K˜q·6±6¸ZÑ3GŸ˜¡K�ÐHÛ!�Dð ×.Ñ.¨t×4Õ4Ø#(×#4Ñ#4Ø+Ü!ŸI™IŸN™N×0Ñ0×8Ñ8Ø!ŸY™Y q�\¨4Ð0ó$˜ô
 )-¯	ª	°$·)±)Ó(<˜œ÷ 5Ñ4ô "ô	 +ó ",ùò I÷ 5×4Ð4ús   ÁDÁ%DÂA8D Ä D1)r’  N)r)   r*   r+   r,   rE   rŽ   r™  rJ  rf   r1   rG   rH   s   @r3   r  r  …  s#   ø‡ € ñò(2òò
,÷$=ð =r2   r  c          	      óœ   € V ^8„  d   QhR\         P                  P                  R\        R\        \
        \        \
        ,          3,          /# )r8   râ  r†  r2  )r=   r‰   rª   r!   rã   rU   rc   )rA   s   "r3   rC   rC   Ê  s=   € ÷ 	'ñ 	'Ü�‰×Ñð	'ä"ð	'ô ”Sœ#œc�(�]Õ#ñ	'r2   c                 ó¢   € VP                  4        F:  w  r4V'       d   \        W4      MTpV F  p\        W4      p\        WVV4       K  	  K<  	  R # rZ   )rh   r   rÈ   re   )râ  r†  r2  rÀ  Únamesr'   r  rZ  s   &&&     r3   r  r  Ê  sF   € ð
 '×,Ñ,Ö.Ñˆ	ß6?”˜;Ô2À[ˆÛˆDÜ˜"Ó#ˆCÜ�F #Ö&ó ó /r2   c                 óÌ  € / pV  EFZ  p\        V4       EFF  w  r4\        VP                  VP                  4      p\	        VP
                  V4      pR pVRV  Fÿ  p\        VP                  VP                  4      '       g   K+  VP                  p	VP                  VP                  8X  d†   VP                  R4      Ev r«\        Wš4      P                  P                  V4       \        VP                  VP                  4      p\	        VP
                  V4      pWÔP                  n        WÁV&    EK  V'       d   Ká  V	P                  WhP                  4       RpEK  	  EKI  	  EK]  	  V# )FNrX   T)r+  r{  r  r  rÅ  r¿  rß  r'   r  rb   r   rg   r|  r  rP   r}  )r   rJ  r¡  rK  r.  rÀ  rP   ÚdeduplicatedÚseenr  rq   r  Úseen_child_fqnÚseen_targets   &             r3   r'  r'  Ö  s(  € Ø ÐÜ'ÐÜ!Ð"3×4‰HˆAÜ" 5§9¡9¨e¯n©nÓ=ˆIÜ& u×'7Ñ'7¸ÓCˆFØ ˆLà)¨"¨1Ó-�Ü+¨D¯K©K¸¿¹×FÔFØ"×0Ñ0�Fð —x‘x 5§9¡9Ô,ð
 )/¯©°SÓ(9™˜Ü/°Ó?×HÑH×LÑLÈTÔRÜ)3°D·H±H¸d¿m¹mÓ)L˜Ü&7Ø!×,Ñ,¨nó'˜ð ;F×0Ñ0Ô7Ø=K°	Ñ:Ûß)™\ð ×,Ñ,¨V·[±[ÔAØ'+›ô= .ô 5ñ (ðL #Ð"r2   c                ó  € V ^8„  d   QhR\         P                  P                  R\        \        \
        \        ,          3,          R\
        \        ,          R\        \        \        \        ,          3,          R,          /# )r8   r'   rE  ÚscopeÚmodule_id_to_inputs_removedN)r=   rS   rT   rã   rU   rž   r@   rc   )rA   s   "r3   rC   rC     sa   € ÷ t(ñ t(Ü�H‰H�O‰Oðt(äœ#œt¤C�y˜.Õ)ðt(ô ”�9ðt(ô "&¤c¬3¬s­8 mÕ!4°tÕ!;ñ	t(r2   c           	     ó¨  aa€ Sf   \        \        4      o\        V 4      S9   d   \        V 4      S\        V 4      ,          /# V P                  P	                  4        FV  w  po\        \        RS4      VW$.,           S4      pVP	                  4        F  w  rgSV,          P                  V4       K  	  KX  	  \        V RR4      pVe   \        VP                  4      ^ 8X  d   S# \        V\        P                  P                  4      '       g   \        R\!        V4       24      h\#        \%        R VP                  4      4      p	\        V	4      ^ 8X  d   RMV	R,          p
\%        R VP                  4      pV FY  p\'        WP(                  4      oSf   K  \        S4      S9   g   K0  \+        \%        VV3R lVP,                  4      4      Vn        K[  	  / pV	 F‰  pVP.                  V9  d   K  RpWP.                  ,           FQ  pVP1                  R4      pVR\        V4       V Uu. uF  pVP1                  R	4      ^ ,          NK  	  up8X  g   KO  Tp M	  Vf   K…  WíV&   K‹  	  \        4       pVP	                  4        EF  w  rÎ\        VP2                  4      ^ 8”  d¸   V\        V4      R p\5        V V4      p\        V\        P6                  \        P8                  34      '       g   \        R
\!        V4       24      hVP;                  V
4      ;_uu_ 4        VP=                  RRP?                  V4      4      pRRR4       VPA                  XRR7       VPC                  V4       VPE                  VP.                  4       EK  	  \        V \F        4      '       d   V PI                  4        \        V 4      V/# u upi   + '       g   i     LŒ; i)aæ  Sink params, buffers, and constants from graph inputs into get_attr nodes.

Exported modules are purely functional, so they pass their parameters and
buffers in as inputs to the graph.

To replicate eager's semantics, we need to get them from the module state
via get_attr instead.

module: GraphModule, potentially containing nested submodules.
inputs_to_state: mapping graph input names to the corresponding key in the state_dict.
scope: tracks where we are in the module hierarchy, so that we can emit the
    right `getattr(self, "foo.bar")` calls, etc.
module_id_to_inputs_removed: records inputs removed by child modules, mapping
    the module object id to the list of placeholder node names in the child module
    that were removed.
Nztorch.nn.Moduler†   z)expected graph to be torch.fx.Graph, got c                 ó    € V P                   R 8H  # )r©   ©r®   ©rI  s   &r3   r”  Ú_sink_params.<locals>.<lambda>1  s   €  1§4¡4¨=Ò#8r2   c                 ó    € V P                   R 8H  # )rÐ   r±  r²  s   &r3   r”  r³  5  s   € ¨¯©°Ò)>r2   c                 óB   <€ V P                   S\        S4      ,          9  # rZ   )r  rö   )rI  r®  Ú	submodules   &€€r3   r”  r³  =  s   ø€ ˜aŸf™fÐ,GÌÈ9ËÕ,VÒVr2   rX   r  zBexpected state_attr to be torch.Tensor or torch.ScriptObject, got r×  T)Úpropagate_metar  )%r   rc   rö   rg   rh   r&  r
   rf   rÈ   r    r­   ri   r=   r‰   rŠ   rk   rl   rž   Úfilterr   rP   r?   r¤   r  rb   r[  r   rn   rp   rœ  r�  rÖ   r¢  Ú
erase_noder  r   r²   )r'   rE  r­  r®  r  Úsubmod_id_to_inputs_removedr]   r­  r†   r'  Úthe_last_inputÚcall_module_nodesr±   Úinputs_to_state_of_scopeÚ
state_nameÚsnÚsn_splitrc  Úinputs_removedÚ	attr_pathÚ
state_attrr“  r¶  s   &&&f                  @r3   r&  r&    sB  ù€ ð, #Ò*Ü&1´#Ó&6Ð#ä	ˆ&ƒzÐ0Ô0Ü�6“
Ð7¼¸6»
ÕCÐDÐDð "Ÿ?™?×0Ñ0Ö2‰ˆˆiÜ&2ÜÐ" IÓ.ØØ�F�NØ'ó	'
Ð#ð 0×5Ñ5Ö7‰DˆAØ'¨Õ*×1Ñ1°!Ö4ó 8ñ 3ô �F˜G TÓ*€EØ‚}œ˜EŸK™KÓ(¨AÔ-à*Ð*ä�eœUŸX™XŸ^™^×,Ò,ÜÐHÌÈeËÈÐVÓWÐWä”&Ñ8¸%¿+¹+ÓFÓG€FÜ  ›[¨AÔ-‘T°6¸"µ:€Nô Ñ>ÀÇÁÓLÐÛ!ˆÜ˜f§k¡kÓ2ˆ	ð Ô ¤R¨	£]Ð6QÖ%QÜÜÝVØ—I‘IóóˆDŽIñ "ð @BÐÛˆØ�9‰9˜OÔ+Ùàˆ
Ø!§)¡)×,Ð,ˆBØ—x‘x “}ˆHØ˜œ#˜e›*Ð%Á5Ó)IÁ5¸a¨!¯'©'°#«,°q¯/¨/Á5Ñ)IÖIØ%�
Ùñ	 -ð ÒÙà)3 Ó&ñ/ ô4  #›u€Nà4×:Ñ:×<ÑˆÜˆt�z‰z‹?˜QÔØ"¤3 u£: <Ð0ˆIÜ0°¸ÓCˆJÜ˜j¬5¯<©<¼×9KÑ9KÐ*L×MÒMÜ$ØXÔY]Ð^hÓYiÐXjÐkóð ð
 ×&Ñ& ~×6Õ6Ø ×,Ñ,¨Z¸¿¹À)Ó9LÓM�÷ 7ð ×&Ñ& xÀÐ&ÔEà×Ñ˜ÔØ×Ñ˜4Ÿ9™9×%ñ! =ô$ �&Ô+×,Ò,Ø�‰Ôäˆv‹J˜Ð'Ð'ùòU *J÷> 7×6ús   È)!N<
Ì"OÏO)r   r   r    r!   r�  )TrZ   )rù   )^rí   r(  Úloggingrë  r	  Úcollectionsr   Úcollections.abcr   Ú
contextlibr   r   Údataclassesr   Úenumr   Útypingr	   r
   r=   Útorch.fx._pytreer‰   Ú_pytreeró  Útorch.utils._pytreeÚutilsrá   Ú"torch._library.fake_class_registryr   Útorch._library.opaque_objectr   Útorch.exportr   Útorch.export._tree_utilsr   Útorch.export.exported_programr   r   r   r   r   r   r   r   Útorch.fx._symbolic_tracer   Útorch.fx.graph_moduler   r   r   r   r   Ú_remove_effect_tokens_passr   Ú	getLoggerr)   r´  Ú__all__r#   r6   rJ   rL   ru   rw   rS   rT   r   r    ÚABCr   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(   r2   r3   Ú<module>rÚ     sÕ  ðã 
Û Û Û Û 	Ý #Ý $Ý %Ý Ý !Ý ß ã ß $Ð $ß $Ð $Ý ?Ý <Ý (Ý 3÷	÷ 	ó 	õ <ß UÑ Uß 7å =ð ×Ò˜Ó!€ò€ô�ô ñ �$Ô÷ð ó ðð Ð ð ñ(ó ð(÷C0÷L	ñ 	ô\
˜¨¯©¯©ô \
ô~." .°%·(±(·/±/ô ."ôb�c—g‘gô ô,S
˜¨¯©¯©ô S
÷l!õHH)õVò$òNRõ
6õ$6õBõõRõMõ%÷")õ41õJ÷
vñ vðr ÷ð ó ðõ$÷2,÷2B=ñ B=õJ	'ò(#÷Vt(ñ t(r2   