Ë
    P/æj º  ã                   ó,  — d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZ d dl	Z
d dlZ
d dlZ
d dlZ
d dlZ
d dlmZ d dlmZ d dlmZ d dlmZ ddlmZmZmZ dd	lmZ dd
lmZmZm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@mAZA 	 d dlBZC	 d dlEmFZF erd dlGmHZH  ej’                  eJ«      ZKeLj›                  e
jœ                  jœ                  jž                  e
j                   j¢                  j¤                  e
j                   j¢                  j¦                  e
j                   jœ                  jž                  e
j                   jœ                  j¨                  e
jª                  j¬                  e
j®                  j°                  j²                  e
j®                  j´                  j¶                  e
j®                  j´                  j¸                  e
j®                  j´                  jº                  e
j¼                  j¾                  jÀ                  e
j                   jÂ                  jÄ                  e
j                   jÂ                  jÆ                  e
j                   jÂ                  jÈ                  e
j                   jÂ                  jÊ                  e
j                   jÌ                  jÎ                  e
jÐ                  j¼                  j¾                  jÀ                  e
jÒ                  j¼                  j¾                  jÀ                  g«      ZjeLj›                  e
jÖ                  jØ                  jÚ                  e
jÜ                  g«      Zoe
jà                  e
jâ                  jä                  e
jª                  jæ                  e
jª                  jè                  e
jÒ                  jê                  e
jÒ                  jì                  e
jp                  jì                  e
jî                  e
jð                  e
jò                  e
jô                  e
jö                  e
jø                  e
jú                  e
jü                  e
jþ                  �j                   �j                  �j                  e
�j                  e
jª                  �j                  e
j                   �j
                  gZ†e
jp                  jí                  «       rTe†�j                  e
jp                  �j                  e
jp                  �j                  e
jp                  �j                  g«       eLj›                  e†«      Z†e
�j                  �j                  de
�j                  �j                  de
jª                  �j                  de
�j                  �j                   �j"                  de
jÖ                  �j$                  de
�j&                  �j(                  �j*                  de
jâ                  �j*                  de
�j,                  �j*                  de
�j,                  �j.                  de
jþ                  �j0                  �j2                  �j4                  di
Z›eLj›                  g d¢«      Zœ G d„ de3«      Z� G d„ de�«      Zž G d„ d e�«      ZŸy# eD$ r dZCY �ŒÄw xY w# eD$ r dZFY �ŒËw xY w)!é    N)ÚDictÚListÚTYPE_CHECKING)ÚTracingContext)Úwarning_once)Ú_StreamBase)Ú"is_traceable_wrapper_subclass_typeé   )ÚconfigÚ	polyfillsÚ	variables)Ú	PyCodegen)Ú!can_convert_to_tracable_parameterÚnew_parameter_placeholderÚtracable_create_parameter)Ú get_registered_device_interfaces)Úunimplemented)ÚGuardBuilderÚinstall_guard)ÚSyntheticLocalSource)Úcheck_unspec_or_constant_argsÚguard_if_dynÚhas_torch_functionÚhashableÚproductÚproxy_args_kwargsÚunwrap_if_wrapperé   )ÚVariableTracker)ÚAutocastModeVariableÚNullContextVariableÚTorchFunctionDisableVariable)ÚDistributedVariableÚProcessGroupVariable)ÚListVariableÚTupleVariable)Úcan_dispatch_torch_functionÚdispatch_torch_functionÚTorchFunctionModeStackVariable)Ú_fsdp_param_group)ÚInstructionTranslatorFT)ÚaddÚsubÚmulÚdivÚsqrtc                   óT   ‡ — e Zd ZdZed„ «       Zd	ˆ fd„Zd„ Zd„ Zd„ Z	d
d„Z
d„ Zˆ xZS )ÚBaseTorchVariablezHcommon base for all torch.* functions, classes, modules and other thingsc                 óf   — t        |j                  t        j                  «      «        | ||¬«      S )N)Úsource)r   Ú
make_guardr   ÚFUNCTION_MATCH)ÚclsÚvaluer4   s      ú`/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_dynamo/variables/torch.pyÚcreate_with_sourcez$BaseTorchVariable.create_with_source›   s(   € ä�f×'Ñ'¬×(CÑ(CÓDÔEÙ�5 Ô(Ð(ó    c                 ó2   •— t        ‰| �  di |¤Ž || _        y )N© )ÚsuperÚ__init__r8   )Úselfr8   ÚkwargsÚ	__class__s      €r9   r?   zBaseTorchVariable.__init__    s   ø€ Ü‰ÑÑ"˜6Ò"Øˆ�
r;   c                 ó<  — 	 | j                   j                  › d| j                   j                  › �}dt        j                  dd|«      z   }|j                  |j                  || j                   «      «       y # t        $ r dt	        | j                   «      › �}Y Œiw xY w)Nú.Ú
torch_obj_Ú__z[^a-zA-Z0-9_]+Ú_)	r8   Ú
__module__Ú__name__Ú	ExceptionÚidÚrer-   Úextend_outputÚsetup_globally_cached)r@   ÚcodegenÚnameÚunique_var_names       r9   ÚreconstructzBaseTorchVariable.reconstruct¤   s�   € ð	1Ø—j‘j×+Ñ+Ð,¨A¨d¯j©j×.AÑ.AÐ-BÐCˆDð ¤§¡Ð(9¸3ÀÓ!EÑEˆØ×ÑØ×)Ñ)¨/¸4¿:¹:ÓFõ	
øô ò 	1Ø¤ 4§:¡:£Ð/Ð0ŠDð	1ús   ‚/A7 Á7!BÂBc                 ó   — | j                   S ©N©r8   ©r@   s    r9   Úas_proxyzBaseTorchVariable.as_proxy®   ó   € Ø�z‰zÐr;   c                 ó   — | j                   S rT   rU   rV   s    r9   Úas_python_constantz$BaseTorchVariable.as_python_constant±   rX   r;   c                 ól   — t        | j                  |«      }t        j                  j	                  |«      S rT   )Úhasattrr8   r   ÚConstantVariableÚcreate)r@   ÚtxrP   Úresults       r9   Úcall_hasattrzBaseTorchVariable.call_hasattr´   s)   € Ü˜Ÿ™ TÓ*ˆÜ×)Ñ)×0Ñ0°Ó8Ð8r;   c                 ó\   — | j                   t        v ryt        | j                   dd «      dk(  S )NTrH   Úmath)r8   Úconstant_fold_functionsÚgetattrrV   s    r9   Úcan_constant_fold_throughz+BaseTorchVariable.can_constant_fold_through¸   s*   € Ø�:‰:Ô0Ñ0ØÜ�t—z‘z <°Ó6¸&Ñ@Ð@r;   )ÚreturnN©r_   r+   )rI   rH   Ú__qualname__Ú__doc__Úclassmethodr:   r?   rR   rW   rZ   ra   rf   Ú__classcell__©rB   s   @r9   r2   r2   ˜   s7   ø„ ÙRàñ)ó ð)õò
òòó9öAr;   r2   c                   óP   ‡ — e Zd ZdZdefd„Zed„ «       Z	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZ	S )ÚTorchCtxManagerClassVariablezLPoints to a context manager class in torch.* that dynamo has implementationsrg   c                 ó"   — d| j                   › d�S )NzTorchCtxManagerClassVariable(ú)rU   rV   s    r9   Ú__repr__z%TorchCtxManagerClassVariable.__repr__Á   ó   € Ø.¨t¯z©z¨l¸!Ð<Ð<r;   c                 ó\   — t        | «      } t        | «      xr t        | «      xr | t        v S rT   )r   Úcallabler   Úsupported_ctx_manager_classesrU   s    r9   Úis_matching_clsz,TorchCtxManagerClassVariable.is_matching_clsÄ   s6   € ô " %Ó(ˆô �U‹Oò ä˜“ò ;ØÔ:Ð:ð	
r;   c           
      óâ  •— ddl m}m}m}m}m}m}	m}
m}m	}m
}m} | j                  t        j                  u rlt        |«      dk(  rLt!        |d   t"        j$                  j&                  «      r%|	j)                  |d«      }|j+                  |||«      S |	j)                  |d«      S | j                  t        j,                  u rlt        |«      dk(  rLt!        |d   t"        j$                  j&                  «      r%|	j)                  |d«      }|j+                  |||«      S |	j)                  |d«      S | j                  t        j.                  u r3t        |«      dk(  r%|	j)                  ||d   j1                  «       d¬«      S | j                  t        j2                  u rSt        |«      dk  rt        |«      dk(  sJ ‚t        |«      dk(  r|d   j1                  «       nd}|
j)                  ||«      S t5        j6                  | j                  «      rPt9        | j                  t:        «      r6ddlm}  ||||j@                  jC                  d| j                  d	i «      «      S | j                  t        jD                  jF                  jH                  t        jJ                  jD                  jH                  t        jL                  jD                  jH                  fv r!tO        j(                  | j                  ||«      S | j                  t        jP                  jR                  t        jP                  jT                  t        jV                  jP                  jR                  t        jV                  jP                  jT                  fv r%tY        tZ        d
| j                  «       t]        «       S | j                  t        j^                  j`                  u r|s|rJ ‚tc        j(                  |«      S | j                  t        jd                  jf                  jh                  u r9t        |«      dk(  sJ ‚|j)                  ||D �cg c]  }tk        |«      ‘Œ c}«      S | j                  t        jd                  jl                  jn                  u r!t        |«      dk(  sJ ‚|j)                  |«      S | j                  t        jV                  jp                  jr                  u r9t        |«      dk(  sJ ‚|j)                  ||D �cg c]  }tk        |«      ‘Œ c}«      S | j                  t        jV                  jp                  jt                  u r!t        |«      dk(  sJ ‚|j)                  |«      S | j                  t        jd                  jl                  jv                  u r!t        |«      dk(  sJ ‚|j)                  |«      S | j                  t        jd                  jl                  jx                  u r9t        |«      dk(  sJ ‚|j)                  ||D �cg c]  }tk        |«      ‘Œ c}«      S | j                  t        jV                  jz                  j|                  u r3t        |«      dk(  sJ ‚|j)                  ||d   j1                  «       «      S t~        �]| j                  t~        j€                  j‚                  u r7t        |«      dk(  sJ ‚|j)                  ||d   |d   j1                  «       «      S t„        ‰| �U  |||«      S c c}w c c}w c c}w )Nr   )Ú!DisabledSavedTensorsHooksVariableÚDualLevelContextManagerÚ&FSDPParamGroupUseTrainingStateVariableÚ&GradIncrementNestingCtxManagerVariableÚ)GradInplaceRequiresGradCtxManagerVariableÚGradModeVariableÚInferenceModeVariableÚ%JvpIncrementNestingCtxManagerVariableÚSetFwdGradEnabledContextManagerÚStreamVariableÚ&VmapIncrementNestingCtxManagerVariabler   FT)Úinitialized)Úwrap_fx_proxy_clsÚcall_functionr=   z$Profiler function %s will be ignoredr
   )CÚ ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r8   ÚtorchÚno_gradÚlenÚ
isinstancer   Ú	functionsÚBaseUserFunctionVariabler^   r†   Úenable_gradÚset_grad_enabledrZ   Úinference_modeÚinspectÚisclassÚ
issubclassr   Útorch._dynamo.variables.builderr…   ÚoutputÚcreate_proxyÚampÚautocast_modeÚautocastÚcudaÚcpur    ÚprofilerÚprofileÚrecord_functionÚautogradr   Úlogr!   Ú_CÚDisableTorchFunctionSubclassr"   Ú
_functorchÚvmapÚvmap_increment_nestingr   Úeager_transformsÚjvp_increment_nestingÚ
forward_adÚ_set_fwd_grad_enabledÚ
dual_levelÚgrad_increment_nestingÚenable_inplace_requires_gradÚgraphÚdisable_saved_tensors_hooksr*   ÚFSDPParamGroupÚuse_training_stater>   )r@   r_   ÚargsrA   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   ÚctxÚinf_moder…   ÚxrB   s                      €r9   r†   z*TorchCtxManagerClassVariable.call_functionÔ   s•  ø€ ÷	
÷ 	
÷ 	
ñ 	
ð �:‰:œŸ™Ñ&Ü�4‹y˜AŠ~¤*Ø�Q‘œ×,Ñ,×EÑEô#ð '×-Ñ-¨b°%Ó8�Ø×(Ñ(¨¨T°6Ó:Ð:à'×.Ñ.¨r°5Ó9Ð9Ø�Z‰Zœ5×,Ñ,Ñ,Ü�4‹y˜AŠ~¤*Ø�Q‘œ×,Ñ,×EÑEô#ð '×-Ñ-¨b°$Ó7�Ø×(Ñ(¨¨T°6Ó:Ð:Ø#×*Ñ*¨2¨tÓ4Ð4Ø�Z‰Zœ5×1Ñ1Ñ1´c¸$³iÀ1²nØ#×*Ñ*Ø�D˜‘G×.Ñ.Ó0¸dð +ó ð ð �Z‰Zœ5×/Ñ/Ñ/Ü�t“9 ’>¤c¨&£k°QÒ&6Ð6Ð6Ü7:¸4³yÀA²~�t˜A‘w×1Ñ1Ô3È4ˆHØ(×/Ñ/°°HÓ=Ð=Ü�_‰_˜TŸZ™ZÔ(¬Z¸¿
¹
ÄKÔ-PÝIá$ØØØ—	‘	×&Ñ&Ø#Ø—J‘JØØó	ó	ð 	ð �Z‰ZÜ�I‰I×#Ñ#×,Ñ,Ü�J‰J�N‰N×#Ñ#Ü�I‰I�M‰M×"Ñ"ð
ñ 
ô
 (×.Ñ.¨t¯z©z¸4ÀÓHÐHØ�Z‰ZÜ�N‰N×"Ñ"Ü�N‰N×*Ñ*Ü�N‰N×#Ñ#×+Ñ+Ü�N‰N×#Ñ#×3Ñ3ð	
ñ 
ô œÐDÀdÇjÁjÔQÜ&Ó(Ð(Ø�Z‰Zœ5Ÿ8™8×@Ñ@Ñ@Ù¡Ð'Ð'Ü/×6Ñ6°rÓ:Ð:Ø�Z‰Zœ5×+Ñ+×0Ñ0×GÑGÑGÜ�t“9 ’>Ð!�>Ø9×@Ñ@ØØ*.Ö/ Q”˜a•Ò/óð ð �Z‰Zœ5×+Ñ+×<Ñ<×RÑRÑRÜ�t“9 ’>Ð!�>Ø8×?Ñ?ÀÓCÐCØ�Z‰Zœ5Ÿ>™>×4Ñ4×JÑJÑJÜ�t“9 ’>Ð!�>Ø2×9Ñ9ØØ*.Ö/ Q”˜a•Ò/óð ð �Z‰Zœ5Ÿ>™>×4Ñ4×?Ñ?Ñ?Ü�t“9 ’>Ð!�>Ø*×1Ñ1°"Ó5Ð5Ø�Z‰Zœ5×+Ñ+×<Ñ<×SÑSÑSÜ�t“9 ’>Ð!�>Ø9×@Ñ@ÀÓDÐDà�J‰Jœ%×*Ñ*×;Ñ;×XÑXÑXä�t“9 ’>Ð!�>Ø<×CÑCØØ*.Ö/ Q”˜a•Ò/óð ð �Z‰Zœ5Ÿ>™>×/Ñ/×KÑKÑKÜ�t“9 ’>Ð!�>Ø4×;Ñ;Ø�D˜‘G×.Ñ.Ó0óð ô Ð)Ø—
‘
Ô/×>Ñ>×QÑQÑQä�t“9 ’>Ð!�>Ø9×@Ñ@Ø�D˜‘G˜T !™W×7Ñ7Ó9óð ô ‰wÑ$ R¨¨vÓ6Ð6ùòO 0ùò 0ùò 0s   Ð-["
Ó'['
×2[,
©r_   r+   r±   zList[VariableTracker]rA   zDict[str, VariableTracker]rg   r   )
rI   rH   ri   rj   Ústrrr   Ústaticmethodrw   r†   rl   rm   s   @r9   ro   ro   ¾   s\   ø„ ÙVð=˜#ó =ð ñ
ó ð
ðt7à#ðt7ð &ðt7ð -ð	t7ð
 
÷t7ñ t7r;   ro   c                   ó    — e Zd ZdZdefd„Zd„ Ze ej                  d«      d„ «       «       Z
	 	 	 	 	 	 	 	 dd„Zdd„Zedd	„«       Zedd
„«       Zy)ÚTorchInGraphFunctionVariablez@Points to a torch function/method that should be put in FX graphrg   c                 ó"   — d| j                   › d�S )NzTorchInGraphFunctionVariable(rq   rU   rV   s    r9   rr   z%TorchInGraphFunctionVariable.__repr__N  rs   r;   c                 ó   — | j                   S rT   rU   rV   s    r9   Úget_functionz)TorchInGraphFunctionVariable.get_functionQ  rX   r;   Nc                  ó  ‡.‡/‡0‡1‡2‡3‡4‡5‡6‡7‡8— i Š6ˆ6fd„} ddl m} ddlmŠ.mŠ/mŠ0mŠ2mŠ3mŠ4m	Š5 ddl
mŠ1mŠ7mŠ8  | t        Ž 	 	 d2ˆ.fd„«       } | t        j                   j"                  j$                  «      	 	 d2ˆ1fd„«       } | t        j&                  j(                  j*                  j,                  «      d2ˆ1fd	„«       } | t.        j0                  «      d2ˆ1fd
„«       } | t        j2                  t        j                   j4                  «      d2ˆ.ˆ4ˆ5fd„«       } | t        j6                  t        j8                  «      d2ˆ.ˆ4fd„«       } | t        j:                  «      d2ˆ.ˆ4fd„«       } | t<        Ž d2ˆ4fd„«       }	 | t        j>                  j@                  jB                  jD                  t        j>                  j@                  jB                  jF                  t        j>                  j@                  jB                  jH                  t        j>                  j@                  jB                  jJ                  t        j>                  j@                  jB                  jL                  «      d2d„«       }
 | t        jN                  «      ˆ.ˆ0fd„«       } | t        jP                  «      	 d3	 d2ˆ/fd„«       } | t        jR                  «      ˆ.ˆ/fd„«       } | t        jT                  jV                  «      ˆ.fd„«       } | t        j                   jX                  t        j                   jZ                  t        j                   j\                  «      d2ˆ.fd„«       } | t^        ja                  d„ tc        «       D «       «      Ž d2ˆ2fd„«       } | t        jd                  «      d2ˆ4ˆ8fd„«       } | t        jf                  jh                  «      d2d„«       } | t        jj                  jl                  jn                  «      	 	 d2ˆ.ˆ4fd„«       } | t        jB                  jp                  jr                  «      d2d„«       } | t        j>                  jt                  «      d2d„«       } | t        j&                  jv                  jx                  t        j&                  jv                  jx                  jz                  «      d4d„«       } | t        j&                  jv                  j|                  t        j&                  jv                  j|                  jz                  «      d4d„«       } | t        j~                  «      d2d„«       } | t        j€                  «      	 	 d2ˆ1fd „«       } | t        j‚                  «      	 	 d2ˆ1ˆ4fd!„«       } | t        j„                  «      d2ˆ.fd"„«       } | |«      d2ˆ7fd#„«       }t‡        jˆ                  «       rGdd$lEmF}mG}mH}mI} mJ}! dd%lKmL}"  | ||||!| «      	 	 d2ˆ.ˆ1fd&„«       }# | |"jš                  «      d2ˆ7fd'„«       }$ | t        jœ                  jž                  «      	 d4dd(œ	 d2d)„«       }% | t        j>                  j                   j¢                  «      d2d*„«       }& | t        j¤                  j¦                  j¨                  jª                  «      d2ˆ.ˆ3fd+„«       }' | t        jT                  j¬                  j®                  «      	 	 d2d,„«       }( | t        j°                  «      d2ˆ3ˆ4fd-„«       }) | t        jT                  j²                  «      	 	 d2d.„«       }* | t        jT                  j´                  «      	 	 d2ˆ.fd/„«       }+ | t        jT                  j¶                  «      	 	 d2ˆ.fd0„«       }, | t        j¸                  «      	 	 d2d1„«       }-‰6S )5z‡Build a dict from function -> method to handle it so that we are O(1)
        in terms of the number of function with special handling.c                  ó6   •‡ — ˆ ˆfd„}t        ‰ d   «      sJ ‚|S )Nc                 ó6   •— ‰D ]  }|‰vsJ |«       ‚| ‰|<   Œ | S rT   r=   )ÚhandlerÚfnÚfnsÚhandlerss     €€r9   Ú	_registerzOTorchInGraphFunctionVariable._get_handlers.<locals>.register.<locals>._register\  s5   ø€ Øò +�BØ XÑ-Ð1¨rÓ1Ð-Ø#*�H˜R’Lð+ð �r;   r   )ru   )rÂ   rÄ   rÃ   s   ` €r9   Úregisterz<TorchInGraphFunctionVariable._get_handlers.<locals>.register[  s"   ù€ õô ˜C ™FÔ#Ð#Ð#ØÐr;   r   )Ú
SDPAParamsr   )r]   ÚDeterministicAlgorithmsVariabler~   ÚStreamContextVariableÚSymNodeVariableÚTensorVariableÚUserDefinedObjectVariable)ÚSourcelessBuilderÚwrap_fx_proxyr…   c                 ól  •— |s|rJ ‚| j                   t        j                  j                  t        j                  j
                  j                  t        j                  j                  t        j                  j                  fv r|j                  «        ‰j                  t        | j                      «      S rT   )r8   rˆ   Ú_utilsÚis_compilingÚ_dynamoÚexternal_utilsÚcompilerÚis_dynamo_compilingÚmark_inconsistent_side_effectsr^   Útracing_state_functions©r@   r_   r±   rA   r]   s       €r9   Úhandle_tracing_state_functionszRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_tracing_state_functionsr  s„   ø€ ñ ¡FÐ*Ð*à�z‰zÜ—‘×)Ñ)Ü—‘×,Ñ,×9Ñ9Ü—‘×+Ñ+Ü—‘×2Ñ2ð	ñ ð ×1Ñ1Ô3Ø#×*Ñ*Ô+BÀ4Ç:Á:Ñ+NÓOÐOr;   c                 ó`   •— ‰j                  |t        j                  j                  «       «      S rT   )r^   rˆ   Ú	overridesÚget_default_nowrap_functions©r@   r_   r±   rA   rÌ   s       €r9   Ú#handle_get_default_nowrap_functionszWTorchInGraphFunctionVariable._get_handlers.<locals>.handle_get_default_nowrap_functions�  s*   ø€ ð %×+Ñ+Ø”E—O‘O×@Ñ@ÓBóð r;   c                 óf   •— |j                  ‰j                  |t        j                  «      ||«      S rT   )Úinline_user_function_returnr^   r   Úaccumulate_gradrÜ   s       €r9   Úhandle_accumulate_grad_zKTorchInGraphFunctionVariable._get_handlers.<locals>.handle_accumulate_grad_�  s0   ø€ à×1Ñ1Ø!×(Ñ(¨¬Y×-FÑ-FÓGÈÈvóð r;   c                 ó€   •— t        ||«      s1|j                  ‰j                  |t        j                  «      ||«      S y rT   )r   rß   r^   r   ÚradiansrÜ   s       €r9   Úhandle_radianszBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_radians“  s?   ø€ ä0°°vÔ>à×5Ñ5Ø%×,Ñ,¨R´×1BÑ1BÓCÀTÈ6óð ð ?r;   c                 óð   •— t        |‰«      sH| j                  t        j                  j                  u r3t        |‰«      r't        |j                  d«      r‰j                  d«      S ‰j                  d«      S )NÚ__torch_function__TF)r‹   r8   rˆ   rÚ   Úis_tensor_liker\   r^   )r@   r_   Úargr]   rÊ   rË   s      €€€r9   Úhandle_is_tensorzDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_tensor›  s_   ø€ ä˜#˜~Ô.Ø—
‘
œeŸo™o×<Ñ<Ñ<Ü˜sÐ$=Ô>Ü˜CŸI™IÐ';Ô<à'×.Ñ.¨tÓ4Ð4à'×.Ñ.¨uÓ5Ð5r;   c                 óp  •— |}t        |‰«      r§|j                  �š| j                  t        j                  u r%‰j                  |j                  j                  «      S | j                  t        j                  u r%‰j                  |j                  j                  «      S t        d| j                  › �«      ‚y y )Nzcalling )r‹   Údtyper8   rˆ   Úis_floating_pointr^   Ú
is_complexÚAssertionError)r@   r_   ÚinputÚ	input_argr]   rÊ   s       €€r9   Úhandle_is_floating_pointzLTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_floating_point¦  s–   ø€ ð
 ˆIÜ˜) ^Ô4¸¿¹Ð9TØ—:‘:¤×!8Ñ!8Ñ8Ø+×2Ñ2°9·?±?×3TÑ3TÓUÐUØ—Z‘Z¤5×#3Ñ#3Ñ3Ø+×2Ñ2°9·?±?×3MÑ3MÓNÐNä(¨8°D·J±J°<Ð)@ÓAÐAð :UÐ4r;   c                 ó¾   •— t        |‰«      r0|j                  �$‰j                  t        |j                  «      «      S t        |‰«      r|j	                  |dg i «      S y )NÚnumel)r‹   Úsizer^   r   Úcall_method)r@   r_   rï   r]   rÊ   s      €€r9   Úhandle_numelz@TorchInGraphFunctionVariable._get_handlers.<locals>.handle_numel´  sV   ø€ ä˜% Ô0°U·Z±ZÐ5KØ'×.Ñ.¬w°u·z±zÓ/BÓCÐCÜ˜E >Ô2à×(Ñ(¨¨W°b¸"Ó=Ð=ð 3r;   c                 óH   •— t        |‰«      sJ ‚|j                  |dg i «      S ©Nrô   )r‹   rõ   )r@   r_   rï   rÊ   s      €r9   Úhandle_tensor_size_rewriteszOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_tensor_size_rewrites¼  s*   ø€ ä˜e ^Ô4Ð4Ð4Ø×$Ñ$ R¨°°RÓ8Ð8r;   c                 ó(   — | j                  |||«      S rT   )Ú_call_ntuple©r@   r_   r±   rA   s       r9   Úhandle_ntuplezATorchInGraphFunctionVariable._get_handlers.<locals>.handle_ntupleÁ  s   € ð ×$Ñ$ R¨¨vÓ6Ð6r;   c                 ót   •— t        ‰j                  «       ‰j                  t        j                  «       «      S rT   )r   Ú_guards_singletonr^   rˆ   Úis_grad_enabled)r@   r_   r]   r~   s     €€r9   Úhandle_is_grad_enabledzJTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_grad_enabledË  s,   ø€ äÐ*×<Ñ<Ô=Ø#×*Ñ*¬5×+@Ñ+@Ó+BÓCÐCr;   c                 ó~   •— |r|j                  «       rt        d«       ‰j                  ||j                  «       «      S )Nz2torch.use_deterministic_algorithms(warn_only=True))rZ   r   r^   )r@   r_   ÚmodeÚ	warn_onlyrÇ   s       €r9   Ú#handle_use_deterministic_algorithmszWTorchInGraphFunctionVariable._get_handlers.<locals>.handle_use_deterministic_algorithmsÐ  s8   ø€ ñ ˜Y×9Ñ9Ô;ÜÐRÔSØ2×9Ñ9¸"¸d×>UÑ>UÓ>WÓXÐXr;   c                 ót   •— t        ‰j                  «       ‰j                  t        j                  «       «      S rT   )r   rÿ   r^   rˆ   Ú$are_deterministic_algorithms_enabled)r@   r_   r]   rÇ   s     €€r9   Ú+handle_are_deterministic_algorithms_enabledz_TorchInGraphFunctionVariable._get_handlers.<locals>.handle_are_deterministic_algorithms_enabledØ  s,   ø€ äÐ9×KÑKÔLØ#×*Ñ*¬5×+UÑ+UÓ+WÓXÐXr;   c                 ó€   •— t        t        j                  «       ‰j                  |j                  j
                  «      S rT   )r   r"   rÿ   r^   r•   Útorch_function_enabled)r@   r_   r]   s     €r9   Ú handle_is_torch_function_enabledzTTorchInGraphFunctionVariable._get_handlers.<locals>.handle_is_torch_function_enabledÝ  s-   ø€ äÔ6×HÑHÔIØ#×*Ñ*¨2¯9©9×+KÑ+KÓLÐLr;   c                 ó´   •— t        |«      dk(  r't        |d   t        «      r|d   j                  |«      n|}‰j	                  t        d„ |D «       «      «      S )Nr   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrT   )r   ©Ú.0r´   s     r9   ú	<genexpr>z`TorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_torch_function.<locals>.<genexpr>î  s   è ø€ Ò9¨aÔ& q×)Ñ9ùs   ‚)rŠ   r‹   r&   Úunpack_var_sequencer^   Úany)r@   r_   r±   Úelemsr]   s       €r9   Úhandle_has_torch_functionzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_has_torch_functionâ  s\   ø€ ô �t“9 ’>¤j°°a±¼-Ô&Hð �Q‘×+Ñ+¨BÔ/àð ð
 $×*Ñ*ÜÑ9°5Ô9Ó9óð r;   c              3   ó:   K  — | ]  \  }}|j                   –— Œ y ­wrT   )Ústream)r  rG   Údevice_interfaces      r9   r  z=TorchInGraphFunctionVariable._get_handlers.<locals>.<genexpr>ò  s#   è ø€ ò á'�AÐ'ð !×'Õ'ñùs   ‚c                 ó(   •— ‰j                  ||«      S rT   )r^   )r@   r_   r  rÈ   s      €r9   Úhandle_device_interface_streamzRTorchInGraphFunctionVariable._get_handlers.<locals>.handle_device_interface_streamñ  s   ø€ ð )×/Ñ/°°FÓ;Ð;r;   c                 óÜ   •— t         j                  st        d«       t        st        d«        ‰‰| |j                  j
                  dt        j                  gt        |i «      ¢­Ž d ¬«      S )Nz-torch.from_numpy. config.trace_numpy is Falsez(torch.from_numpy. NumPy is not availabler†   )Ú
target_clsr_   ÚproxyÚexample_value)	r   Útrace_numpyr   Únpr•   r–   rˆ   Ú	as_tensorr   )r@   r_   r±   rÊ   r…   s      €€r9   Úhandle_from_numpyzETorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_numpyú  sh   ø€ ä×%Ò%ÜÐMÔNÝÜÐHÔIÙ$Ø)ØØ,�b—i‘i×,Ñ,Ø#Ü—O‘Oðô ' t¨RÓ0òð
 #ô	ð 	r;   c                 ó   — |S rT   r=   )r@   r_   Úthe_typeÚ	the_values       r9   Úhandle_jit_annotatezGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_jit_annotate  s   € àÐr;   c                 ó  •— |rJ d«       ‚t        |‰«      sJ d«       ‚t        j                  d|j                  |j                  ¬«      }‰j                  t        j                  j                  j                  |«      «      S )Nz%Expect 1 input to cudnn.is_acceptablez2Expect input to cudnn.is_acceptable to be a tensorr   )rë   Údevice)	r‹   rˆ   Útensorrë   r'  r^   ÚbackendsÚcudnnÚis_acceptable)r@   r_   r(  ÚextraÚ
tensor_inpr]   rÊ   s        €€r9   Úhandle_cudnn_is_acceptablezNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_cudnn_is_acceptable  s{   ø€ ñ ÐEÐEÓE�9ÜØ˜ôð DàCóDð ô Ÿ™ a¨v¯|©|ÀFÇMÁMÔRˆJØ#×*Ñ*Ü—‘×$Ñ$×2Ñ2°:Ó>óð r;   c                 óH   — t        j                  j                  |g|¢­i |¤ŽS rT   )r   ÚBackwardHookVariabler^   rü   s       r9   Úhandle_backward_hookzHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_backward_hook!  s#   € ä×1Ñ1×8Ñ8¸ÐM¸dÒMÀfÑMÐMr;   c                 ó.   —  | j                   |g|¢­i |¤ŽS rT   )Úcall_nn_parameterrü   s       r9   Úhandle_parameterzDTorchInGraphFunctionVariable._get_handlers.<locals>.handle_parameter%  s   € à)�4×)Ñ)¨"Ð>¨tÒ>°vÑ>Ð>r;   Nc                 ó2   — |�|j                  |d|gi «      S y rø   ©rõ   ©Úself_r_   r@   Údims       r9   Úhandle_sym_sizezCTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_size)  s'   € ð ˆØ×'Ñ'¨¨F°S°E¸2Ó>Ð>ð r;   c                 ó2   — |�|j                  |d|gi «      S y )NÚstrider6  r7  s       r9   Úhandle_sym_stridezETorchInGraphFunctionVariable._get_handlers.<locals>.handle_sym_stride/  s%   € àˆØ×'Ñ'¨¨H°s°e¸RÓ@Ð@ð r;   c                 ób  — t        |«      dk(  r¡d|v rœt        |«      dk(  r�t        t        j                  «      j	                  |g |dd  ¢i «      }t        t        j
                  «      j	                  |||d   gi «      }t        t        j                  «      j	                  ||d   |gi «      S y y y )Né   r8   r   r   )rŠ   r¹   rˆ   r/   r†   r.   r,   )r@   r_   r±   rA   r`   s        r9   Úhandle_addcdivzBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_addcdiv4  s¯   € ä�4‹y˜AŠ~ '¨VÑ"3¼¸F»ÀqÒ8Hô 6´e·i±iÓ@×NÑNØ˜˜$˜q˜r˜(˜ Ró�ô 6´e·i±iÓ@×NÑNØ˜ ¨¡Ð1°2ó�ô 4´E·I±IÓ>×LÑLØ˜˜a™ &Ð)¨2óð ð 9IÐ"3ˆ~r;   c                 ó²   •— t        |«      dk(  rHt        |d   t        «      s4|s1|j                  ‰j	                  |t
        j                  «      ||«      S y y y )Nr?  r
   )rŠ   r‹   r%   rß   r^   r   Úforeach_lerp_inplacerÜ   s       €r9   Ú"handle_inplace_foreach_lerp_scalarzVTorchInGraphFunctionVariable._get_handlers.<locals>.handle_inplace_foreach_lerp_scalarC  s[   ø€ ô �4‹y˜AŠ~¤j°°a±¼,Ô&GÑPVØ×5Ñ5Ø%×,Ñ,¨R´×1OÑ1OÓPØØóð ð QWÐ&Gˆ~r;   c                 óª   •— t        |«      dk(  rDt        |d   ‰«      r4|s1|j                  ‰j                  |t        j
                  «      ||«      S y y y )Nr
   r   )rŠ   r‹   rß   r^   r   Úforeach_pow_scalar)r@   r_   r±   rA   rÌ   rÊ   s       €€r9   Úhandle_foreach_pow_scalarzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_foreach_pow_scalarN  sZ   ø€ ô �4‹y˜AŠ~¤*¨T°!©W°nÔ"EÉfØ×5Ñ5Ø%×,Ñ,¨R´×1MÑ1MÓNØØóð ð OUÐ"Eˆ~r;   c                 ó¬   •— |j                  «       r|j                  «       s*t        |t        j                  «      r|j                  «       r ‰d «      S y y rT   )Úis_python_constantrZ   r‹   r   rÉ   Úevaluate_expr)r@   r_   Ú	conditionÚmessager]   s       €r9   Úhandle_assertzATorchInGraphFunctionVariable._get_handlers.<locals>.handle_assert[  sL   ø€ à×,Ñ,Ô.°9×3OÑ3OÔ3QÜ˜9¤i×&?Ñ&?Ô@Ø×+Ñ+Ô-á'¨Ó-Ð-ð .ð Ar;   c           
      ó–   •—  ‰| |j                   j                  dt        j                  j                  gt        ||«      ¢­Ž |¬«      S )Nr†   )r  Ú
param_vars)r•   r–   rˆ   r¡   Ú_SDPAParamsr   )r@   r_   r±   rA   rÍ   s       €r9   Úhandle_sdpa_paramszFTorchInGraphFunctionVariable._get_handlers.<locals>.handle_sdpa_paramsc  sM   ø€ á ØØ,�b—i‘i×,Ñ,Ø#Ü—H‘H×(Ñ(ðô ' t¨VÓ4òð
  ôð r;   )Ú_get_group_size_by_nameÚ_get_group_tagÚ_rank_not_in_groupÚ$_resolve_group_name_by_ranks_and_tagÚget_process_group_ranks)ÚDTensorc                 ón  •— t        |«      dk(  rt        |d   t        ‰f«      sOJ ‚t        |«      dk(  r$t        |d   t        «      rt        |d   ‰«      sJ ‚t	        d|› d| j
                  › �«      ‚|D �cg c]  }|j                  «       ‘Œ }} | j
                  |Ž }‰j                  ||«      S c c}w )Nr   r   r
   zInvalid group value (z) for constant pg function )rŠ   r‹   r$   r%   rî   r8   rZ   r^   )r@   r_   r±   rè   Úargs_as_valueÚinvocation_resultr]   rÌ   s         €€r9   Ú&handle_constant_processgroup_functionszZTorchInGraphFunctionVariable._get_handlers.<locals>.handle_constant_processgroup_functionsy  sÖ   ø€ ô �t“9 ’>ä% d¨1¡gÔ0DÐFVÐ/WÔXÐXÐXÜ˜“Y !’^ä% d¨1¡g¬|Ô<ÄØ˜Q™Ð!1ôBð ð ô )Ø/°¨vð 6$Ø$(§J¡J <ð1óð ð FJÖ J¸c ×!7Ñ!7Õ!9Ð J�Ð JØ$. D§J¡J°Ð$>Ð!ð
 )×/Ñ/°Ð4EÓFÐFùò !Ks   Á8B2c           
      ó¼  •‡ ‡	‡
— |dd  D �cg c]  }|j                  «       ‘Œ c}Š	|j                  «       D ��ci c]  \  }}|dvr||j                  «       “Œ c}}Š
dD �ci c]  }||v sŒ|||   “Œ }}dˆ	ˆ
ˆ fd„	}d‰ j                  j                  z   |_         ‰| |j                  j
                  d|gt        |d   g|«      ¢­Ž ¬«      S c c}w c c}}w c c}w )	Nr   ©Úshaper<  c                 ó:   •—  ‰j                   | g‰¢­i ‰¤||dœ¤ŽS )Nr\  rU   )r´   r]  r<  rX  Úkwargs_as_valuer@   s      €€€r9   Úfn_with_prim_typeszaTorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_local.<locals>.fn_with_prim_types«  s4   ø€ Ø%˜4Ÿ:™:ØðØ)òØ-<ðØDIÐRXóð r;   zprim r†   r   ©r_   r  )NN)rZ   Úitemsr8   rI   r•   r–   r   )r@   r_   r±   rA   r´   ÚkÚvÚkwargs_to_be_proxiedr`  rX  r_  rÍ   s   `        @@€r9   Úhandle_from_localzETorchInGraphFunctionVariable._get_handlers.<locals>.handle_from_local�  s   û€ ð BFÀaÀbÀÖ J¸A ×!5Ñ!5Õ!7Ò J�ð !'§¡£÷#á˜˜1ØÐ 3Ñ3ð �q×+Ñ+Ó-Ñ-ó#�ð +>ö(Ø%&ÀÀfÂ�A�v˜a‘y‘Lð(Ð$ð (÷ð /6¸¿
¹
×8KÑ8KÑ.KÐ"Ô+á$ØØ0˜"Ÿ)™)×0Ñ0Ø'Ø*ðô +Ø! !™W˜IØ0óòô
ð 
ùò% !Kùó#ùò
(s   ŒC¹CÁ 	CÁ*C)Úlayoutc                óœ   — ddl m} |r,|j                  «       t        j                  k(  rt        d«       t        ||«      st        d«       y y )Nr   )ÚBaseListVariablez3torch.compile does not support strided NestedTensorz!nested_tensor with non-list input)Úlistsri  rZ   rˆ   Ústridedr   r‹   )r@   r_   Útensor_listrg  r±   rA   ri  s          r9   Úhandle_nested_tensorzHTorchInGraphFunctionVariable._get_handlers.<locals>.handle_nested_tensor¿  s@   € õ 0á˜&×3Ñ3Ó5¼¿¹ÒFÜÐSÔTÜ˜kÐ+;Ô<ÜÐAÕBð =r;   c                 óÂ   — t        |«      t        |«      z   dk(  s7t        |«      dk(  r7|d   j                  «       r#|d   j                  «       dk(  rt        d«       y y y y )Nr   r
   éÿÿÿÿz<torch.nn.functional.one_hot with data-dependent output shape)rŠ   rH  rZ   r   rü   s       r9   Úhandle_one_hotzBTorchInGraphFunctionVariable._get_handlers.<locals>.handle_one_hotÏ  sa   € ä�4‹yœ3˜v›;Ñ&¨!Ò+Ü�D“	˜Q’Ø˜‘G×.Ñ.Ô0Ø˜‘G×.Ñ.Ó0°BÒ6äØRõð 7ð 1ð r;   c                 óî   •— t        |‰«      rZt        j                  j                  t        j
                  j                  j                  j                  |j                  «      «      S t        |‰«      r|S y rT   )
r‹   r   r]   r^   rˆ   ÚfxÚexperimentalÚsymbolic_shapesÚguard_size_obliviousÚsym_num)r@   r_   Úexprr]   rÉ   s      €€r9   Úhandle_guard_size_obliviouszOTorchInGraphFunctionVariable._get_handlers.<locals>.handle_guard_size_obliviousÚ  sd   ø€ ä˜$ Ô0ô !×1Ñ1×8Ñ8Ü—H‘H×)Ñ)×9Ñ9×NÑNØŸ™óóð ô
 ˜DÐ"2Ô3Ø�ð 4r;   c                 óJ   — ddl m} t        |«      j                  |g |¢|«      S )Nr
   )Ú_unsafe_set_version_counter)Útensor_version_oprz  r¹   r†   )r@   r_   r±   rA   rz  s        r9   Ú!handle_unsafe_set_version_counterzUTorchInGraphFunctionVariable._get_handlers.<locals>.handle_unsafe_set_version_counterç  s*   € õ Hä/Ø+óç‰m˜B  $ ¨Ó0ð1r;   c                 óÒ   •‡— ˆˆˆfd„Šd }|r|d   }n	d|v r|d   }t        |‰«      s? ‰|«      r6t        t        j                  j                  «      j                  |g |¢|«      S y y )Nc                 óŒ   •— t        | ‰‰f«      ryt        | t        t        f«      rt        ˆfd„| j                  D «       «      S y)NTc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wrT   r=   )r  ÚyÚcheck_any_unspecs     €r9   r  ztTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor.<locals>.check_any_unspec.<locals>.<genexpr>ø  s   øè ø€ ÒD°qÑ/°×2ÑDùs   ƒF)r‹   r%   r&   r  rb  )r´   rÉ   rÊ   r�  s    €€€r9   r�  zaTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensor.<locals>.check_any_unspecó  s>   ø€ ä˜a .°/Ð!BÔCØÜ ¤L´-Ð#@ÔAÜÓD¸A¿G¹GÔDÓDÐDð !r;   r   Údata)r‹   r¹   rˆ   Ú_refsr(  r†   )r@   r_   r±   rA   Údata_argr�  rÉ   rÊ   s        @€€r9   Úhandle_torch_tensorzGTorchInGraphFunctionVariable._get_handlers.<locals>.handle_torch_tensorñ  sx   ù€ ö	!ð ˆHÙØ ™7‘Ø˜6Ñ!Ø! &™>�ô ˜h¨Ô7Ñ<LÈXÔ<Vô 4´E·K±K×4FÑ4FÓG×UÑUØ˜˜$˜ óð ð =WÐ7r;   c                 óš   — |s|rJ ‚|j                   st        d«      ‚t        j                  |«       |j                   j	                  «       S )Nz/Popping from an empty torch function mode stack)Ú"symbolic_torch_function_mode_stackr   r)   Úregister_mutationÚpoprü   s       r9   Úhandle_pop_torch_functionzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_pop_torch_function  sG   € ñ ¡FÐ*Ð*Ø×8Ò8Ü#Ð$UÓVÐVÜ*×<Ñ<¸RÔ@Ø×8Ñ8×<Ñ<Ó>Ð>r;   c                 ó°   •— t        |«      dk(  r|rJ ‚t        j                  |«       |j                  j	                  |d   «       ‰j                  d «      S )Nr   r   )rŠ   r)   rˆ  r‡  Úappendr^   r×   s       €r9   Úhandle_push_torch_functionzNTorchInGraphFunctionVariable._get_handlers.<locals>.handle_push_torch_function  sO   ø€ ô �t“9 ’>©&Ð0Ð0Ü*×<Ñ<¸RÔ@Ø×1Ñ1×8Ñ8¸¸a¹ÔAØ#×*Ñ*¨4Ó0Ð0r;   c                 óX   •— |s|rJ ‚‰j                  t        |j                  «      «      S rT   )r^   rŠ   r‡  r×   s       €r9   Úhandle_len_torch_functionzMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_len_torch_function  s,   ø€ ñ ¡FÐ*Ð*Ø#×*Ñ*¬3¨r×/TÑ/TÓ+UÓVÐVr;   c                 óÐ   — t        j                  |«       |d   j                  «       r)|d   j                  «       €t        j                  |«       y t        j
                  |«       y )Nr   )r)   rˆ  rH  rZ   Úclear_default_deviceÚ!register_device_context_insertionrü   s       r9   Úhandle_set_default_devicezMTorchInGraphFunctionVariable._get_handlers.<locals>.handle_set_default_device&  s[   € ô +×<Ñ<¸RÔ@Ø�A‰w×)Ñ)Ô+°°Q±×0JÑ0JÓ0LÐ0TÜ.×CÑCÀBÔGð ô /×PÑPÐQSÔTàr;   rh   )FrT   )]Útorch.backends.cudarÆ   r‡   r]   rÇ   r~   rÈ   rÉ   rÊ   rË   ÚbuilderrÌ   rÍ   r…   rÖ   rˆ   rÚ   rÛ   Ú__wrapped__ÚopsÚinductorÚaccumulate_grad_Údefaultrc   rã   Ú	is_tensorrç   rì   rí   ró   Ú!REWRITE_OPS_TO_TENSOR_SIZE_METHODÚnnÚmodulesÚutilsÚ_singleÚ_pairÚ_tripleÚ
_quadrupleÚ_ntupler   Úuse_deterministic_algorithmsr  r¡   Ú_is_torch_function_enabledr   Úhas_torch_function_variadicÚhas_torch_function_unaryÚdictÚfromkeysr   Ú
from_numpyÚjitÚannotater)  r*  r+  ÚhooksÚBackwardHookÚ	ParameterÚatenÚsym_sizeÚintÚ
sym_strideÚaddcdivÚ_foreach_lerp_Ú_foreach_powÚ_assertr#   Úis_availableÚ"torch.distributed.distributed_c10drQ  rR  rS  rT  rU  Útorch.distributed.tensorrV  Ú
from_localÚnestedÚnested_tensorÚ
functionalÚone_hotrr  rs  rt  ru  Ú	_autogradrz  r(  Ú_pop_torch_function_stackÚ_push_on_torch_function_stackÚ_len_torch_function_stackÚset_default_device)9rÅ   rÆ   rØ   rÝ   rá   rä   ré   rñ   rö   rù   rý   r  r  r  r  r  r  r!  r%  r.  r1  r4  r:  r=  r@  rC  rF  rL  rP  rQ  rR  rS  rT  rU  rV  rZ  rf  rm  rp  rx  r|  r…  rŠ  r�  r�  r“  r]   rÇ   r~   rÌ   rÈ   rÉ   rÊ   rË   rÃ   rÍ   r…   s9                                                 @@@@@@@@@@@r9   Ú_get_handlersz*TorchInGraphFunctionVariable._get_handlersT  sá  ÿú€ ð
 ˆô	õ 	3÷	
÷ 	
ñ 	
÷ 	QÑPá	Ô*Ð	+ð	PØ-ô	Pó 
,ð	Pñ 
”%—/‘/×>Ñ>×JÑJÓ	Kð		Ø-ô		ó 
Lð		ñ 
”%—)‘)×$Ñ$×5Ñ5×=Ñ=Ó	>ô	ó 
?ð	ñ
 
”$—,‘,Ó	ô	ó 
 ð	ñ 
”%—/‘/¤5§?¡?×#AÑ#AÓ	Bö	6ó 
Cð	6ñ 
Ü×#Ñ#Ü×Ñó

õ	Bó	

ð	Bñ 
”%—+‘+Ó	õ	>ó 
ð	>ñ 
Ô4Ð	5ô	9ó 
6ð	9ñ 
Ü�H‰H×Ñ×"Ñ"×*Ñ*Ü�H‰H×Ñ×"Ñ"×(Ñ(Ü�H‰H×Ñ×"Ñ"×*Ñ*Ü�H‰H×Ñ×"Ñ"×-Ñ-Ü�H‰H×Ñ×"Ñ"×*Ñ*ó

ò	7ó

ð	7ñ 
”%×'Ñ'Ó	(ô	Dó 
)ð	Dñ 
”%×4Ñ4Ó	5à?Dð	YØ-ô	Yó 
6ð	Yñ 
”%×<Ñ<Ó	=ô	Yó 
>ð	Yñ 
”%—(‘(×5Ñ5Ó	6ó	Mó 
7ð	Mñ 
Ü�O‰O×.Ñ.Ü�O‰O×7Ñ7Ü�O‰O×4Ñ4ó

ô
	ó

ð
	ñ 
Ü�]‰]ñ ä+KÓ+Môó ð

ô	<ó

ð	<ñ 
”%×"Ñ"Ó	#õ	ó 
$ð	ñ  
”%—)‘)×$Ñ$Ó	%ò	ó 
&ð	ñ 
”%—.‘.×&Ñ&×4Ñ4Ó	5ð	Ø-õ	ó 
6ð	ñ" 
”%—+‘+×#Ñ#×0Ñ0Ó	1ò	Nó 
2ð	Nñ 
”%—(‘(×$Ñ$Ó	%ò	?ó 
&ð	?ñ 
”%—)‘)—.‘.×)Ñ)¬5¯9©9¯>©>×+BÑ+B×+FÑ+FÓ	Gò	?ó 
Hð	?ñ
 
”%—)‘)—.‘.×+Ñ+¬U¯Y©Y¯^©^×-FÑ-F×-JÑ-JÓ	Kò	Aó 
Lð	Añ 
”%—-‘-Ó	 ò	ó 
!ð	ñ 
”%×&Ñ&Ó	'ð	Ø-ô	ó 
(ð	ñ 
”%×$Ñ$Ó	%ð
	Ø-õ
	ó 
&ð
	ñ 
”%—-‘-Ó	 ô	.ó 
!ð	.ñ 
�*Ó	ô		ó 
ð		ô ×+Ñ+Ô-÷õ õ 9áØ'ØØ"Ø'Ø4óðGØ1õGóðGñ: �g×(Ñ(Ó)ôó *ðñB 
”%—,‘,×,Ñ,Ó	-ð ð	Cð
 ñ	Cà'ò	Có 
.ð	Cñ 
”%—(‘(×%Ñ%×-Ñ-Ó	.ò	ó 
/ð	ñ 
”%—(‘(×'Ñ'×7Ñ7×LÑLÓ	Mõ
	ó 
Nð
	ñ 
”%—(‘(×$Ñ$×@Ñ@Ó	Að	1Ø-ò	1ó 
Bð	1ñ 
”%—,‘,Ó	õ	ó 
 ð	ñ4 
”%—(‘(×4Ñ4Ó	5ð	?Ø-ò	?ó 
6ð	?ñ 
”%—(‘(×8Ñ8Ó	9ð	1Ø-ô	1ó 
:ð	1ñ 
”%—(‘(×4Ñ4Ó	5ð	WØ-ô	Wó 
6ð	Wñ 
”%×*Ñ*Ó	+ð	Ø-ò	ó 
,ð	ð$ ˆr;   c                 ó|  ‡— ddl m}mŠm} ddlm} | j                  «       r}t        ||«      rq|j                   | j                  «       |D �cg c]  }|j                  «       ‘Œ c}i |j                  «       D ��	ci c]  \  }}	||	j                  «       “Œ c}	}¤Ž«      S | j                  «       j                  | j                  «      }
|
r |
| |g|¢­i |¤Ž}|r|S t        |||«      rt        || ||«      S t!        ˆfd„|D «       «      }t#        d„ |D «       «      }t%        | j                  dd«      dk(  rY| j                  j&                  t(        v r=|r;|r9d	t+        | j                  «      › d
�}t,        j/                  |«       t1        |«       | j                  }|rSd| j                  j&                  › �}t%        | j                  dd «      dk(  r t3        t4        |«      rt%        t4        |«      }d }d|v rMt7        |d   t8        j                  «      r0|d   j:                  j<                  j>                  d   j@                  } || |jB                  jD                  d|gtG        ||«      ¢­Ž ¬«      }t7        ||«      r"d|v r|d   j                  «       rt1        d«       d|v �rt7        |d   t8        j                  «      r|d   j                  «       ��Õt7        |tH        «      �r2t7        |d   tH        tJ        f«      sJ ‚|d   j                  D �cg c]  }|jM                  |«      ‘Œ }}tO        |«      D ]0  \  }}||jP                  v sŒ|j                  |   |jP                  |<   Œ2 tS        |d   j                  |j                  «      D ]†  \  }}|jT                  sŒ||jB                  jV                  v sŒ,t7        |t8        j                  «      sŒGt7        |t8        j                  «      sŒb|jX                  |jX                  k7  sŒ|t1        d«       Œˆ |S t7        ||«      �r"t7        |d   |«      sJ ‚d|d   j:                  j<                  j>                  v sJ ‚|j:                  j<                  j>                  d   }|d   j:                  j<                  j>                  d   }|d   jT                  r5|d   |jB                  jV                  v r||j@                  k7  rt1        d«       t4        jZ                  j]                  |«      st1        d«       |jM                  |d   «      }||jP                  v r||jP                  |<   |S t7        ||«      �r<|j                  �€/t7        |d   |«      ryd|d   j:                  j<                  j>                  v sJ ‚|d   j:                  j<                  j>                  d   }t4        jZ                  j]                  |«      s²t1        d«       |S t7        |d   tJ        «      r’tO        |d   j                  «      D ]w  \  }}d|j:                  j<                  j>                  v sJ ‚|j:                  j<                  j>                  d   }t4        jZ                  j]                  |«      rŒmt1        d«       Œy |S t1        dt_        |d   «      › �«       |S c c}w c c}	}w c c}w )Nr   )r]   rÉ   rÊ   ©rÍ   c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrT   )r‹   )r  r´   rÉ   s     €r9   r  z=TorchInGraphFunctionVariable.call_function.<locals>.<genexpr>X  s   øè ø€ Ò*XÈa¬:°a¸×+IÑ*Xùs   ƒc              3   óp   K  — | ].  }t        |t        j                  t        j                  f«      –— Œ0 y ­wrT   )r‹   r   r]   rÉ   r  s     r9   r  z=TorchInGraphFunctionVariable.call_function.<locals>.<genexpr>Z  s0   è ø€ ò %àô ˜1œy×9Ñ9¼9×;TÑ;TÐU×Vñ%ùs   ‚46rH   r‡   rˆ   zCalling zí on only torch.SymInt arguments is not yet supported.
To support this behavior, we need to allow const-propping tensors that store symint data.
For now, dynamo will explicitly graph break when it encounters user code with this behavior.
Ú_sym_rc   Úoutr  r†   ra  Úrequires_gradz©factory functions that return tensors that require grad are not supported.
Either create the tensor outside the compiled region, or do not set the tensor to require_gradz*out variants with resizing on graph inputsz9out= op was called where output tensor was non-contiguouszGout= op was called where some of the output tensors were non-contiguouszout variant of )0r‡   r]   rÉ   rÊ   r•  rÍ   rf   r   r^   rZ   rb  rÆ  Úgetr8   r'   r(   r  Úallre   rI   Úbin_opsr¶   r    Úwarningr   r\   rˆ   r‹   r   r  ÚnodeÚmetar]  r•   r–   r   r&   r%   Úfind_symbolic_locals_nameÚ	enumerateÚsymbolic_localsÚzipr4   Ú	graphargsrô   Ú_prims_commonÚis_contiguousÚtype)r@   r_   r±   rA   r]   rÊ   rÍ   r´   rc  rd  Úspecial_handlerr`   Úany_symints_or_symfloatsÚall_ints_or_floatsÚmsgÚfn_Útorch_sym_opÚfake_out_shapeÚtensor_variableÚoutput_tensor_namesÚidxrP   Ú
out_tensorÚresult_tensorÚfake_tensorÚfake_outrÉ   s                             @r9   r†   z*TorchInGraphFunctionVariable.call_function;  sS  ø€ ÷ 	HÑGÝ*à×)Ñ)Ô+Ô0MØ�&ô1
ð $×*Ñ*Ø)�×'Ñ'Ó)Ø6:Ö;°�a×*Ñ*Õ,Ò;ðà=C¿\¹\»^×L±T°Q¸�q˜!×.Ñ.Ó0Ñ0ÓLñóð ð ×,Ñ,Ó.×2Ñ2°4·:±:Ó>ˆÙÙ$ T¨2Ð?°Ò?¸Ñ?ˆFÙØ�ä& r¨4°Ô8Ü*¨2¨t°T¸6ÓBÐBä'*Ó*XÐSWÔ*XÓ'XÐ$ä!$ñ %àô%ó "Ðô
 ˜Ÿ
™
 L°"Ó5¸Ò@Ø—J‘J×'Ñ'¬7Ñ2Ù,Ù&ð	Ü	ˆT�Z‰Z‹Ðð ð�ô
 —‘˜CÔ Ü˜cÔ"ð
 —*‘*ˆCÙ'Ø!& t§z¡z×':Ñ':Ð&;Ð<�Ü˜4Ÿ:™: |°TÓ:¸fÒDÌÜ˜<ôJô "¤%¨Ó6�Cà!ˆNØ˜‰¤:¨f°U©m¼Y×=UÑ=UÔ#Vð "(¨¡×!4Ñ!4×!9Ñ!9×!>Ñ!>¸Ñ!O×!UÑ!U�á+ØØ,�b—i‘i×,Ñ,Ø#Øðô ' t¨VÓ4òôˆOô ˜?¨NÔ;Ø# vÑ-Ø˜?Ñ+×>Ñ>Ô@äðbôð
 ˜ŠÜ˜6 %™=¬)×*DÑ*DÔEØ˜5‘M×4Ñ4Ó6Ñ>ô
 ˜o¬}Õ=Ü% f¨U¡m´mÄ\Ð5RÔSÐSÐSàAGÈÁ×ATÑATö+Ø<=˜×4Ñ4°QÕ7ð+Ð'ð +ô &/Ð/BÓ%Cò R™	˜˜TØ 2×#5Ñ#5Ò5Ø7F×7LÑ7LÈSÑ7Q˜B×.Ñ.¨tÒ4ðRô 69Ø˜u™×+Ñ+¨_×-BÑ-Bó6ò XÑ1˜
 Mð '×-Ó-Ø *¨b¯i©i×.AÑ.AÒ AÜ *¨:´y×7OÑ7OÕ PÜ *¨=¼)×:RÑ:RÕ SØ *§¡°=×3EÑ3EÓ Eô *Ð*VÕWðXð| #Ð"ôc   °Õ@Ü% f¨U¡m°^ÔDÐDÐDØ*¨f°U©m×.AÑ.A×.FÑ.F×.KÑ.KÑKÐKÐKØ"1×"7Ñ"7×"<Ñ"<×"AÑ"AÀ/Ñ"R�KØ% e™}×2Ñ2×7Ñ7×<Ñ<¸_ÑM�Hà˜u™×,Ò,Ø" 5™M¨R¯Y©Y×-@Ñ-@Ñ@Ø*¨k×.?Ñ.?Ò?ô &Ð&RÔSÜ ×.Ñ.×<Ñ<¸XÔFô &ØWôð ×7Ñ7¸¸u¹ÓF�DØ˜r×1Ñ1Ñ1Ø3B˜×*Ñ*¨4Ñ0ð8 #Ð"ô5 ˜Ð0@ÕAØ'×-Ñ-Ñ5ô " &¨¡-°Ô@Ø.°&¸±-×2EÑ2E×2JÑ2J×2OÑ2OÑOÐOÐOØ#)¨%¡=×#6Ñ#6×#;Ñ#;×#@Ñ#@ÀÑ#Q˜Ü$×2Ñ2×@Ñ@ÀÔJô *Ø [ôð  #Ð"ô $ F¨5¡M´<Ô@Ü&/°°u±×0CÑ0CÓ&Dò "™F˜C Ø#2°a·g±g·l±l×6GÑ6GÑ#GÐGÐ#GØ'(§w¡w§|¡|×'8Ñ'8¸Ñ'I˜HÜ#(×#6Ñ#6×#DÑ#DÀXÕ#Nô !.Ø$mõ!"ð"ð #Ð"ô " O´D¸À¹Ó4GÐ3HÐ"IÔJà"Ð"ùòo <ùÛLùòd+s   ÁZ.Á:Z3ÌZ9c                 óÔ  ‡‡— | j                   t        j                  j                  j                  j
                  u r|d   j                  «       Šn#| j                   j                  d   j                  Št        ‰t        «      sJ ‚|rJ ‚ˆˆfd„}| j                   t        j                  j                  j                  j
                  u rt        j                  |«      S  ||d   «      S )z1inline behavior of torch.nn.modules.utils._ntupler   c                 ó†  •— | j                  ‰«      r-t        j                  t        | j	                  ‰«      «      «      S | j                  «       rct        j                  j                  t        j                  j                  j                  j                  ‰«      | j                  «       «      «      S t        d| › d�«       y )Nztorch.nn.modules.utils._ntuple(rq   )Úhas_unpack_var_sequencer   r&   Úlistr  rH  r]   r^   rˆ   r�  rž  rŸ  r¤  rZ   r   )r8   Úcountr_   s    €€r9   rý   z@TorchInGraphFunctionVariable._call_ntuple.<locals>.handle_ntupleì  sž   ø€ Ø×,Ñ,¨RÔ0Ü ×.Ñ.Ü˜×2Ñ2°2Ó6Ó7óð ð ×)Ñ)Ô+ä ×1Ñ1×8Ñ8Ü—H‘H×$Ñ$×*Ñ*×2Ñ2°5Ó9¸%×:RÑ:RÓ:TÓUóð ô Ð ?À¸wÀaÐHÕIr;   )r8   rˆ   r�  rž  rŸ  r¤  rZ   Ú__closure__Úcell_contentsr‹   r³  r   ÚLambdaVariable)r@   r_   r±   rA   rý   rî  s    `   @r9   rû   z)TorchInGraphFunctionVariable._call_ntupleã  s³   ù€ à�:‰:œŸ™×)Ñ)×/Ñ/×7Ñ7Ñ7Ø˜‘G×.Ñ.Ó0‰Eà—J‘J×*Ñ*¨1Ñ-×;Ñ;ˆEÜ˜%¤Ô%Ð%Ð%ÙÐˆzõ	Jð �:‰:œŸ™×)Ñ)×/Ñ/×7Ñ7Ñ7Ü×+Ñ+¨MÓ:Ð:á   a¡Ó)Ð)r;   c           
      ó   — |j                   rt        d«       t        |t        j                  «      r	 |j                  «       }t        |t        j                  «      st        d|› d�«       |j                  r| j                  |||«      S t        |j                  «      rt        d«       t        «       st        d«       	 t        |j                  |d«      j                  «       «      }|j                  |d«      j                  «       }|j                  |d	«      j                  «       }|j                  j!                  t"        |g«      }|j$                  r|j'                  |dg i «      }ddlm}	  |	||j                  j-                  dt.        |j1                  «       |j1                  «       fi «      «      }
t        |
t        j                  «      sJ ‚t2        j4                  j6                  |
_        d|
_        |j                  |
_        |
S # t        $ r t        d«       Y �Œäw xY w# t        $ r}t        d
|› �«       Y d}~�Œd}~ww xY w)z>A call to torch.nn.Parameter() gets lifted to before the graphz3nn parameter construction not supported with exportz)Parameter(requires_grad=...) not constantzParameter(data=z) not implementedz.Parameter constructor with tensor subclass NYIz4Workaround for issues with nn_parameter constructionr]  rë   r'  zParameter not python_constant: NÚdetachr   rÈ  r†   F)Úexportr   r‹   r   r   rZ   ÚNotImplementedErrorrÊ   r4   Ú_nn_param_via_prefix_insertr	   Ú
class_typer   ÚtupleÚvar_getattrr•   Úsynthetic_graph_inputr   rÍ  rõ   r•  rÍ   r–   r   rW   rˆ   r�  r°  Úhas_grad_fn)r7   r_   r‚  rÍ  r]  rë   r'  ÚeÚplaceholderrÍ   r`   s              r9   r3  z.TorchInGraphFunctionVariable.call_nn_parameterþ  s  € ð �9Š9ÜÐOÔPä�m¤Y×%>Ñ%>Ô?ðKØ -× @Ñ @Ó B�ô ˜$¤	× 8Ñ 8Ô9Ü˜O¨D¨6Ð1BÐCÔDð �;Š;Ø×2Ñ2°2°t¸]ÓKÐKä-¨d¯o©oÔ>ÜÐJÔKä0Ô2ÜÐPÔQð	AÜ˜$×*Ñ*¨2¨wÓ7×JÑJÓLÓMˆEØ×$Ñ$ R¨Ó1×DÑDÓFˆEØ×%Ñ% b¨(Ó3×FÑFÓHˆFð —i‘i×5Ñ5Ü%¨¨u°f¸mÐ'Ló
ˆð ×ÒØ×#Ñ# B¨°"°bÓ9ˆDå*áØØ�I‰I×"Ñ"ØÜ)Ø—‘“ +×"6Ñ"6Ó"8Ð9Øó	ó
ˆô ˜&¤)×":Ñ":Ô;Ð;Ð;Ü!ŸH™H×.Ñ.ˆÔð #ˆÔð $×*Ñ*ˆŒð ˆøôm 'ò KÜÐI×JðKûô( #ò 	AÜÐ;¸A¸3Ð?×@Ò@ûð	Aús*   ³H ÃA)H+ ÈH(È'H(È+	IÈ4IÉIc                 ó4  ‡	— ddl m} | j                  j                  «       }t	        | «      Š	‰	j                  ˆ	fd„«        ‰	|j                  «        ‰	t        j                  |«      «       ‰	j                  dd«       ‰	j                  |«       | j                  j                  j                  ‰	j                  «       «       |j                  «       j                  }|j                   dvrt#        d«       t%        |«      }t&        j(                  j+                  | j                  j-                  |j                  «       j                  «      «      }  || |«      |«      }t/        j0                  «       j2                  j4                  j7                  |«       |S )Nr   )ÚVariableBuilderc                  ó(   •— ‰ j                  dd«      S )Nztorch.nnr°  )Úload_import_from)Úcgs   €r9   ú<lambda>zJTorchInGraphFunctionVariable._nn_param_via_prefix_insert.<locals>.<lambda>H  s   ø€  ×!4Ñ!4°ZÀÓ!M€ r;   r
   F)rý  Úget_attrzAUnexpected type of data placeholder op for parameter construction)r•  rÿ  r•   Únew_varr   Úadd_push_nullr4   r   r]   r†   ÚstoreÚpregraph_bytecodeÚextendÚget_instructionsrW   rÒ  Úopr   r   rˆ   r�  r°  Úexample_value_from_input_noder   rÎ  Úguards_contextÚdynamo_guardsÚremove_guards_with_source)
r_   r‚  rÍ  rÿ  ÚvarnameÚ	data_noder4   r  r`   r  s
            @r9   rö  z8TorchInGraphFunctionVariable._nn_param_via_prefix_insert?  s:  ø€ õ 	-à—)‘)×#Ñ#Ó%ˆô �r‹]ˆØ
×ÑÓMÔNÙ
ˆ4�;‰;ŒÙ
Œ9×%Ñ% mÓ4Ô5Ø
×Ñ˜˜EÔ"Ø
�‰�ÔØ
�	‰	×#Ñ#×*Ñ*¨2×+>Ñ+>Ó+@ÔAà—M‘M“O×(Ñ(ˆ	Ø�<‰<Ð:Ñ:ÜØSôô
 & gÓ.ˆÜŸ™×*Ñ*Ø�I‰I×3Ñ3°D·M±M³O×4HÑ4HÓIó
ˆð -‘  VÓ,¨]Ó;ˆô 	×ÑÓ×+Ñ+×9Ñ9×SÑSØô	
ð ˆr;   rµ   rh   )NT)rI   rH   ri   rj   r¶   rr   r¼   r·   Ú	functoolsÚ	lru_cacherÆ  r†   rû   rk   r3  rö  r=   r;   r9   r¹   r¹   K  s¡   „ ÙJð=˜#ó =òð Ø€Y×Ñ˜Óñcó ó ðcðJf#à#ðf#ð &ðf#ð -ð	f#ð
 
óf#óP*ð6 ò>ó ð>ð@ ò ó ñ r;   r¹   ) r  r‘   Úloggingrc   rL   Útypingr   r   r   Útorch._Crˆ   Útorch._refsÚtorch.fxÚtorch.nnÚtorch.onnx.operatorsÚtorch._guardsr   Útorch._loggingr   Útorch._streambaser   Útorch.utils._python_dispatchr	   r‡   r   r   r   rO   r   Úcreate_parameter_opr   r   r   r  r   Úexcr   Úguardsr   r   r4   r   rŸ  r   r   r   r   r   r   r   Úbaser   Úctx_managerr    r!   r"   Údistributedr#   r$   rj  r%   r&   Útorch_functionr'   r(   r)   Únumpyr  ÚModuleNotFoundErrorÚ"torch.distributed._composable.fsdpr*   Útorch._dynamo.symbolic_convertr+   Ú	getLoggerrI   r    r©  rª  rœ   r�   rŸ   r¨   r©   rª   rž   r¡   r¢   r£   r¤   r¥   r¦   r«   r§   r¬   r—   r˜   r™   Ú	grad_moderŽ   r�   r‰   r�   r­   r®   r›   rš   rv   ÚonnxÚ	operatorsÚshape_as_tensorÚ_shape_as_tensorrœ  r¸  rÏ   Ú_get_device_indexÚ_get_cublas_allow_tf32Ú_is_any_autocast_enabledÚget_device_propertiesr¹  Úget_autocast_dtypeÚget_autocast_gpu_dtypeÚget_default_dtypeÚis_autocast_cache_enabledÚis_autocast_cpu_enabledÚis_autocast_enabledrí   rì   r�  r¿  Ú
_ReductionÚget_enumÚpromote_typesÚ_get_privateuse1_backend_nameÚ_is_checkpoint_validrd   r	  Úis_initializedÚget_rankÚget_world_sizer¬  Úis_scriptingÚ
is_tracingÚ_get_tracing_staterr  Ú_symbolic_traceÚis_fx_tracingÚis_in_onnx_exportrÑ   rÒ   rÐ   rÓ   rÔ   rž  Ú
activationÚ_is_make_fx_tracingrÖ   rÐ  r2   ro   r¹   r=   r;   r9   ú<module>rJ     sË  ðó Û Û Û Û 	ß ,Ñ ,ã Û Û Û Û Ý (Ý 'Ý )Ý Kç +Ñ +Ý ÷ñ õ
 @Ý ß 0Ý )÷÷ ñ õ "÷ñ ÷
 Cß .÷ñ ðÛðÝDñ
 ÝDð €g×Ñ˜Ó!€à $§¡à�‰×Ñ×'Ñ'Ø�‰×!Ñ!×7Ñ7Ø�‰×!Ñ!×,Ñ,Ø�‰×Ñ×'Ñ'Ø�‰×Ñ×/Ñ/Ø�‰×-Ñ-Ø×Ñ×Ñ×4Ñ4Ø×Ñ×)Ñ)×@Ñ@Ø×Ñ×)Ñ)×?Ñ?Ø×Ñ×)Ñ)×FÑFØ�	‰	×Ñ×(Ñ(Ø�‰× Ñ ×,Ñ,Ø�‰× Ñ ×/Ñ/Ø�‰× Ñ ×(Ñ(Ø�‰× Ñ ×1Ñ1Ø�‰×Ñ×8Ñ8Ø�	‰	�‰×#Ñ#×,Ñ,Ø�
‰
�‰×$Ñ$×-Ñ-ð%ó!Ð ð0 %)§M¡Mà�
‰
×Ñ×,Ñ,Ø×Ñðó%Ð !ð 
‡M�MØ	‡L�L×"Ñ"Ø	‡H�H×#Ñ#Ø	‡H�H×%Ñ%Ø	‡J�J×$Ñ$Ø	‡J�J×ÑØ	×Ñ×"Ñ"Ø	×ÑØ	× Ñ Ø	×ÑØ	×#Ñ#Ø	×!Ñ!Ø	×ÑØ	×ÑØ	×ÑØ	‡H�H×Ò×"Ò"×+Ò+Ø	×ÒØ	‡H�H×*Ò*Ø	‡N�N×'Ò'ð'Ð ð* 	×Ñ×!Ñ!Ô#Ø×"Ò"à×Ñ×,Ò,Ø×Ñ×&Ò&Ø×Ñ×,Ò,ð	
ôð Ÿ-™-Ð(?Ó@Ð ð 
‡I‚I×Ò˜EØ	‡I‚I×Ò˜%Ø	‡H�H×Ò Ø	‡H‚H×Ò×*Ò*¨EØ	‡J�J× Ò  %Ø	‡M‚M× Ò ×-Ò-¨tØ	‡L�L×Ò˜tØ	‡N‚N×Ò Ø	‡N‚N×&Ò&¨Ø	‡H�H×Ò×Ò×3Ò3°UðÐ ð �-‰-Ò<Ó
=€ô#A˜ô #AôLJ7Ð#4ô J7ôZUÐ#4õ Uøðe ò Ø	ƒBðûð
 ò ØÓðús$   Â<Y: ÃZ Ù:ZÚZÚZÚZ