Ë
    ÄÓ^j2  ã                   ó´  — U d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlZd dl	Zd dl
mZ d dlmZ  ededef   ¬«      Zg d	¢Zd
ej                   j"                  dej$                  dej$                  fd„Zd
ej                   j(                  dej$                  dej$                  fd„Zdej$                  dej$                  fd„Zd
ej                   j.                  dej$                  dej$                  fd„Zd+dej$                  dedej$                  fd„Zdej$                  dej$                  dej$                  dej$                  fd„Zddœdej$                  dej$                  dz  dej$                  fd„Zej                   j"                  eej                   j(                  eej:                  eej                   j<                  j:                  eej                   j.                  eej>                  eej@                  eiZ!e"edef   edef   f   e#d<   dede$edef   ef   fd„Z% G d„ dejL                  j                  «      Z' G d„ d e'«      Z( G d!„ d"e(«      Z)d#edefd$„Z* G d%„ d&ejL                  jV                  «      Z,	 	 d,d'ej                   jZ                  edef   z  d(e"e.ej$                  f   dz  d)e"e.ef   dz  dejL                  j^                  fd*„Z0y)-é    N)ÚCallable)ÚAnyÚTypeVar)ÚNode)ÚProxyÚ_C.)Úbound)Úembedding_overrideÚfunctional_relu_overrideÚgen_constructor_wrapperÚmanual_meta_overridesÚMetaAttributeÚMetaDeviceAttributeÚ	MetaProxyÚ
MetaTracerÚnn_layernorm_overrideÚproxys_to_metasÚsymbolic_traceÚtorch_abs_overrideÚtorch_nn_relu_overrideÚtorch_relu_overrideÚtorch_where_overrideÚselfÚinputÚreturnc                 óx   — t        j                  g |j                  ¢| j                  j                  d   ‘­ddiŽS )NéÿÿÿÿÚdeviceÚmeta)ÚtorchÚemptyÚshapeÚweight©r   r   s     úl/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/fx/experimental/meta_tracer.pyr
   r
   "   s1   € Ü�;‰;ÐJ˜Ÿ™ÐJ T§[¡[×%6Ñ%6°rÑ%:ÒJÀ6ÑJÐJó    c                 ó   — |S ©N© r$   s     r%   r   r   &   s	   € ð €Lr&   Úxc                 ó   — | S r(   r)   )r*   s    r%   r   r   ,   ó   € Ø€Hr&   c                 ó   — |S r(   r)   )r   r*   s     r%   r   r   0   r,   r&   Úinplacec                 ó    — |rt        d«      ‚| S )Nz=don't support inplace functional.relu for metatensor analysis©ÚAssertionError)r*   r.   s     r%   r   r   4   s   € ÙÜØKó
ð 	
ð €Hr&   Ú	conditionÚyc                 ór   — | j                  d¬«      |j                  d¬«      z   |j                  d¬«      z   S )Nr   ©r   )Úto)r2   r*   r3   s      r%   r   r   <   s5   € ð
 �<‰<˜vˆ<Ó&¨¯©°V¨Ó)<Ñ<¸q¿t¹tÈ6¸tÓ?RÑRÐRr&   )Úoutr7   c                ó    — |�t        d«      ‚| S )Nz2Don't support in-place abs for MetaTensor analysisr0   )r   r7   s     r%   r   r   D   s   € ð €ÜÐQÓRÐRØ€Lr&   r   Útargetc                 ól   ‡ — t        j                  ‰ «      dt        dt        dt        fˆ fd„«       }|‰ fS )NÚargsÚkwargsr   c                  ó  •‡— d Šdt         dd fˆfd„}t        j                  j                  j	                  | |«       t        j                  j                  j	                  ||«       ‰�‰j
                  j                  d‰| |«      S  ‰| i |¤ŽS )NÚvr   c                 óT   •— t        | t        j                  j                  «      r| Šy y r(   )Ú
isinstancer    Úfxr   )r>   Úproxys    €r%   Úcheck_has_proxyzAgen_constructor_wrapper.<locals>.wrapper.<locals>.check_has_proxy^   s   ø€ Ü˜!œUŸX™XŸ^™^Ô,à‘ð -r&   Úcall_function)r   r    rA   ÚnodeÚmap_aggregateÚtracerÚcreate_proxy)r;   r<   rC   rB   r9   s      @€r%   Úwrapperz(gen_constructor_wrapper.<locals>.wrapperZ   s~   ù€ àˆð	œsð 	 tõ 	ô
 	�‰�‰×#Ñ# D¨/Ô:Ü�‰�‰×#Ñ# F¨OÔ<àÐØ—<‘<×,Ñ,¨_¸fÀdÈFÓSÐSá˜4Ð* 6Ñ*Ð*r&   )Ú	functoolsÚwrapsr   )r9   rI   s   ` r%   r   r   W   sA   ø€ ô ‡_�_�VÓð+”sð +¤cð +¬cô +ó ð+ð  �Fˆ?Ðr&   c                   ó¢   — e Zd Zdej                  ddfd„Zddedz  defd„Zdefd„Z	e
defd„«       Ze
defd	„«       Ze
dd
„«       Zdedefd„Zy)r   Útensor_metar   Nc                 ó   — || _         y r(   )Ú_tensor_meta)r   rM   s     r%   Úinstall_tensor_metazMetaProxy.install_tensor_metao   s
   € Ø'ˆÕr&   Údimc                 óÄ   — t        | d«      r+| j                  � | j                  j                  |r|gŽ S g Ž S | j                  j	                  dd|r	| |fi «      S | fi «      S )NrO   Úcall_methodÚsize)ÚhasattrrO   rT   rG   rH   )r   rQ   s     r%   rT   zMetaProxy.sizer   ss   € Ü�4˜Ô(¨T×->Ñ->Ð-JØ)�4×$Ñ$×)Ñ)±C¨C¨5Ð@Ð@¸RÐ@Ð@Ø�{‰{×'Ñ'Ø˜6±# D¨# ;ÀBó
ð 	
Ø<@¸7ÀBó
ð 	
r&   c                 ó¤   — t        | d«      r&| j                  �| j                  j                  «       S | j                  j	                  dd| fi «      S )NrO   rS   rQ   )rU   rO   rQ   rG   rH   ©r   s    r%   rQ   zMetaProxy.dimy   sI   € Ü�4˜Ô(¨T×->Ñ->Ð-JØ×$Ñ$×(Ñ(Ó*Ð*Ø�{‰{×'Ñ'¨°u¸t¸gÀrÓJÐJr&   c                 óº   — t        | d«      r"| j                  �| j                  j                  S | j                  j	                  dt
        j                  | dfi «      S )NrO   rD   r"   )rU   rO   r"   rG   rH   ÚbuiltinsÚgetattrrW   s    r%   r"   zMetaProxy.shape~   óS   € ä�4˜Ô(¨T×->Ñ->Ð-JØ×$Ñ$×*Ñ*Ð*Ø�{‰{×'Ñ'ØœX×-Ñ-°°g¨Àó
ð 	
r&   c                 óº   — t        | d«      r"| j                  �| j                  j                  S | j                  j	                  dt
        j                  | dfi «      S )NrO   rD   Údtype)rU   rO   r]   rG   rH   rY   rZ   rW   s    r%   r]   zMetaProxy.dtype†   r[   r&   c                 ó   — t        | d«      S )Nr   )r   rW   s    r%   r   zMetaProxy.deviceŽ   s   € ô # 4¨Ó2Ð2r&   Úkc                 óF   — |dk(  r| j                  |«      S t        | |«      S )NrO   )Ú__getattribute__r   )r   r_   s     r%   Ú__getattr__zMetaProxy.__getattr__”   s*   € Ø�ÒØ×(Ñ(¨Ó+Ð+ô ˜T 1Ó%Ð%r&   r(   )r   r   )Ú__name__Ú
__module__Ú__qualname__r    ÚTensorrP   Úintr   rT   rQ   Úpropertyr"   r]   r   Ústrrb   r)   r&   r%   r   r   n   s›   „ ð(¨u¯|©|ð (Àó (ñ
˜˜d™
ð 
¨có 
ðK�Só Kð
 ð
�sò 
ó ð
ð ð
�sò 
ó ð
ð ò3ó ð3ð
&˜Sð & Sô &r&   r   c                   óD   — e Zd Zdededdfd„Zed„ «       Zdededefd	„Z	y)
r   ÚrootÚattrr   Nc                 óP   — || _         || _        |j                  | _        d | _        y r(   )rk   rl   rG   Ú_node)r   rk   rl   s      r%   Ú__init__zMetaAttribute.__init__�   s"   € ØˆŒ	ØˆŒ	Ø—k‘kˆŒØ"&ˆ�
r&   c                 óÀ   — | j                   €G| j                  j                  dt        | j                  | j
                  fi «      j                  | _         | j                   S )NrD   )rn   rG   rH   rZ   rk   rl   rE   rW   s    r%   rE   zMetaAttribute.node£   sN   € ð �:‰:ÐØŸ™×1Ñ1Ø¤¨4¯9©9°d·i±iÐ*@À"óç‰dð ŒJð �z‰zÐr&   r;   r<   c                 ón   — | j                   j                  d| j                  | j                  f|z   |«      S )NrS   )rG   rH   rl   rk   )r   r;   r<   s      r%   Ú__call__zMetaAttribute.__call__­   s1   € Ø�{‰{×'Ñ'Ø˜4Ÿ9™9 t§y¡y l°TÑ&9¸6ó
ð 	
r&   )
rc   rd   re   r   ri   ro   rh   rE   r   rr   r)   r&   r%   r   r   œ   sJ   „ ð'˜Yð '¨cð '°dó 'ð ñó ðð
˜cð 
¨Sð 
°Sô 
r&   r   c                   ó   — e Zd Zy)r   N)rc   rd   re   r)   r&   r%   r   r   ³   s   „ Ør&   r   r>   c                 ó  — t        | t        «      ryt        | t        j                  j                  «      rJt        | t
        «      st        dt        | «      › �«      ‚t        | d«      st        d«      ‚| j                  S | S )Nr   zExpected MetaProxy but got rO   z*MetaProxy does not have an associated meta)
r@   r   r    rA   r   r   r1   ÚtyperU   rO   )r>   s    r%   r   r   ·   sh   € Ü�!Ô(Ô)ØÜ�!”U—X‘X—^‘^Ô$Ü˜!œYÔ'Ü Ð#>¼tÀA»w¸iÐ!HÓIÐIÜ�q˜.Ô)Ü Ð!MÓNÐNØ�~‰~ÐØ€Hr&   c                   ó0  ‡ — e Zd ZU dZeed<   g d¢Z	 	 	 ddedej                  j                  j                  deedf   d	eeef   d
edz  dedeegef   dz  defˆ fd„Zdededeeef   defˆ fd„Zdej*                  j,                  dedef   deedf   d	eeef   def
ˆ fd„Zdej*                  j,                  defd„Zdej*                  j,                  defˆ fd„Zdej                  j                   defd„Zddeeej6                  f   fˆ fd„Zˆ xZS )r   TÚallow_insert_stateless_mods)ÚarangeÚzerosÚonesÚ	full_likeÚeyeNÚkindr9   r;   .r<   ÚnameÚ	type_exprÚproxy_factory_fnr   c           	      ó8  •— t         ‰| �  |||||||«      }|dk(  r.|| j                  v r |j                  | j                  |   «       |S || j                  v r	d|v rd|d<   	 t
        j                  j                  j                  |t        «      }	t
        j                  j                  j                  |t        «      }
|dk(  r t        j                  ||«      } ||	i |
¤Ž}�n*|dk(  rt        |	d   |«      } ||	dd  i |
¤Ž}�n	|dk(  rzt        | d	«      st        d
«      ‚d| _        	 | j                   j#                  |«      }t%        |«      }|t        v rt        |   |g|	¢­i |
¤Ž}n | j&                  |	i |
¤Ž}d| _        nŠ|dk(  rƒd| _        	 | j                   }|j)                  d«      }|D ]  }t        ||«      }Œ t+        |t
        j,                  «      st        dt%        |«      › �«      ‚|j/                  d¬«      }d| _        n|S t+        |t
        j                  j0                  «      st        d«      ‚|j                  |«       |S # d| _        w xY w# d| _        w xY w# t2        $ r)}t5        j6                  d|› d|› d|› �«       Y d }~|S d }~ww xY w)NÚplaceholderr   r   rD   rS   r   é   Úcall_moduleÚorig_forwardz$orig_forward not set for call_moduleTFÚget_attrú.zExpected Tensor, got r5   z"Don't support composite output yetzCould not compute metadata for z target z: )ÚsuperrH   Ú	meta_argsrP   Úorig_fnsr    rA   rE   rF   r   r   ÚgetrZ   rU   r1   Ú_disable_module_getattrrk   Úget_submoduleru   r…   Úsplitr@   rf   r6   r   Ú	ExceptionÚwarningsÚwarn)r   r}   r9   r;   r<   r~   r   r€   ÚrvÚ
args_metasÚkwargs_metasÚmeta_targetÚmeta_outÚmodÚmod_typeÚattr_itrÚatomsÚatomÚeÚ	__class__s                      €r%   rH   zMetaTracer.create_proxyÈ   s²  ø€ ô ‰WÑ!ØØØØØØàó	
ˆð �=Ò  V¨t¯~©~Ñ%=Ø×"Ñ" 4§>¡>°&Ñ#9Ô:ØˆIà�T—]‘]Ñ"ð ˜6Ñ!Ø#)��xÑ ð0	YÜŸ™Ÿ™×4Ñ4°T¼?ÓKˆJÜ Ÿ8™8Ÿ=™=×6Ñ6°v¼ÓOˆLà�Ò&ä3×7Ñ7¸ÀÓG�á&¨
ÐC°lÑC’Ø˜Ò&Ü% j°¡m°VÓ<�Ù&¨
°1°2¨ÐG¸,ÑG’Ø˜Ò&Ü˜t ^Ô4Ü(Ð)OÓPÐPØ/3�Ô,ð9àŸ)™)×1Ñ1°&Ó9�CÜ# C›y�HØÔ#8Ñ8Ü#8¸Ñ#BØð$Ø",ò$Ø0<ñ$™ð $5 4×#4Ñ#4°jÐ#QÀLÑ#Q˜à38�DÕ0Ø˜Ò#Ø/3�Ô,ð	9Ø#Ÿy™y�HØ"ŸL™L¨Ó-�EØ %ò ;˜Ü#*¨8°TÓ#:™ð;ä% h´·±Ô=Ü,Ð/DÄTÈ(Ã^ÐDTÐ-UÓVÐVØ'Ÿ{™{°&˜{Ó9�Hà38�DÕ0à�	ô ˜b¤%§(¡(§.¡.Ô1Ü$Ð%IÓJÐJØ×"Ñ" 8Ô,ð ˆ	øð/ 49�DÕ0ûð 49�DÕ0ûô ò 	YÜ�M‰MÐ;¸D¸6ÀÈ&ÈÐQSÐTUÐSVÐW×XÐXàˆ	ûð	YúsR   Á"CI' Ä(AI Å;I' ÆA3I È	I' ÈA I' É	IÉI' É	I$É$I' É'	JÉ0JÊJrl   Úattr_valÚparameter_proxy_cachec                 óD   •— t        | dd«      r|S t        ‰| �  |||«      S )NrŒ   F)rZ   rˆ   )r   rl   rž   rŸ   r�   s       €r%   rZ   zMetaTracer.getattr  s+   ø€ ô �4Ð2°EÔ:ØˆOä‘7‘? 4¨Ð3HÓIÐIr&   ÚmÚforwardc                 ó6   •— || _         t        ‰| �	  ||||«      S r(   )r…   rˆ   r„   )r   r¡   r¢   r;   r<   r�   s        €r%   r„   zMetaTracer.call_module&  s#   ø€ ð $ˆÔÜ‰wÑ" 1 g¨t°VÓ<Ð<r&   r—   c                 ó
  — d}|j                   j                  j                  «       }|› d|› �}t        | j                  |«      r#|› d|› �}|dz  }t        | j                  |«      rŒ#| j                  j                  ||«       |S )zb
        Helper method which tries to insert a module that was not declared as submodule.
        r   Ú_rƒ   )r�   rc   ÚlowerrU   rk   Ú
add_module)r   r—   ÚidxÚmod_nameÚpaths        r%   Ú_insert_module_as_submodulez&MetaTracer._insert_module_as_submodule0  sƒ   € ð ˆØ—=‘=×)Ñ)×/Ñ/Ó1ˆØ�˜1˜S˜EÐ"ˆÜ�d—i‘i Ô&Ø�Z˜q  Ð&ˆDØ�1‰HˆCô �d—i‘i Õ&ð 	�	‰	×Ñ˜T 3Ô'Øˆr&   c                 ó$  •— 	 t         ‰| �  |«      S # t        $ rt | j                  rft	        t        |j                  «       «      «      dk(  rAt	        t        |j                  «       «      «      dk(  r| j                  |«      }|| _	        |cY S ‚ w xY w)Nr   )
rˆ   Úpath_of_moduleÚ	NameErrorrw   ÚlenÚlistÚ
parametersÚbuffersr«   Úprev_module)r   r—   rª   r�   s      €r%   r­   zMetaTracer.path_of_module>  s�   ø€ ð	Ü‘7Ñ)¨#Ó.Ð.øÜò 		à×0Ò0Üœ˜SŸ^™^Ó-Ó.Ó/°1Ò4Üœ˜SŸ[™[›]Ó+Ó,°Ò1à×7Ñ7¸Ó<�Ø#'�Ô Ø’Øð		ús   ƒ ’A9BÂBrE   c                 ó   — t        || «      S r(   )r   )r   rE   s     r%   rB   zMetaTracer.proxyL  s   € Ü˜˜tÓ$Ð$r&   r‰   c           
      ó²  •— t        |t        «      st        dt        |«      › �«      ‚|| _        | j
                  D �ci c]  }|t        t        t        |«      «      “Œ c}| _	        t        «       | _        | j                  j                  «       D ]4  \  }\  }}t        t        ||«       | j                  j                  |«       Œ6 	 t        ‰
| �A  ||«      }d|i|_        || j                  j                  «       D ]  \  }\  }	}t        t        ||«       Œ S c c}w # | j                  j                  «       D ]  \  }\  }	}t        t        ||«       Œ w xY w)Nz!Expected dict for meta_args, got r‰   )r@   Údictr1   ru   r‰   Ú_TORCH_METHODS_TO_PATCHr   rZ   r    Úpatched_torch_methodsÚsetrŠ   ÚitemsÚsetattrÚaddrˆ   ÚtraceÚ_tracer_extras)r   rk   r‰   Úconcrete_argsr9   r~   rI   ÚorigÚgraphr¥   r�   s             €r%   r½   zMetaTracer.traceO  sC  ø€ Ü˜)¤TÔ*Ü Ð#DÄTÈ)Ã_ÐDUÐ!VÓWÐWØ"ˆŒð ×6Ñ6ö&
àð Ô+¬G´E¸6Ó,BÓCÑCò&
ˆÔ"ô ›ˆŒà%)×%?Ñ%?×%EÑ%EÓ%Gò 	$Ñ!ˆD‘/�7˜DÜ”E˜4 Ô)Ø�M‰M×Ñ˜dÕ#ð	$ð	+Ü‘G‘M $¨Ó6ˆEØ$/°Ð#;ˆEÔ Øà#'×#=Ñ#=×#CÑ#CÓ#Eò +‘�‘i�q˜$Üœ˜t TÕ*ñ+ùò&
øð $(×#=Ñ#=×#CÑ#CÓ#Eò +‘�‘i�q˜$Üœ˜t TÕ*ñ+ús   ¾!DÃD Ä8E)NNNr(   )rc   rd   re   rw   ÚboolÚ__annotations__r·   ri   r    rA   rE   ÚTargetÚtupler   r¶   r   r   r   r   rH   rZ   ÚnnÚModuler„   r«   r­   rB   rf   r½   Ú__classcell__)r�   s   @r%   r   r   Ã   s§  ø… Ø(,Ð Ó,âMÐð  ØØ;?ñTàðTð —‘—‘×$Ñ$ðTð �C˜�H‰oð	Tð
 �S˜#�X‘ðTð �D‰jðTð ðTð # D 6¨5 =Ñ1°DÑ8ðTð 
õTðlJØðJØ#&ðJØ?CÀCÈÀJÑ?OðJà	õJð=à�8‰8�?‰?ð=ð ˜#˜s˜(Ñ#ð=ð �C˜�H‰oð	=ð
 �S˜#�X‘ð=ð 
õ=ð¨u¯x©x¯©ð À3ó ð %§(¡(§/¡/ð °cõ ð%˜%Ÿ(™(Ÿ-™-ð %¨Ió %ñ+ T¨#¨u¯|©|Ð*;Ñ%<÷ +ñ +r&   r   rk   r‰   r¿   c                 ó"  — t        «       }|j                  | ||«      }t        | t        j                  j
                  «      r| j                  j                  n| j                  }t        j                  j                  |j                  ||«      }|S r(   )r   r½   r@   r    rÆ   rÇ   r�   rc   rA   ÚGraphModulerk   )rk   r‰   r¿   rG   rÁ   r~   Úgms          r%   r   r   g  si   € ô
 ‹\€FØ�L‰L˜˜y¨-Ó8€Eä#-¨d´E·H±H·O±OÔ#Dˆ�‰×ÒÈ$Ï-É-ð 	ô 
�‰×	Ñ	˜fŸk™k¨5°$Ó	7€BØ€Ir&   )F)NN)1rY   rJ   r�   Úcollections.abcr   Útypingr   r   r    Útorch.fxÚtorch.fx.noder   Útorch.fx.proxyr   r   Ú__all__rÆ   Ú	Embeddingrf   r
   Ú	LayerNormr   r   ÚReLUr   rÂ   r   r   r   ÚreluÚ
functionalÚwhereÚabsr   r¶   rÃ   rÅ   r   rA   r   r   r   r   ÚTracerr   rÇ   ri   rÊ   r   r)   r&   r%   ú<module>rÚ      sñ  ðÜ Û Û Ý $ß ã Û Ý Ý  ñ ˆT˜ # s (Ñ+Ô,€ò€ð&K˜UŸX™X×/Ñ/ð K¸¿¹ð KÈÏÉó KðØ
�(‰(×
Ñ
ðØ%*§\¡\ðà
‡\�\óð˜5Ÿ<™<ð ¨E¯L©Ló ð §¡§¡ð °5·<±<ð ÀEÇLÁLó ñ §¡ð °tð ÈÏÉó ðSØ�|‰|ðSØ %§¡ðSØ16·±ðSà
‡\�\óSð 8<òØ�<‰<ðØ!&§¡°Ñ!4ðà
‡\�\óð 
‡H�H×ÑÐ*Ø	‡H�H×ÑÐ-Ø	‡J�JÐ#Ø	‡H�H×Ñ×ÑÐ6Ø	‡H�H‡M�MÐ)Ø	‡K�KÐ%Ø	‡I�IÐ!ðGÐ �t˜H S¨# XÑ.°¸¸c¸Ñ0BÐBÑCó ðØðà
ˆ8�C˜�HÑ˜rÐ!Ñ"óô.+&�—‘—‘ô +&ô\
�Iô 
ô.	˜-ô 	ð	�sð 	˜só 	ôa+�—‘—‘ô a+ðL 15Ø+/ñØ
�(‰(�/‰/˜H S¨# XÑ.Ñ
.ðà�C˜Ÿ™Ð%Ñ&¨Ñ-ðð ˜˜S˜‘> DÑ(ðð ‡X�X×Ñô	r&   