§
    ŠŠtj�¹  ã                   ó  — d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z ddlmZmZmZmZmZ ddlmZ dd	lmZmZmZ erdd
lmZ ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej         ej         ej!        ej!        ej"        ej"        ej#        ej#        i
Z$ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej         ej         ej!        ej!        ej"        ej"        ej#        ej#        i
Z%ej        ej         ej        ej!        ej        ej         ej        ej!        ej        ej         ej        ej!        ej         ej         ej!        ej!        ej"        ej"        ej#        ej#        i
Z&ej        ej"        ej        ej#        ej        ej"        ej        ej#        ej"        ej"        ej#        ej#        ej        ej"        ej        ej#        ej         ej"        ej!        ej#        i
Z'dede(fd„Z)dedz  de*fd„Z+d˜dede(de*fd„Z, ed¬¦  «         G d„ de¦  «        ¦   «         Z- ed¬¦  «         G d„ de¦  «        ¦   «         Z. ed¬¦  «         G d„ de¦  «        ¦   «         Z/ ed¬¦  «         G d„ de¦  «        ¦   «         Z0 ed¬¦  «         G d„ de¦  «        ¦   «         Z1 ed¬¦  «         G d„ d e¦  «        ¦   «         Z2 ed¬¦  «         G d!„ d"e¦  «        ¦   «         Z3 ed¬¦  «         G d#„ d$e3¦  «        ¦   «         Z4 ed¬¦  «         G d%„ d&e¦  «        ¦   «         Z5 ed¬¦  «         G d'„ d(e5¦  «        ¦   «         Z6 ed¬¦  «         G d)„ d*e¦  «        ¦   «         Z7 ed¬¦  «         G d+„ d,e¦  «        ¦   «         Z8 ed¬¦  «         G d-„ d.e¦  «        ¦   «         Z9 ed¬¦  «         G d/„ d0e¦  «        ¦   «         Z: ed¬¦  «         G d1„ d2e¦  «        ¦   «         Z; ed¬¦  «         G d3„ d4e¦  «        ¦   «         Z< ed¬¦  «         G d5„ d6e¦  «        ¦   «         Z= ed¬¦  «         G d7„ d8e5¦  «        ¦   «         Z> ed¬¦  «         G d9„ d:e5¦  «        ¦   «         Z? ed¬¦  «         G d;„ d<e¦  «        ¦   «         Z@ ed¬¦  «         G d=„ d>e¦  «        ¦   «         ZA G d?„ d@ejB        ¦  «        ZC ed¬¦  «         G dA„ dBe¦  «        ¦   «         ZD ed¬¦  «         G dC„ dDe¦  «        ¦   «         ZE ed¬¦  «         G dE„ dFe¦  «        ¦   «         ZF ed¬¦  «         G dG„ dHe¦  «        ¦   «         ZG ed¬¦  «         G dI„ dJe¦  «        ¦   «         ZH ed¬¦  «         G dK„ dLe¦  «        ¦   «         ZI ed¬¦  «         G dM„ dNe¦  «        ¦   «         ZJ G dO„ dPe¦  «        ZK ed¬¦  «         G dQ„ dRe¦  «        ¦   «         ZL ed¬¦  «         G dS„ dTe¦  «        ¦   «         ZM ed¬¦  «         G dU„ dVe¦  «        ¦   «         ZN ed¬¦  «         G dW„ dXe¦  «        ¦   «         ZO ed¬¦  «         G dY„ dZe¦  «        ¦   «         ZP ed¬¦  «         G d[„ d\e¦  «        ¦   «         ZQ ed¬¦  «         G d]„ d^eM¦  «        ¦   «         ZR ed¬¦  «         G d_„ d`eM¦  «        ¦   «         ZS ed¬¦  «         G da„ dbe¦  «        ¦   «         ZT ed¬¦  «         G dc„ dde¦  «        ¦   «         ZU ed¬¦  «         G de„ dfe¦  «        ¦   «         ZV ed¬¦  «         G dg„ dhe¦  «        ¦   «         ZW ed¬¦  «         G di„ dje¦  «        ¦   «         ZX ed¬¦  «         G dk„ dleX¦  «        ¦   «         ZY ed¬¦  «         G dm„ dneY¦  «        ¦   «         ZZ ed¬¦  «         G do„ dpeX¦  «        ¦   «         Z[ ed¬¦  «         G dq„ dre¦  «        ¦   «         Z\ ed¬¦  «         G ds„ dte¦  «        ¦   «         Z] ed¬¦  «         G du„ dve¦  «        ¦   «         Z^ ed¬¦  «         G dw„ dxe¦  «        ¦   «         Z_ ed¬¦  «         G dy„ dze¦  «        ¦   «         Z` ed¬¦  «         G d{„ d|e¦  «        ¦   «         Za ed¬¦  «         G d}„ d~e¦  «        ¦   «         Zb ed¬¦  «         G d„ d€e¦  «        ¦   «         Zc ed¬¦  «         G d�„ d‚e¦  «        ¦   «         Zd ed¬¦  «         G dƒ„ d„e¦  «        ¦   «         Ze ed¬¦  «         G d…„ d†e¦  «        ¦   «         Zfejg        dd‡œdedˆe(de*dz  fd‰„¦   «         Zhejg        dd‡œdedˆe(de(fdŠ„¦   «         Ziejg        dede(fd‹„¦   «         Zjejg        dedz  de*dz  fdŒ„¦   «         Zkejg        dede(fd�„¦   «         Zlejg        dede(fdŽ„¦   «         Zmejg        ded�ede(fd�„¦   «         Znejg        dede(fd‘„¦   «         Zoejg        dede(fd’„¦   «         Zpejg        dede(fd“„¦   «         Zqejg        dede(fd”„¦   «         Zrejg        dede(fd•„¦   «         Zsejg        dede(fd–„¦   «         Ztejg        dede(fd—„¦   «         ZudS )™a  
This module provides Source classes that track the origins of values in PyTorch Dynamo.
Sources represent where values come from (e.g. local variables, globals, attributes) and
are used for guard generation and code reconstruction during compilation.

The module includes specialized sources for:
- Local variables and synthetic locals
- Global variables and constants
- Object attributes and method calls
- NN module specialization (specialized vs unspecialized)
- Random values and tensor properties
- Default argument handling
- FSDP (Fully Sharded Data Parallel) modules

Sources play a key role in Dynamo's guard system by tracking value origins for
guard generation, and in code reconstruction by providing methods to rebuild
the code needed to recreate values.
é    N)ÚCallable)ÚAnyÚTYPE_CHECKING)Údevice)ÚChainedSourceÚdataclass_with_cached_hashÚGuardÚGuardSourceÚSourceé   )Úutils)Úcreate_binary_subscrÚcreate_build_tupleÚcreate_call_function)Ú	PyCodegenÚsourceÚreturnc                 ó†   — t          | t          ¦  «        rdS 	 | j        t          j        k    rdS n# t
          $ r Y nw xY wdS ©NTF)Ú
isinstanceÚConstantSourceÚguard_sourcer
   ÚCONSTANTÚNotImplementedError©r   s    úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_dynamo/source.pyÚis_constant_sourcer   m   s`   € Ý�&�.Ñ)Ô)ð ØˆtðØÔ¥+Ô"6Ò6Ð6Ø�4ð 7øåð ð ð Øˆðøøøð ˆ5s   ™1 ±
>½>c                 ó<   — | €dS 	 | j         S # t          $ r Y dS w xY w)Nz<unknown source>)Únamer   r   s    r   Ú_get_source_debug_namer    y   s>   € Ø€~Ø!Ð!ð	&Ø”;ÐøÝ"ð 	&ð 	&ð 	&Ø%Ð%Ð%ð	&øøøs   † �
šFÚsÚ
apply_reprc                 ó˜   — |rt          | ¦  «        } nt          | ¦  «        } |                      dd¦  «                             dd¦  «        S )a!  
    Escapes curly brackets for format strings.
    e.g. "frozenset({0})" becomes "frozenset({{0}})".
    This is used by _name_template for example, because it's
    expected to return a format string, but we may wish to include
    strings that should not be accidentally formatted.
    Ú{z{{Ú}z}})ÚreprÚstrÚreplace)r!   r"   s     r   Ú_esc_strr)   ƒ   sH   € ð ð Ý�‰GŒGˆˆå�‰FŒFˆØ�9Š9�S˜$ÑÔ×'Ò'¨¨TÑ2Ô2Ð2ó    T)Úfrozenc                   ó  — e Zd ZU eed<   dZeed<   dZee         dz  ed<   dZ	eed<    e
j        dd¬¦  «        Zeed<    e
j        dd¬¦  «        Zeed	<   dd„Zd
ddefd„Zedefd„¦   «         Zej        defd„¦   «         ZdS )ÚLocalSourceÚ
local_nameFÚis_inputNÚdynamismÚis_derefed_cell_contents)Údefaultr&   Ú
is_varargsÚis_varkwÚcodegenr   r   c                 ó¦   — | j         r|                     | j        ¦  «         d S |                     |                     | j        ¦  «        ¦  «         d S ©N)r1   Ú
load_derefr.   Úappend_outputÚcreate_load©Úselfr5   s     r   ÚreconstructzLocalSource.reconstruct°   sT   € ØÔ(ð 	HØ×Ò˜tœÑ/Ô/Ð/Ð/Ð/à×!Ò! '×"5Ò"5°d´oÑ"FÔ"FÑGÔGÐGÐGÐGr*   c                 ó   — | j         S r7   )r.   r;   s     r   Úreconstruct_pycodezLocalSource.reconstruct_pycode¶   s
   € ØŒÐr*   c                 ó   — t           j        S r7   )r
   ÚLOCAL©r<   s    r   r   zLocalSource.guard_source¹   s   € åÔ Ð r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )NzL[T©r"   ú]©r)   r.   rB   s    r   Ú_name_templatezLocalSource._name_template½   s"   € àA•H˜Tœ_¸Ð>Ñ>Ô>ÐAÐAÐAÐAr*   ©r5   r   r   N)Ú__name__Ú
__module__Ú__qualname__r'   Ú__annotations__r/   Úboolr0   Ú	frozensetr1   ÚdataclassesÚfieldr3   r4   r=   r?   Úpropertyr
   r   Ú	functoolsÚcached_propertyrG   © r*   r   r-   r-   ’   s:  € € € € € € à€O€O�Oð €HˆdÐÐÑð '+€Hˆi˜Œn˜tÑ#Ð*Ð*Ñ*ð
 &+Ð˜dÐ*Ð*Ñ*ð )�{Ô(°¸UÐCÑCÔC€J�ÐCÐCÑCð '�[Ô&¨u¸5ÐAÑAÔA€HˆdÐAÐAÑAðHð Hð Hð Hð¨+ð ¸#ð ð ð ð ð ð!˜kð !ð !ð !ñ „Xð!ð ÔðB ð Bð Bð Bñ ÔðBð Bð Br*   r-   c                   óZ   — e Zd ZU eed<   d	d„Zedefd„¦   «         Zedefd„¦   «         Z	dS )
ÚTempLocalSourcer.   r5   r   r   Nc                 ó`   — |                      |                     | j        ¦  «        ¦  «         d S r7   ©r9   r:   r.   r;   s     r   r=   zTempLocalSource.reconstructÇ   ó,   € Ø×Ò˜g×1Ò1°$´/ÑBÔBÑCÔCÐCÐCÐCr*   c                 ó   — t           j        S r7   )r
   Ú
TEMP_LOCALrB   s    r   r   zTempLocalSource.guard_sourceÊ   s   € åÔ%Ð%r*   c                 ó    — t          d¦  «        ‚)NzhCannot create guard on TempLocalSource - this is an internal Dynamo bug. Please file an issue on GitHub.©r   rB   s    r   rG   zTempLocalSource._name_templateÎ   s   € å!Øvñ
ô 
ð 	
r*   rH   )
rI   rJ   rK   r'   rL   r=   rQ   r
   r   rG   rT   r*   r   rV   rV   Â   s‡   € € € € € € ð €O€O�OðDð Dð Dð Dð ð&˜kð &ð &ð &ñ „Xð&ð ð
 ð 
ð 
ð 
ñ „Xð
ð 
ð 
r*   rV   c                   ód   — e Zd ZU eed<   d	d„Zedefd„¦   «         Ze	j
        defd„¦   «         ZdS )
ÚSyntheticLocalSourcer.   r5   r   r   Nc                 ó`   — |                      |                     | j        ¦  «        ¦  «         d S r7   rX   r;   s     r   r=   z SyntheticLocalSource.reconstructÙ   rY   r*   c                 ó   — t           j        S r7   )r
   ÚSYNTHETIC_LOCALrB   s    r   r   z!SyntheticLocalSource.guard_sourceÜ   s   € åÔ*Ð*r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )NzSYNTHETIC_LOCAL[TrD   rE   rF   rB   s    r   rG   z#SyntheticLocalSource._name_templateà   s"   € àO¥(¨4¬?ÀtÐ"LÑ"LÔ"LÐOÐOÐOÐOr*   rH   ©rI   rJ   rK   r'   rL   r=   rQ   r
   r   rR   rS   rG   rT   r*   r   r_   r_   Õ   s�   € € € € € € à€O€O�OðDð Dð Dð Dð ð+˜kð +ð +ð +ñ „Xð+ð ÔðP ð Pð Pð Pñ ÔðPð Pð Pr*   r_   c                   ód   — e Zd ZU eed<   edefd„¦   «         Zd	d„Ze	j
        defd„¦   «         ZdS )
ÚRandomValueSourceÚrandom_call_indexr   c                 ó   — t           j        S r7   )r
   ÚRANDOM_VALUErB   s    r   r   zRandomValueSource.guard_sourceé   s   € åÔ'Ð'r*   r5   r   Nc                 ó  — |                      |                     |j        j        j        ¦  «        ¦  «         |                      |                     | j        ¦  «        ¦  «         |                      t          ¦   «         ¦  «         d S r7   )r9   r:   ÚtxÚoutputÚrandom_values_varÚcreate_load_constrg   r   r;   s     r   r=   zRandomValueSource.reconstructí   sr   € Ø×Ò˜g×1Ò1°'´*Ô2CÔ2UÑVÔVÑWÔWÐWØ×Ò˜g×7Ò7¸Ô8NÑOÔOÑPÔPÐPØ×ÒÕ2Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5r*   c                 ó0   — dt          | j        ¦  «        › �S )NÚrandom_value_)r)   rg   rB   s    r   rG   z RandomValueSource._name_templateò   s   € àA�x¨Ô(>Ñ?Ô?ÐAÐAÐAr*   rH   )rI   rJ   rK   ÚintrL   rQ   r
   r   r=   rR   rS   r'   rG   rT   r*   r   rf   rf   å   s�   € € € € € € àÐÐÑàð(˜kð (ð (ð (ñ „Xð(ð6ð 6ð 6ð 6ð
 ÔðB ð Bð Bð Bñ ÔðBð Bð Br*   rf   c                   ót   — e Zd ZU eed<   d
d„Zdddefd„Zedefd„¦   «         Z	e
j        defd	„¦   «         ZdS )ÚGlobalSourceÚglobal_namer5   r   r   Nc                 ód   — |                      |                     | j        d¬¦  «        ¦  «         d S ©NT©Úadd©r9   Úcreate_load_globalrt   r;   s     r   r=   zGlobalSource.reconstructû   s2   € Ø×Ò˜g×8Ò8¸Ô9IÈtÐ8ÑTÔTÑUÔUÐUÐUÐUr*   c                 ó   — | j         S r7   )rt   r;   s     r   r?   zGlobalSource.reconstruct_pycodeþ   s   € ØÔÐr*   c                 ó   — t           j        S r7   ©r
   ÚGLOBALrB   s    r   r   zGlobalSource.guard_source  ó   € åÔ!Ð!r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )NúG[TrD   rE   ©r)   rt   rB   s    r   rG   zGlobalSource._name_template  s#   € àB•H˜TÔ-¸$Ð?Ñ?Ô?ÐBÐBÐBÐBr*   rH   )rI   rJ   rK   r'   rL   r=   r?   rQ   r
   r   rR   rS   rG   rT   r*   r   rs   rs   ÷   sµ   € € € € € € àÐÐÑðVð Vð Vð Vð ¨+ð  ¸#ð  ð  ð  ð  ð ð"˜kð "ð "ð "ñ „Xð"ð ÔðC ð Cð Cð Cñ ÔðCð Cð Cr*   rs   c                   ód   — e Zd ZU eed<   d	d„Zedefd„¦   «         Ze	j
        defd„¦   «         ZdS )
ÚGlobalWeakRefSourcert   r5   r   r   Nc                 ó‚   ‡ ‡— ‰                      ˆˆ fd„¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  ób   •— ‰                       ‰                      ‰j        d¬¦  «        ¦  «        S rv   ry   ©r5   r<   s   €€r   ú<lambda>z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>  s0   ø€ �G×)Ò)Ø×*Ò*¨4Ô+;ÀÐ*ÑFÔFñô € r*   r   F©Úadd_push_nullÚextend_outputr   r;   s   ``r   r=   zGlobalWeakRefSource.reconstruct  s\   øø€ Ø×Òðð ð ð ð ñ	
ô 	
ð 	
ð
 	×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — t           j        S r7   r}   rB   s    r   r   z GlobalWeakRefSource.guard_source  r   r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )Nr�   TrD   z]()r‚   rB   s    r   rG   z"GlobalWeakRefSource._name_template  s#   € àD•H˜TÔ-¸$Ð?Ñ?Ô?ÐDÐDÐDÐDr*   rH   rd   rT   r*   r   r„   r„   
  s�   € € € € € € àÐÐÑð>ð >ð >ð >ð ð"˜kð "ð "ð "ñ „Xð"ð ÔðE ð Eð Eð Eñ ÔðEð Eð Er*   r„   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚWeakRefCallSourcer5   r   r   Nc                 ó‚   ‡ ‡— ‰                      ˆˆ fd„¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  ó$   •—  ‰ ‰j         ¦  «        S r7   ©Úbaser‡   s   €€r   rˆ   z/WeakRefCallSource.reconstruct.<locals>.<lambda>"  s   ø€  g g¨d¬iÑ&8Ô&8€ r*   r   Fr‰   r;   s   ``r   r=   zWeakRefCallSource.reconstruct!  sJ   øø€ Ø×ÒÐ8Ð8Ð8Ð8Ð8Ñ9Ô9Ð9Ø×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — dS )Nz{0}()rT   rB   s    r   rG   z WeakRefCallSource._name_template%  s   € àˆwr*   rH   ©rI   rJ   rK   r=   rQ   r'   rG   rT   r*   r   r�   r�     sO   € € € € € ð>ð >ð >ð >ð ð ð ð ð ñ „Xðð ð r*   r�   c                   ó   — e Zd ZdS )ÚCallFunctionNoArgsSourceN©rI   rJ   rK   rT   r*   r   r—   r—   *  ó   € € € € € à€Dr*   r—   c                   ó`   — e Zd ZU eed<   d
d„Zdd„Zdddefd„Zej	        defd	„¦   «         Z
dS )Ú
AttrSourceÚmemberr   Nc                 ót   — | j         st          d¦  «        ‚d| j        v rt          d| j        ›d�¦  «        ‚d S )Nz9Can't construct an AttrSource without a valid base sourceú.z,AttrSource member must not contain '.', got ú=. Use OutputGraph.get_chained_attr_source() for dotted paths.©r“   ÚAssertionErrorrœ   rB   s    r   Ú__post_init__zAttrSource.__post_init__3  sf   € ØŒyð 	Ý ØKñô ð ð �$”+ÐÐÝ ðN¸t¼{ð Nð Nð Nñô ð ð Ðr*   r5   r   c                 ó€   —  || j         ¦  «         |                     |                     | j        ¦  «        ¦  «         d S r7   ©r“   r‹   Úcreate_load_attrsrœ   r;   s     r   r=   zAttrSource.reconstruct>  ó>   € Øˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸¼ÑDÔDÑEÔEÐEÐEÐEr*   c                 óœ   — | j                              |¦  «        }| j                             ¦   «         r|› d| j        › �S d|› d| j        ›d�S )Nrž   zgetattr(z, ú))r“   r?   rœ   Úisidentifier)r<   r5   r“   s      r   r?   zAttrSource.reconstruct_pycodeB  s^   € ØŒy×+Ò+¨GÑ4Ô4ˆØŒ;×#Ò#Ñ%Ô%ð 	7ØÐ*Ð*˜Tœ[Ð*Ð*Ð*à6˜dÐ6Ð6 d¤kÐ6Ð6Ð6Ð6r*   c                 ó–   — | j                              ¦   «         sdt          | j         d¬¦  «        › d�S dt          | j         ¦  «        › �S )Nzgetattr({0}, TrD   r¨   ú{0}.)rœ   r©   r)   rB   s    r   rG   zAttrSource._name_templateI  sQ   € àŒ{×'Ò'Ñ)Ô)ð 	OØN¥X¨d¬kÀdÐ%KÑ%KÔ%KÐNÐNÐNÐNØ/� ¤Ñ-Ô-Ð/Ð/Ð/r*   ©r   NrH   )rI   rJ   rK   r'   rL   r¢   r=   r?   rR   rS   rG   rT   r*   r   r›   r›   /  s˜   € € € € € € à€K€K�Kð	ð 	ð 	ð 	ðFð Fð Fð Fð7¨+ð 7¸#ð 7ð 7ð 7ð 7ð Ôð0 ð 0ð 0ð 0ñ Ôð0ð 0ð 0r*   r›   c                   óH   — e Zd ZU dZ ej        d¬¦  «        Zeed<   dd„Z	dS )	ÚCellContentsSourcez§
    Source for closure cell contents that also stores the freevar name.
    This allows guard failure messages to show which variable the closure cell refers to.
    Ú )r2   Úfreevar_namer   Nc                 óf   — | j         st          d¦  «        ‚| j        dk    rt          d¦  «        ‚d S )Nz@Can't construct a CellContentsSource without a valid base sourceÚcell_contentsz8CellContentsSource should only be used for cell_contentsr    rB   s    r   r¢   z CellContentsSource.__post_init__Y  sM   € ØŒyð 	Ý ØRñô ð ð Œ;˜/Ò)Ð)Ý ØJñô ð ð *Ð)r*   r¬   )
rI   rJ   rK   Ú__doc__rO   rP   r°   r'   rL   r¢   rT   r*   r   r®   r®   P  sV   € € € € € € ðð ð
 *˜Ô)°"Ð5Ñ5Ô5€L�#Ð5Ð5Ñ5ðð ð ð ð ð r*   r®   c                   óP   — e Zd ZU eed<   d	d„Zd
d„Zej        defd„¦   «         Z	dS )ÚGenericAttrSourcerœ   r   Nc                 ót   — | j         st          d¦  «        ‚d| j        v rt          d| j        ›d�¦  «        ‚d S )Nz?Can't construct a GenericAttrSource without a valid base sourcerž   z3GenericAttrSource member must not contain '.', got rŸ   r    rB   s    r   r¢   zGenericAttrSource.__post_init__h  sf   € ØŒyð 	Ý ØQñô ð ð �$”+ÐÐÝ ðNÀdÄkð Nð Nð Nñô ð ð Ðr*   r5   r   c                 ó€   —  || j         ¦  «         |                     |                     | j        ¦  «        ¦  «         d S r7   r¤   r;   s     r   r=   zGenericAttrSource.reconstructs  r¦   r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )Nzobject.__getattribute__({0}, TrD   r¨   ©r)   rœ   rB   s    r   rG   z GenericAttrSource._name_templatew  s'   € ð X­h°t´{ÈtÐ.TÑ.TÔ.TÐWÐWÐWð	
r*   r¬   rH   )
rI   rJ   rK   r'   rL   r¢   r=   rR   rS   rG   rT   r*   r   rµ   rµ   d  sv   € € € € € € à€K€K�Kð	ð 	ð 	ð 	ðFð Fð Fð Fð Ôð
 ð 
ð 
ð 
ñ Ôð
ð 
ð 
r*   rµ   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚTypeDictSourcer5   r   r   Nc                 óv   —  || j         ¦  «         |                     |                     d¦  «        ¦  «         d S )NÚ__dict__©r“   r‹   r¥   r;   s     r   r=   zTypeDictSource.reconstruct�  ó<   € Øˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸
ÑCÔCÑDÔDÐDÐDÐDr*   c                 ó   — dS )Nzdict({0}.__dict__)rT   rB   s    r   rG   zTypeDictSource._name_template…  s
   € ð $Ð#r*   rH   r•   rT   r*   r   r»   r»     sS   € € € € € ðEð Eð Eð Eð ð$ ð $ð $ð $ñ „Xð$ð $ð $r*   r»   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚTypeMROSourcer5   r   r   Nc                 óv   —  || j         ¦  «         |                     |                     d¦  «        ¦  «         d S )NÚ__mro__r¾   r;   s     r   r=   zTypeMROSource.reconstruct‘  ó<   € Øˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸	ÑBÔBÑCÔCÐCÐCÐCr*   c                 ó   — dS )Nz{0}.__mro__rT   rB   s    r   rG   zTypeMROSource._name_template•  s   € àˆ}r*   rH   r•   rT   r*   r   rÂ   rÂ   �  sS   € € € € € ðDð Dð Dð Dð ð ð ð ð ñ „Xðð ð r*   rÂ   c                   ó&   — e Zd ZU dZeed<   dd„ZdS )	ÚLocalCellSourcezƒ
    Conceptually, this class is `LocalSource` for cell objects implicitly
    generated by Python (e.g., captured variables).
    r.   r5   r   r   Nc                 ó`   — |                      |                     | j        ¦  «        ¦  «         d S r7   )r9   Úcreate_load_closurer.   r;   s     r   r=   zLocalCellSource.reconstruct£  s.   € ð 	×Ò˜g×9Ò9¸$¼/ÑJÔJÑKÔKÐKÐKÐKr*   rH   )rI   rJ   rK   r³   r'   rL   r=   rT   r*   r   rÈ   rÈ   š  sE   € € € € € € ðð ð
 €O€O�OðLð Lð Lð Lð Lð Lr*   rÈ   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )Ú
CodeSourcer5   r   r   Nc                 óv   —  || j         ¦  «         |                     |                     d¦  «        ¦  «         d S )NÚ__code__r¾   r;   s     r   r=   zCodeSource.reconstruct°  r¿   r*   c                 ó   — dS )Nz{0}.__code__rT   rB   s    r   rG   zCodeSource._name_template´  s   € àˆ~r*   rH   r•   rT   r*   r   rÌ   rÌ   ®  sS   € € € € € ðEð Eð Eð Eð ð ð ð ð ñ „Xðð ð r*   rÌ   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚClosureSourcer5   r   r   Nc                 óv   —  || j         ¦  «         |                     |                     d¦  «        ¦  «         d S )NÚ__closure__r¾   r;   s     r   r=   zClosureSource.reconstruct¼  s<   € Øˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸ÑFÔFÑGÔGÐGÐGÐGr*   c                 ó   — dS )Nz{0}.__closure__rT   rB   s    r   rG   zClosureSource._name_templateÀ  s   € à Ð r*   rH   r•   rT   r*   r   rÑ   rÑ   º  sS   € € € € € ðHð Hð Hð Hð ð! ð !ð !ð !ñ „Xð!ð !ð !r*   rÑ   c                   óL   — e Zd ZU dZeed<   d	d„Zej        defd„¦   «         Z	dS )
Ú
GradSourceÚgradrœ   r5   r   r   Nc                 ó€   —  || j         ¦  «         |                     |                     | j        ¦  «        ¦  «         d S r7   r¤   r;   s     r   r=   zGradSource.reconstructÍ  r¦   r*   c                 ó0   — dt          | j        ¦  «        › �S )Nr«   r¹   rB   s    r   rG   zGradSource._name_templateÑ  s   € à/� ¤Ñ-Ô-Ð/Ð/Ð/r*   rH   )
rI   rJ   rK   rœ   r'   rL   r=   rR   rS   rG   rT   r*   r   rÖ   rÖ   É  si   € € € € € € à€FˆCÐÐÑðFð Fð Fð Fð Ôð0 ð 0ð 0ð 0ñ Ôð0ð 0ð 0r*   rÖ   c                   ó4   — e Zd Zej        defd„¦   «         ZdS )ÚParamBufferSourcer   c                 ó0   — t           | j        j                 S r7   ©Ú#_GUARD_SOURCE_SPECIALIZED_NN_MODULEr“   r   rB   s    r   r   zParamBufferSource.guard_sourceØ  ó   € å2°4´9Ô3IÔJÐJr*   N©rI   rJ   rK   rR   rS   r
   r   rT   r*   r   rÛ   rÛ   Ö  sD   € € € € € àÔðK˜kð Kð Kð Kñ ÔðKð Kð Kr*   rÛ   c                   ó   — e Zd ZdS )ÚUnspecializedParamBufferSourceNr˜   rT   r*   r   râ   râ   Þ  r™   r*   râ   c                   ó’   — e Zd ZU dZedz  ed<   edefd„¦   «         Ze	j
        defd„¦   «         Zdedef         defd„Zdefd	„ZdS )
ÚEphemeralSourceNÚdescr   c                 ó   — t           j        S r7   )r
   Ú	EPHEMERALrB   s    r   r   zEphemeralSource.guard_sourceð  ó   € åÔ$Ð$r*   c                 óN   — | j         �
d| j         z   nd}dt          |¦  «        › d�S )Nz: r¯   z
<ephemeralú>)rå   r)   )r<   rå   s     r   rG   zEphemeralSource._name_templateô  s1   € à#'¤9Ð#8ˆt�d”iÑÐ¸bˆØ-�H T™NœNÐ-Ð-Ð-Ð-r*   Úfn.c                 ó   — t           ‚r7   r]   ©r<   rë   s     r   Ú
make_guardzEphemeralSource.make_guardù  ó   € Ý!Ð!r*   c                 ó   — dS ©NTrT   rB   s    r   Úis_ephemeralzEphemeralSource.is_ephemeralü  ó   € Øˆtr*   )rI   rJ   rK   rå   r'   rL   rQ   r
   r   rR   rS   rG   r   r   r	   rî   rM   rò   rT   r*   r   rä   rä   ì  sÀ   € € € € € € à€Dˆ#�‰*ÐÐÑàð%˜kð %ð %ð %ñ „Xð%ð Ôð. ð .ð .ð .ñ Ôð.ð"˜X c¨3 hÔ/ð "°Eð "ð "ð "ð "ð˜dð ð ð ð ð ð r*   rä   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚSkipGuardSourcer5   r   r   Nc                 ó:   — | j                              |¦  «         d S r7   )r“   r=   r;   s     r   r=   zSkipGuardSource.reconstruct  s   € ØŒ	×Ò˜gÑ&Ô&Ð&Ð&Ð&r*   c                 ó   — dS ©Nz{0}rT   rB   s    r   rG   zSkipGuardSource._name_template  ó   € àˆur*   rH   r•   rT   r*   r   rõ   rõ      sO   € € € € € ð'ð 'ð 'ð 'ð ð ð ð ð ñ „Xðð ð r*   rõ   c                   ó&   — e Zd ZdZdZdZdefd„ZdS )ÚTensorPropertyr   r   é   r   c                 ó    — | t           j        u rdS | t           j        u rdS | t           j        u rdS t	          dt          | ¦  «        › �¦  «        ‚)NÚsizeÚstrideÚstorage_offsetú
unhandled )rû   ÚSIZEÚSTRIDEÚSTORAGE_OFFSETr¡   r)   rB   s    r   Úmethod_namezTensorProperty.method_name  sY   € Ø•>Ô&Ð&Ð&Ø�6Ø•^Ô*Ð*Ð*Ø�8Ø•^Ô2Ð2Ð2Ø#Ð#å Ð!>­h°t©n¬nÐ!>Ð!>Ñ?Ô?Ð?r*   N)rI   rJ   rK   r  r  r  r'   r  rT   r*   r   rû   rû   
  sE   € € € € € Ø€DØ€FØ€Nð@˜Sð @ð @ð @ð @ð @ð @r*   rû   c                   ód   — e Zd ZU eed<   dZedz  ed<   d
d„Zdd„Ze	j
        defd	„¦   «         ZdS )ÚTensorPropertySourceÚpropNÚidxr   c                 óÆ   — | j         €t          d¦  «        ‚| j        t          j        u r| j        �t          d¦  «        ‚d S | j        €t          d| j        › d�¦  «        ‚d S )Nz*TensorPropertySource base must not be Noneú2idx must be None for STORAGE_OFFSET TensorPropertyzidx must not be None for z TensorProperty)r“   r¡   r  rû   r  r	  rB   s    r   r¢   z"TensorPropertySource.__post_init__  s‚   € ØŒ9ÐÝ Ð!MÑNÔNÐNØŒ9�Ô5Ð5Ð5ØŒxÐ#Ý$ØHñô ð ð $Ð#ð
 ŒxÐÝ$ØJ°´	ÐJÐJÐJñô ð ð  Ðr*   r5   r   c                 ó  ‡ ‡— ‰                      ˆˆ fd„¦  «          ‰‰ j        ¦  «         ‰ j        �-‰                     ‰                     ‰ j        ¦  «        ¦  «         ‰                     t          ‰ j        �dndd¦  «        ¦  «         d S )Nc                  ó’   •— ‰                       t          j        dt          ‰j                             ¦   «         ¦  «        › �¦  «        S )NÚcall_)Úload_import_fromr   rI   r)   r  r  r‡   s   €€r   rˆ   z2TensorPropertySource.reconstruct.<locals>.<lambda>/  s=   ø€ �G×,Ò,Ý”Ð K­°´×1FÒ1FÑ1HÔ1HÑ(IÔ(IÐ KÐ Kñô € r*   rü   r   F)rŠ   r“   r	  r9   rn   r‹   r   r;   s   ``r   r=   z TensorPropertySource.reconstruct-  s¯   øø€ Ø×Òðð ð ð ð ñ	
ô 	
ð 	
ð
 	ˆ�”	ÑÔÐàŒ8ÐØ×!Ò! '×";Ò";¸D¼HÑ"EÔ"EÑFÔFÐFØ×ÒÝ  d¤hÐ&:  ÀÀ5ÑIÔIñ	
ô 	
ð 	
ð 	
ð 	
r*   c                 óL  — | j         t          j        u rdt          | j        ¦  «        › d�S | j         t          j        u rdt          | j        ¦  «        › d�S | j         t          j        u r| j        �t          d¦  «        ‚dS t          dt          | j         ¦  «        › �¦  «        ‚)Nz{0}.size()[rE   z{0}.stride()[r  z{0}.storage_offset()r  )r  rû   r  r)   r	  r  r  r¡   rB   s    r   rG   z#TensorPropertySource._name_template;  s®   € àŒ9�Ô+Ð+Ð+Ø8¥8¨D¬HÑ#5Ô#5Ð8Ð8Ð8Ð8ØŒY�.Ô/Ð/Ð/Ø:¥X¨d¬hÑ%7Ô%7Ð:Ð:Ð:Ð:ØŒY�.Ô7Ð7Ð7ØŒxÐ#Ý$ØHñô ð ð *Ð)å Ð!C­h°t´yÑ.AÔ.AÐ!CÐ!CÑDÔDÐDr*   r¬   rH   )rI   rJ   rK   rû   rL   r	  rq   r¢   r=   rR   rS   r'   rG   rT   r*   r   r  r    s�   € € € € € € à
ÐÐÑØ€Cˆˆt‰ÐÐÑðð ð ð ð
ð 
ð 
ð 
ð ÔðE ð Eð Eð Eñ ÔðEð Eð Er*   r  c                   óP   — e Zd ZU eed<   d	d„Zd
d„Zej        de	fd„¦   «         Z
dS )ÚIndexedSourcer	  r   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz#IndexedSource base must not be None©r“   r¡   rB   s    r   r¢   zIndexedSource.__post_init__O  s!   € ØŒ9ÐÝ Ð!FÑGÔGÐGð Ðr*   r5   r   c                 ó   — t           ‚r7   r]   r;   s     r   r=   zIndexedSource.reconstructS  rï   r*   c                 ó2   — dt          | j        ¦  «        › d�S )Nú(z, {0}))r)   r	  rB   s    r   rG   zIndexedSource._name_templateV  s   € à/•8˜DœHÑ%Ô%Ð/Ð/Ð/Ð/r*   r¬   rH   )rI   rJ   rK   rq   rL   r¢   r=   rR   rS   r'   rG   rT   r*   r   r  r  K  sv   € € € € € € à	€H€H�HðHð Hð Hð Hð"ð "ð "ð "ð Ôð0 ð 0ð 0ð 0ñ Ôð0ð 0ð 0r*   r  c                   ó:   — e Zd Zdd„Zd	d„Zedefd„¦   «         ZdS )
ÚNegateSourcer   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz"NegateSource base must not be Noner  rB   s    r   r¢   zNegateSource.__post_init__]  s!   € ØŒ9ÐÝ Ð!EÑFÔFÐFð Ðr*   r5   r   c                 ó   — t           ‚r7   r]   r;   s     r   r=   zNegateSource.reconstructa  rï   r*   c                 ó   — dS )Nz{0}.__neg__()rT   rB   s    r   rG   zNegateSource._name_templated  s	   € ð ˆr*   r¬   rH   ©rI   rJ   rK   r¢   r=   rQ   r'   rG   rT   r*   r   r  r  [  sg   € € € € € ðGð Gð Gð Gð"ð "ð "ð "ð ð ð ð ð ñ „Xðð ð r*   r  c                   ó:   — e Zd Zdd„Zd	d„Zedefd„¦   «         ZdS )
ÚConvertIntSourcer   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz&ConvertIntSource base must not be Noner  rB   s    r   r¢   zConvertIntSource.__post_init__l  s!   € ØŒ9ÐÝ Ð!IÑJÔJÐJð Ðr*   r5   r   c                 ó&   —  || j         ¦  «         d S r7   r’   r;   s     r   r=   zConvertIntSource.reconstructp  ó   € Øˆ�”	ÑÔÐÐÐr*   c                 ó   — dS )Nz%cast_symbool_to_symint_guardless({0})rT   rB   s    r   rG   zConvertIntSource._name_templates  s   € à6Ð6r*   r¬   rH   r  rT   r*   r   r  r  j  sg   € € € € € ðKð Kð Kð Kðð ð ð ð ð7 ð 7ð 7ð 7ñ „Xð7ð 7ð 7r*   r  c                   óF   — e Zd ZU eed<   d	d„Zd
d„Zedefd„¦   «         Z	dS )ÚDynamicScalarSourceÚis_intr   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz)DynamicScalarSource base must not be Noner  rB   s    r   r¢   z!DynamicScalarSource.__post_init__|  s!   € ØŒ9ÐÝ Ð!LÑMÔMÐMð Ðr*   r5   r   c                 óž   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )NÚbuiltinsrq   ©r  ©r5   s   €r   rˆ   z1DynamicScalarSource.reconstruct.<locals>.<lambda>…  s   ø€  g×&>Ò&>¸zÈ5Ñ&QÔ&Q€ r*   r   F©rŠ   r“   r‹   r   r;   s    `r   r=   zDynamicScalarSource.reconstruct€  sZ   ø€ ð
 	×ÒÐQÐQÐQÐQÑRÔRÐRØˆ�”	ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — dS )Nzint({0})rT   rB   s    r   rG   z"DynamicScalarSource._name_template‰  s   € àˆzr*   r¬   rH   )
rI   rJ   rK   rM   rL   r¢   r=   rQ   r'   rG   rT   r*   r   r%  r%  x  sr   € € € € € € à€L€L�LðNð Nð Nð Nð>ð >ð >ð >ð ð ð ð ð ñ „Xðð ð r*   r%  c                   ó:   — e Zd Zdd„Zd	d„Zedefd„¦   «         ZdS )
ÚFlattenScriptObjectSourcer   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz/FlattenScriptObjectSource base must not be Noner  rB   s    r   r¢   z'FlattenScriptObjectSource.__post_init__�  s!   € ØŒ9ÐÝ Ð!RÑSÔSÐSð Ðr*   r5   r   c                 ó&   —  || j         ¦  «         d S r7   r’   r;   s     r   r=   z%FlattenScriptObjectSource.reconstruct”  r"  r*   c                 ó   — dS )Nz{0}.__obj_flatten__()rT   rB   s    r   rG   z(FlattenScriptObjectSource._name_template—  s   € à&Ð&r*   r¬   rH   r  rT   r*   r   r0  r0  Ž  sg   € € € € € ðTð Tð Tð Tðð ð ð ð ð' ð 'ð 'ð 'ñ „Xð'ð 'ð 'r*   r0  c                   ó:   — e Zd Zdd„Zd	d„Zedefd„¦   «         ZdS )
ÚScriptObjectQualifiedNameSourcer   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz5ScriptObjectQualifiedNameSource base must not be Noner  rB   s    r   r¢   z-ScriptObjectQualifiedNameSource.__post_init__ž  s'   € ØŒ9ÐÝ ØGñô ð ð Ðr*   r5   r   c                 ó&   —  || j         ¦  «         d S r7   r’   r;   s     r   r=   z+ScriptObjectQualifiedNameSource.reconstruct¤  r"  r*   c                 ó   — dS )Nz{0}._type().qualified_name()rT   rB   s    r   rG   z.ScriptObjectQualifiedNameSource._name_template§  s   € à-Ð-r*   r¬   rH   r  rT   r*   r   r5  r5  œ  sc   € € € € € ðð ð ð ðð ð ð ð ð. ð .ð .ð .ñ „Xð.ð .ð .r*   r5  c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚAttrProxySourcer5   r   r   Nc                 ó&   —  || j         ¦  «         d S r7   r’   r;   s     r   r=   zAttrProxySource.reconstruct­  r"  r*   c                 ó   — dS )Nz{0}.get_base()rT   rB   s    r   rG   zAttrProxySource._name_template°  s   € àÐr*   rH   r•   rT   r*   r   r:  r:  ¬  sO   € € € € € ðð ð ð ð ð  ð  ð  ð  ñ „Xð ð  ð  r*   r:  c                   óÄ   — e Zd ZU eez  ed<   dZeed<    ej	        ddd¬¦  «        Z	eed<    ej	        ddd¬¦  «        Z
eed<   dd	„Zdd„Zej        defd„¦   «         ZdS )ÚDefaultsSourceÚidx_keyFÚis_kw)Úinitr&   ÚcomparerP   Ú_namer   Nc           
      óÈ  — | j         st          d¦  «        ‚| j        r£t          | j        t
          ¦  «        s$t          dt          | j        ¦  «        › �¦  «        ‚t                               | dd¦  «         t                               | ddt          | j
        ¦  «        › dt          | j        ¦  «        › d�¦  «         d S t          | j        t          ¦  «        s$t          d	t          | j        ¦  «        › �¦  «        ‚t                               | dd
¦  «         t                               | ddt          | j
        ¦  «        › dt          | j        ¦  «        › d�¦  «         d S )Nz]Base must be a valid source in order to properly track and guard this Defaults to its origin.z0idx_key must be a str for keyword defaults, got rP   Ú__kwdefaults__rC  r«   z['z']z4idx_key must be an int for positional defaults, got Ú__defaults__ú[rE   )r“   r¡   r@  r   r?  r'   ÚtypeÚobjectÚ__setattr__r)   rP   rq   rB   s    r   r¢   zDefaultsSource.__post_init__¼  s  € ØŒyð 	Ý Øoñô ð ð Œ:ð 	Ý˜dœl­CÑ0Ô0ð Ý$Ø[ÅtÈDÌLÑGYÔGYÐ[Ð[ñô ð õ ×Ò˜t WÐ.>Ñ?Ô?Ð?Ý×ÒØØØK� $¤*Ñ-Ô-ÐKÐKµ¸$¼,Ñ1GÔ1GÐKÐKÐKñô ð ð ð õ ˜dœl­CÑ0Ô0ð Ý$Ø_Í4ÐPTÔP\ÑK]ÔK]Ð_Ð_ñô ð õ ×Ò˜t W¨nÑ=Ô=Ð=Ý×ÒØ�gÐX­°´Ñ(<Ô(<ÐXÐX½xÈÌÑ?UÔ?UÐXÐXÐXñô ð ð ð r*   r5   r   c                 ó  —  || j         ¦  «         |                     |                     | j        ¦  «        ¦  «         |                     |                     | j        ¦  «        ¦  «         |                     t          ¦   «         ¦  «         d S r7   )r“   r‹   r¥   rP   r9   rn   r?  r   r;   s     r   r=   zDefaultsSource.reconstructÖ  s}   € Øˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸¼
ÑCÔCÑDÔDÐDØ×Ò˜g×7Ò7¸¼ÑEÔEÑFÔFÐFØ×ÒÕ2Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5r*   c                 ó   — | j         S r7   )rC  rB   s    r   rG   zDefaultsSource._name_templateÜ  s
   € àŒzÐr*   r¬   rH   )rI   rJ   rK   rq   r'   rL   r@  rM   rO   rP   rC  r¢   r=   rR   rS   rG   rT   r*   r   r>  r>  µ  sÑ   € € € € € € à�3‰YÐÐÑØ€Eˆ4ÐÐÑØ"�Ô"¨°EÀ5ÐIÑIÔI€Eˆ3ÐIÐIÑIØ"�Ô"¨°EÀ5ÐIÑIÔI€Eˆ3ÐIÐIÑIðð ð ð ð46ð 6ð 6ð 6ð Ôð ð ð ð ñ Ôðð ð r*   r>  c                   ót   ‡ — e Zd ZU eed<   dZeed<   dˆ fd„Zdd	„Zde	fd
„Z
ej        defd„¦   «         Zˆ xZS )ÚGetItemSourceÚindexFÚindex_is_slicer   Nc                 ó"  •— | j         €t          d¦  «        ‚t          | j        t          ¦  «        r]t          ¦   «                              d| j                             ¦   «         ¦  «         t          ¦   «                              dd¦  «         d S d S )Nz#GetItemSource base must not be NonerO  rP  T)r“   r¡   r   rO  ÚsliceÚsuperrJ  Ú
__reduce__)r<   Ú	__class__s    €r   r¢   zGetItemSource.__post_init__æ  s�   ø€ ØŒ9ÐÝ Ð!FÑGÔGÐGÝ�d”j¥%Ñ(Ô(ð 	8å‰GŒG×Ò ¨¬×)>Ò)>Ñ)@Ô)@ÑAÔAÐAÝ‰GŒG×ÒÐ 0°$Ñ7Ô7Ð7Ð7Ð7ð	8ð 	8r*   r5   r   c                 óF  —  || j         ¦  «         | j        r;|                     |                     |                      ¦   «         ¦  «        ¦  «         n-|                     |                     | j        ¦  «        ¦  «         |                     t          ¦   «         ¦  «         d S r7   )r“   rP  r9   rn   Úunpack_slicerO  r   r;   s     r   r=   zGetItemSource.reconstructî  s–   € Øˆ�”	ÑÔÐØÔð 	IØ×!Ò! '×";Ò";¸D×<MÒ<MÑ<OÔ<OÑ"PÔ"PÑQÔQÐQÐQà×!Ò! '×";Ò";¸D¼JÑ"GÔ"GÑHÔHÐHØ×ÒÕ2Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5r*   c                 óL   — | j         st          d¦  «        ‚| j        \  }} ||Ž S )Nz,unpack_slice called but index is not a slice)rP  r¡   rO  )r<   Úslice_classÚ
slice_argss      r   rW  zGetItemSource.unpack_sliceö  s6   € ØÔ"ð 	QÝ Ð!OÑPÔPÐPØ"&¤*Ñˆ�ZØˆ{˜JÐ'Ð'r*   c                 ó  — t          | j        t          ¦  «        r$t          dt	          | j        ¦  «        › �¦  «        ‚| j        r'dt          |                      ¦   «         d¬¦  «        › d�S dt          | j        d¬¦  «        › d�S )Nz.GetItemSource index must not be a Source, got ú{0}[TrD   rE   )r   rO  r   r¡   rH  rP  r)   rW  rB   s    r   rG   zGetItemSource._name_templateü  s—   € õ
 �d”j¥&Ñ)Ô)ð 	Ý ØSÅÀdÄjÑAQÔAQÐSÐSñô ð ð Ôð 	EØM�H T×%6Ò%6Ñ%8Ô%8ÀTÐJÑJÔJÐMÐMÐMÐMàD�H T¤Z¸DÐAÑAÔAÐDÐDÐDÐDr*   r¬   rH   )rI   rJ   rK   r   rL   rP  rM   r¢   r=   rR  rW  rR   rS   r'   rG   Ú__classcell__)rU  s   @r   rN  rN  á  s»   ø€ € € € € € à€J€J�JØ €N�DÐ Ð Ñ ð8ð 8ð 8ð 8ð 8ð 8ð6ð 6ð 6ð 6ð(˜eð (ð (ð (ð (ð ÔðE ð Eð Eð Eñ ÔðEð Eð Eð Eð Er*   rN  c                   óT   — e Zd ZU eed<   d	d„Zej        defd„¦   «         Z	de
fd„ZdS )
ÚConstDictKeySourcerO  r5   r   r   Nc                 óø   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     ‰                     | j        ¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚdict_keys_getitem©r  r   rI   r,  s   €r   rˆ   z0ConstDictKeySource.reconstruct.<locals>.<lambda>  s   ø€ �G×,Ò,­U¬^Ð=PÑQÔQ€ r*   rü   F©rŠ   r“   r9   rn   rO  r‹   r   r;   s    `r   r=   zConstDictKeySource.reconstruct  s„   ø€ Ø×ÒØQÐQÐQÐQñ	
ô 	
ð 	
ð 	ˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸¼
ÑCÔCÑDÔDÐDØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )Nzlist(dict.keys({0}))[TrD   rE   ©r)   rO  rB   s    r   rG   z!ConstDictKeySource._name_template  s%   € ð R­°$´*ÈÐ)NÑ)NÔ)NÐQÐQÐQÐQr*   c                 ó   — dS rñ   rT   rB   s    r   Úis_dict_keyzConstDictKeySource.is_dict_key  ró   r*   rH   )rI   rJ   rK   r   rL   r=   rR   rS   r'   rG   rM   rh  rT   r*   r   r_  r_    s~   € € € € € € à€J€J�Jð>ð >ð >ð >ð ÔðR ð Rð Rð Rñ ÔðRð˜Tð ð ð ð ð ð r*   r_  c                   ó\   — e Zd ZU eed<   d
d„Zdd„Zej        de	fd„¦   «         Z
defd	„ZdS )ÚNonSerializableSetGetItemSourcerO  r   Nc                 ót   — ddl m} |                     | j        ¦  «        st	          d| j        ›�¦  «        ‚d S )Nr   ©ÚConstantVariablez=NonSerializableSetGetItemSource index must be a literal, got )Ú	variablesrm  Ú
is_literalrO  r¡   ©r<   rm  s     r   r¢   z-NonSerializableSetGetItemSource.__post_init__$  sW   € Ø/Ð/Ð/Ð/Ð/Ð/à×*Ò*¨4¬:Ñ6Ô6ð 	Ý Ø^ÐPTÔPZÐ^Ð^ñô ð ð	ð 	r*   r5   r   c                 óø   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     ‰                     | j        ¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚset_getitemrc  r,  s   €r   rˆ   z=NonSerializableSetGetItemSource.reconstruct.<locals>.<lambda>.  s   ø€ �G×,Ò,­U¬^¸]ÑKÔK€ r*   rü   Frd  r;   s    `r   r=   z+NonSerializableSetGetItemSource.reconstruct,  s„   ø€ Ø×ÒØKÐKÐKÐKñ	
ô 	
ð 	
ð 	ˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸¼
ÑCÔCÑDÔDÐDØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )Nz
list({0})[TrD   rE   rf  rB   s    r   rG   z.NonSerializableSetGetItemSource._name_template4  s%   € ð G�h t¤z¸dÐCÑCÔCÐFÐFÐFÐFr*   c                 ó   — dS )NFrT   rB   s    r   rh  z+NonSerializableSetGetItemSource.is_dict_key9  s   € Øˆur*   r¬   rH   )rI   rJ   rK   rq   rL   r¢   r=   rR   rS   r'   rG   rM   rh  rT   r*   r   rj  rj     s’   € € € € € € à€J€J�Jðð ð ð ð>ð >ð >ð >ð ÔðG ð Gð Gð Gñ ÔðGð˜Tð ð ð ð ð ð r*   rj  c                   ó`   — e Zd ZU eed<   d
d„Zdd„Zdddefd„Ze	j
        defd	„¦   «         ZdS )ÚDictGetItemSourcerO  r   Nc                 ó¬   — ddl m} t          | j        t          ¦  «        s1|                     | j        ¦  «        st          d| j        ›�¦  «        ‚d S d S )Nr   rl  zEDictGetItemSource index must be a ConstDictKeySource or literal, got ©rn  rm  r   rO  r_  ro  r¡   rp  s     r   r¢   zDictGetItemSource.__post_init__E  s}   € Ø/Ð/Ð/Ð/Ð/Ð/åØŒJÕ*ñ
ô 
ð 	à"×-Ò-¨d¬jÑ9Ô9ð	õ !ØfÐX\ÔXbÐfÐfñô ð ð	ð 	ð 	ð 	r*   r5   r   c                 ó  —  || j         ¦  «         t          | j        t          ¦  «        r || j        ¦  «         n-|                     |                     | j        ¦  «        ¦  «         |                     t          ¦   «         ¦  «         d S r7   )r“   r   rO  r   r9   rn   r   r;   s     r   r=   zDictGetItemSource.reconstructO  s…   € àˆ�”	ÑÔÐõ �d”j¥&Ñ)Ô)ð 	IØˆG�D”JÑÔÐÐà×!Ò! '×";Ò";¸D¼JÑ"GÔ"GÑHÔHÐHØ×ÒÕ2Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5r*   c                 óØ   — | j                              |¦  «        }t          | j        t          ¦  «        r| j                             |¦  «        }nt          | j        ¦  «        }|› d|› d�S )NrG  rE   )r“   r?   r   rO  r_  r&   )r<   r5   r“   rO  s       r   r?   z$DictGetItemSource.reconstruct_pycodeZ  si   € ØŒy×+Ò+¨GÑ4Ô4ˆÝ�d”jÕ"4Ñ5Ô5ð 	%Ø”J×1Ò1°'Ñ:Ô:ˆEˆEå˜œÑ$Ô$ˆEØÐ!Ð!˜Ð!Ð!Ð!Ð!r*   c                 ó¤   — t          | j        t          ¦  «        rdt          | j        j        ¦  «        › d�S dt          | j        d¬¦  «        › d�S )Nr\  rE   TrD   ©r   rO  r_  r)   r   rB   s    r   rG   z DictGetItemSource._name_templateb  sU   € å�d”jÕ"4Ñ5Ô5ð 	EØ8�H T¤Z¤_Ñ5Ô5Ð8Ð8Ð8Ð8àD�H T¤Z¸DÐAÑAÔAÐDÐDÐDÐDr*   r¬   rH   )rI   rJ   rK   r   rL   r¢   r=   r'   r?   rR   rS   rG   rT   r*   r   rw  rw  >  s�   € € € € € € ð
 €J€J�Jðð ð ð ð	6ð 	6ð 	6ð 	6ð"¨+ð "¸#ð "ð "ð "ð "ð ÔðE ð Eð Eð Eñ ÔðEð Eð Er*   rw  c                   óP   — e Zd ZU eed<   d	d„Zd
d„Zej        de	fd„¦   «         Z
dS )ÚDictSubclassGetItemSourcerO  r   Nc                 ó¬   — ddl m} t          | j        t          ¦  «        s1|                     | j        ¦  «        st          d| j        ›�¦  «        ‚d S d S )Nr   rl  zMDictSubclassGetItemSource index must be a ConstDictKeySource or literal, got ry  rp  s     r   r¢   z'DictSubclassGetItemSource.__post_init__s  s}   € Ø/Ð/Ð/Ð/Ð/Ð/åØŒJÕ*ñ
ô 
ð 	à"×-Ò-¨d¬jÑ9Ô9ð	õ !ØnÐ`dÔ`jÐnÐnñô ð ð	ð 	ð 	ð 	r*   r5   r   c                 óN  ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         t          | j        t          ¦  «        r ‰| j        ¦  «         n-‰                     ‰                     | j        ¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚdict_getitemrc  r,  s   €r   rˆ   z7DictSubclassGetItemSource.reconstruct.<locals>.<lambda>‚  ó   ø€ �G×,Ò,­U¬^¸^ÑLÔL€ r*   rü   F)	rŠ   r“   r   rO  r   r9   rn   r‹   r   r;   s    `r   r=   z%DictSubclassGetItemSource.reconstruct}  s²   ø€ ð 	×ÒØLÐLÐLÐLñ	
ô 	
ð 	
ð
 	ˆ�”	ÑÔÐõ �d”j¥&Ñ)Ô)ð 	IØˆG�D”JÑÔÐÐà×!Ò! '×";Ò";¸D¼JÑ"GÔ"GÑHÔHÐHà×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó¤   — t          | j        t          ¦  «        rdt          | j        j        ¦  «        › d�S dt          | j        d¬¦  «        › d�S )Nzdict.__getitem__({0}, r¨   r\  TrD   rE   r}  rB   s    r   rG   z(DictSubclassGetItemSource._name_template�  sU   € å�d”jÕ"4Ñ5Ô5ð 	EØJ­h°t´z´Ñ.GÔ.GÐJÐJÐJÐJàD�H T¤Z¸DÐAÑAÔAÐDÐDÐDÐDr*   r¬   rH   )rI   rJ   rK   r   rL   r¢   r=   rR   rS   r'   rG   rT   r*   r   r  r  l  s{   € € € € € € ð
 €J€J�Jðð ð ð ð>ð >ð >ð >ð& ÔðE ð Eð Eð Eñ ÔðEð Eð Er*   r  c                   ó@   — e Zd ZdZdd„Zej        defd„¦   «         ZdS )	ÚListGetItemSourcezY
    Same as GetItemSource with reconstruct and name overridden to be list specific.
    r5   r   r   Nc                 ó$  ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         | j        rt          d¦  «        ‚‰                     ‰                     | j        ¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚlist_getitemrc  r,  s   €r   rˆ   z/ListGetItemSource.reconstruct.<locals>.<lambda>¤  r„  r*   ú>List[slice] is a temporary object and should not have a sourcerü   F)	rŠ   r“   rP  ÚRuntimeErrorr9   rn   rO  r‹   r   r;   s    `r   r=   zListGetItemSource.reconstructž  s«   ø€ ð
 	×ÒØLÐLÐLÐLñ	
ô 	
ð 	
ð
 	ˆ�”	ÑÔÐð Ôð 	IÝØPñô ð ð ×!Ò! '×";Ò";¸D¼JÑ"GÔ"GÑHÔHÐHà×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 óÞ   — t          | j        t          ¦  «        r$t          dt	          | j        ¦  «        › �¦  «        ‚| j        rt          d¦  «        ‚dt          | j        d¬¦  «        › d�S )Nz2ListGetItemSource index must not be a Source, got r‹  zlist.__getitem__({0}, TrD   r¨   )r   rO  r   r¡   rH  rP  rŒ  r)   rB   s    r   rG   z ListGetItemSource._name_template´  s…   € õ
 �d”j¥&Ñ)Ô)ð 	Ý ØWÅTÈ$Ì*ÑEUÔEUÐWÐWñô ð ð Ôð 	WÝØPñô ð ð W­h°t´zÈdÐ.SÑ.SÔ.SÐVÐVÐVÐVr*   rH   )	rI   rJ   rK   r³   r=   rR   rS   r'   rG   rT   r*   r   r‡  r‡  ˜  sd   € € € € € ðð ð>ð >ð >ð >ð, ÔðW ð Wð Wð Wñ ÔðWð Wð Wr*   r‡  c                   ó<   — e Zd Zdd„Zej        defd„¦   «         ZdS )ÚTupleIteratorGetItemSourcer5   r   r   Nc                 óø   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     ‰                     | j        ¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚtuple_iterator_getitemrc  r,  s   €r   rˆ   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>É  s   ø€ �G×,Ò,­U¬^Ð=UÑVÔV€ r*   rü   Frd  r;   s    `r   r=   z&TupleIteratorGetItemSource.reconstructÇ  s„   ø€ Ø×ÒØVÐVÐVÐVñ	
ô 	
ð 	
ð 	ˆ�”	ÑÔÐØ×Ò˜g×7Ò7¸¼
ÑCÔCÑDÔDÐDØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó6   — dt          | j        d¬¦  «        › d�S )Nz___tuple_iterator_getitem({0}, TrD   r¨   rf  rB   s    r   rG   z)TupleIteratorGetItemSource._name_templateÏ  s(   € ð Yµ¸¼ÐPTÐ0UÑ0UÔ0UÐXÐXÐXð	
r*   rH   )rI   rJ   rK   r=   rR   rS   r'   rG   rT   r*   r   r�  r�  Å  sS   € € € € € ð>ð >ð >ð >ð Ôð
 ð 
ð 
ð 
ñ Ôð
ð 
ð 
r*   r�  c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚNamedTupleFieldsSourcer5   r   r   Nc                 óv   —  || j         ¦  «         |                     |                     d¦  «        ¦  «         d S )NÚ_fieldsr¾   r;   s     r   r=   z"NamedTupleFieldsSource.reconstructØ  rÅ   r*   c                 ó   — dS )Nz___namedtuple_fields({0})rT   rB   s    r   rG   z%NamedTupleFieldsSource._name_templateÜ  s   € à*Ð*r*   rH   r•   rT   r*   r   r•  r•  Ö  sS   € € € € € ðDð Dð Dð Dð ð+ ð +ð +ð +ñ „Xð+ð +ð +r*   r•  c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚDataclassFieldsSourcer5   r   r   Nc                 óž   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚdataclass_fieldsrc  r,  s   €r   rˆ   z3DataclassFieldsSource.reconstruct.<locals>.<lambda>å  s   ø€ �G×,Ò,­U¬^Ð=OÑPÔP€ r*   r   Fr-  r;   s    `r   r=   z!DataclassFieldsSource.reconstructã  s`   ø€ Ø×ÒØPÐPÐPÐPñ	
ô 	
ð 	
ð 	ˆ�”	ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — dS )Nz___dataclass_fields({0})rT   rB   s    r   rG   z$DataclassFieldsSource._name_templateê  s   € à)Ð)r*   rH   r•   rT   r*   r   rš  rš  á  sO   € € € € € ð>ð >ð >ð >ð ð* ð *ð *ð *ñ „Xð*ð *ð *r*   rš  c                   ó:   — e Zd Zdd„Zd	d„Zedefd„¦   «         ZdS )
Ú
TypeSourcer   Nc                 ó2   — | j         €t          d¦  «        ‚d S )Nz TypeSource base must not be Noner  rB   s    r   r¢   zTypeSource.__post_init__ñ  s!   € ØŒ9ÐÝ Ð!CÑDÔDÐDð Ðr*   r5   r   c                 óž   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )Nr*  rH  r+  r,  s   €r   rˆ   z(TypeSource.reconstruct.<locals>.<lambda>ö  s   ø€  g×&>Ò&>¸zÈ6Ñ&RÔ&R€ r*   r   Fr-  r;   s    `r   r=   zTypeSource.reconstructõ  sX   ø€ Ø×ÒÐRÐRÐRÐRÑSÔSÐSØˆ�”	ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — dS )Nz	type({0})rT   rB   s    r   rG   zTypeSource._name_templateú  s   € àˆ{r*   r¬   rH   r  rT   r*   r   r   r   ï  sg   € € € € € ðEð Eð Eð Eð>ð >ð >ð >ð
 ð ð ð ð ñ „Xðð ð r*   r   c                   ó2   — e Zd Zdd„Zedefd„¦   «         ZdS )ÚOptimizerSourcer5   r   r   Nc                 ó&   —  || j         ¦  «         d S r7   r’   r;   s     r   r=   zOptimizerSource.reconstruct  r"  r*   c                 ó   — dS rø   rT   rB   s    r   rG   zOptimizerSource._name_template  rù   r*   rH   r•   rT   r*   r   r¦  r¦  ÿ  sO   € € € € € ðð ð ð ð ð ð ð ð ñ „Xðð ð r*   r¦  c                   óh   — e Zd Zd	d„Zdddefd„Zej        defd„¦   «         Z	e
defd„¦   «         ZdS )
ÚNNModuleSourcer5   r   r   Nc                 ó&   —  || j         ¦  «         d S r7   r’   r;   s     r   r=   zNNModuleSource.reconstruct  r"  r*   c                 ó6   — | j                              |¦  «        S r7   )r“   r?   r;   s     r   r?   z!NNModuleSource.reconstruct_pycode  s   € ØŒy×+Ò+¨GÑ4Ô4Ð4r*   c                 ó0   — t           | j        j                 S r7   rÝ   rB   s    r   r   zNNModuleSource.guard_source  rß   r*   c                 ó   — dS rø   rT   rB   s    r   rG   zNNModuleSource._name_template  rù   r*   rH   )rI   rJ   rK   r=   r'   r?   rR   rS   r
   r   rQ   rG   rT   r*   r   rª  rª  	  s¡   € € € € € ðð ð ð ð5¨+ð 5¸#ð 5ð 5ð 5ð 5ð ÔðK˜kð Kð Kð Kñ ÔðKð ð ð ð ð ñ „Xðð ð r*   rª  c                   ó4   — e Zd Zej        defd„¦   «         ZdS )ÚUnspecializedNNModuleSourcer   c                 ó0   — t           | j        j                 S r7   )Ú%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULEr“   r   rB   s    r   r   z(UnspecializedNNModuleSource.guard_source  s   € å4°T´YÔ5KÔLÐLr*   Nrà   rT   r*   r   r°  r°    sD   € € € € € àÔðM˜kð Mð Mð Mñ ÔðMð Mð Mr*   r°  c                   ó4   — e Zd Zej        defd„¦   «         ZdS )Ú"UnspecializedBuiltinNNModuleSourcer   c                 ó0   — t           | j        j                 S r7   )Ú-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULEr“   r   rB   s    r   r   z/UnspecializedBuiltinNNModuleSource.guard_source#  s   € å<¸T¼YÔ=SÔTÐTr*   Nrà   rT   r*   r   r´  r´  !  sD   € € € € € àÔðU˜kð Uð Uð Uñ ÔðUð Uð Ur*   r´  c                   ó4   — e Zd Zej        defd„¦   «         ZdS )ÚFSDPNNModuleSourcer   c                 ó0   — t           | j        j                 S r7   )Ú_GUARD_SOURCE_FSDP_MODULEr“   r   rB   s    r   r   zFSDPNNModuleSource.guard_source*  s   € å(¨¬Ô)?Ô@Ð@r*   Nrà   rT   r*   r   r¸  r¸  (  sD   € € € € € àÔðA˜kð Að Að Añ ÔðAð Að Ar*   r¸  c                   óF   — e Zd Zedefd„¦   «         Zedefd„¦   «         ZdS )ÚGlobalStateSourcer   c                 ó   — dS ©Nr¯   rT   rB   s    r   rG   z GlobalStateSource._name_template1  ó   € àˆrr*   c                 ó   — t           j        S r7   r}   rB   s    r   r   zGlobalStateSource.guard_source5  r   r*   N©rI   rJ   rK   rQ   r'   rG   r
   r   rT   r*   r   r¼  r¼  /  s`   € € € € € àð ð ð ð ñ „Xðð ð"˜kð "ð "ð "ñ „Xð"ð "ð "r*   r¼  c                   óp   — e Zd ZU dZeed<   dd„Zej        defd„¦   «         Z	dd	„Z
edefd
„¦   «         ZdS )ÚImportSourcezˆPoints to an imported module - used instead of GlobalSource
    in case the user has overridden the module name in their local namespaceÚmodule_namer   Nc                 ó\   — ddl m}m}  ||                      |j        ¦  «        ¦  «         d S )Nr   )ÚGuardBuilderÚinstall_guard)ÚguardsrÆ  rÇ  rî   ÚID_MATCH)r<   rÆ  rÇ  s      r   r¢   zImportSource.__post_init__A  s?   € Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7àˆ�d—o’o lÔ&;Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — d| j         › d�S )Nz__import__('z'))rÄ  rB   s    r   rG   zImportSource._name_templateF  s   € à2˜dÔ.Ð2Ð2Ð2Ð2r*   r5   r   c                 ó¦   — |                      |                     d¦  «        t          d¦  «        |                     | j        ¦  «        g¦  «         d S )Nr   )r‹   rn   r   Úcreate_import_namerÄ  r;   s     r   r=   zImportSource.reconstructJ  sY   € Ø×Òà×)Ò)¨!Ñ,Ô,Ý" 1Ñ%Ô%Ø×*Ò*¨4Ô+;Ñ<Ô<ðñ	
ô 	
ð 	
ð 	
ð 	
r*   c                 ó   — t           j        S r7   r}   rB   s    r   r   zImportSource.guard_sourceS  r   r*   r¬   rH   )rI   rJ   rK   r³   r'   rL   r¢   rR   rS   rG   r=   rQ   r
   r   rT   r*   r   rÃ  rÃ  :  sª   € € € € € € ðPð Pð ÐÐÑð>ð >ð >ð >ð
 Ôð3 ð 3ð 3ð 3ñ Ôð3ð
ð 
ð 
ð 
ð ð"˜kð "ð "ð "ñ „Xð"ð "ð "r*   rÃ  c                   óp   — e Zd ZU eed<   ej        defd„¦   «         Zdefd„Z	d
d„Z
edefd	„¦   «         ZdS )ÚTorchFunctionModeStackSourceÚindr   c                 óL   — dt          |                      ¦   «         ¦  «        › d�S )Nz$___get_torch_function_mode_stack_at(r¨   )r)   Ú
_get_indexrB   s    r   rG   z+TorchFunctionModeStackSource._name_template\  s%   € àTµh¸t¿ºÑ?PÔ?PÑ6QÔ6QÐTÐTÐTÐTr*   c                 óB   — ddl m} |                     | j        ¦  «        S )Nr   )ÚTorchFunctionModeStackVariable)Úvariables.torch_functionrÔ  Úget_mode_indexrÐ  )r<   rÔ  s     r   rÒ  z'TorchFunctionModeStackSource._get_index`  s*   € ØLÐLÐLÐLÐLÐLà-×<Ò<¸T¼XÑFÔFÐFr*   r5   r   Nc                 óô   ‡— ‰                      ˆfd„¦  «         ‰                     ‰                     |                      ¦   «         ¦  «        g¦  «         ‰                     t	          dd¦  «        ¦  «         d S )Nc                  óD   •— ‰                       t          j        d¦  «        S )NÚ get_torch_function_mode_stack_atrc  r,  s   €r   rˆ   z:TorchFunctionModeStackSource.reconstruct.<locals>.<lambda>g  s   ø€ �G×,Ò,Ý”Ð Bñô € r*   r   F)rŠ   r‹   rn   rÒ  r   r;   s    `r   r=   z(TorchFunctionModeStackSource.reconstructe  s…   ø€ Ø×Òðð ð ð ñ	
ô 	
ð 	
ð
 	×Ò˜w×8Ò8¸¿ºÑ9JÔ9JÑKÔKÐLÑMÔMÐMØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — t           j        S r7   r}   rB   s    r   r   z)TorchFunctionModeStackSource.guard_sourcen  r   r*   rH   )rI   rJ   rK   rq   rL   rR   rS   r'   rG   rÒ  r=   rQ   r
   r   rT   r*   r   rÏ  rÏ  X  s¨   € € € € € € à	€H€H�HàÔðU ð Uð Uð Uñ ÔðUðG˜Cð Gð Gð Gð Gð
>ð >ð >ð >ð ð"˜kð "ð "ð "ñ „Xð"ð "ð "r*   rÏ  c                   ót   — e Zd ZU eed<   dd„Zedefd„¦   «         Ze	j
        defd„¦   «         Zd	edefd
„ZdS )r   Úsource_namer5   r   r   Nc                 ód   — |                      |                     | j        d¬¦  «        ¦  «         d S )NFrw   )r9   rz   rÜ  r;   s     r   r=   zConstantSource.reconstructw  s2   € Ø×Ò˜g×8Ò8¸Ô9IÈuÐ8ÑUÔUÑVÔVÐVÐVÐVr*   c                 ó   — t           j        S r7   )r
   r   rB   s    r   r   zConstantSource.guard_sourcez  s   € åÔ#Ð#r*   c                 ó   — | j         S r7   )rÜ  rB   s    r   rG   zConstantSource._name_template~  s   € àÔÐr*   rë   c                 ó   — t           ‚r7   r]   rí   s     r   rî   zConstantSource.make_guard‚  rï   r*   rH   )rI   rJ   rK   r'   rL   r=   rQ   r
   r   rR   rS   rG   r   rî   rT   r*   r   r   r   s  s®   € € € € € € àÐÐÑðWð Wð Wð Wð ð$˜kð $ð $ð $ñ „Xð$ð Ôð  ð  ð  ð  ñ Ôð ð"˜Sð " Sð "ð "ð "ð "ð "ð "r*   r   c                   ó2   — e Zd Zedefd„¦   «         Zdd„ZdS )ÚNumpyTensorSourcer   c                 ó   — dS )Nz___from_numpy({0})rT   rB   s    r   rG   z NumpyTensorSource._name_templateˆ  s   € à#Ð#r*   r5   r   Nc                 óž   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )NÚtorchÚ	as_tensorr+  r,  s   €r   rˆ   z/NumpyTensorSource.reconstruct.<locals>.<lambda>�  s   ø€  g×&>Ò&>¸wÈÑ&TÔ&T€ r*   r   Fr-  r;   s    `r   r=   zNumpyTensorSource.reconstructŒ  sX   ø€ Ø×ÒÐTÐTÐTÐTÑUÔUÐUØˆ�”	ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   rH   )rI   rJ   rK   rQ   r'   rG   r=   rT   r*   r   râ  râ  †  sM   € € € € € àð$ ð $ð $ð $ñ „Xð$ð>ð >ð >ð >ð >ð >r*   râ  c                   ó*   — e Zd Zedefd„¦   «         ZdS )ÚSubclassAttrListSourcer   c                 ó   — dS )Nz{0}.__tensor_flatten__()[0]rT   rB   s    r   rG   z%SubclassAttrListSource._name_template”  s   € à,Ð,r*   N©rI   rJ   rK   rQ   r'   rG   rT   r*   r   ré  ré  ’  s9   € € € € € àð- ð -ð -ð -ñ „Xð-ð -ð -r*   ré  c                   ó*   — e Zd Zedefd„¦   «         ZdS )ÚFloatTensorSourcer   c                 ó   — dS )Nz___as_tensor({0})rT   rB   s    r   rG   z FloatTensorSource._name_template�  s   € à"Ð"r*   Nrë  rT   r*   r   rí  rí  ›  s9   € € € € € àð# ð #ð #ð #ñ „Xð#ð #ð #r*   rí  c                   ó*   — e Zd Zedefd„¦   «         ZdS )ÚCallMethodItemSourcer   c                 ó   — dS )Nz
{0}.item()rT   rB   s    r   rG   z#CallMethodItemSource._name_template¤  s   € àˆ|r*   Nrë  rT   r*   r   rð  rð  ¢  s9   € € € € € àð ð ð ð ñ „Xðð ð r*   rð  c                   óF   — e Zd Zedefd„¦   «         Zedefd„¦   «         ZdS )ÚShapeEnvSourcer   c                 ó   — dS r¾  rT   rB   s    r   rG   zShapeEnvSource._name_template®  r¿  r*   c                 ó   — t           j        S r7   )r
   Ú	SHAPE_ENVrB   s    r   r   zShapeEnvSource.guard_source²  rè   r*   NrÁ  rT   r*   r   ró  ró  ¬  s`   € € € € € àð ð ð ð ñ „Xðð ð%˜kð %ð %ð %ñ „Xð%ð %ð %r*   ró  c                   ód   — e Zd ZU eed<   ej        defd„¦   «         Zd	d„Z	e
defd„¦   «         ZdS )
ÚCurrentStreamSourcer   r   c                 óp   — dt          | j        j        ¦  «        › dt          | j        j        ¦  «        › d�S )Nz$___get_current_stream(torch.device('z', z)))r)   r   rH  rO  rB   s    r   rG   z"CurrentStreamSource._name_template»  s8   € àtµh¸t¼{Ô?OÑ6PÔ6PÐtÐtÕU]Ð^bÔ^iÔ^oÑUpÔUpÐtÐtÐtÐtr*   r5   r   Nc                 óæ  ‡— d}‰                      ˆfd„¦  «         ‰                      ˆfd„¦  «         ‰                     ‰                     | j        j        ¦  «        g¦  «         | j        j        �8|dz  }‰                     ‰                     | j        j        ¦  «        g¦  «         ‰                     t          |d¦  «        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nr   c                  óD   •— ‰                       t          j        d¦  «        S )NÚget_current_streamrc  r,  s   €r   rˆ   z1CurrentStreamSource.reconstruct.<locals>.<lambda>Â  s   ø€ �G×,Ò,­U¬^Ð=QÑRÔR€ r*   c                  ó0   •— ‰                       dd¦  «        S )Nræ  r   r+  r,  s   €r   rˆ   z1CurrentStreamSource.reconstruct.<locals>.<lambda>Ä  s   ø€  g×&>Ò&>¸wÈÑ&QÔ&Q€ r*   F)rŠ   r‹   rn   r   rH  rO  r   )r<   r5   Únum_argss    ` r   r=   zCurrentStreamSource.reconstruct¿  sø   ø€ ØˆØ×ÒØRÐRÐRÐRñ	
ô 	
ð 	
ð 	×ÒÐQÐQÐQÐQÑRÔRÐRØ×Ò˜w×8Ò8¸¼Ô9IÑJÔJÐKÑLÔLÐLØŒ;ÔÐ(Ø˜‰MˆHØ×!Ò! 7×#<Ò#<¸T¼[Ô=NÑ#OÔ#OÐ"PÑQÔQÐQØ×ÒÕ2°8¸UÑCÔCÑDÔDÐDØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r*   c                 ó   — t           j        S r7   r}   rB   s    r   r   z CurrentStreamSource.guard_sourceÌ  r   r*   rH   )rI   rJ   rK   Údevice_typerL   rR   rS   r'   rG   r=   rQ   r
   r   rT   r*   r   rø  rø  ·  s‹   € € € € € € àÐÐÑàÔðu ð uð uð uñ Ôðuð>ð >ð >ð >ð ð"˜kð "ð "ð "ñ „Xð"ð "ð "r*   rø  c                   óF   — e Zd Zedefd„¦   «         Zedefd„¦   «         ZdS )ÚBackwardStateSourcer   c                 ó   — dS r¾  rT   rB   s    r   rG   z"BackwardStateSource._name_templateÓ  r¿  r*   c                 ó   — t           j        S r7   )r
   ÚBACKWARD_STATErB   s    r   r   z BackwardStateSource.guard_source×  s   € åÔ)Ð)r*   NrÁ  rT   r*   r   r  r  Ñ  s`   € € € € € àð ð ð ð ñ „Xðð ð*˜kð *ð *ð *ñ „Xð*ð *ð *r*   r  ©Úonly_allow_inputr  c                óª   — t          | t          ¦  «        rt          | j        |¬¦  «        S t          | t          ¦  «        sd S |r	| j        sd S | j        S ©Nr  )r   r   Úget_local_source_namer“   r-   r/   r.   ©r   r  s     r   r
  r
  Ü  sc   € õ �&�-Ñ(Ô(ð UÝ$ V¤[ÐCSÐTÑTÔTÐTÝ�f�kÑ*Ô*ð ØˆtØð  ¤ð ØˆtØÔÐr*   c                ó(   — t          | |¬¦  «        d uS r	  )r
  r  s     r   Úis_from_local_sourcer  é  s   € å  Ð:JÐKÑKÔKÐSWÐWÐWr*   c                 ó$   — t          | ¦  «        d uS r7   )Úget_global_source_namer   s    r   Úis_from_global_sourcer  î  s   € å! &Ñ)Ô)°Ð5Ð5r*   c                 ó�   — t          | t          ¦  «        rt          | j        ¦  «        S t          | t          ¦  «        sd S | j        S r7   )r   r   r  r“   rs   rt   r   s    r   r  r  ó  sD   € å�&�-Ñ(Ô(ð 3Ý% f¤kÑ2Ô2Ð2Ý�f�lÑ+Ô+ð ØˆtØÔÐr*   c                 óœ   — t          | t          ¦  «        rt          | j        ¦  «        S t          | t          ¦  «        o| j        o| j         S r7   )r   r   Úis_from_nonlocal_sourcer“   r-   r1   r/   r   s    r   r  r  ü  sN   € å�&�-Ñ(Ô(ð 4Ý& v¤{Ñ3Ô3Ð3å�6�;Ñ'Ô'ð 	 ØÔ+ð	 à”Ððr*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   rÑ   r   Úis_from_closure_sourcer“   r   s    r   r  r    s@   € å�&�-Ñ(Ô(ð ØˆtÝ�&�-Ñ(Ô(ð 3Ý% f¤kÑ2Ô2Ð2Øˆ5r*   Útargetc                 ój   — | |k    rdS t          | t          ¦  «        rt          | j        |¦  «        S dS r   )r   r   Úis_from_sourcer“   )r   r  s     r   r  r    s;   € à�ÒÐØˆtÝ�&�-Ñ(Ô(ð 3Ý˜fœk¨6Ñ2Ô2Ð2Øˆ5r*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   r°  r   Ú&is_from_unspecialized_nn_module_sourcer“   r   s    r   r  r    sB   € å�&Õ5Ñ6Ô6ð ØˆtÝ�&�-Ñ(Ô(ð CÝ5°f´kÑBÔBÐBØˆ5r*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   r´  r   Ú.is_from_unspecialized_builtin_nn_module_sourcer“   r   s    r   r  r  "  sB   € å�&Õ<Ñ=Ô=ð ØˆtÝ�&�-Ñ(Ô(ð KÝ=¸f¼kÑJÔJÐJØˆ5r*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   râ   r   Ú)is_from_unspecialized_param_buffer_sourcer“   r   s    r   r  r  +  sB   € å�&Õ8Ñ9Ô9ð ØˆtÝ�&�-Ñ(Ô(ð FÝ8¸¼ÑEÔEÐEØˆ5r*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   r0  r   Ú$is_from_flatten_script_object_sourcer“   r   s    r   r   r   4  sC   € å�&Õ3Ñ4Ô4ð AØˆtÝ	�F�MÑ	*Ô	*ð AÝ3°F´KÑ@Ô@Ð@Øˆ5r*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   r¦  r   Úis_from_optimizer_sourcer“   r   s    r   r"  r"  =  s@   € å�&�/Ñ*Ô*ð ØˆtÝ�&�-Ñ(Ô(ð 5Ý'¨¬Ñ4Ô4Ð4Øˆ5r*   c                 óŠ  — t          | t          ¦  «        rdS t          | t          ¦  «        r,t          | j        t          ¦  «        r| j        j        dk    rdS t          | t          ¦  «        r,t          | j        t          ¦  «        r| j        j        dk    rdS t          | t          ¦  «        rt          | j        ¦  «        S dS )NTrE  rF  F)	r   r>  rw  r“   r›   rœ   rN  r   Úis_from_defaultsr   s    r   r$  r$  H  sÀ   € å�&�.Ñ)Ô)ð Øˆtõ 	�6Õ,Ñ-Ô-ðå�v”{¥JÑ/Ô/ðð ŒKÔÐ"2Ò2Ð2àˆtõ 	�6�=Ñ)Ô)ðå�v”{¥JÑ/Ô/ðð ŒKÔ .Ò0Ð0àˆtå�&�-Ñ(Ô(ð -Ý ¤Ñ,Ô,Ð,Øˆ5r*   c                 ó†   — t          | t          ¦  «        rdS t          | t          ¦  «        rt          | j        ¦  «        S dS r   )r   rõ   r   Úis_from_skip_guard_sourcer“   r   s    r   r&  r&  b  s@   € å�&�/Ñ*Ô*ð Øˆtå�&�-Ñ(Ô(ð 6Ý(¨¬Ñ5Ô5Ð5àˆ5r*   )F)vr³   rO   ÚenumrR   Úcollections.abcr   Útypingr   r   ræ  r   r   Útorch._guardsr   r   r	   r
   r   r¯   r   Úbytecode_transformationr   r   r   r5   r   rA   ÚLOCAL_SPECIALIZED_NN_MODULEr~   ÚGLOBAL_SPECIALIZED_NN_MODULEÚLOCAL_UNSPECIALIZED_NN_MODULEÚGLOBAL_UNSPECIALIZED_NN_MODULEÚ%LOCAL_UNSPECIALIZED_BUILTIN_NN_MODULEÚ&GLOBAL_UNSPECIALIZED_BUILTIN_NN_MODULEÚLOCAL_FSDP_MODULEÚGLOBAL_FSDP_MODULErÞ   r²  r¶  rº  rM   r   r'   r    r)   r-   rV   r_   rf   rs   r„   r�   r—   r›   r®   rµ   r»   rÂ   rÈ   rÌ   rÑ   rÖ   rÛ   râ   rä   rõ   ÚEnumrû   r  r  r  r  r%  r0  r5  r:  r>  rN  r_  rj  rw  r  r‡  r�  r•  rš  r   r¦  rª  r°  r´  r¸  r¼  rÃ  rÏ  r   râ  ré  rí  rð  ró  rø  r  Ú	lru_cacher
  r  r  r  r  r  r  r  r  r  r   r"  r$  r&  rT   r*   r   ú<module>r6     s,  ððð ð& Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð #Ø"Ð"Ð"Ð"Ð"Ð"ð Ô�{Ô>ØÔ˜Ô@ØÔ+¨[Ô-TØÔ,¨kÔ.VàÔ-¨{Ô/XØÔ.°Ô0ZØÔ5°{Ô7hØÔ6¸Ô8jØÔ! ;Ô#@ØÔ" KÔ$Bð'Ð #ð  Ô�{Ô@ØÔ˜ÔBØÔ-¨{Ô/XØÔ.°Ô0ZàÔ+¨[Ô-VØÔ,¨kÔ.XàÔ5°{Ô7hØÔ6¸Ô8jØÔ! ;Ô#@ØÔ" KÔ$Bð)Ð %ð" Ô�{ÔHØÔ˜ÔJØÔ-¨{Ô/`ØÔ.°Ô0bØÔ+¨[Ô-^ØÔ,¨kÔ.`àÔ5°{Ô7hØÔ6¸Ô8jØÔ! ;Ô#@ØÔ" KÔ$Bð1Ð -ð Ô�{Ô4ØÔ˜Ô6ØÔ+¨[Ô-JØÔ,¨kÔ.LØÔ! ;Ô#@ØÔ" KÔ$BØÔ-¨{Ô/LØÔ.°Ô0NØÔ5°{Ô7TØÔ6¸Ô8VðÐ ð	˜vð 	¨$ð 	ð 	ð 	ð 	ð& 6¨D¡=ð &°Sð &ð &ð &ð &ð3ð 3�ð 3 ð 3°#ð 3ð 3ð 3ð 3ð Ð 4Ð(Ñ(Ô(ð,Bð ,Bð ,Bð ,Bð ,B�&ñ ,Bô ,Bñ )Ô(ð,Bð^ Ð 4Ð(Ñ(Ô(ð
ð 
ð 
ð 
ð 
�fñ 
ô 
ñ )Ô(ð
ð$ Ð 4Ð(Ñ(Ô(ðPð Pð Pð Pð P˜6ñ Pô Pñ )Ô(ðPð Ð 4Ð(Ñ(Ô(ðBð Bð Bð Bð B˜ñ Bô Bñ )Ô(ðBð" Ð 4Ð(Ñ(Ô(ðCð Cð Cð Cð C�6ñ Cô Cñ )Ô(ðCð$ Ð 4Ð(Ñ(Ô(ðEð Eð Eð Eð E˜&ñ Eô Eñ )Ô(ðEð( Ð 4Ð(Ñ(Ô(ðð ð ð ð ˜ñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ð	ð 	ð 	ð 	ð 	Ð0ñ 	ô 	ñ )Ô(ð	ð Ð 4Ð(Ñ(Ô(ð0ð 0ð 0ð 0ð 0�ñ 0ô 0ñ )Ô(ð0ð@ Ð 4Ð(Ñ(Ô(ðð ð ð ð ˜ñ ô ñ )Ô(ðð& Ð 4Ð(Ñ(Ô(ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ñ )Ô(ð
ð4 Ð 4Ð(Ñ(Ô(ð$ð $ð $ð $ð $�]ñ $ô $ñ )Ô(ð$ð Ð 4Ð(Ñ(Ô(ðð ð ð ð �Mñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ðLð Lð Lð Lð L�fñ Lô Lñ )Ô(ðLð& Ð 4Ð(Ñ(Ô(ðð ð ð ð �ñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ð!ð !ð !ð !ð !�Mñ !ô !ñ )Ô(ð!ð Ð 4Ð(Ñ(Ô(ð	0ð 	0ð 	0ð 	0ð 	0�ñ 	0ô 	0ñ )Ô(ð	0ð Ð 4Ð(Ñ(Ô(ðKð Kð Kð Kð K˜
ñ Kô Kñ )Ô(ðKð Ð 4Ð(Ñ(Ô(ð	ð 	ð 	ð 	ð 	 Zñ 	ô 	ñ )Ô(ð	ð Ð 4Ð(Ñ(Ô(ðð ð ð ð �fñ ô ñ )Ô(ðð& Ð 4Ð(Ñ(Ô(ðð ð ð ð �mñ ô ñ )Ô(ðð@ð @ð @ð @ð @�T”Yñ @ô @ð @ð  Ð 4Ð(Ñ(Ô(ð-Eð -Eð -Eð -Eð -E˜=ñ -Eô -Eñ )Ô(ð-Eð` Ð 4Ð(Ñ(Ô(ð0ð 0ð 0ð 0ð 0�Mñ 0ô 0ñ )Ô(ð0ð Ð 4Ð(Ñ(Ô(ðð ð ð ð �=ñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ð
7ð 
7ð 
7ð 
7ð 
7�}ñ 
7ô 
7ñ )Ô(ð
7ð Ð 4Ð(Ñ(Ô(ðð ð ð ð ˜-ñ ô ñ )Ô(ðð* Ð 4Ð(Ñ(Ô(ð
'ð 
'ð 
'ð 
'ð 
' ñ 
'ô 
'ñ )Ô(ð
'ð Ð 4Ð(Ñ(Ô(ð.ð .ð .ð .ð . mñ .ô .ñ )Ô(ð.ð ð  ð  ð  ð  �mñ  ô  ð  ð Ð 4Ð(Ñ(Ô(ð(ð (ð (ð (ð (�]ñ (ô (ñ )Ô(ð(ðV Ð 4Ð(Ñ(Ô(ð&Eð &Eð &Eð &Eð &E�Mñ &Eô &Eñ )Ô(ð&EðR Ð 4Ð(Ñ(Ô(ðð ð ð ð ˜ñ ô ñ )Ô(ðð( Ð 4Ð(Ñ(Ô(ðð ð ð ð  mñ ô ñ )Ô(ðð: Ð 4Ð(Ñ(Ô(ð(Eð (Eð (Eð (Eð (E˜ñ (Eô (Eñ )Ô(ð(EðZ Ð 4Ð(Ñ(Ô(ð(Eð (Eð (Eð (Eð (E ñ (Eô (Eñ )Ô(ð(EðV Ð 4Ð(Ñ(Ô(ð)Wð )Wð )Wð )Wð )W˜ñ )Wô )Wñ )Ô(ð)WðX Ð 4Ð(Ñ(Ô(ð
ð 
ð 
ð 
ð 
 ñ 
ô 
ñ )Ô(ð
ð  Ð 4Ð(Ñ(Ô(ð+ð +ð +ð +ð +˜]ñ +ô +ñ )Ô(ð+ð Ð 4Ð(Ñ(Ô(ð
*ð 
*ð 
*ð 
*ð 
*˜Mñ 
*ô 
*ñ )Ô(ð
*ð Ð 4Ð(Ñ(Ô(ðð ð ð ð �ñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ðð ð ð ð �mñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ðð ð ð ð �]ñ ô ñ )Ô(ðð  Ð 4Ð(Ñ(Ô(ðMð Mð Mð Mð M .ñ Mô Mñ )Ô(ðMð Ð 4Ð(Ñ(Ô(ðUð Uð Uð Uð UÐ)Dñ Uô Uñ )Ô(ðUð Ð 4Ð(Ñ(Ô(ðAð Að Að Að A˜ñ Aô Añ )Ô(ðAð Ð 4Ð(Ñ(Ô(ð"ð "ð "ð "ð "˜ñ "ô "ñ )Ô(ð"ð Ð 4Ð(Ñ(Ô(ð"ð "ð "ð "ð "�6ñ "ô "ñ )Ô(ð"ð: Ð 4Ð(Ñ(Ô(ð"ð "ð "ð "ð " 6ñ "ô "ñ )Ô(ð"ð4 Ð 4Ð(Ñ(Ô(ð"ð "ð "ð "ð "�Vñ "ô "ñ )Ô(ð"ð$ Ð 4Ð(Ñ(Ô(ð>ð >ð >ð >ð >˜ñ >ô >ñ )Ô(ð>ð Ð 4Ð(Ñ(Ô(ð-ð -ð -ð -ð -˜]ñ -ô -ñ )Ô(ð-ð Ð 4Ð(Ñ(Ô(ð#ð #ð #ð #ð #˜ñ #ô #ñ )Ô(ð#ð Ð 4Ð(Ñ(Ô(ðð ð ð ð ˜=ñ ô ñ )Ô(ðð Ð 4Ð(Ñ(Ô(ð%ð %ð %ð %ð %�Vñ %ô %ñ )Ô(ð%ð Ð 4Ð(Ñ(Ô(ð"ð "ð "ð "ð "˜&ñ "ô "ñ )Ô(ð"ð2 Ð 4Ð(Ñ(Ô(ð*ð *ð *ð *ð *˜&ñ *ô *ñ )Ô(ð*ð Ôà05ð	ð 	ð 	Øð	Ø)-ð	àˆ4�Zð	ð 	ð 	ñ Ôð	ð ÔØEJð Xð Xð X ð X¸dð XÈtð Xð Xð Xñ ÔðXð Ôð6 &ð 6¨Tð 6ð 6ð 6ñ Ôð6ð Ôð 6¨D¡=ð °S¸4±Zð ð ð ñ Ôðð Ôð Fð ¨tð ð ð ñ Ôðð Ôð 6ð ¨dð ð ð ñ Ôðð Ôð˜6ð ¨6ð °dð ð ð ñ Ôðð Ôð°6ð ¸dð ð ð ñ Ôðð Ôð¸6ð Àdð ð ð ñ Ôðð Ôð°fð Àð ð ð ñ Ôðð Ôð°ð ¸Dð ð ð ñ Ôðð Ôð Vð °ð ð ð ñ Ôðð Ôð˜Vð ¨ð ð ð ñ Ôðð2 Ôð fð °ð ð ð ñ Ôðð ð r*   