§
    ŠŠtjšå  ã                  óŠ  — d dl 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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mZmZmZ d dlm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&m'Z' d dl(m)Z)  ej*        e+¦  «        Z,erBd dl-Z-d dl.m/Z/m0Z0m1Z1 d dl2m3Z3 d dl4Z4d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB 	  ejC        d¦  «        ZD ejC        d¦  «        ZE eddd¬¦  «         G d„ d¦  «        ¦   «         ZF G d„ de¦  «        ZG G d„ d ejH        ¦  «        ZI	  G d!„ d"¦  «        ZJ ej        d¬#¦  «         G d$„ d%¦  «        ¦   «         ZK G d&„ d'e¦  «        ZL ej        d¬(¦  «         G d)„ d*¦  «        ¦   «         ZM ed+¦  «        ZN	  ej        d¬#¦  «         G d,„ d-¦  «        ¦   «         ZO	  ej        d¬#¦  «         G d.„ d/eO¦  «        ¦   «         ZP	  ej        d¬#¦  «         G d0„ d1eO¦  «        ¦   «         ZQ	  G d2„ d3eeN         ¦  «        ZR G d4„ d5¦  «        ZS G d6„ d7¦  «        ZT G d8„ d9eReT         ¦  «        ZU G d:„ d;¦  «        ZV G d<„ d=eReV         ¦  «        ZW G d>„ d?¦  «        ZX	  G d@„ dAeReS         ¦  «        ZY G dB„ dC¦  «        ZZe G dD„ dE¦  «        ¦   «         Z[e G dF„ dG¦  «        ¦   «         Z\ G dH„ dIeZ¦  «        Z] G dJ„ dK¦  «        Z^ e	j_        ¦   «         Z`	  G dL„ dM¦  «        Zae G dN„ dO¦  «        ¦   «         Zb G dP„ dQ¦  «        ZcedmdV„¦   «         ZdedndY„¦   «         Zeedod^„¦   «         Zfe	 dpdqda„¦   «         Zf e¦   «         	 dpdrdd„¦   «         Zf efd¬#¦  «         G de„ df¦  «        ¦   «         Zg efd¬#¦  «         G dg„ dheg¦  «        ¦   «         Zhdpdsdk„Zidtdl„ZjdS )ué    )ÚannotationsN)Úabstractmethod)Údefaultdict)Úcontextmanager)Ú	dataclass)ÚAnyÚGenericÚ
NamedTupleÚoverloadÚTYPE_CHECKINGÚTypeVar)Údataclass_transform)Ú_pytree)Ú
OrderedSet)Úis_traceable_wrapper_subclass)ÚCapturedTracebackÚformat_frame)ÚWeakTensorKeyDictionary)ÚCallableÚ	GeneratorÚIterator)ÚCodeType)ÚDDPOptimizerContext)Ú	PyCodegen)ÚGuardCheckSpec)ÚCodeOptions)ÚViewAndMutationMeta)ÚNestedCompileRegionOptions©ÚFakeTensorModez-^(?P<frame_id>\d+)/(?P<frame_compile_id>\d+)$zQ^!(?P<compiled_autograd_id>\d+)(?:/(?P<frame_id>\d+)/(?P<frame_compile_id>\d+))?$T)ÚfrozenÚkw_onlyÚslotsc                  óR   — e Zd ZU ded<   ded<   dZded<   dd„Zedd„¦   «         ZdS )Ú	CompileIdú
int | NoneÚframe_idÚframe_compile_idNÚcompiled_autograd_idÚreturnÚstrc                ó@  — | j         �Z| j        d u | j        d u k    rt          d| j        › d| j        › �¦  «        ‚d}| j        �d| j        › d| j        › �}d| j         › |› �S | j        �| j        €t          d| j        › d| j        › �¦  «        ‚| j        › d| j        › �S )NzMframe_id and frame_compile_id must both be None or both be set, got frame_id=z, frame_compile_id=Ú ú/ú!z=frame_id and frame_compile_id must not be None, got frame_id=)r)   r'   r(   ÚAssertionError)ÚselfÚ	frame_strs     úK/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_guards.pyÚ__str__zCompileId.__str__X   s  € àÔ$Ð0Ø” Ð%¨4Ô+@ÀDÐ+HÒIÐIÝ$ð^Ø$(¤Mð^ð ^ØFJÔF[ð^ð ^ñô ð ð ˆIØŒ}Ð(ØG ¤ÐGÐG°Ô0EÐGÐG�	à=�tÔ0Ð=°)Ð=Ð=Ð=àŒ}Ð$¨Ô(=Ð(EÝ$ð^Ø$(¤Mð^ð ^ØFJÔF[ð^ð ^ñô ð ð ”mÐ=Ð= dÔ&;Ð=Ð=Ð=ó    Ú
compile_idú
str | NoneúCompileId | Nonec                óN  — |€dS 	 t           t          fD ]e}|                     |¦  «        x}rL|                     ¦   «         }|                     ¦   «         D ]\  }}|�t          |¦  «        ||<   Œ | di |¤Žc S Œft          ‚# t          $ r}t          d|› d�¦  «        |‚d}~ww xY w)zŒ
        Factory method that creates a CompileId from its string representation.
        Keep this in sync with the __str__ method.
        NzInvalid compile_id 'ú'© )ÚCOMPILE_ID_PATTERNÚCA_COMPILE_ID_PATTERNÚmatchÚ	groupdictÚitemsÚintÚ
ValueErrorÚ	Exception)Úclsr6   Úpatternr>   ÚgroupsÚkÚvÚes           r3   Úfrom_stringzCompileId.from_stringm   sæ   € ð ÐØ�4ð	JÝ.Õ0EÐFð !ð !�Ø#ŸMšM¨*Ñ5Ô5Ð5�5ð )Ø"Ÿ_š_Ñ.Ô.�FØ &§¢¡¤ð /ð /™˜˜1Ø˜=Ý(+¨A©¬˜F 1™IøØ˜3˜=˜= ˜=˜=Ð(Ð(Ð(ð)õ !Ð øåð 	Jð 	Jð 	JÝÐA°JÐAÐAÐAÑBÔBÈÐIøøøøð	Jøøøs   †A2B Á9B Â
B$ÂBÂB$©r*   r+   )r6   r7   r*   r8   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r)   r4   ÚclassmethodrJ   r;   r5   r3   r%   r%   I   s~   € € € € € € àÐÐÑð
 !Ð Ð Ñ ð (,ÐÐ+Ð+Ð+Ñ+ð
>ð >ð >ð >ð* ðJð Jð Jñ „[ðJð Jð Jr5   r%   c                  ó,   — e Zd ZU ded<   ded<   d	d„ZdS )
ÚTraceIdr%   r6   rA   Úattemptr*   r+   c                ób   — | j         dk    rt          | j        ¦  «        S | j        › d| j         › �S )Nr   Ú_)rS   r+   r6   ©r1   s    r3   r4   zTraceId.__str__Š   s7   € àŒ<˜1ÒÐÝ�t”Ñ'Ô'Ð'à”oÐ6Ð6¨¬Ð6Ð6Ð6r5   NrK   ©rL   rM   rN   rO   r4   r;   r5   r3   rR   rR   „   sA   € € € € € € ØÐÐÑð €L€L�Lð7ð 7ð 7ð 7ð 7ð 7r5   rR   c                  óz   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚGuardSourcer   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   r*   Úboolc                ó6   — | t           j        t           j        fv S ©N)rY   ÚGLOBAL_FSDP_MODULEÚLOCAL_FSDP_MODULErV   s    r3   Úis_fsdp_modulezGuardSource.is_fsdp_module¥   s   € Ø�Ô6½Ô8UÐVÐVÐVr5   c                ó²   — dd l mc m} |j        r.| t          j        t          j        fv p|                      ¦   «         S | t          j        t          j        fv S ©Nr   )Útorch._dynamo.configÚ_dynamoÚconfigÚ_unsafe_skip_fsdp_module_guardsrY   ÚGLOBAL_SPECIALIZED_NN_MODULEÚLOCAL_SPECIALIZED_NN_MODULEro   )r1   rt   s     r3   Úis_specialized_nn_modulez$GuardSource.is_specialized_nn_module¨   s|   € Ø-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-àÔ1ð 	àåÔ<ÝÔ;ððð )ð
 ×&Ò&Ñ(Ô(ðð ÝÔ4ÝÔ3ð
ð 
ð 	
r5   c                ób   — | t           j        t           j        t           j        t           j        fv S rl   )rY   ÚGLOBAL_UNSPECIALIZED_NN_MODULEÚLOCAL_UNSPECIALIZED_NN_MODULEÚ&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULEÚ%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULErV   s    r3   Úis_unspecialized_nn_modulez&GuardSource.is_unspecialized_nn_module¹   s,   € ØÝÔ6ÝÔ5ÝÔ>ÝÔ=ð	
ð 
ð 	
r5   c                ó6   — | t           j        t           j        fv S rl   )rY   r|   r}   rV   s    r3   Ú"is_unspecialized_builtin_nn_modulez.GuardSource.is_unspecialized_builtin_nn_moduleÁ   s    € ØÝÔ>ÝÔ=ð
ð 
ð 	
r5   c                óx   — | t           j        t           j        t           j        t           j        t           j        fv S rl   )rY   ÚLOCALrw   rn   r{   r}   rV   s    r3   Úis_localzGuardSource.is_localÇ   s2   € ØÝÔÝÔ3ÝÔ)ÝÔ5ÝÔ=ð
ð 
ð 	
r5   N©r*   rj   )rL   rM   rN   r‚   ÚGLOBALrw   rv   ÚCONSTANTÚRANDOM_VALUEÚ	SHAPE_ENVrn   rm   ÚBACKWARD_STATEÚ	EPHEMERALÚSYNTHETIC_LOCALr{   rz   r}   r|   Ú
TEMP_LOCALro   rx   r~   r€   rƒ   r;   r5   r3   rY   rY   ’   sÙ   € € € € € Ø€EØ€FØ"#ÐØ#$Ð Ø€HØ€LØ€IØÐØÐØ€NØ€IØ€OØ$&Ð!Ø%'Ð"Ø,.Ð)Ø-/Ð*Ø€JðWð Wð Wð Wð
ð 
ð 
ð 
ð"
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r5   rY   c                  ó   — e Zd ZdS )ÚGuardBuilderBaseN©rL   rM   rN   r;   r5   r3   rŽ   rŽ   ß   s   € € € € € Ø€Dr5   rŽ   )r!   c                  ó,   — e Zd ZU ded<   ded<   d	d„ZdS )
ÚSLocz#traceback.FrameSummary | str | NoneÚframework_locr7   Úmaybe_user_locr*   r+   c                ó²   — t          | j        t          ¦  «        r| j        n| j        €dnt          | j        ¦  «        }| j        �| j        › d|› d�S d|› d�S )Nr-   z (ú)ú()Ú
isinstancer’   r+   r   r“   )r1   Úflocs     r3   r4   zSLoc.__str__è   sy   € õ ˜$Ô,­cÑ2Ô2ð2ˆDÔÐð Ô!Ð)ð �å˜dÔ0Ñ1Ô1ð 	ð ÔÐ*ØÔ)Ð4Ð4¨TÐ4Ð4Ð4Ð4à�t�;�;�;Ðr5   NrK   rW   r;   r5   r3   r‘   r‘   ã   sB   € € € € € € à6Ð6Ð6Ñ6ØÐÐÑðð ð ð ð ð r5   r‘   c                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú
ShapeGuardzsympy.logic.boolalg.BooleanÚexprr‘   Úslocrj   Úsize_obliviousN©rL   rM   rN   rO   r;   r5   r3   rš   rš   ö   s3   € € € € € € Ø%Ð%Ð%Ñ%Ø€J€J�JØÐÐÑÐÐr5   rš   )r#   c                  ó<  — e Zd ZU ded<   ded<   dZded<   dZded<   dZd	ed
<   dZded<   dZded<   dZ	ded<   dZ
ded<   dZded<   d4d„Zd5d„Zd6d„Zd7d„Zed8d „¦   «         Zed9d"„¦   «         Zed:d$„¦   «         Zd8d%„Zd8d&„Zd;d*„Zd<d+„Zd<d,„Zd<d-„Zd8d.„Zd=d3„ZdS )>ÚGuardÚSourceÚoriginating_sourcez)Callable[[GuardBuilderBase, Guard], None]Ú	create_fnNzlist[str] | NoneÚguard_typesÚ	code_listzobject | NoneÚobj_weakrefú!weakref.ReferenceType[Any] | NoneÚguarded_class_weakrefzCapturedTraceback | NoneÚstackztraceback.StackSummary | NoneÚ
user_stackr&   Ú_hashFrj   Ú_unserializabler*   rA   c                ó„   — | j         €3t          | j        | j        t	          | j        ¦  «        f¦  «        | _         | j         S rl   )r«   ÚhashÚnameÚsourceÚidr£   rV   s    r3   Ú__hash__zGuard.__hash__  s6   € ØŒ:ÐÝ˜tœy¨$¬+µr¸$¼.Ñ7IÔ7IÐJÑKÔKˆDŒJØŒzÐr5   útuple[bool, int, int, str, int]c                ó(  — t          | j        t          j        ¦  «        o&| j        j        t
          j        j        j        j	        u }|| j
        r| j
        j        ndt          | j        ¦  «        | j        |                      ¦   «         j        j        fS )Néÿÿÿÿ)r—   r£   Ú	functoolsÚpartialÚfuncÚtorchrs   ÚguardsÚGuardBuilderÚDUPLICATE_INPUTr°   ÚvalueÚlenr¯   Úinner_create_fnÚ__code__Úco_firstlineno)r1   Úis_duplicate_inputs     r3   Úsort_keyzGuard.sort_key"  s�   € õ
 �t”~¥yÔ'8Ñ9Ô9ð YØ”Ô#¥u¤}Ô';Ô'HÔ'XÐXð 	ð
 Ø!%¤Ð4ˆDŒKÔÐ°"Ý�”	‰NŒNØŒIØ× Ò Ñ"Ô"Ô+Ô:ð
ð 	
r5   Úotherc                óV   — |                       ¦   «         |                      ¦   «         k     S rl   )rÃ   ©r1   rÄ   s     r3   Ú__lt__zGuard.__lt__2  s   € Ø�}Š}‰Œ §¢Ñ!1Ô!1Ò1Ð1r5   ú(Callable[[GuardBuilderBase, Guard], Any]c                óf   — t          | j        t          j        ¦  «        r| j        j        S | j        S rl   )r—   r£   r¶   r·   r¸   rV   s    r3   r¿   zGuard.inner_create_fn5  s,   € Ý�d”n¥iÔ&7Ñ8Ô8ð 	"Ø”>Ô&Ð&à”>Ð!r5   r+   c                ó   — | j         j        S rl   )r¢   r¯   rV   s    r3   r¯   z
Guard.name;  s   € àÔ&Ô+Ð+r5   rY   c                ó   — | j         j        S rl   )r¢   Úguard_sourcerV   s    r3   r°   zGuard.source?  s   € àÔ&Ô3Ð3r5   Úobjectc           
     ó@  — t          | t          j        ¦  «        rv | ¦   «         }|�Jdt          t	          | ¦  «        ¦  «        › d|j        j        › dt          t	          |¦  «        ¦  «        › d�S dt          t	          | ¦  «        ¦  «        › d�S t          | ¦  «        S )aÔ  
        This is a workaround of a Python weakref bug.

        `obj_weakref` is instance returned by `weakref.ref`,
        `str(obj_weakref)` is buggy if the original obj overrides __getattr__, e.g:

            class MyConfig(dict):
                def __getattr__(self, x):
                    return self[x]

            obj = MyConfig(offset=5)
            obj_weakref = weakref.ref(obj)
            str(obj_weakref)  # raise error: KeyError: '__name__'
        Nz<weakref at z; to 'z' at ú>z; dead>)r—   ÚweakrefÚReferenceTypeÚhexr±   Ú	__class__rL   r+   )r¦   Úobjs     r3   Úweakref_to_strzGuard.weakref_to_strC  s�   € õ  �k¥7Ô#8Ñ9Ô9ð 	$Ø�+‘-”-ˆCØˆØn¥c­"¨[©/¬/Ñ&:Ô&:ÐnÐnÀ#Ä-ÔBXÐnÐnÕ_bÕceÐfiÑcjÔcjÑ_kÔ_kÐnÐnÐnÐnàC¥c­"¨[©/¬/Ñ&:Ô&:ÐCÐCÐCÐCå�{Ñ#Ô#Ð#r5   c                ó   — d| j         r| j         j                             ¦   «         nd› dt          | j        ¦  «        › d|                      ¦   «         j        › d| j        › d| j        › d|                      | j	        ¦  «        › d| j
        › d�}|S )	Nz	
        r-   ú z&
        {
            'guard_types': z,
            'code': z,
            'obj_weakref': z
            'guarded_class': z
        }
        )r°   r¯   ÚlowerÚreprr¿   rL   r¤   r¥   rÕ   r¦   r¨   )r1   Úss     r3   Ú__repr__zGuard.__repr__\  sÅ   € ðØ%)¤[Ð	8ˆŒÔ	×	Ò	Ñ	!Ô	!Ð	!°bðð Ý;?ÀÄ	¹?¼?ðð ØMQ×MaÒMaÑMcÔMcÔMlðð ð !Ô,ðð ð ”^ð	ð ð
 !×/Ò/°Ô0@ÑAÔAðð ð #Ô8ðð ð ˆð ˆr5   c                ól  — dt          | j        ¦  «        › d�}| j        r| j        j                             ¦   «         nd}|d|› d�z  }|d|                      ¦   «         j        › d�z  }|d| j        › d�z  }|d| j        › d�z  }|d|                      | j	        ¦  «        › d�z  }|d	| j
        › d�z  }|S )
NzName: ú
r-   z    Source: z    Create Function: z    Guard Types: z    Code List: z    Object Weakref: z    Guarded Class Weakref: )rÙ   r¯   r°   rØ   r¿   rL   r¤   r¥   rÕ   r¦   r¨   )r1   Úoutputr°   s      r3   r4   zGuard.__str__h  sí   € Ø-�$˜tœy™/œ/Ð-Ð-Ð-ˆØ-1¬[Ð@�”Ô!×'Ò'Ñ)Ô)Ð)¸bˆØÐ+ Ð+Ð+Ð+Ñ+ˆØÐM¨$×*>Ò*>Ñ*@Ô*@Ô*IÐMÐMÐMÑMˆØÐ: dÔ&6Ð:Ð:Ð:Ñ:ˆØÐ6 D¤NÐ6Ð6Ð6Ñ6ˆØÐR¨×)<Ò)<¸TÔ=MÑ)NÔ)NÐRÐRÐRÑRˆØÐN°Ô0JÐNÐNÐNÑNˆØˆr5   ÚbuilderrŽ   r   c           	     óŽ  — 	 |                       || ¦  «        S # t          $ r¢ t                               dt	          | ¦  «                             ¦   «         ¦  «         | j        r_t                               dd                     | j         	                    ¦   «         dd …         ¦  «                             ¦   «         ¦  «         ‚ w xY w)NzError while creating guard:
%szCreated at:
%sr-   éüÿÿÿ)
r£   rC   ÚlogÚ	exceptionr+   Úrstripr©   ÚerrorÚjoinÚformat)r1   rß   s     r3   ÚcreatezGuard.creates  s¯   € ð	Ø—>’> '¨4Ñ0Ô0Ð0øÝð 	ð 	ð 	Ý�MŠMÐ;½SÀ¹Y¼Y×=MÒ=MÑ=OÔ=OÑPÔPÐPØŒzð YÝ—	’	Ð+¨R¯WªW°T´Z×5FÒ5FÑ5HÔ5HÈÈÈÔ5MÑ-NÔ-N×-UÒ-UÑ-WÔ-WÑXÔXÐXØð		øøøs
   ‚ ˜B,Cc                ó4   — | j                              ¦   «         S rl   )r°   rx   rV   s    r3   rx   zGuard.is_specialized_nn_module|  s   € ØŒ{×3Ò3Ñ5Ô5Ð5r5   c                ó4   — | j                              ¦   «         S rl   )r°   ro   rV   s    r3   ro   zGuard.is_fsdp_module  s   € ØŒ{×)Ò)Ñ+Ô+Ð+r5   c                ó4   — | j                              ¦   «         S rl   )r°   rƒ   rV   s    r3   rƒ   zGuard.is_local‚  s   € ØŒ{×#Ò#Ñ%Ô%Ð%r5   c                óv   — t          | j        t          j        ¦  «        r| j        j        }n| j        }|j        S rl   )r—   r£   r¶   r·   r¸   rL   )r1   r£   s     r3   Úcreate_fn_namezGuard.create_fn_name…  s5   € Ý�d”n¥iÔ&7Ñ8Ô8ð 	'ØœÔ+ˆIˆIàœˆIØÔ!Ð!r5   Ú
guard_typeÚguarded_classú	list[str]ÚNonec                ó°  — | j         sg | _         | j                              |¦  «         | j        |d fvrt          d| j        › d|› �¦  «        ‚|| _        | j        s|| _        n| j                             |¦  «         | j        |d fv p)t          | j        ¦  «        o|                      ¦   «         d u }|st          d| j        › d|› �¦  «        ‚|| _        d S )Nz1Guarded class id must be identical, or None, got z vs zHGuarded object must be identical, None or ephemeral (dead weakref), got )r¤   Úappendr¨   r0   r¥   Úextendr¦   Úcallable)r1   rî   rï   r¥   r¦   Úis_valids         r3   Úset_export_infozGuard.set_export_infoŒ  s>  € ð Ôð 	"Ø!ˆDÔàÔ×Ò 
Ñ+Ô+Ð+àÔ%¨m¸TÐ-BÐBÐBÝ ðGØÔ1ðGð GØ7DðGð Gñô ð ð &3ˆÔ"àŒ~ð 	-Ø&ˆDŒNˆNàŒN×!Ò! )Ñ,Ô,Ð,ð Ô ¨dÐ 3Ð3ð +Ý˜Ô(Ñ)Ô)ð +Ø× Ò Ñ"Ô" dÐ*ð 	ð
 ð 	Ý ð;ØÔ'ð;ð ;Ø-8ð;ð ;ñô ð ð 'ˆÔÐÐr5   ©r*   rA   )r*   r³   )rÄ   r    r*   rj   )r*   rÈ   rK   ©r*   rY   )r¦   rÍ   r*   r+   )rß   rŽ   r*   r   r„   )
rî   r+   rï   r§   r¥   rð   r¦   rÍ   r*   rñ   )rL   rM   rN   rO   r¤   r¥   r¦   r¨   r©   rª   r«   r¬   r²   rÃ   rÇ   r¿   Úpropertyr¯   r°   ÚstaticmethodrÕ   rÛ   r4   rè   rx   ro   rƒ   rí   r÷   r;   r5   r3   r    r    ü   s  € € € € € € ð& ÐÐÑØ8Ð8Ð8Ñ8ð %)€KÐ(Ð(Ð(Ñ(Ø"&€IÐ&Ð&Ð&Ñ&Ø!%€KÐ%Ð%Ð%Ñ%Ø?CÐÐCÐCÐCÑCà&*€EÐ*Ð*Ð*Ñ*Ø04€JÐ4Ð4Ð4Ñ4Ø€EÐÐÐÑØ!€OÐ!Ð!Ð!Ñ!ðð ð ð ð

ð 
ð 
ð 
ð 2ð 2ð 2ð 2ð"ð "ð "ð "ð ð,ð ,ð ,ñ „Xð,ð ð4ð 4ð 4ñ „Xð4ð ð$ð $ð $ñ „\ð$ð0
ð 
ð 
ð 
ð	ð 	ð 	ð 	ðð ð ð ð6ð 6ð 6ð 6ð,ð ,ð ,ð ,ð&ð &ð &ð &ð"ð "ð "ð "ð&'ð &'ð &'ð &'ð &'ð &'r5   r    ÚTc                  ó   — e Zd ZdS )ÚGuardEnvExprNr�   r;   r5   r3   rþ   rþ   ¿  s   € € € € € à€Dr5   rþ   c                  ó,   — e Zd ZU ded<   ded<   dd„ZdS )	ÚDuplicateInputsr¡   Úinput_source_aÚinput_source_br*   rñ   c                óT   — | j         | j        k    rt          d| j         › �¦  «        ‚d S )Nz9input_source_a and input_source_b must be different, got )r  r  r0   rV   s    r3   Ú__post_init__zDuplicateInputs.__post_init__Ï  sB   € ØÔ $Ô"5Ò5Ð5Ý ð-ØÔ*ð-ð -ñô ð ð 6Ð5r5   N©r*   rñ   )rL   rM   rN   rO   r  r;   r5   r3   r   r   Ê  sB   € € € € € € àÐÐÑØÐÐÑðð ð ð ð ð r5   r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚStorageOverlapzlist[Source]Úoverlapping_sourcesÚnon_overlapping_sourcesNrž   r;   r5   r3   r  r  å  s*   € € € € € € à%Ð%Ð%Ñ%Ø)Ð)Ð)Ñ)Ð)Ð)r5   r  c                  ó>   — e Zd Zedd„¦   «         Zed	d„¦   «         ZdS )
ÚCheckpointabler*   rü   c                ó   — d S rl   r;   rV   s    r3   Úcopy_graphstatezCheckpointable.copy_graphstateù  s   € Ø$' Cr5   Ústaterñ   c                ó   — d S rl   r;   ©r1   r  s     r3   Úrestore_graphstatez!Checkpointable.restore_graphstateü  s   € Ø47°Cr5   N)r*   rü   )r  rü   r*   rñ   )rL   rM   rN   r   r  r  r;   r5   r3   r  r  ø  s<   € € € € € ØØ'Ð'Ð'ñ „^Ø'àØ7Ð7Ð7ñ „^Ø7Ð7Ð7r5   r  c                  ó6   — e Zd ZU dZded<   dd„Zdd	„Zdd„ZdS )ÚGuardsCheckpointStatezW
    The GuardCheckpointState - it is the T of Checkpointable[T] for GuardsContext
    úOrderedSet[Guard]Údynamo_guardsr*   rñ   c                ó   — || _         d S rl   )r  )r1   r  s     r3   Ú__init__zGuardsCheckpointState.__init__  s   € Ø*ˆÔÐÐr5   rÄ   úOrderedSet[Guard] | Nonec                ón   — | j                              |j         ¦  «        }t          |¦  «        dk    rdS |S )zÁ
        Produces a delta against another GuardsCheckpointState.

        Returns None if no delta is found, otherwise, return an OrderedSet() of mismatched
        Guard type objects.
        r   N)r  Ú
differencer¾   ©r1   rÄ   Úrs      r3   ÚdiffzGuardsCheckpointState.diff
  s6   € ð Ô×)Ò)¨%Ô*=Ñ>Ô>ˆÝˆq‰6Œ6�QŠ;ˆ;Ø�4Øˆr5   rÍ   rj   c                ó^   — t          |t          ¦  «        sdS |                      |¦  «        d u S ©NF)r—   r  r  rÆ   s     r3   Ú__eq__zGuardsCheckpointState.__eq__  s1   € Ý˜%Õ!6Ñ7Ô7ð 	Ø�5Ø�yŠy˜ÑÔ 4Ð'Ð'r5   N)r  r  r*   rñ   )rÄ   r  r*   r  ©rÄ   rÍ   r*   rj   )rL   rM   rN   Ú__doc__rO   r  r  r   r;   r5   r3   r  r     sj   € € € € € € ðð ð %Ð$Ð$Ñ$ð+ð +ð +ð +ð
ð 
ð 
ð 
ð(ð (ð (ð (ð (ð (r5   r  c                  ó6   — e Zd ZU i Zded<   dd„Zdd„Zdd„ZdS )ÚModuleContextCheckpointStateúdict[str, torch.nn.Module]Ú
nn_modulesr*   rñ   c                ó   — || _         d S rl   ©r&  )r1   r&  s     r3   r  z%ModuleContextCheckpointState.__init__  s   € Ø$ˆŒˆˆr5   rÄ   úset[str] | Nonec                óê   — t          | j                             ¦   «         ¦  «                             t          |j                             ¦   «         ¦  «        ¦  «        }t	          |¦  «        dk    rdS |S )z¾
        Produces a delta against another ModuleContextCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        module key names.
        r   N)Úsetr&  Úkeysr  r¾   r  s      r3   r  z!ModuleContextCheckpointState.diff"  s]   € õ �”×$Ò$Ñ&Ô&Ñ'Ô'×2Ò2µ3°uÔ7G×7LÒ7LÑ7NÔ7NÑ3OÔ3OÑPÔPˆÝˆq‰6Œ6�QŠ;ˆ;Ø�4Øˆr5   rÍ   rj   c                ó^   — t          |t          ¦  «        sdS |                      |¦  «        d u S r  )r—   r$  r  rÆ   s     r3   r   z#ModuleContextCheckpointState.__eq__.  ó1   € Ý˜%Õ!=Ñ>Ô>ð 	Ø�5Ø�yŠy˜ÑÔ 4Ð'Ð'r5   N)r&  r%  r*   rñ   )rÄ   r$  r*   r)  r!  )rL   rM   rN   r&  rO   r  r  r   r;   r5   r3   r$  r$    sc   € € € € € € Ø-/€JÐ/Ð/Ð/Ñ/ð%ð %ð %ð %ð
ð 
ð 
ð 
ð(ð (ð (ð (ð (ð (r5   r$  c                  ó&   — e Zd Zd	d„Zd
d„Zdd„ZdS )ÚModuleContextr*   rñ   c                ó   — i | _         d S rl   r(  rV   s    r3   r  zModuleContext.__init__5  s   € Ø*,ˆŒˆˆr5   r$  c                óD   — t          t          | j        ¦  «        ¦  «        S rl   )r$  Údictr&  rV   s    r3   r  zModuleContext.copy_graphstate8  s   € Ý+­D°´Ñ,AÔ,AÑBÔBÐBr5   r  c                ó†   — t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚|j        | _        d S )Nz+expected ModuleContextCheckpointState, got )r—   r$  r0   Útyper&  r  s     r3   r  z ModuleContext.restore_graphstate;  sH   € Ý˜%Õ!=Ñ>Ô>ð 	Ý ØK½dÀ5¹k¼kÐKÐKñô ð ð  Ô*ˆŒˆˆr5   Nr  )r*   r$  )r  r$  r*   rñ   )rL   rM   rN   r  r  r  r;   r5   r3   r0  r0  4  sT   € € € € € ð-ð -ð -ð -ðCð Cð Cð Cð+ð +ð +ð +ð +ð +r5   r0  c                  ó6   — e Zd ZU i Zded<   dd„Zdd	„Zdd„ZdS )ÚGlobalContextCheckpointStateúdict[str, tuple[Callable, Any]]Úglobal_stateÚglobal_statesr*   rñ   c                ó   — || _         d S rl   ©r9  )r1   r:  s     r3   r  z%GlobalContextCheckpointState.__init__F  s   € Ø)ˆÔÐÐr5   rÄ   r)  c                óê   — t          | j                             ¦   «         ¦  «                             t          |j                             ¦   «         ¦  «        ¦  «        }t	          |¦  «        dk    rdS |S )z¾
        Produces a delta against another GlobalContextCheckpointState.

        Returns None if no delta is found, otherwise, return a set() of mismatched
        global key names.
        r   N)r+  r9  r,  r  r¾   r  s      r3   r  z!GlobalContextCheckpointState.diffI  s^   € õ �Ô!×&Ò&Ñ(Ô(Ñ)Ô)×4Ò4µS¸Ô9K×9PÒ9PÑ9RÔ9RÑ5SÔ5SÑTÔTˆÝˆq‰6Œ6�QŠ;ˆ;Ø�4Øˆr5   rÍ   rj   c                ó^   — t          |t          ¦  «        sdS |                      |¦  «        d u S r  )r—   r7  r  rÆ   s     r3   r   z#GlobalContextCheckpointState.__eq__U  r.  r5   N)r:  r8  r*   rñ   )rÄ   r7  r*   r)  r!  )rL   rM   rN   r9  rO   r  r  r   r;   r5   r3   r7  r7  C  sc   € € € € € € Ø46€LÐ6Ð6Ð6Ñ6ð*ð *ð *ð *ð
ð 
ð 
ð 
ð(ð (ð (ð (ð (ð (r5   r7  c                  ó2   — e Zd ZdZh d£Zdd„Zdd„Zdd	„Zd
S )ÚGlobalContextzz
    This keeps track of the global torch state during tracing of a function.
    For example, torch.is_grad_enabled.
    >   Úgrad_enabledÚautocast_enabledÚautocast_cpu_dtypeÚautocast_gpu_dtypeÚautocast_cpu_enabledÚautocast_cache_enabledr*   rñ   c                ó   — i | _         d S rl   r<  rV   s    r3   r  zGlobalContext.__init__j  s   € Ø=?ˆÔÐÐr5   r7  c                ó*   — t          | j        ¦  «        S rl   )r7  r9  rV   s    r3   r  zGlobalContext.copy_graphstatem  s   € Ý+¨DÔ,=Ñ>Ô>Ð>r5   r  c                ó  — t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚|j        | _        t          | j        ¦  «        t          | j        ¦  «        k    r/t          | j                             ¦   «         ¦  «        | j        k    s>t          dt          | j                             ¦   «         ¦  «        › d| j        › �¦  «        ‚| j         	                    ¦   «         D ]\  }} ||¦  «         Œd S )Nz+expected GlobalContextCheckpointState, got z Global state mismatch: got keys z, expected )
r—   r7  r0   r5  r9  r¾   Ú_supported_global_statesr+  r,  Úvalues)r1   r  r¸   Úargss       r3   r  z GlobalContext.restore_graphstatep  s  € Ý˜%Õ!=Ñ>Ô>ð 	Ý ØK½dÀ5¹k¼kÐKÐKñô ð ð "Ô.ˆÔå�Ô!Ñ"Ô"¥c¨$Ô*GÑ&HÔ&HÒHÐHÝ�DÔ%×*Ò*Ñ,Ô,Ñ-Ô-°Ô1NÒNÐNå ð<µ3°tÔ7H×7MÒ7MÑ7OÔ7OÑ3PÔ3Pð <ð <Ø Ô9ð<ð <ñô ð ð Ô+×2Ò2Ñ4Ô4ð 	ð 	‰JˆD�$ØˆD�‰JŒJˆJˆJð	ð 	r5   Nr  )r*   r7  )r  r7  r*   rñ   )rL   rM   rN   r"  rJ  r  r  r  r;   r5   r3   r@  r@  [  sp   € € € € € ðð ð
 ð  ð  Ðð@ð @ð @ð @ð?ð ?ð ?ð ?ðð ð ð ð ð r5   r@  c                  óp   — e Zd Zd!d"d„Zd#d	„Zd$d„Zd%d„Zd&d„Zd'd„Zd(d„Z	dddœd)d„Z
d*d„Zd+d„Zd,d „ZdS )-Ú	GuardsSetNÚinnerr  r*   rñ   c                ó°   — |€t          ¦   «         | _        n|| _        t          t          ¦  «        | _        | j        D ]}|                      |¦  «         Œd S rl   )r   rO  r   ÚlistÚsource_to_guardsÚtrack_guard_by_source)r1   rO  Úguards      r3   r  zGuardsSet.__init__…  sa   € Øˆ=Ý,6©L¬LˆDŒJˆJàˆDŒJõ CNÍdÑBSÔBSˆÔØ”Zð 	.ð 	.ˆEØ×&Ò& uÑ-Ô-Ð-Ð-ð	.ð 	.r5   rT  r    c                óT   — |j         }| j        |                              |¦  «         d S rl   )r¢   rR  ró   )r1   rT  r°   s      r3   rS  zGuardsSet.track_guard_by_source�  s,   € ØÔ)ˆØÔ˜fÔ%×,Ò,¨UÑ3Ô3Ð3Ð3Ð3r5   úIterator[Guard]c                ó*   — t          | j        ¦  «        S rl   )ÚiterrO  rV   s    r3   Ú__iter__zGuardsSet.__iter__”  ó   € Ý�D”JÑÔÐr5   rA   c                ó*   — t          | j        ¦  «        S rl   )r¾   rO  rV   s    r3   Ú__len__zGuardsSet.__len__—  s   € Ý�4”:‰ŒÐr5   rÄ   c                ó:   — t          | j        |j        z
  ¦  «        S rl   )rN  rO  rÆ   s     r3   Ú__sub__zGuardsSet.__sub__œ  s   € Ý˜œ e¤kÑ1Ñ2Ô2Ð2r5   rj   c                ó*   — t          | j        ¦  «        S rl   )rj   rO  rV   s    r3   Ú__bool__zGuardsSet.__bool__Ÿ  rZ  r5   c                ó^   — t          ¦   «         | _        t          t          ¦  «        | _        d S rl   )r   rO  r   rQ  rR  rV   s    r3   ÚclearzGuardsSet.clear¢  s#   € Ý‘\”\ˆŒ
Ý +­DÑ 1Ô 1ˆÔÐÐr5   Tr   )Úcollect_debug_stackÚskiprc  rd  c               ó  — || j         v rd S |r$|j        €t          j        d|z   ¬¦  «        |_        |j        €t
                               ¦   «         |_        | j                              |¦  «         |                      |¦  «         d S ©NrZ   )rd  )	rO  r©   r   Úextractrª   ÚTracingContextÚextract_stackÚaddrS  )r1   rT  rc  rd  s       r3   rj  zGuardsSet.add¦  s‹   € ð �D”JÐÐØˆFØð 	GØŒ{Ð"Ý/Ô7¸QÀ¹XÐFÑFÔF�”ØÔÐ#Ý-×;Ò;Ñ=Ô=ˆEÔØŒ
�Š�uÑÔÐØ×"Ò" 5Ñ)Ô)Ð)Ð)Ð)r5   Úothersú
set[Guard]c                óH   — |D ]}|D ]}|                       |d¬¦  «         ŒŒd S rf  )rj  )r1   rk  ÚoÚgs       r3   ÚupdatezGuardsSet.update³  sH   € Øð 	$ð 	$ˆAØð $ð $�Ø—’˜ �Ñ#Ô#Ð#Ð#ð$ð	$ð 	$r5   r°   r¡   úlist[Guard]c                ó6   — t          | j        |         ¦  «        S )z4Return all guards with the given originating_source.)rQ  rR  )r1   r°   s     r3   Úget_guards_for_sourcezGuardsSet.get_guards_for_source¸  s   € å�DÔ)¨&Ô1Ñ2Ô2Ð2r5   c                óÒ   ‡‡— ddl mŠ t          ˆˆfd„| j        D ¦   «         ¦  «        | _        t	          t
          ¦  «        | _        | j        D ]}|                      |¦  «         ŒdS )z.Delete all guards that contains a given sourcerZ   )Úis_from_sourcec              3  ó>   •K  — | ]} ‰|j         ‰¦  «        °|V — Œd S rl   )r¢   )Ú.0ro  ru  r°   s     €€r3   ú	<genexpr>z6GuardsSet.remove_guards_with_source.<locals>.<genexpr>À  sK   øè è € ð  
ð  
Ø¨¨¸Ô8LÈfÑ)UÔ)Uð 
Øð 
ð  
ð  
ð  
ð  
ð  
r5   N)Ú_dynamo.sourceru  r   rO  r   rQ  rR  rS  )r1   r°   rT  ru  s    ` @r3   Úremove_guards_with_sourcez#GuardsSet.remove_guards_with_source¼  s˜   øø€ à2Ð2Ð2Ð2Ð2Ð2åð  
ð  
ð  
ð  
ð  
Ø”zð 
ñ  
ô  
ñ 
ô 
ˆŒ
õ
 !,­DÑ 1Ô 1ˆÔØ”Zð 	.ð 	.ˆEØ×&Ò& uÑ-Ô-Ð-Ð-ð	.ð 	.r5   rl   )rO  r  r*   rñ   )rT  r    r*   rñ   )r*   rV  rø   )rÄ   rN  r*   rN  r„   r  )rT  r    rc  rj   rd  rA   r*   rñ   )rk  rl  r*   rñ   )r°   r¡   r*   rq  )r°   r¡   r*   rñ   )rL   rM   rN   r  rS  rY  r\  r^  r`  rb  rj  rp  rs  rz  r;   r5   r3   rN  rN  „  s  € € € € € ð	.ð 	.ð 	.ð 	.ð 	.ð4ð 4ð 4ð 4ð ð  ð  ð  ðð ð ð ð
3ð 3ð 3ð 3ð ð  ð  ð  ð2ð 2ð 2ð 2ð
 <@ÈQð*ð *ð *ð *ð *ð *ð$ð $ð $ð $ð
3ð 3ð 3ð 3ð.ð .ð .ð .ð .ð .r5   rN  c                  óH   — e Zd Zdd„Zej        dd„¦   «         Zdd„Zdd	„Zd
S )ÚGuardsContextr*   rñ   c                óH   — t          ¦   «         | _        g | _        d| _        d S r  )rN  r  Úaotautograd_guardsÚskip_installrV   s    r3   r  zGuardsContext.__init__Ó  s$   € Ý(1©¬ˆÔØ68ˆÔØ"'ˆÔÐÐr5   úGenerator[None, None, None]c              #  óV   K  — | j         }d| _         	 d V — || _         d S # || _         w xY w)NT)r  )r1   Úolds     r3   Úskip_guard_installz GuardsContext.skip_guard_installØ  sF   è è € àÔˆØ ˆÔð	$ØˆEˆEˆEà #ˆDÔÐÐø ˆDÔÐ#Ð#Ð#Ð#s   ’ Ÿ	(r  c                óN   — t          t          | j        j        ¦  «        ¦  «        S rl   )r  r   r  rO  rV   s    r3   r  zGuardsContext.copy_graphstateá  s   € Ý$¥Z°Ô0BÔ0HÑ%IÔ%IÑJÔJÐJr5   r  c                ó    — t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t	          |j        ¦  «        | _        d S )Nz$expected GuardsCheckpointState, got )r—   r  r0   r5  rN  r  r  s     r3   r  z GuardsContext.restore_graphstateä  sL   € å˜%Õ!6Ñ7Ô7ð 	WÝ Ð!UÍÈUÉÌÐ!UÐ!UÑVÔVÐVÝ& uÔ':Ñ;Ô;ˆÔÐÐr5   Nr  ©r*   r€  )r*   r  )r  r  r*   rñ   )	rL   rM   rN   r  Ú
contextlibr   rƒ  r  r  r;   r5   r3   r|  r|  Ò  sx   € € € € € ð(ð (ð (ð (ð
 Ôð$ð $ð $ñ Ôð$ðKð Kð Kð Kð<ð <ð <ð <ð <ð <r5   r|  c                  óþ   — e Zd Zed d„¦   «         Zed!d	„¦   «         Zed"d„¦   «         Zed#d„¦   «         Zed"d„¦   «         Zed#d„¦   «         Z	ed$d„¦   «         Z
ed%d„¦   «         Zed&d„¦   «         Zed'd„¦   «         ZdS )(ÚHopSubgraphCacheÚfn_coder   Ú
identifierr+   r*   rñ   c                ó   — d S rl   r;   ©r1   rŠ  r‹  s      r3   Úadd_dynamo_installed_submodulez/HopSubgraphCache.add_dynamo_installed_submoduleì  ó	   € ð ˆsr5   rð   c                ó   — d S rl   r;   ©r1   rŠ  s     r3   Úget_dynamo_installed_submodulesz0HopSubgraphCache.get_dynamo_installed_submodulesñ  s   € ØORÈsr5   Úkeyr   c                ó   — d S rl   r;   ©r1   r‹  r“  s      r3   Úadd_autograd_key_entryz'HopSubgraphCache.add_autograd_key_entryô  s   € ØNQÈcr5   úCallable | Nonec                ó   — d S rl   r;   ©r1   r‹  s     r3   Úget_autograd_key_entryz'HopSubgraphCache.get_autograd_key_entry÷  s   € ØJMÈ#r5   c                ó   — d S rl   r;   r•  s      r3   Úadd_proxy_dispatch_entryz)HopSubgraphCache.add_proxy_dispatch_entryú  s   € ØPSÐPSr5   c                ó   — d S rl   r;   r™  s     r3   Úget_proxy_dispatch_entryz)HopSubgraphCache.get_proxy_dispatch_entryý  s   € ØLOÈCr5   rÍ   Úschemaútorch._C.FunctionSchemac                ó   — d S rl   r;   ©r1   r“  rŸ  s      r3   Úadd_functionalize_schema_entryz/HopSubgraphCache.add_functionalize_schema_entry   r�  r5   útorch._C.FunctionSchema | Nonec                ó   — d S rl   r;   ©r1   r“  s     r3   Úget_functionalize_schema_entryz/HopSubgraphCache.get_functionalize_schema_entry  s	   € ð *-¨r5   Útangent_metadataútuple[object]Úgmodútorch.fx.GraphModulerA   c                ó   — d S rl   r;   )r1   r‹  r¨  rª  s       r3   Úadd_lazy_bwd_entryz#HopSubgraphCache.add_lazy_bwd_entry
  s	   € ð ˆcr5   ú.tuple[torch.fx.GraphModule | None, int | None]c                ó   — d S rl   r;   ©r1   r‹  r¨  s      r3   Úget_lazy_bwd_entryz#HopSubgraphCache.get_lazy_bwd_entry  s	   € ð :=¸r5   N©rŠ  r   r‹  r+   r*   rñ   ©rŠ  r   r*   rð   ©r‹  r+   r“  r   r*   rñ   ©r‹  r+   r*   r—  ©r“  rÍ   rŸ  r   r*   rñ   ©r“  rÍ   r*   r¤  ©r‹  r+   r¨  r©  rª  r«  r*   rA   ©r‹  r+   r¨  r©  r*   r®  )rL   rM   rN   r   rŽ  r’  r–  rš  rœ  rž  r£  r§  r­  r±  r;   r5   r3   r‰  r‰  ë  s   € € € € € Øðð ð ñ „^ðð ØRÐRÐRñ „^ØRàØQÐQÐQñ „^ØQàØMÐMÐMñ „^ØMàØSÐSÐSñ „^ØSàØOÐOÐOñ „^ØOàðð ð ñ „^ðð ð-ð -ð -ñ „^ð-ð ðð ð ñ „^ðð ð=ð =ð =ñ „^ð=ð =ð =r5   r‰  c                  ód   — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   dZded<   dS )ÚInvokeSubgraphReuseEntryr+   Ú	body_namer«  Ú	body_gmodz!NestedCompileRegionOptions | Nonert   ú	list[Any]Úsubgraph_input_mappingrj   Úsingle_tensor_outputzIlist[tuple[torch.Size, tuple[int, ...], torch.dtype, torch.device, bool]]Úoutput_metadatazlist[Source | None]Úarg_sourcesr   rA   Únum_user_outputsN)rL   rM   rN   rO   rÃ  r;   r5   r3   r»  r»    s‹   € € € € € € à€N€N�NØ#Ð#Ð#Ñ#Ø-Ð-Ð-Ñ-ðð ð ñ ð ÐÐÑðð ð ñ ð %Ð$Ð$Ñ$ð ÐÐÐÐÑÐÐr5   r»  c                  ó^   — e Zd ZU ded<   ded<   dZded<    ej        e¬¦  «        Zd	ed
<   dS )ÚInvokeSubgraphReuseConditionzlist[tuple[Any, object]]Úinput_checksz2list[tuple[Source, GuardCheckSpec, object, Guard]]rº   Nzpytree.TreeSpec | NoneÚtreespec)Údefault_factoryzOrderedSet[Source]Útraced_sources)	rL   rM   rN   rO   rÇ  ÚdataclassesÚfieldr   rÉ  r;   r5   r3   rÅ  rÅ  2  sd   € € € € € € ð +Ð*Ð*Ñ*ð
 ?Ð>Ð>Ñ>ð (,€HÐ+Ð+Ð+Ñ+ð
 *;¨Ô):È:Ð)VÑ)VÔ)V€NÐVÐVÐVÑVÐVÐVr5   rÅ  c                  óž   — e Zd Zd4d„Zd5d„Zd6d
„Zd7d„Zd8d„Zd7d„Zd8d„Z	d9d„Z
d:d„Zd;d„Zd<d„Zd=d"„Zd>d$„Z	 d?d@d+„ZdAd/„ZdBd1„Z	 d?dCd2„Zd3S )DÚInvokeSubgraphCacher*   rñ   c                ó  — i | _         i | _        i | _        t          t          ¦  «        | _        t          t          ¦  «        | _        i | _        t          t          ¦  «        | _	        t          t          ¦  «        | _
        d S rl   )Úautograd_cacheÚproxy_dispatch_cacheÚfunctionalize_schema_cacher   rQ  Údynamo_installed_submodulesr3  Úlazy_bwd_cacheÚeffects_cacheÚsubgraph_reuse_cacheÚsubgraph_reuse_key_cacherV   s    r3   r  zInvokeSubgraphCache.__init__N  s}   € Ø35ˆÔØ9;ˆÔ!ØQSˆÔ'ÝFQÕRVÑFWÔFWˆÔ(õ �ÑÔð 	Ôð
 ð 	Ôõ �ÑÔð 	Ô!õ �ÑÔð 	Ô%Ð%Ð%r5   rŠ  r   r‹  r+   c                óF   — | j         |                              |¦  «         d S rl   )rÒ  ró   r�  s      r3   rŽ  z2InvokeSubgraphCache.add_dynamo_installed_submodulee  s&   € ð 	Ô(¨Ô1×8Ò8¸ÑDÔDÐDÐDÐDr5   rð   c                ó8   — | j                              |g ¦  «        S rl   )rÒ  Úgetr‘  s     r3   r’  z3InvokeSubgraphCache.get_dynamo_installed_submodulesj  s   € ØÔ/×3Ò3°G¸RÑ@Ô@Ð@r5   r“  r   c                ó   — || j         |<   d S rl   )rÏ  r•  s      r3   r–  z*InvokeSubgraphCache.add_autograd_key_entrym  s   € Ø*-ˆÔ˜JÑ'Ð'Ð'r5   r—  c                ó8   — | j                              |d ¦  «        S rl   )rÏ  rÙ  r™  s     r3   rš  z*InvokeSubgraphCache.get_autograd_key_entryp  s   € ØÔ"×&Ò& z°4Ñ8Ô8Ð8r5   c                ó   — || j         |<   d S rl   )rÐ  r•  s      r3   rœ  z,InvokeSubgraphCache.add_proxy_dispatch_entrys  s   € Ø03ˆÔ! *Ñ-Ð-Ð-r5   c                ó8   — | j                              |d ¦  «        S rl   )rÐ  rÙ  r™  s     r3   rž  z,InvokeSubgraphCache.get_proxy_dispatch_entryv  s   € ØÔ(×,Ò,¨Z¸Ñ>Ô>Ð>r5   rÍ   rŸ  r   c                ó   — || j         |<   d S rl   )rÑ  r¢  s      r3   r£  z2InvokeSubgraphCache.add_functionalize_schema_entryy  s   € ð 06ˆÔ'¨Ñ,Ð,Ð,r5   r¤  c                ó8   — | j                              |d ¦  «        S rl   )rÑ  rÙ  r¦  s     r3   r§  z2InvokeSubgraphCache.get_functionalize_schema_entry~  s   € ð Ô.×2Ò2°3¸Ñ=Ô=Ð=r5   r¨  r©  rª  r«  rA   c                ó^   — t          | j        |         ¦  «        }||f| j        |         |<   |S rl   )r¾   rÓ  )r1   r‹  r¨  rª  Ú	num_gmodss        r3   r­  z&InvokeSubgraphCache.add_lazy_bwd_entryƒ  s7   € õ ˜Ô+¨JÔ7Ñ8Ô8ˆ	Ø=AÀ9Ð<MˆÔ˜JÔ'Ð(8Ñ9ØÐr5   r®  c                óZ   — || j         vrdS | j         |                              |d¦  «        S )N)NN)rÓ  rÙ  r°  s      r3   r±  z&InvokeSubgraphCache.get_lazy_bwd_entryŽ  s6   € ð ˜TÔ0Ð0Ð0Ø�<àÔ" :Ô.×2Ò2Ð3CÀ\ÑRÔRÐRr5   Úeffectsr+  c           	     ó’   — | j                              |d¦  «        x}r||k    rt          d|› d|› d|› d�¦  «        ‚|| j         |<   dS )z>Store the effect types for a given invoke_subgraph identifier.NzPDifferent number of effects were found for invoke_subgraph call with identifier z,. 
Previously we had the following effects: z.
But now we have: ú.)rÔ  rÙ  r0   )r1   r‹  rã  Úprev_effectss       r3   Úadd_effectszInvokeSubgraphCache.add_effects–  s‡   € àÔ-×1Ò1°*¸dÑCÔCÐCˆ<ð 	Ø˜,Ò&Ð&Ý$ð3Ø,6ð3ð 3à@Lð3ð 3ð )0ð3ð 3ð 3ñô ð ð *1ˆÔ˜:Ñ&Ð&Ð&r5   ú
set | Nonec                ó8   — | j                              |d¦  «        S )zARetrieve the effect types for a given invoke_subgraph identifier.N)rÔ  rÙ  r™  s     r3   Úget_effectszInvokeSubgraphCache.get_effects¢  s   € àÔ!×%Ò% j°$Ñ7Ô7Ð7r5   ra   Ú	conditionrÅ  Úentryr»  Úmax_reuse_entriesc                ó    — | j         |         }t          |¦  «        |k    rt          d|› d|› d�¦  «        ‚|                     ||f¦  «         d S )Nú1invoke_subgraph: exceeded maximum reuse entries (ú) for function code a?  . This most likely means a guard keeps failing on every invocation, preventing subgraph reuse. Set TORCH_LOGS='+hierarchical_compile' to identify which guard is failing. If reuse is genuinely not possible and you need more cache entries, increase the limit via the max_reuse_entries argument to nested_compile_region().)rÕ  r¾   ÚRuntimeErrorró   )r1   rŠ  rë  rì  rí  Úentriess         r3   Úadd_reuse_entryz#InvokeSubgraphCache.add_reuse_entry¦  s~   € ð Ô+¨GÔ4ˆÝˆw‰<Œ<Ð,Ò,Ð,ÝðJØ%ðJð JØ;BðJð Jð Jñ	ô 	ð 	ð 	�Š˜	 5Ð)Ñ*Ô*Ð*Ð*Ð*r5   Ú	evaluatorúHCallable[[InvokeSubgraphReuseCondition, InvokeSubgraphReuseEntry], bool]úInvokeSubgraphReuseEntry | Nonec                óê   — | j                              |g ¦  «        }t          |¦  «        D ]G\  }\  }} |||¦  «        r3|dk    r)|                     d|                     |¦  «        ¦  «         |c S ŒHd S rq   )rÕ  rÙ  Ú	enumerateÚinsertÚpop)r1   rŠ  rô  rò  Úirë  rì  s          r3   Úfind_reuse_entryz$InvokeSubgraphCache.find_reuse_entry»  s�   € ð Ô+×/Ò/°¸Ñ<Ô<ˆÝ%.¨wÑ%7Ô%7ð 	ð 	Ñ!ˆAÑ!�	˜5Øˆy˜ EÑ*Ô*ð à�q’5�5Ø—N’N 1 g§k¢k°!¡n¤nÑ5Ô5Ð5Ø���ð	ð
 ˆtr5   Úhash_keyc                ó^   — | j                              |i ¦  «                             |¦  «        S rl   )rÖ  rÙ  )r1   rŠ  rý  s      r3   Úfind_reuse_entry_by_keyz+InvokeSubgraphCache.find_reuse_entry_by_keyË  s+   € ð Ô,×0Ò0°¸"Ñ=Ô=×AÒAÀ(ÑKÔKÐKr5   c                ó„   — | j         |         }t          |¦  «        |k    r||vrt          d|› d|› d�¦  «        ‚|||<   d S )Nrï  rð  zc (hash-key path). Increase the limit via the max_reuse_entries argument to nested_compile_region().)rÖ  r¾   rñ  )r1   rŠ  rý  rì  rí  Ú	key_caches         r3   Úadd_reuse_entry_by_keyz*InvokeSubgraphCache.add_reuse_entry_by_keyÐ  su   € ð Ô1°'Ô:ˆ	Ýˆy‰>Œ>Ð.Ò.Ð.°8À9Ð3LÐ3LÝð,Ø%ð,ð ,Ø;Bð,ð ,ð ,ñô ð ð $ˆ	�(ÑÐÐr5   Nr  r²  r³  r´  rµ  r¶  r·  r¸  r¹  )r‹  r+   rã  r+  r*   rñ   )r‹  r+   r*   rè  )ra   )
rŠ  r   rë  rÅ  rì  r»  rí  rA   r*   rñ   )rŠ  r   rô  rõ  r*   rö  )rŠ  r   rý  rA   r*   rö  )
rŠ  r   rý  rA   rì  r»  rí  rA   r*   rñ   )rL   rM   rN   r  rŽ  r’  r–  rš  rœ  rž  r£  r§  r­  r±  rç  rê  ró  rü  rÿ  r  r;   r5   r3   rÍ  rÍ  M  sŒ  € € € € € ðð ð ð ð.Eð Eð Eð Eð
Að Að Að Að.ð .ð .ð .ð9ð 9ð 9ð 9ð4ð 4ð 4ð 4ð?ð ?ð ?ð ?ð6ð 6ð 6ð 6ð
>ð >ð >ð >ð
	ð 	ð 	ð 	ðSð Sð Sð Sð
1ð 
1ð 
1ð 
1ð8ð 8ð 8ð 8ð "#ð+ð +ð +ð +ð +ð*ð ð ð ð Lð Lð Lð Lð "#ð$ð $ð $ð $ð $ð $ð $r5   rÍ  c                  ó   — e Zd Zd	d„Zd
d„ZdS )ÚHopDispatchSetCacher*   rñ   c                ó<   — ddl m} |t          ¦   «         i| _        d S )Nr   )Úinvoke_subgraph)Ú'torch._higher_order_ops.invoke_subgraphr  rÍ  Úhop_cache_map)r1   r  s     r3   r  zHopDispatchSetCache.__init__ã  s.   € àKÐKÐKÐKÐKÐKà-Õ/BÑ/DÔ/DÐEˆÔÐÐr5   Úopútorch._ops.HigherOrderOperatorúHopSubgraphCache | Nonec                ó2   — || j         vrd S | j         |         S rl   )r  )r1   r	  s     r3   Ú	get_cachezHopDispatchSetCache.get_cacheé  s#   € Ø�TÔ'Ð'Ð'Ø�4ØÔ! "Ô%Ð%r5   Nr  )r	  r
  r*   r  )rL   rM   rN   r  r  r;   r5   r3   r  r  â  s@   € € € € € ðFð Fð Fð Fð&ð &ð &ð &ð &ð &r5   r  c                  óv   — e Zd Zedd„¦   «         Zedd„¦   «         Zdd„Zedd	„¦   «         Zedd„¦   «         ZdS )ÚCompileContextr*   c                 óP   — t           j        €t          d¦  «        ‚t           j        S )Nzcompile_context is not set)Ú_TLSÚcompile_contextr0   r;   r5   r3   rÙ  zCompileContext.get  s#   € åÔÐ'Ý Ð!=Ñ>Ô>Ð>ÝÔ#Ð#r5   úCompileContext | Nonec                 ó.   — t          t          dd ¦  «        S ©Nr  ©Úgetattrr  r;   r5   r3   Útry_getzCompileContext.try_get  ó   € å•tÐ.°Ñ5Ô5Ð5r5   r6   r8   rñ   c                óœ   — |�4t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚|| _        d| _        g | _        d S )Nz*compile_id must be None or CompileId, got r   )r—   r%   r0   r5  r6   rS   Úshape_env_guards)r1   r6   s     r3   r  zCompileContext.__init__  sZ   € ØÐ!­*°ZÅÑ*KÔ*KÐ!Ý ØO½TÀ*Ñ=MÔ=MÐOÐOñô ð ð -7ˆŒØˆŒà+-ˆÔÐÐr5   c                 óJ   — t                                ¦   «         } | €d S | j        S rl   )r  r  r6   rV   s    r3   Úcurrent_compile_idz!CompileContext.current_compile_id  s%   € å×%Ò%Ñ'Ô'ˆØˆ<Ø�4ØŒÐr5   úTraceId | Nonec                 ó‚   — t                                ¦   «         } | €d S | j        €d S t          | j        | j        ¦  «        S rl   )r  r  r6   rR   rS   rV   s    r3   Úcurrent_trace_idzCompileContext.current_trace_id   s>   € å×%Ò%Ñ'Ô'ˆØˆ<Ø�4ØŒ?Ð"Ø�4Ý�t”¨¬Ñ5Ô5Ð5r5   N)r*   r  )r*   r  )r6   r8   r*   rñ   )r*   r8   )r*   r  )	rL   rM   rN   rû   rÙ  r  r  r  r   r;   r5   r3   r  r    s¦   € € € € € Øð$ð $ð $ñ „\ð$ð
 ð6ð 6ð 6ñ „\ð6ð.ð .ð .ð .ð ðð ð ñ „\ðð ð6ð 6ð 6ñ „\ð6ð 6ð 6r5   r  c                  ó2   — e Zd ZU dZded<   ded<   ded<   dS )	ÚInlinedCodeCachez8Cache for code-object-derived data used during inlining.r¾  Úinstructionszdict[Any, int]Úindexofr   Úcode_optionsN)rL   rM   rN   r"  rO   r;   r5   r3   r"  r"  *  s<   € € € € € € àBÐBàÐÐÑØÐÐÑØÐÐÑÐÐr5   r"  c                  ód  — e Zd ZdZed$d„¦   «         Zed%d„¦   «         Zd&d	„Zd'd
„Zee	d(d„¦   «         ¦   «         Z
ed)d„¦   «         Zd*d„Zeej	        d+d„¦   «         ¦   «         Zeej	        d,d„¦   «         ¦   «         Zeej	        d-d„¦   «         ¦   «         Ze	 d.d/d!„¦   «         Zed0d#„¦   «         ZdS )1rh  zÅ
    Provides the currently installed TracingContext, or None.

    Note that it is a staticmethod, and invocations outside of `with tracing()` (see below), are valid but
    will return None.
    r*   úTracingContext | Nonec                 ó.   — t          t          dd ¦  «        S )NÚtracing_contextr  r;   r5   r3   r  zTracingContext.try_get;  r  r5   c                 óZ   — t                                ¦   «         x} r| S t          d¦  «        ‚)Nz<TracingContext.get() must be called within an ongoing trace.)rh  r  rñ  )Úctxs    r3   rÙ  zTracingContext.get?  s5   € å ×(Ò(Ñ*Ô*Ð*ˆ3ð 	ØˆJÝØJñ
ô 
ð 	
r5   Ú	fake_modeúFakeTensorMode | Nonerñ   c                ó  — t          ¦   «         | _        t          ¦   «         | _        t	          ¦   «         | _        t          ¦   «         | _        t          ¦   «         | _        t          ¦   «         | _	        || _
        g | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d| _        t-          ¦   «         | _        d| _        t3          ¦   «         | _        g | _        d | _        d S r  )r|  Úguards_contextr0  Úmodule_contextr@  Úglobal_contextr3  Úpreviously_inlined_functionsÚpreviously_cleaned_instructionsÚinlined_code_cacher,  Úframe_summary_stackÚloc_in_frameÚloc_in_frame_positionsÚfw_metadataÚddp_optimizer_ctxÚaot_graph_nameÚparams_flatÚparams_flat_unwrap_subclassesÚparams_unwrapped_to_flat_indexÚoutput_stridesÚ#force_unspec_int_unbacked_size_liker   Útensor_to_contextÚfakify_first_callr  Úhop_dispatch_set_cacheÚtraced_codeÚcudagraph_annotation)r1   r,  s     r3   r  zTracingContext.__init__G  sí   € Ý+™oœoˆÔÝ+™oœoˆÔÝ+™oœoˆÔÝ<@¹F¼FˆÔ)Ý?C¹v¼vˆÔ,å?C¹v¼vˆÔØ09ˆŒØACˆÔ ð :>ˆÔØ<@ˆÔ#à7;ˆÔà=AˆÔà04ˆÔØ-1ˆÔØ?CˆÔ*Ø@DˆÔ+ð DHˆÔð 49ˆÔ0å!8Ñ!:Ô!:ˆÔð
 "'ˆÔÝ&9Ñ&;Ô&;ˆÔ#à+-ˆÔØ)-ˆÔ!Ð!Ð!r5   c                ó´   — i | j         _        | j                             ¦   «          | j                             ¦   «          | j                             ¦   «          d S rl   )r1  r9  r2  rb  r3  r4  rV   s    r3   rb  zTracingContext.clear~  sT   € ð ,.ˆÔÔ(ØÔ)×/Ò/Ñ1Ô1Ð1ØÔ,×2Ò2Ñ4Ô4Ð4ØÔ×%Ò%Ñ'Ô'Ð'Ð'Ð'r5   Úkwargsr   r€  c               +  ó†  K  — i }t                                ¦   «         }| D ]}t          ||¦  «        ||<   Œ|                      ¦   «         D ]\  }}t	          |||¦  «         Œ	 d V — |                     ¦   «         D ]\  }}t	          |||¦  «         Œd S # |                     ¦   «         D ]\  }}t	          |||¦  «         Œw xY wrl   )rh  rÙ  r  r@   Úsetattr)rF  Úpriorr+  r“  Úvals        r3   ÚpatchzTracingContext.patch†  sò   è è € ð ˆÝ× Ò Ñ"Ô"ˆàð 	+ð 	+ˆCå   cÑ*Ô*ˆE�#‰JˆJØŸš™œð 	#ð 	#‰HˆC�Ý�C˜˜cÑ"Ô"Ð"Ð"ð	'ØˆEˆEˆEà!ŸKšK™MœMð 'ð '‘��SÝ˜˜S #Ñ&Ô&Ð&Ð&ð'ð 'ø˜EŸKšK™MœMð 'ð '‘��SÝ˜˜S #Ñ&Ô&Ð&Ð&ð'øøøs   Á"B Â-C útraceback.StackSummaryc                 óè   — t                                ¦   «         } | €t          j        ¦   «         S | j        }| j        �||                      ¦   «         gz   }t          j                             |¦  «        S rl   )rh  r  Ú	tracebackÚStackSummaryr5  r6  Ú_populate_loc_in_frame_summaryÚ	from_list)r1   r©   s     r3   ri  zTracingContext.extract_stack—  sh   € å×%Ò%Ñ'Ô'ˆØˆ<ÝÔ)Ñ+Ô+Ð+ØÔ(ˆØÔÐ(Ø˜T×@Ò@ÑBÔBÐCÑCˆEÝÔ%×/Ò/°Ñ6Ô6Ð6r5   útraceback.FrameSummaryc                óÞ   — | j         €t          d¦  «        ‚| j         \  }}}i }t          j        dk    r%| j        �| j        j        |d<   | j        j        |d<   t          j        |||fddi|¤ŽS )Nzloc_in_frame must not be None)r\   rd   ÚcolnoÚ	end_colnoÚlookup_lineF)	r6  r0   ÚsysÚversion_infor7  Ú
col_offsetÚend_col_offsetrN  ÚFrameSummary)r1   ÚfilenameÚlinenoÚ
frame_namerF  s        r3   rP  z-TracingContext._populate_loc_in_frame_summary¡  sš   € ØÔÐ$Ý Ð!@ÑAÔAÐAØ'+Ô'8Ñ$ˆ�&˜*à!#ˆÝÔ˜wÒ&Ð&¨4Ô+FÐ+RØ"Ô9ÔDˆF�7‰OØ"&Ô"=Ô"LˆF�;ÑÝÔ%ØØØð
ð 
ð ð	
ð
 ð
ð 
ð 	
r5   c               #  ó  K  — t                                ¦   «         } t          j        j                             | dg ¦  «        5  t          j        j                             | dd ¦  «        5  t          j        j                             | dd ¦  «        5  	 d V — n*# t          $ r}t          |d¦  «        sd |_        ‚ d }~ww xY w	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr5  r6  r7  Ú
real_stack)	rh  rÙ  ÚunittestÚmockrK  rÍ   rC   Úhasattrr`  )ÚtcrI   s     r3   Úclear_framezTracingContext.clear_frame´  sÔ  è è € õ ×ÒÑ!Ô!ˆåŒMÔ×&Ò& rÐ+@À"ÑEÔEð	ð 	åŒMÔ×&Ò& r¨>¸4Ñ@Ô@ð	ð 	õ ŒMÔ×&Ò& rÐ+CÀTÑJÔJð	ð 	ð
Ø����øÝð ð ð õ$ ˜q ,Ñ/Ô/ð (Ø#'�A”LØøøøøð)øøøð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s~   Á'C=Á)'C%ÂCÂBÂCÂ
B>	Â!B9	Â9B>	Â>CÃC%ÃCÃC%ÃCÃC%ÃC=Ã%C)	Ã)C=Ã,C)	Ã-C=Ã=DÄDÚframe_summaryútraceback.FrameSummary | Nonec              #  óà  K  — t                                ¦   «         }| �|j                             | ¦  «         |j        }|j        }d |_        d |_        	 d V — n<# t          $ r/}t          |d¦  «        s|                     ¦   «         |_	        ‚ d }~ww xY w	 | �|j         
                    ¦   «          ||_        ||_        d S # | �|j         
                    ¦   «          ||_        ||_        w xY w)Nr`  )rh  rÙ  r5  ró   r6  r7  rC   rc  ri  r`  rú  )rf  rd  r‚  Úold_positionsrI   s        r3   Úcurrent_framezTracingContext.current_frameÕ  s  è è € õ ×ÒÑ!Ô!ˆØÐ$ØÔ"×)Ò)¨-Ñ8Ô8Ð8ØŒoˆØÔ1ˆØˆŒØ$(ˆÔ!ð
	6ØˆEˆEˆEˆEøÝð 	ð 	ð 	Ý˜1˜lÑ+Ô+ð 2Ø!×/Ò/Ñ1Ô1�”Øøøøøð	øøøð ð Ð(ØÔ&×*Ò*Ñ,Ô,Ð,Ø!ˆBŒOØ(5ˆBÔ%Ð%Ð%øð Ð(ØÔ&×*Ò*Ñ,Ô,Ð,Ø!ˆBŒOØ(5ˆBÔ%Ð5Ð5Ð5Ð5s*   ÁA ÁC Á
BÁ$*BÂBÂC Ã+C-ú:Generator[list[tuple[int, ...] | None] | None, None, None]c               #  ó¢   K  — t                                ¦   «         } | €d V — d S | j        }g | _        	 | j        V — || _        d S # || _        w xY wrl   )rh  r  r>  )rd  Úold_output_stridess     r3   Úreport_output_stridesz$TracingContext.report_output_stridesï  st   è è € õ
 ×#Ò#Ñ%Ô%ˆØˆ:ØˆJˆJˆJØˆFØÔ.ÐØˆÔð	3ØÔ#Ð#Ð#Ð#à 2ˆBÔÐÐøÐ 2ˆBÔÐ2Ð2Ð2Ð2s   ³	A Á	ANr\  r+   r]  rA   r^  Ú	positionsúdis.Positions | Nonec                óZ   — t                                ¦   «         }| ||f|_        ||_        d S rl   )rh  rÙ  r6  r7  )r\  r]  r^  ro  rd  s        r3   Úset_current_loczTracingContext.set_current_locÿ  s1   € õ ×ÒÑ!Ô!ˆØ# V¨ZÐ8ˆŒØ$-ˆÔ!Ð!Ð!r5   úlist[CodeType] | Nonec                 óJ   — t                                ¦   «         } | €d S | j        S rl   )rh  r  rC  )rd  s    r3   Úget_traced_codezTracingContext.get_traced_code  s%   € å×#Ò#Ñ%Ô%ˆØˆ:Ø�4ØŒ~Ðr5   )r*   r'  )r*   rh  )r,  r-  r*   rñ   r  )rF  r   r*   r€  )r*   rL  )r*   rR  r†  )rf  rg  r*   r€  )r*   rk  rl   )
r\  r+   r]  rA   r^  r+   ro  rp  r*   rñ   )r*   rs  )rL   rM   rN   r"  rû   r  rÙ  r  rb  r   rK  ri  rP  r‡  re  rj  rn  rr  ru  r;   r5   r3   rh  rh  3  s¹  € € € € € ðð ð ð6ð 6ð 6ñ „\ð6ð ð
ð 
ð 
ñ „\ð
ð5.ð 5.ð 5.ð 5.ðn(ð (ð (ð (ð Øð'ð 'ð 'ñ „^ñ „\ð'ð ð7ð 7ð 7ñ „\ð7ð
ð 
ð 
ð 
ð& ØÔðð ð ñ Ôñ „\ðð> ØÔð6ð 6ð 6ñ Ôñ „\ð6ð0 ØÔð3ð 3ð 3ñ Ôñ „\ð3ð ð
 +/ð	
.ð 
.ð 
.ð 
.ñ „\ð
.ð ðð ð ñ „\ðð ð r5   rh  Úcontextr  r*   ú,Generator[CompileContext | None, None, None]c              #  ó’   K  — t          t          dd ¦  «        }| t          _        	 | V — |t          _        d S # |t          _        w xY wr  )r  r  r  )rv  Úold_contexts     r3   r  r    sR   è è € õ �$Ð 1°4Ñ8Ô8€KØ"…DÔð+Øˆˆˆà*�ÔÐÐø˜{�ÔÐ*Ð*Ð*Ð*s	   ¦8 ¸Ar'  ú,Generator[TracingContext | None, None, None]c              #  óÞ  K  — t          t          dd¦  «        }| t          _        	 | V — n># t          $ r1}t	          |d¦  «        s| �|                      ¦   «         |_        ‚ d}~ww xY w	 | �1| j        �*| j        j        �| j        j         	                    ¦   «          |t          _        dS # | �1| j        �*| j        j        �| j        j         	                    ¦   «          |t          _        w xY w)zË
    This function installs the passed in tracing context as a dynamic scoped
    global variable.

    Calls to TracingContext.get() while not under a `with tracing()` context
    will return None.
    r)  Nr`  )
r  r  r)  rC   rc  ri  r`  r,  Ú	shape_envÚcleanup)rv  ry  rI   s      r3   Útracingr~     s  è è € õ �$Ð 1°4Ñ8Ô8€KØ"…DÔð+ØˆˆˆˆøÝð ð ð Ý�q˜,Ñ'Ô'ð 	3¨GÐ,?Ø"×0Ò0Ñ2Ô2ˆAŒLØøøøøðøøøð 	ð ÐØÔ!Ð-ØÔ!Ô+Ð7àÔÔ'×/Ò/Ñ1Ô1Ð1Ø*�ÔÐÐøð ÐØÔ!Ð-ØÔ!Ô+Ð7àÔÔ'×/Ò/Ñ1Ô1Ð1Ø*�ÔÐ*Ð*Ð*Ð*s&   ¦+ ªB+ «
A&µ,A!Á!A&Á&B+ Â+AC,rD   útype[T]rF  r   c                ó   — d S rl   r;   ©rD   rF  s     r3   Údataclass_with_cached_hashr‚  =  s   € ØHKÈr5   rñ   úCallable[[type[T]], type[T]]c                ó   — d S rl   r;   r�  s     r3   r‚  r‚  A  s	   € ð $' 3r5   útype[T] | Noneú&type[T] | Callable[[type[T]], type[T]]c                ó.   ‡— dˆfd„}| €|S  || ¦  «        S )NÚ	cls_innerr  r*   c                ój   •‡— t          j        | fi ‰¤Ž}| j        Šdˆfd„}d„ }||_        ||_        |S )Nr*   rA   c                ó|   •— t          | d¦  «        s%t                               | d ‰| ¦  «        ¦  «         | j        S )Nr«   )rc  rÍ   Ú__setattr__r«   )r1   Úold_hashs    €r3   r²   z:dataclass_with_cached_hash.<locals>.wrap.<locals>.__hash__O  s>   ø€ Ý˜4 Ñ)Ô)ð BÝ×"Ò" 4¨°(°(¸4±.´.ÑAÔAÐAØ”:Ðr5   c                ót   ‡ — t          j        ‰ ¦  «        }t          ˆ fd„|D ¦   «         ¦  «        }‰ j        |fS )Nc              3  óP   •K  — | ] }|j         ¯	t          ‰|j        ¦  «        V — Œ!d S rl   )Úinitr  r¯   )rw  Úfr1   s     €r3   rx  zOdataclass_with_cached_hash.<locals>.wrap.<locals>.__reduce__.<locals>.<genexpr>Y  s6   øè è € Ð QÐ Q¸1È!Ì&Ð Q¥¨¨q¬vÑ!6Ô!6Ð QÐ QÐ QÐ QÐ QÐ Qr5   )rÊ  ÚfieldsÚtuplerÓ   )r1   r‘  Úfield_valuess   `  r3   Ú
__reduce__z<dataclass_with_cached_hash.<locals>.wrap.<locals>.__reduce__T  sD   ø€ õ !Ô'¨Ñ-Ô-ˆFÝ Ð QÐ QÐ QÐ QÀÐ QÑ QÔ QÑQÔQˆLØ”N LÐ1Ð1r5   rø   )rÊ  r   r²   r”  )rˆ  Únew_clsr²   r”  rŒ  rF  s       @€r3   Úwrapz(dataclass_with_cached_hash.<locals>.wrapK  sh   øø€ ÝÔ'¨	Ð<Ð<°VÐ<Ð<ˆØÔ%ˆð	ð 	ð 	ð 	ð 	ð 	ð
	2ð 	2ð 	2ð $ˆÔØ'ˆÔØˆr5   )rˆ  r  r*   r  r;   )rD   rF  r–  s    ` r3   r‚  r‚  G  s;   ø€ ðð ð ð ð ð ð* €{Øˆàˆ4�‰9Œ9Ðr5   c                  ó´   — e Zd Zd d„Zd d„Zd!d„Zd"d
„Zej        d#d„¦   «         Z	e
d$d„¦   «         Zej        d$d„¦   «         Zd%d„Zd&d„Zd d„Zd d„Zd'd(d„ZdS ))r¡   r*   rj   c                ó   — dS r  r;   rV   s    r3   Úis_dict_keyzSource.is_dict_keyj  ó   € Øˆur5   c                ó   — dS r  r;   rV   s    r3   Úis_ephemeralzSource.is_ephemeralm  rš  r5   Úcodegenr   rñ   c                ó   — t           ‚rl   ©ÚNotImplementedError©r1   r�  s     r3   ÚreconstructzSource.reconstructp  s   € Ý!Ð!r5   r+   c                ó   — t           ‚)zÝ
        Reconstructs the source into a string of Python code. This method should
        be eventually implemented for all subclasses of Source to achieve full
        coverage of python wrapper code generation.
        rŸ  r¡  s     r3   Úreconstruct_pycodezSource.reconstruct_pycodes  s
   € õ "Ð!r5   rY   c                ó   — t           ‚rl   rŸ  rV   s    r3   rÌ   zSource.guard_source{  s   € å!Ð!r5   c                ó   — t           ‚)aº  
        A template for the name of the source. Used to prevent code duplication between
        `name` and `get_value`.

        For non-ChainedSources, `name` and `get_value` use the returned string directly.

        For ChainedSources, `name` and `get_value` expect the return to be a format string
        with `{0}` present - `name` and `get_value` will apply different values to this function's
        returned format string.
        rŸ  rV   s    r3   Ú_name_templatezSource._name_template  s
   € õ "Ð!r5   c                ó   — | j         S rl   )r§  rV   s    r3   r¯   zSource.name�  s   € àÔ"Ð"r5   Úglobalsúdict[str, Any]ÚlocalsÚcacheúdict[Source, Any]r   c                óT   — | |v r||          S t          | j        ||¦  «        }||| <   |S rl   )Úevalr§  )r1   r©  r«  r¬  r½   s        r3   Ú	get_valuezSource.get_value‘  s9   € ð �5ˆ=ˆ=Ø˜”;ÐÝ�TÔ(¨'°6Ñ:Ô:ˆØˆˆd‰Øˆr5   ÚfnúCallable[..., Any]r    c                óV   — | j         t          j        u rt          ‚t	          | |¦  «        S rl   )rÌ   rY   r†   r   r    )r1   r±  s     r3   Ú
make_guardzSource.make_guard�  s'   € ØÔ¥Ô 4Ð4Ð4Ý%Ð%Ý�T˜2‰ŒÐr5   c                ó4   — | j                              ¦   «         S rl   )rÌ   rx   rV   s    r3   rx   zSource.is_specialized_nn_module¢  s   € ØÔ ×9Ò9Ñ;Ô;Ð;r5   c                ó,   — | j         t          j        k    S )z+True if you can guard on attributes of this)rÌ   rY   r‹   rV   s    r3   Úsubguards_allowedzSource.subguards_allowed¥  s   € àÔ ¥KÔ$?Ò?Ð?r5   NÚtransform_fnú!Callable[[Source], Source] | Nonec                ó    — |� || ¦  «        S | S rl   r;   )r1   r¸  s     r3   ÚclonezSource.clone©  s   € ð Ð#Ø�< Ñ%Ô%Ð%Øˆr5   r„   )r�  r   r*   rñ   )r�  r   r*   r+   rù   rK   ©r©  rª  r«  rª  r¬  r­  r*   r   )r±  r²  r*   r    rl   ©r¸  r¹  r*   r¡   )rL   rM   rN   r™  rœ  r¢  r¤  r¶   Úcached_propertyrÌ   rú   r§  r¯   r°  r´  rx   r·  r»  r;   r5   r3   r¡   r¡   h  s9  € € € € € ðð ð ð ðð ð ð ð"ð "ð "ð "ð"ð "ð "ð "ð Ôð"ð "ð "ñ Ôð"ð ð"ð "ð "ñ „Xð"ð Ôð#ð #ð #ñ Ôð#ð
ð 
ð 
ð 
ðð ð ð ð
<ð <ð <ð <ð@ð @ð @ð @ðð ð ð ð ð ð r5   r¡   c                  óˆ   — e Zd ZU ded<   dd„Zdd„Zej        dd„¦   «         Zdd	„Z	ej        dd„¦   «         Z
dd„Zddd„ZdS )ÚChainedSourcer¡   Úbaser*   rj   c                ó4   — | j                              ¦   «         S rl   )rÁ  r™  rV   s    r3   r™  zChainedSource.is_dict_key¶  s   € àŒy×$Ò$Ñ&Ô&Ð&r5   c                ó4   — | j                              ¦   «         S rl   )rÁ  rœ  rV   s    r3   rœ  zChainedSource.is_ephemeralº  s   € ØŒy×%Ò%Ñ'Ô'Ð'r5   rY   c                ó   — | j         j        S rl   )rÁ  rÌ   rV   s    r3   rÌ   zChainedSource.guard_source½  s   € àŒyÔ%Ð%r5   c                ól   — | }t          |t          ¦  «        r|j        }t          |t          ¦  «        °|S rl   )r—   rÀ  rÁ  )r1   Úcurrents     r3   Úget_basezChainedSource.get_baseÁ  s9   € ØˆÝ˜¥-Ñ0Ô0ð 	#Ø”lˆGõ ˜¥-Ñ0Ô0ð 	#àˆr5   r+   c                óJ   — | j                              | j        j        ¦  «        S rl   )r§  rç   rÁ  r¯   rV   s    r3   r¯   zChainedSource.nameÇ  s   € àÔ"×)Ò)¨$¬)¬.Ñ9Ô9Ð9r5   r©  rª  r«  r¬  r­  r   c                óê   — | |v r||          S d}d}||v rd|› �}|dz  }||v °| j                              |||¦  «        ||<   t          | j                             |¦  «        ||¦  «        }||= ||| <   |S )NÚtmpr   rZ   )rÁ  r°  r¯  r§  rç   )r1   r©  r«  r¬  ÚtmpvarÚcounterr½   s          r3   r°  zChainedSource.get_valueË  s£   € ð �5ˆ=ˆ=Ø˜”;ÐØˆØˆØ˜ÐÐØ$˜7�_�_ˆFØ�q‰LˆGð ˜ÐÐð œ×,Ò,¨W°f¸eÑDÔDˆˆv‰Ý�TÔ(×/Ò/°Ñ7Ô7¸À&ÑIÔIˆØ�6ˆNØˆˆd‰Øˆr5   Nr¸  r¹  c                óP  — d| j                              |¦  «        i}t          j        | ¦  «        D ]U}|j        dk    rŒt          | |j        ¦  «        }t          |t          ¦  «        r|                     |¦  «        ||j        <   ŒVt          j        | fi |¤Ž}|� ||¦  «        }|S )NrÁ  )	rÁ  r»  rÊ  r‘  r¯   r  r—   r¡   Úreplace)r1   r¸  Úcloned_fieldsr�  rJ  Úresults         r3   r»  zChainedSource.cloneÞ  sµ   € Ø)/°´·²ÀÑ1NÔ1NÐ(OˆÝÔ# DÑ)Ô)ð 	@ð 	@ˆAØŒv˜ÒÐØÝ˜$ ¤Ñ'Ô'ˆCÝ˜#�vÑ&Ô&ð @Ø(+¯	ª	°,Ñ(?Ô(?�˜aœfÑ%øÝÔ$ TÐ;Ð;¨]Ð;Ð;ˆØÐ#Ø!�\ &Ñ)Ô)ˆFØˆr5   r„   rù   )r*   r¡   rK   r¼  rl   r½  )rL   rM   rN   rO   r™  rœ  r¶   r¾  rÌ   rÇ  r¯   r°  r»  r;   r5   r3   rÀ  rÀ  ²  sÐ   € € € € € € à€L€L�Lð'ð 'ð 'ð 'ð(ð (ð (ð (ð Ôð&ð &ð &ñ Ôð&ðð ð ð ð Ôð:ð :ð :ñ Ôð:ðð ð ð ð&ð ð ð ð ð ð r5   rÀ  Úinputsr-  c                óB  ‡‡— ddl mŠm}m} t                               ¦   «         x}r|j        }|�|S g }ddlm} t          t           |¦   «         ¦  «        ¦  «        D ]-\  Š}t          ||¦  «        r|                     |d‰f¦  «         Œ.t          j        | ¦  «        }t          |¦  «        D ]Œ\  Š}	t          |	‰¦  «        r|                     |	j        d‰f¦  «         t          |	¦  «        rKg }
 ||	|
¬¦  «         ˆfd„|
D ¦   «         }|                     ˆfd	„t          |¦  «        D ¦   «         ¦  «         Œ�|r`|d         \  }}}|d
d…         D ]G\  }}}||ur=t#          d|› d|› d|› d|› d|› d|› d|› d|› d|j        › d|› d|› d|j        › �¦  «        ‚ŒH|S dS )a˜  
    Attempts to "detect" what the current fake mode is.  If there is one ambiently
    available from TracingContext, we preferentially use that.  Otherwise, we
    heuristically detect the fake mode via the following sources, in order of
    priority:

        - Currently active fake mode on stack
        - Fake mode associated with passed in tensors (inputs does not
          have to be flattened)
    r   )Ú
FakeTensorr    Úget_plain_tensorsN©Ú _get_current_dispatch_mode_stackzactive fake modezfake tensor input)Úoutc                ó4   •— g | ]}t          |‰¦  «        ¯|‘ŒS r;   )r—   )rw  ÚxrÓ  s     €r3   ú
<listcomp>z$detect_fake_mode.<locals>.<listcomp>  s8   ø€ ð .ð .ð .Ø¥*¨Q°
Ñ";Ô";ð.Øð.ð .ð .r5   c                ó0   •— g | ]\  }}|j         d ‰› �|f‘ŒS )zsubclass input )r,  )rw  ÚixÚtensorrû  s      €r3   rÚ  z$detect_fake_mode.<locals>.<listcomp>  s@   ø€ ð ð ð á"˜˜Fð Ô%Ð'<¸Ð'<Ð'<¸bÐAðð ð r5   rZ   zfake mode (z) from r×   z doesn't match mode (z

fake mode from z allocated at:
z
fake mode from )Útorch._subclasses.fake_tensorrÓ  r    rÔ  rh  r  r,  Útorch.utils._python_dispatchrÖ  rø  Úreversedr—   ró   ÚpytreeÚtree_leavesr   rô   r0   r©   )rÑ  r    rÔ  rv  r,  Ú
fake_modesrÖ  ÚmÚflat_inputsÚ
flat_inputr×  Úfake_tensorsÚdesc1Úi1Údesc2Úi2rÓ  rû  s                   @@r3   Údetect_fake_moderì  ì  sò  øø€ ðð ð ð ð ð ð ð ð ð õ !×(Ò(Ñ*Ô*Ð*€wð ØÔ%ˆ	ØÐ ØÐà€JàMÐMÐMÐMÐMÐMå�(Ð#CÐ#CÑ#EÔ#EÑFÔFÑGÔGð :ð :‰ˆˆ1Ý�a˜Ñ(Ô(ð 	:Ø×Ò˜qÐ"4°aÐ8Ñ9Ô9Ð9øåÔ$ VÑ,Ô,€KÝ" ;Ñ/Ô/ð ð ‰ˆˆ:Ý�j *Ñ-Ô-ð 	NØ×Ò˜zÔ3Ð5HÈ!ÐLÑMÔMÐMÝ(¨Ñ4Ô4ð 	Ø;=ˆCØÐ˜j¨cÐ2Ñ2Ô2Ð2ð.ð .ð .ð .Øð.ñ .ô .ˆLð ×Òðð ð ð å&/°Ñ&=Ô&=ðñ ô ñô ð øð ð Ø)¨!œ}Ñˆ	�5˜"Ø& q r rœNð 	ð 	‰LˆAˆu�bØ Ð!Ð!Ý$ðL )ð Lð L°Eð Lð L¸Bð Lð LÐUVð Lð LÐ_dð Lð LÐgið Lð LØ&+ðLð LØ.0ðLð LØBKÄ/ðLð Là&+ðLð Là.0ðLð LàBCÄ'ðLð Lñô ð ð "ð Ðàˆtr5   c                 óš   — ddl m}  ddlm} t	          t           |¦   «         ¦  «        ¦  «        D ]\  }}t          || ¦  «        r|c S ŒdS )z~
    Inspects the dispatch mode stack for an active fake mode and returns it.
    Returns None if no fake mode is active.
    r   r   rÕ  N)rÞ  r    rß  rÖ  rø  rà  r—   )r    rÖ  rU   rä  s       r3   Úactive_fake_moderî  -  s|   € ð
 =Ð<Ð<Ð<Ð<Ð<ØMÐMÐMÐMÐMÐMå�(Ð#CÐ#CÑ#EÔ#EÑFÔFÑGÔGð ð ‰ˆˆ1Ý�a˜Ñ(Ô(ð 	ØˆHˆHˆHð	ð ˆ4r5   )rv  r  r*   rw  )rv  r'  r*   rz  )rD   r  rF  r   r*   r  rl   )rD   rñ   rF  r   r*   rƒ  )rD   r…  rF  r   r*   r†  )rÑ  r   r*   r-  )r*   r-  )kÚ
__future__r   r‡  rÊ  Úenumr¶   ÚloggingÚrerW  Ú	threadingrN  Úunittest.mockra  rÐ   Úabcr   Úcollectionsr   r   r   Útypingr   r	   r
   r   r   r   Útyping_extensionsr   r¹   Útorch.utilsr   rá  Útorch.utils._ordered_setr   rß  r   Útorch.utils._tracebackr   r   Útorch.utils.weakr   Ú	getLoggerrL   râ   ÚdisÚcollections.abcr   r   r   Útypesr   ÚsympyÚ"torch._dynamo.backends.distributedr   Útorch._dynamo.codegenr   Útorch._dynamo.guardsr   Útorch._dynamo.output_graphr   Ú&torch._functorch._aot_autograd.schemasr   r  r   rÞ  r    Úcompiler<   r=   r%   rR   ÚEnumrY   rŽ   r‘   rš   r    rü   rþ   r   r  r  r  r$  r0  r7  r@  rN  r|  r‰  r»  rÅ  rÍ  r  Úlocalr  r  r"  rh  r  r~  r‚  r¡   rÀ  rì  rî  r;   r5   r3   ú<module>r
     s—	  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø !Ð !Ð !Ð !Ð !Ð !Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 1Ð 1Ð 1Ð 1Ð 1Ð 1à €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø FÐ FÐ FÐ FÐ FÐ FØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ð €gÔ˜Ñ!Ô!€ð ð =Ø€J€J€JØ=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÐÐÐÐÐà€L€L€LàFÐFÐFÐFÐFÐFØ/Ð/Ð/Ð/Ð/Ð/Ø3Ð3Ð3Ð3Ð3Ð3Ø6Ð6Ð6Ð6Ð6Ð6ØJÐJÐJÐJÐJÐJØRÐRÐRÐRÐRÐRØ<Ð<Ð<Ð<Ð<Ð<ðð  �R”ZÐ PÑQÔQÐ Ø"˜œ
ØXñô Ð ð" €�$ ¨DÐ1Ñ1Ô1ð7Jð 7Jð 7Jð 7Jð 7Jñ 7Jô 7Jñ 2Ô1ð7Jðt7ð 7ð 7ð 7ð 7ˆjñ 7ô 7ð 7ð<
ð <
ð <
ð <
ð <
�$”)ñ <
ô <
ð <
ð~ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð €Ô˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð$ð ð ð ð �ñ ô ð ð €Ô˜TÐ"Ñ"Ô"ðu'ð u'ð u'ð u'ð u'ñ u'ô u'ñ #Ô"ðu'ðp €GˆC�L„L€ðð €Ô˜dÐ#Ñ#Ô#ð	ð 	ð 	ð 	ð 	ñ 	ô 	ñ $Ô#ð	ðð €Ô˜dÐ#Ñ#Ô#ð	ð 	ð 	ð 	ð 	�lñ 	ô 	ñ $Ô#ð	ðð €Ô˜dÐ#Ñ#Ô#ð*ð *ð *ð *ð *�\ñ *ô *ñ $Ô#ð*ð

ð8ð 8ð 8ð 8ð 8�W˜Q”Zñ 8ô 8ð 8ð(ð (ð (ð (ð (ñ (ô (ð (ð8(ð (ð (ð (ð (ñ (ô (ð (ð0+ð +ð +ð +ð +�NÐ#?Ô@ñ +ô +ð +ð(ð (ð (ð (ð (ñ (ô (ð (ð0$ð $ð $ð $ð $�NÐ#?Ô@ñ $ô $ð $ðRC.ð C.ð C.ð C.ð C.ñ C.ô C.ð C.ðLð<ð <ð <ð <ð <�NÐ#8Ô9ñ <ô <ð <ð2*=ð *=ð *=ð *=ð *=ñ *=ô *=ð *=ðZ ðð ð ð ð ñ ô ñ „ðð2 ðWð Wð Wð Wð Wñ Wô Wñ „ðWð4R$ð R$ð R$ð R$ð R$Ð*ñ R$ô R$ð R$ðj
&ð 
&ð 
&ð 
&ð 
&ñ 
&ô 
&ð 
&ð €y„ÑÔ€ðð&#6ð #6ð #6ð #6ð #6ñ #6ô #6ð #6ðL ðð ð ð ð ñ ô ñ „ðð^ð ^ð ^ð ^ð ^ñ ^ô ^ð ^ðB ð+ð +ð +ñ „ð+ð ð+ð +ð +ñ „ð+ð8 
Ø KÐ KÐ Kñ 
„Ø Kð 
àð'ð 'ð 'ð 'ñ 
„ð'ð
 ÐÑÔàðð ð ð ñ Ôðð@ Ð 4Ð(Ñ(Ô(ðEð Eð Eð Eð Eñ Eô Eñ )Ô(ðEðR Ð 4Ð(Ñ(Ô(ð6ð 6ð 6ð 6ð 6�Fñ 6ô 6ñ )Ô(ð6ðr>ð >ð >ð >ð >ðBð ð ð ð ð r5   