Ë
    ÃÓ^j�¹  ã                   ó�  — 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j4                  ej6                  ej8                  ej:                  ej6                  ej6                  ej:                  ej:                  ej<                  ej<                  ej>                  ej>                  ej@                  ej@                  ejB                  ejB                  ejD                  ejD                  ejF                  ejF                  i
Z$ej4                  ej<                  ej8                  ej>                  ej<                  ej<                  ej>                  ej>                  ej6                  ej<                  ej:                  ej>                  ej@                  ej@                  ejB                  ejB                  ejD                  ejD                  ejF                  ejF                  i
Z%ej4                  ej@                  ej8                  ejB                  ej<                  ej@                  ej>                  ejB                  ej6                  ej@                  ej:                  ejB                  ej@                  ej@                  ejB                  ejB                  ejD                  ejD                  ejF                  ejF                  i
Z&ej4                  ejD                  ej8                  ejF                  ej6                  ejD                  ej:                  ejF                  ejD                  ejD                  ejF                  ejF                  ej<                  ejD                  ej>                  ejF                  ej@                  ejD                  ejB                  ejF                  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j„                  «      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jÎ                  dd‡œdedˆe(de*dz  fd‰„«       ZhejÎ                  dd‡œdedˆe(de(fdŠ„«       ZiejÎ                  dede(fd‹„«       ZjejÎ                  dedz  de*dz  fdŒ„«       ZkejÎ                  dede(fd�„«       ZlejÎ                  dede(fdŽ„«       ZmejÎ                  ded�ede(fd�„«       ZnejÎ                  dede(fd‘„«       ZoejÎ                  dede(fd’„«       ZpejÎ                  dede(fd“„«       ZqejÎ                  dede(fd”„«       ZrejÎ                  dede(fd•„«       ZsejÎ                  dede(fd–„«       ZtejÎ                  dede(fd—„«       Zuy)™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y	 | j                  t        j                  k(  ry	 y# t
        $ r Y yw xY w©NTF)Ú
isinstanceÚConstantSourceÚguard_sourcer
   ÚCONSTANTÚNotImplementedError©r   s    ú_/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/source.pyÚis_constant_sourcer   m   sL   € Ü�&œ.Ô)ØðØ×Ñ¤+×"6Ñ"6Ò6Øð 7ð
 øô ò Øàðús   “3 ³	?¾?c                 ó@   — | €y	 | j                   S # t        $ r Y yw xY w)Nz<unknown source>)Únamer   r   s    r   Ú_get_source_debug_namer    y   s+   € Ø€~Ø!ð	&Ø—;‘;ÐøÜ"ò 	&Ù%ð	&ús   … ‘	œFÚsÚ
apply_reprc                 óx   — |rt        | «      } nt        | «      } | j                  dd«      j                  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)   ƒ   s7   € ñ Ü�‹G‰ä�‹FˆØ�9‰9�S˜$Ó×'Ñ'¨¨TÓ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y)ÚLocalSourceÚ
local_nameFÚis_inputNÚdynamismÚis_derefed_cell_contents)Údefaultr&   Ú
is_varargsÚis_varkwÚcodegenr   r   c                 ó¨   — | j                   r|j                  | j                  «       y |j                  |j	                  | j                  «      «       y ©N)r1   Ú
load_derefr.   Úappend_outputÚcreate_load©Úselfr5   s     r   ÚreconstructzLocalSource.reconstruct°   s:   € Ø×(Ò(Ø×Ñ˜tŸ™Õ/à×!Ñ! '×"5Ñ"5°d·o±oÓ"FÕ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                 ó8   — dt        | j                  d¬«      › d�S )NzL[T©r"   ú]©r)   r.   rB   s    r   Ú_name_templatezLocalSource._name_template½   s   € à”H˜TŸ_™_¸Ô>Ð?¸qÐ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ð €HˆdÓð '+€Hˆi˜‰n˜tÑ#Ó*ð
 &+Ð˜dÓ*ð )�{×(Ñ(°¸UÔC€J�ÓCð '�[×&Ñ&¨u¸5ÔA€HˆdÓAóHð¨+ð ¸#ó ð ð!˜kò !ó ð!ð ×ÑðB ò Bó ñBr*   r-   c                   óL   — e Zd ZU eed<   dd„Zedefd„«       Zedefd„«       Z	y)ÚTempLocalSourcer.   r   Nc                 óX   — |j                  |j                  | j                  «      «       y r7   ©r9   r:   r.   r;   s     r   r=   zTempLocalSource.reconstructÇ   ó   € Ø×Ñ˜g×1Ñ1°$·/±/ÓBÕ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   Â   sE   … ð ƒOóDð ð&˜kò &ó ð&ð ð
 ò 
ó ñ
r*   rV   c                   ó`   — e Zd ZU eed<   dd„Zedefd„«       Ze	j                  defd„«       Zy)ÚSyntheticLocalSourcer.   r   Nc                 óX   — |j                  |j                  | j                  «      «       y 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                 ó8   — dt        | j                  d¬«      › d�S )NzSYNTHETIC_LOCAL[TrD   rE   rF   rB   s    r   rG   z#SyntheticLocalSource._name_templateà   s   € à!¤(¨4¯?©?ÀtÔ"LÐ!MÈQÐOÐOr*   rH   ©rI   rJ   rK   r'   rL   r=   rQ   r
   r   rR   rS   rG   rT   r*   r   r_   r_   Õ   sL   … àƒOóDð ð+˜kò +ó ð+ð ×ÑðP ò Pó ñPr*   r_   c                   ó`   — e Zd ZU eed<   edefd„«       Zdd„Ze	j                  defd„«       Zy)ÚRandomValueSourceÚrandom_call_indexr   c                 ó"   — t         j                  S r7   )r
   ÚRANDOM_VALUErB   s    r   r   zRandomValueSource.guard_sourceé   s   € ä×'Ñ'Ð'r*   Nc                 ó  — |j                  |j                  |j                  j                  j                  «      «       |j                  |j                  | j                  «      «       |j                  t        «       «       y r7   )r9   r:   ÚtxÚoutputÚrandom_values_varÚcreate_load_constrg   r   r;   s     r   r=   zRandomValueSource.reconstructí   s\   € Ø×Ñ˜g×1Ñ1°'·*±*×2CÑ2C×2UÑ2UÓVÔWØ×Ñ˜g×7Ñ7¸×8NÑ8NÓOÔPØ×ÑÔ2Ó4Õ5r*   c                 ó2   — dt        | j                  «      › �S )NÚrandom_value_)r)   rg   rB   s    r   rG   z RandomValueSource._name_templateò   s   € àœx¨×(>Ñ(>Ó?Ð@ÐAÐAr*   rH   )rI   rJ   rK   ÚintrL   rQ   r
   r   r=   rR   rS   r'   rG   rT   r*   r   rf   rf   å   sJ   … àÓàð(˜kò (ó ð(ó6ð
 ×ÑðB ò Bó ñBr*   rf   c                   óp   — 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y)ÚGlobalSourceÚglobal_namer5   r   r   Nc                 ó\   — |j                  |j                  | j                  d¬«      «       y ©NT©Úadd©r9   Úcreate_load_globalrt   r;   s     r   r=   zGlobalSource.reconstructû   s&   € Ø×Ñ˜g×8Ñ8¸×9IÑ9IÈtÐ8ÓTÕ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                 ó8   — dt        | j                  d¬«      › d�S )NúG[TrD   rE   ©r)   rt   rB   s    r   rG   zGlobalSource._name_template  s   € à”H˜T×-Ñ-¸$Ô?Ð@ÀÐBÐBr*   rH   )rI   rJ   rK   r'   rL   r=   r?   rQ   r
   r   rR   rS   rG   rT   r*   r   rs   rs   ÷   s`   … àÓóVð ¨+ð  ¸#ó  ð ð"˜kò "ó ð"ð ×ÑðC ò Có ñCr*   rs   c                   ó`   — e Zd ZU eed<   dd„Zedefd„«       Ze	j                  defd„«       Zy)ÚGlobalWeakRefSourcert   r   Nc                 óh   ‡ ‡— ‰j                  ˆˆ fd„«       ‰j                  t        dd«      «       y )Nc                  ó\   •— ‰ j                  ‰ j                  ‰j                  d¬«      «      S rv   ry   ©r5   r<   s   €€r   ú<lambda>z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>  s+   ø€ �G×)Ñ)Ø×*Ñ*¨4×+;Ñ+;ÀÐ*Ó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                 ó8   — dt        | j                  d¬«      › d�S )Nr�   TrD   z]()r‚   rB   s    r   rG   z"GlobalWeakRefSource._name_template  s   € à”H˜T×-Ñ-¸$Ô?Ð@ÀÐDÐDr*   rH   rd   rT   r*   r   r„   r„   
  sL   … àÓó>ð ð"˜kò "ó ð"ð ×ÑðE ò Eó ñEr*   r„   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚWeakRefCallSourcer   Nc                 óh   ‡ ‡— ‰j                  ˆˆ fd„«       ‰j                  t        dd«      «       y )Nc                  ó(   •—  ‰ ‰j                   «      S r7   ©Úbaser‡   s   €€r   rˆ   z/WeakRefCallSource.reconstruct.<locals>.<lambda>"  s   ø€ ¡g¨d¯i©iÓ&8€ r*   r   Fr‰   r;   s   ``r   r=   zWeakRefCallSource.reconstruct!  s(   ù€ Ø×ÑÔ8Ô9Ø×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nz{0}()rT   rB   s    r   rG   z WeakRefCallSource._name_template%  s   € àr*   rH   ©rI   rJ   rK   r=   rQ   r'   rG   rT   r*   r   r�   r�     s"   „ ó>ð ð ò ó ñr*   r�   c                   ó   — e Zd Zy)ÚCallFunctionNoArgsSourceN©rI   rJ   rK   rT   r*   r   r—   r—   *  ó   „ àr*   r—   c                   ób   — 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
y)Ú
AttrSourceÚmemberr   Nc                 ó€   — | j                   st        d«      ‚d| j                  v rt        d| j                  ›d�«      ‚y )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  sQ   € Ø�yŠyÜ ØKóð ð �$—+‘+ÑÜ Ø>¸t¿{¹{¸oð NNð Nóð ð r*   r5   r   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r7   ©r“   r‹   Úcreate_load_attrsrœ   r;   s     r   r=   zAttrSource.reconstruct>  ó+   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿¹ÓDÕEr*   c                 ó´   — | j                   j                  |«      }| 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  sT   € Ø�y‰y×+Ñ+¨GÓ4ˆØ�;‰;×#Ñ#Ô%Ø�V˜1˜TŸ[™[˜MÐ*Ð*à˜d˜V 2 d§k¡k _°AÐ6Ð6r*   c                 óœ   — | j                   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  sD   € à�{‰{×'Ñ'Ô)Ø$¤X¨d¯k©kÀdÔ%KÐ$LÈAÐNÐNØœ §¡Ó-Ð.Ð/Ð/r*   ©r   NrH   )rI   rJ   rK   r'   rL   r¢   r=   r?   rR   rS   rG   rT   r*   r   r›   r›   /  sF   … àƒKó	óFð7¨+ð 7¸#ó 7ð ×Ñð0 ò 0ó ñ0r*   r›   c                   óJ   — e Zd ZU dZ ej
                  d¬«      Zeed<   dd„Z	y)Ú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_nameNc                 óf   — | j                   st        d«      ‚| j                  dk7  rt        d«      ‚y )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  s<   € Ø�yŠyÜ ØRóð ð �;‰;˜/Ò)Ü ØJóð ð *r*   r¬   )
rI   rJ   rK   Ú__doc__rO   rP   r°   r'   rL   r¢   rT   r*   r   r®   r®   P  s%   … ñð
 *˜×)Ñ)°"Ô5€L�#Ó5ôr*   r®   c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  defd„«       Z	y)	ÚGenericAttrSourcerœ   r   Nc                 ó€   — | j                   st        d«      ‚d| j                  v rt        d| j                  ›d�«      ‚y )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  sQ   € Ø�yŠyÜ ØQóð ð �$—+‘+ÑÜ ØEÀdÇkÁkÀ_ð UNð Nóð ð r*   c                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r7   r¤   r;   s     r   r=   zGenericAttrSource.reconstructs  r¦   r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nzobject.__getattribute__({0}, TrD   r¨   ©r)   rœ   rB   s    r   rG   z GenericAttrSource._name_templatew  s"   € ð .¬h°t·{±{ÈtÔ.TÐ-UÐUVÐWð	
r*   r¬   rH   )
rI   rJ   rK   r'   rL   r¢   r=   rR   rS   rG   rT   r*   r   rµ   rµ   d  s3   … àƒKó	óFð ×Ñð
 ò 
ó ñ
r*   rµ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚTypeDictSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__dict__©r“   r‹   r¥   r;   s     r   r=   zTypeDictSource.reconstruct�  ó'   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸
ÓCÕDr*   c                  ó   — y)Nzdict({0}.__dict__)rT   rB   s    r   rG   zTypeDictSource._name_template…  s   € ð $r*   rH   r•   rT   r*   r   r»   r»     s#   „ óEð ð$ ò $ó ñ$r*   r»   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚTypeMROSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__mro__r¾   r;   s     r   r=   zTypeMROSource.reconstruct‘  ó'   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸	ÓBÕCr*   c                  ó   — y)Nz{0}.__mro__rT   rB   s    r   rG   zTypeMROSource._name_template•  s   € àr*   rH   r•   rT   r*   r   rÂ   rÂ   �  s#   „ óDð ð ò ó ñr*   rÂ   c                   ó$   — e Zd ZU dZeed<   dd„Zy)ÚLocalCellSourcezƒ
    Conceptually, this class is `LocalSource` for cell objects implicitly
    generated by Python (e.g., captured variables).
    r.   Nc                 óX   — |j                  |j                  | j                  «      «       y r7   )r9   Úcreate_load_closurer.   r;   s     r   r=   zLocalCellSource.reconstruct£  s!   € ð 	×Ñ˜g×9Ñ9¸$¿/¹/ÓJÕKr*   rH   )rI   rJ   rK   r³   r'   rL   r=   rT   r*   r   rÈ   rÈ   š  s   … ñð
 ƒOôLr*   rÈ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)Ú
CodeSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__code__r¾   r;   s     r   r=   zCodeSource.reconstruct°  r¿   r*   c                  ó   — y)Nz{0}.__code__rT   rB   s    r   rG   zCodeSource._name_template´  s   € àr*   rH   r•   rT   r*   r   rÌ   rÌ   ®  s#   „ óEð ð ò ó ñr*   rÌ   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚClosureSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ__closure__r¾   r;   s     r   r=   zClosureSource.reconstruct¼  s'   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸ÓFÕGr*   c                  ó   — y)Nz{0}.__closure__rT   rB   s    r   rG   zClosureSource._name_templateÀ  s   € à r*   rH   r•   rT   r*   r   rÑ   rÑ   º  s#   „ óHð ð! ò !ó ñ!r*   rÑ   c                   óN   — e Zd ZU dZeed<   dd„Zej                  defd„«       Z	y)Ú
GradSourceÚgradrœ   r   Nc                 ó|   —  || j                   «       |j                  |j                  | j                  «      «       y r7   r¤   r;   s     r   r=   zGradSource.reconstructÍ  r¦   r*   c                 ó2   — 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Ö   É  s3   … à€FˆCÓóFð ×Ñð0 ò 0ó ñ0r*   rÖ   c                   ó6   — e Zd Zej                  defd„«       Zy)ÚParamBufferSourcer   c                 ó<   — t         | j                  j                     S r7   ©Ú#_GUARD_SOURCE_SPECIALIZED_NN_MODULEr“   r   rB   s    r   r   zParamBufferSource.guard_sourceØ  ó   € ä2°4·9±9×3IÑ3IÑJÐJr*   N©rI   rJ   rK   rR   rS   r
   r   rT   r*   r   rÛ   rÛ   Ö  s$   „ à×ÑðK˜kò Kó ñKr*   rÛ   c                   ó   — e Zd Zy)Ú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y)
ÚEphemeralSourceNÚdescr   c                 ó"   — t         j                  S r7   )r
   Ú	EPHEMERALrB   s    r   r   zEphemeralSource.guard_sourceð  ó   € ä×$Ñ$Ð$r*   c                 óZ   — | 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ô  s/   € à#'§9¡9Ð#8ˆt�d—i‘iÒ¸bˆØœH T›NÐ+¨1Ð-Ð-r*   Úfn.c                 ó   — t         ‚r7   r]   ©r<   rë   s     r   Ú
make_guardzEphemeralSource.make_guardù  ó   € Ü!Ð!r*   c                  ó   — y©NTrT   rB   s    r   Úis_ephemeralzEphemeralSource.is_ephemeralü  ó   € Ør*   )rI   rJ   rK   rå   r'   rL   rQ   r
   r   rR   rS   rG   r   r   r	   rî   rM   rò   rT   r*   r   rä   rä   ì  sr   … à€Dˆ#�‰*Óàð%˜kò %ó ð%ð ×Ñð. ò .ó ð.ð"˜X c¨3 hÑ/ð "°Eó "ð˜dô r*   rä   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚSkipGuardSourcer   Nc                 ó:   — | j                   j                  |«       y r7   )r“   r=   r;   s     r   r=   zSkipGuardSource.reconstruct  s   € Ø�	‰	×Ñ˜gÕ&r*   c                  ó   — y©Nz{0}rT   rB   s    r   rG   zSkipGuardSource._name_template  ó   € àr*   rH   r•   rT   r*   r   rõ   rõ      s"   „ ó'ð ð ò ó ñr*   rõ   c                   ó$   — e Zd ZdZdZdZdefd„Zy)ÚTensorPropertyr   r   é   r   c                 ó¢   — | t         j                  u ry| t         j                  u ry| t         j                  u ryt	        dt        | «      › �«      ‚)NÚsizeÚstrideÚstorage_offsetú
unhandled )rû   ÚSIZEÚSTRIDEÚSTORAGE_OFFSETr¡   r)   rB   s    r   Úmethod_namezTensorProperty.method_name  sL   € Ø”>×&Ñ&Ñ&ØØ”^×*Ñ*Ñ*ØØ”^×2Ñ2Ñ2Ø#ä  :¬h°t«nÐ-=Ð!>Ó?Ð?r*   N)rI   rJ   rK   r  r  r  r'   r  rT   r*   r   rû   rû   
  s   „ Ø€DØ€FØ€Nð@˜Sô @r*   rû   c                   óf   — 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y)
ÚTensorPropertySourceÚpropNÚidxr   c                 óä   — | j                   €t        d«      ‚| j                  t        j                  u r| j
                  �t        d«      ‚y | j
                  €t        d| j                  › d�«      ‚y )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__  sw   € Ø�9‰9ÐÜ Ð!MÓNÐNØ�9‰9œ×5Ñ5Ñ5Ø�x‰xÐ#Ü$ØHóð ð $ð
 �x‰xÐÜ$Ø/°·	±	¨{¸/ÐJóð ð  r*   c                 ó  ‡ ‡— ‰j                  ˆˆ fd„«        ‰‰ j                  «       ‰ j                  �*‰j                  ‰j	                  ‰ j                  «      «       ‰j                  t        ‰ j                  �dndd«      «       y )Nc                  óŒ   •— ‰ j                  t        j                  dt        ‰j                  j                  «       «      › �«      S )NÚcall_)Úload_import_fromr   rI   r)   r  r  r‡   s   €€r   rˆ   z2TensorPropertySource.reconstruct.<locals>.<lambda>/  s5   ø€ �G×,Ñ,Ü—‘ %¬°·±×1FÑ1FÓ1HÓ(IÐ'JÐ Kó€ r*   rü   r   F)rŠ   r“   r	  r9   rn   r‹   r   r;   s   ``r   r=   z TensorPropertySource.reconstruct-  sn   ù€ Ø×Ñôô	
ñ
 	�—	‘	Ôà�8‰8ÐØ×!Ñ! '×";Ñ";¸D¿H¹HÓ"EÔFØ×ÑÜ  d§h¡hÐ&:¡ÀÀ5ÓIõ	
r*   c                 ó€  — | 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«      ‚y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‰9œ×+Ñ+Ñ+Ø"¤8¨D¯H©HÓ#5Ð"6°aÐ8Ð8Ø�Y‰Yœ.×/Ñ/Ñ/Ø$¤X¨d¯h©hÓ%7Ð$8¸Ð:Ð:Ø�Y‰Yœ.×7Ñ7Ñ7Ø�x‰xÐ#Ü$ØHóð ð *ä  :¬h°t·y±yÓ.AÐ-BÐ!CÓDÐDr*   r¬   rH   )rI   rJ   rK   rû   rL   r	  rq   r¢   r=   rR   rS   r'   rG   rT   r*   r   r  r    sD   … à
ÓØ€Cˆˆt‰Óóó
ð ×ÑðE ò Eó ñEr*   r  c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  de	fd„«       Z
y)	ÚIndexedSourcer	  r   Nc                 ó2   — | j                   €t        d«      ‚y )Nz#IndexedSource base must not be None©r“   r¡   rB   s    r   r¢   zIndexedSource.__post_init__O  s   € Ø�9‰9ÐÜ Ð!FÓGÐGð r*   c                 ó   — t         ‚r7   r]   r;   s     r   r=   zIndexedSource.reconstructS  rï   r*   c                 ó4   — dt        | j                  «      › d�S )Nú(z, {0}))r)   r	  rB   s    r   rG   zIndexedSource._name_templateV  s   € à”8˜DŸH™HÓ%Ð& hÐ/Ð/r*   r¬   rH   )rI   rJ   rK   rq   rL   r¢   r=   rR   rS   r'   rG   rT   r*   r   r  r  K  s3   … à	ƒHóHó"ð ×Ñð0 ò 0ó ñ0r*   r  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚNegateSourcer   Nc                 ó2   — | j                   €t        d«      ‚y )Nz"NegateSource base must not be Noner  rB   s    r   r¢   zNegateSource.__post_init__]  s   € Ø�9‰9ÐÜ Ð!EÓFÐFð r*   c                 ó   — t         ‚r7   r]   r;   s     r   r=   zNegateSource.reconstructa  rï   r*   c                  ó   — y)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  [  s(   „ óGó"ð ð ò ó ñr*   r  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚConvertIntSourcer   Nc                 ó2   — | j                   €t        d«      ‚y )Nz&ConvertIntSource base must not be Noner  rB   s    r   r¢   zConvertIntSource.__post_init__l  s   € Ø�9‰9ÐÜ Ð!IÓJÐJð r*   c                 ó(   —  || j                   «       y r7   r’   r;   s     r   r=   zConvertIntSource.reconstructp  ó   € Ù�—	‘	Õr*   c                  ó   — y)Nz%cast_symbool_to_symint_guardless({0})rT   rB   s    r   rG   zConvertIntSource._name_templates  s   € à6r*   r¬   rH   r  rT   r*   r   r  r  j  s(   „ óKóð ð7 ò 7ó ñ7r*   r  c                   ó>   — e Zd ZU eed<   dd„Zdd„Zedefd„«       Z	y)	ÚDynamicScalarSourceÚis_intr   Nc                 ó2   — | j                   €t        d«      ‚y )Nz)DynamicScalarSource base must not be Noner  rB   s    r   r¢   z!DynamicScalarSource.__post_init__|  s   € Ø�9‰9ÐÜ Ð!LÓMÐMð r*   c                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )NÚbuiltinsrq   ©r  ©r5   s   €r   rˆ   z1DynamicScalarSource.reconstruct.<locals>.<lambda>…  s   ø€  g×&>Ñ&>¸zÈ5Ó&Q€ r*   r   F©rŠ   r“   r‹   r   r;   s    `r   r=   zDynamicScalarSource.reconstruct€  s6   ø€ ð
 	×ÑÓQÔRÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nzint({0})rT   rB   s    r   rG   z"DynamicScalarSource._name_template‰  s   € àr*   r¬   rH   )
rI   rJ   rK   rM   rL   r¢   r=   rQ   r'   rG   rT   r*   r   r%  r%  x  s-   … àƒLóNó>ð ð ò ó ñr*   r%  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚFlattenScriptObjectSourcer   Nc                 ó2   — | j                   €t        d«      ‚y )Nz/FlattenScriptObjectSource base must not be Noner  rB   s    r   r¢   z'FlattenScriptObjectSource.__post_init__�  s   € Ø�9‰9ÐÜ Ð!RÓSÐSð r*   c                 ó(   —  || j                   «       y r7   r’   r;   s     r   r=   z%FlattenScriptObjectSource.reconstruct”  r"  r*   c                  ó   — y)Nz{0}.__obj_flatten__()rT   rB   s    r   rG   z(FlattenScriptObjectSource._name_template—  s   € à&r*   r¬   rH   r  rT   r*   r   r0  r0  Ž  s(   „ óTóð ð' ò 'ó ñ'r*   r0  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)ÚScriptObjectQualifiedNameSourcer   Nc                 ó2   — | j                   €t        d«      ‚y )Nz5ScriptObjectQualifiedNameSource base must not be Noner  rB   s    r   r¢   z-ScriptObjectQualifiedNameSource.__post_init__ž  s!   € Ø�9‰9ÐÜ ØGóð ð r*   c                 ó(   —  || j                   «       y r7   r’   r;   s     r   r=   z+ScriptObjectQualifiedNameSource.reconstruct¤  r"  r*   c                  ó   — y)Nz{0}._type().qualified_name()rT   rB   s    r   rG   z.ScriptObjectQualifiedNameSource._name_template§  s   € à-r*   r¬   rH   r  rT   r*   r   r5  r5  œ  s'   „ óóð ð. ò .ó ñ.r*   r5  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚAttrProxySourcer   Nc                 ó(   —  || j                   «       y r7   r’   r;   s     r   r=   zAttrProxySource.reconstruct­  r"  r*   c                  ó   — y)Nz{0}.get_base()rT   rB   s    r   rG   zAttrProxySource._name_template°  s   € àr*   rH   r•   rT   r*   r   r:  r:  ¬  s"   „ óð ð  ò  ó ñ 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y)ÚDefaultsSourceÚidx_keyFÚis_kw)Úinitr&   ÚcomparerP   Ú_namer   Nc           
      ó¤  — | j                   st        d«      ‚| j                  r—t        | j                  t
        «      s!t        dt        | j                  «      › �«      ‚t        j                  | dd«       t        j                  | ddt        | j                  «      › dt        | j                  «      › d�«       y t        | j                  t        «      s!t        d	t        | j                  «      › �«      ‚t        j                  | dd
«       t        j                  | ddt        | j                  «      › dt        | j                  «      › d�«       y )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ŠyÜ Øoóð ð �:Š:Ü˜dŸl™l¬CÔ0Ü$ØFÄtÈDÏLÉLÓGYÐFZÐ[óð ô ×Ñ˜t WÐ.>Ô?Ü×ÑØØØœ $§*¡*Ó-Ð.¨b´¸$¿,¹,Ó1GÐ0HÈÐKõô ˜dŸl™l¬CÔ0Ü$ØJÌ4ÐPT×P\ÑP\ÓK]ÐJ^Ð_óð ô ×Ñ˜t W¨nÔ=Ü×ÑØ�g ¬°·±Ó(<Ð'=¸Q¼xÈÏÉÓ?UÐ>VÐVWÐXõr*   c                 ó  —  || j                   «       |j                  |j                  | j                  «      «       |j	                  |j                  | j                  «      «       |j	                  t        «       «       y r7   )r“   r‹   r¥   rP   r9   rn   r?  r   r;   s     r   r=   zDefaultsSource.reconstructÖ  sZ   € Ù�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×Ñ˜g×7Ñ7¸¿¹ÓEÔFØ×ÑÔ2Ó4Õ5r*   c                 ó   — | j                   S r7   )rC  rB   s    r   rG   zDefaultsSource._name_templateÜ  s   € à�z‰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>  µ  sw   … à�3‰YÓØ€Eˆ4ÓØ"�×"Ñ"¨°EÀ5ÔI€Eˆ3ÓIØ"�×"Ñ"¨°EÀ5ÔI€Eˆ3ÓIóó46ð ×Ñð ò ó ñr*   r>  c                   óx   ‡ — 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   c                 óÚ   •— | j                   €t        d«      ‚t        | j                  t        «      r9t
        ‰| �  d| j                  j                  «       «       t
        ‰| �  dd«       y y )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__æ  sX   ø€ Ø�9‰9ÐÜ Ð!FÓGÐGÜ�d—j‘j¤%Ô(ä‰GÑ ¨¯©×)>Ñ)>Ó)@ÔAÜ‰GÑÐ 0°$Õ7ð )r*   c                 ó$  —  || j                   «       | j                  r/|j                  |j                  | j	                  «       «      «       n*|j                  |j                  | j
                  «      «       |j                  t        «       «       y r7   )r“   rP  r9   rn   Úunpack_slicerO  r   r;   s     r   r=   zGetItemSource.reconstructî  sh   € Ù�—	‘	ÔØ×ÒØ×!Ñ! '×";Ñ";¸D×<MÑ<MÓ<OÓ"PÕQà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHØ×ÑÔ2Ó4Õ5r*   c                 óX   — | 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ö  s0   € Ø×"Ò"Ü Ð!OÓPÐPØ"&§*¡*Ñˆ�ZÙ˜JÐ'Ð'r*   c                 ó  — t        | j                  t        «      r!t        dt	        | j                  «      › �«      ‚| j
                  rdt        | j                  «       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ü  sy   € ô
 �d—j‘j¤&Ô)Ü Ø@ÄÀdÇjÁjÓAQÐ@RÐSóð ð ×ÒØœH T×%6Ñ%6Ó%8ÀTÔJÐKÈ1ÐMÐMàœH T§Z¡Z¸DÔAÐBÀ!Ð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  á  sL   ø… àƒJØ €N�DÓ õ8ó6ð(˜eó (ð ×ÑðE ò Eó ôEr*   rN  c                   óV   — e Zd ZU eed<   dd„Zej                  defd„«       Z	de
fd„Zy)ÚConstDictKeySourcerO  r   Nc                 óÜ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdict_keys_getitem©r  r   rI   r,  s   €r   rˆ   z0ConstDictKeySource.reconstruct.<locals>.<lambda>  s   ø€ �G×,Ñ,¬U¯^©^Ð=PÓQ€ r*   rü   F©rŠ   r“   r9   rn   rO  r‹   r   r;   s    `r   r=   zConstDictKeySource.reconstruct  sU   ø€ Ø×ÑÛQô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nzlist(dict.keys({0}))[TrD   rE   ©r)   rO  rB   s    r   rG   z!ConstDictKeySource._name_template  s   € ð )¬°$·*±*ÈÔ)NÐ(OÈqÐQÐQr*   c                  ó   — y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ó>ð ×Ñð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y)
ÚNonSerializableSetGetItemSourcerO  r   Nc                 óv   — ddl m} |j                  | j                  «      st	        d| j                  ›�«      ‚y )Nr   ©ÚConstantVariablez=NonSerializableSetGetItemSource index must be a literal, got )Ú	variablesrm  Ú
is_literalrO  r¡   ©r<   rm  s     r   r¢   z-NonSerializableSetGetItemSource.__post_init__$  s:   € Ý/à×*Ñ*¨4¯:©:Ô6Ü ØOÐPT×PZÑPZÈ~Ð^óð ð 7r*   c                 óÜ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚset_getitemrc  r,  s   €r   rˆ   z=NonSerializableSetGetItemSource.reconstruct.<locals>.<lambda>.  s   ø€ �G×,Ñ,¬U¯^©^¸]ÓK€ r*   rü   Frd  r;   s    `r   r=   z+NonSerializableSetGetItemSource.reconstruct,  sU   ø€ Ø×ÑÛKô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nz
list({0})[TrD   rE   rf  rB   s    r   rG   z.NonSerializableSetGetItemSource._name_template4  s   € ð œh t§z¡z¸dÔCÐDÀAÐFÐFr*   c                  ó   — y)NFrT   rB   s    r   rh  z+NonSerializableSetGetItemSource.is_dict_key9  s   € Ør*   r¬   rH   )rI   rJ   rK   rq   rL   r¢   r=   rR   rS   r'   rG   rM   rh  rT   r*   r   rj  rj     sA   … àƒJóó>ð ×ÑðG ò Gó ðGð˜Tô r*   rj  c                   ób   — 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y)ÚDictGetItemSourcerO  r   Nc                 ó¬   — ddl m} t        | j                  t        «      s4|j                  | j                  «      st        d| j                  ›�«      ‚y y )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  sR   € Ý/äØ�J‰JÔ*ô
à"×-Ñ-¨d¯j©jÔ9Ü ØWÐX\×XbÑXbÐWeÐfóð ð :ð
r*   r5   r   c                 ó  —  || j                   «       t        | j                  t        «      r || j                  «       n*|j	                  |j                  | j                  «      «       |j	                  t        «       «       y r7   )r“   r   rO  r   r9   rn   r   r;   s     r   r=   zDictGetItemSource.reconstructO  sY   € á�—	‘	Ôô �d—j‘j¤&Ô)Ù�D—J‘JÕà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔHØ×ÑÔ2Ó4Õ5r*   c                 óÞ   — | j                   j                  |«      }t        | j                  t        «      r| j                  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  sZ   € Ø�y‰y×+Ñ+¨GÓ4ˆÜ�d—j‘jÔ"4Ô5Ø—J‘J×1Ñ1°'Ó:‰Eä˜Ÿ™Ó$ˆEØ��q˜˜˜qÐ!Ð!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  sI   € ä�d—j‘jÔ"4Ô5ØœH T§Z¡Z§_¡_Ó5Ð6°aÐ8Ð8àœH T§Z¡Z¸DÔAÐBÀ!ÐDÐDr*   r¬   rH   )rI   rJ   rK   r   rL   r¢   r=   r'   r?   rR   rS   rG   rT   r*   r   rw  rw  >  sJ   … ð
 ƒJóó	6ð"¨+ð "¸#ó "ð ×ÑðE ò Eó ñEr*   rw  c                   óR   — e Zd ZU eed<   dd„Zdd„Zej                  de	fd„«       Z
y)	ÚDictSubclassGetItemSourcerO  r   Nc                 ó¬   — ddl m} t        | j                  t        «      s4|j                  | j                  «      st        d| j                  ›�«      ‚y y )Nr   rl  zMDictSubclassGetItemSource index must be a ConstDictKeySource or literal, got ry  rp  s     r   r¢   z'DictSubclassGetItemSource.__post_init__s  sR   € Ý/äØ�J‰JÔ*ô
à"×-Ñ-¨d¯j©jÔ9Ü Ø_Ð`d×`jÑ`jÐ_mÐnóð ð :ð
r*   c                 ó6  ‡— ‰j                  ˆfd„«        ‰| j                  «       t        | j                  t        «      r ‰| j                  «       n*‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdict_getitemrc  r,  s   €r   rˆ   z7DictSubclassGetItemSource.reconstruct.<locals>.<lambda>‚  ó   ø€ �G×,Ñ,¬U¯^©^¸^ÓL€ r*   rü   F)	rŠ   r“   r   rO  r   r9   rn   r‹   r   r;   s    `r   r=   z%DictSubclassGetItemSource.reconstruct}  ss   ø€ ð 	×ÑÛLô	
ñ
 	�—	‘	Ôô �d—j‘j¤&Ô)Ù�D—J‘JÕà×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔ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�  sI   € ä�d—j‘jÔ"4Ô5Ø-¬h°t·z±z·±Ó.GÐ-HÈÐJÐJàœH T§Z¡Z¸DÔAÐBÀ!ÐDÐDr*   r¬   rH   )rI   rJ   rK   r   rL   r¢   r=   rR   rS   r'   rG   rT   r*   r   r  r  l  s7   … ð
 ƒJóó>ð& ×ÑðE ò Eó ñEr*   r  c                   óB   — e Zd ZdZdd„Zej                  defd„«       Zy)ÚListGetItemSourcezY
    Same as GetItemSource with reconstruct and name overridden to be list specific.
    r   Nc                 ó
  ‡— ‰j                  ˆfd„«        ‰| j                  «       | j                  rt        d«      ‚‰j	                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  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ž  st   ø€ ð
 	×ÑÛLô	
ñ
 	�—	‘	Ôð ×ÒÜØPóð ð ×!Ñ! '×";Ñ";¸D¿J¹JÓ"GÔ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´  sl   € ô
 �d—j‘j¤&Ô)Ü ØDÄTÈ$Ï*É*ÓEUÐDVÐWóð ð ×ÒÜØPóð ð .¬h°t·z±zÈdÔ.SÐ-TÐTUÐVÐVr*   rH   )	rI   rJ   rK   r³   r=   rR   rS   r'   rG   rT   r*   r   r‡  r‡  ˜  s0   „ ñó>ð, ×ÑðW ò Wó ñWr*   r‡  c                   ó>   — e Zd Zdd„Zej
                  defd„«       Zy)ÚTupleIteratorGetItemSourcer   Nc                 óÜ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  ‰j                  | j                  «      «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚtuple_iterator_getitemrc  r,  s   €r   rˆ   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>É  s   ø€ �G×,Ñ,¬U¯^©^Ð=UÓV€ r*   rü   Frd  r;   s    `r   r=   z&TupleIteratorGetItemSource.reconstructÇ  sU   ø€ Ø×ÑÛVô	
ñ 	�—	‘	ÔØ×Ñ˜g×7Ñ7¸¿
¹
ÓCÔDØ×ÑÔ2°1°eÓ<Õ=r*   c                 ó8   — dt        | j                  d¬«      › d�S )Nz___tuple_iterator_getitem({0}, TrD   r¨   rf  rB   s    r   rG   z)TupleIteratorGetItemSource._name_templateÏ  s#   € ð 0´¸¿¹ÐPTÔ0UÐ/VÐVWÐXð	
r*   rH   )rI   rJ   rK   r=   rR   rS   r'   rG   rT   r*   r   r�  r�  Å  s(   „ ó>ð ×Ñð
 ò 
ó ñ
r*   r�  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚNamedTupleFieldsSourcer   Nc                 óh   —  || j                   «       |j                  |j                  d«      «       y )NÚ_fieldsr¾   r;   s     r   r=   z"NamedTupleFieldsSource.reconstructØ  rÅ   r*   c                  ó   — y)Nz___namedtuple_fields({0})rT   rB   s    r   rG   z%NamedTupleFieldsSource._name_templateÜ  s   € à*r*   rH   r•   rT   r*   r   r•  r•  Ö  s#   „ óDð ð+ ò +ó ñ+r*   r•  c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚDataclassFieldsSourcer   Nc                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  óD   •— ‰ j                  t        j                  d«      S )NÚdataclass_fieldsrc  r,  s   €r   rˆ   z3DataclassFieldsSource.reconstruct.<locals>.<lambda>å  s   ø€ �G×,Ñ,¬U¯^©^Ð=OÓP€ r*   r   Fr-  r;   s    `r   r=   z!DataclassFieldsSource.reconstructã  s8   ø€ Ø×ÑÛPô	
ñ 	�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nz___dataclass_fields({0})rT   rB   s    r   rG   z$DataclassFieldsSource._name_templateê  s   € à)r*   rH   r•   rT   r*   r   rš  rš  á  s"   „ ó>ð ð* ò *ó ñ*r*   rš  c                   ó2   — e Zd Zdd„Zdd„Zedefd„«       Zy)Ú
TypeSourcer   Nc                 ó2   — | j                   €t        d«      ‚y )Nz TypeSource base must not be Noner  rB   s    r   r¢   zTypeSource.__post_init__ñ  s   € Ø�9‰9ÐÜ Ð!CÓDÐDð r*   c                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )Nr*  rH  r+  r,  s   €r   rˆ   z(TypeSource.reconstruct.<locals>.<lambda>ö  s   ø€  g×&>Ñ&>¸zÈ6Ó&R€ r*   r   Fr-  r;   s    `r   r=   zTypeSource.reconstructõ  s4   ø€ Ø×ÑÓRÔSÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   c                  ó   — y)Nz	type({0})rT   rB   s    r   rG   zTypeSource._name_templateú  s   € àr*   r¬   rH   r  rT   r*   r   r   r   ï  s(   „ óEó>ð
 ð ò ó ñr*   r   c                   ó*   — e Zd Zdd„Zedefd„«       Zy)ÚOptimizerSourcer   Nc                 ó(   —  || j                   «       y r7   r’   r;   s     r   r=   zOptimizerSource.reconstruct  r"  r*   c                  ó   — yrø   rT   rB   s    r   rG   zOptimizerSource._name_template  rù   r*   rH   r•   rT   r*   r   r¦  r¦  ÿ  s"   „ óð ð ò ó ñr*   r¦  c                   ód   — 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y)
ÚNNModuleSourcer5   r   r   Nc                 ó(   —  || j                   «       y r7   r’   r;   s     r   r=   zNNModuleSource.reconstruct  r"  r*   c                 ó8   — | j                   j                  |«      S r7   )r“   r?   r;   s     r   r?   z!NNModuleSource.reconstruct_pycode  s   € Ø�y‰y×+Ñ+¨GÓ4Ð4r*   c                 ó<   — t         | j                  j                     S r7   rÝ   rB   s    r   r   zNNModuleSource.guard_source  rß   r*   c                  ó   — y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ª  	  sY   „ óð5¨+ð 5¸#ó 5ð ×ÑðK˜kò Kó ðKð ð ò ó ñr*   rª  c                   ó6   — e Zd Zej                  defd„«       Zy)ÚUnspecializedNNModuleSourcer   c                 ó<   — t         | j                  j                     S r7   )Ú%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULEr“   r   rB   s    r   r   z(UnspecializedNNModuleSource.guard_source  s   € ä4°T·Y±Y×5KÑ5KÑLÐLr*   Nrà   rT   r*   r   r°  r°    s$   „ à×ÑðM˜kò Mó ñMr*   r°  c                   ó6   — e Zd Zej                  defd„«       Zy)Ú"UnspecializedBuiltinNNModuleSourcer   c                 ó<   — t         | j                  j                     S r7   )Ú-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULEr“   r   rB   s    r   r   z/UnspecializedBuiltinNNModuleSource.guard_source#  s   € ä<¸T¿Y¹Y×=SÑ=SÑTÐTr*   Nrà   rT   r*   r   r´  r´  !  s$   „ à×ÑðU˜kò Uó ñUr*   r´  c                   ó6   — e Zd Zej                  defd„«       Zy)ÚFSDPNNModuleSourcer   c                 ó<   — 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¸  (  s$   „ à×ÑðA˜kò Aó ñAr*   r¸  c                   ó8   — e Zd Zedefd„«       Zedefd„«       Zy)ÚGlobalStateSourcer   c                  ó   — y©Nr¯   rT   rB   s    r   rG   z GlobalStateSource._name_template1  ó   € àr*   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¼  /  s6   „ àð ò ó ðð ð"˜kò "ó ñ"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
d„Z
edefd„«       Zy)Ú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                 óV   — ddl m}m}  || j                  |j                  «      «       y )Nr   )ÚGuardBuilderÚinstall_guard)ÚguardsrÆ  rÇ  rî   ÚID_MATCH)r<   rÆ  rÇ  s      r   r¢   zImportSource.__post_init__A  s   € ß7á�d—o‘o l×&;Ñ&;Ó<Õ=r*   c                 ó"   — d| j                   › d�S )Nz__import__('z'))rÄ  rB   s    r   rG   zImportSource._name_templateF  s   € à˜d×.Ñ.Ð/¨rÐ2Ð2r*   c                 óŽ   — |j                  |j                  d«      t        d«      |j                  | j                  «      g«       y )Nr   )r‹   rn   r   Úcreate_import_namerÄ  r;   s     r   r=   zImportSource.reconstructJ  s?   € Ø×Ñà×)Ñ)¨!Ó,Ü" 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Ã  :  sV   … ñPð Óó>ð
 ×Ñð3 ò 3ó ð3ó
ð ð"˜kò "ó ñ"r*   rÃ  c                   ól   — 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y)	ÚTorchFunctionModeStackSourceÚindr   c                 ó<   — dt        | j                  «       «      › d�S )Nz$___get_torch_function_mode_stack_at(r¨   )r)   Ú
_get_indexrB   s    r   rG   z+TorchFunctionModeStackSource._name_template\  s   € à5´h¸t¿¹Ó?PÓ6QÐ5RÐRSÐTÐTr*   c                 óD   — ddl m} |j                  | j                  «      S )Nr   )ÚTorchFunctionModeStackVariable)Úvariables.torch_functionrÔ  Úget_mode_indexrÐ  )r<   rÔ  s     r   rÒ  z'TorchFunctionModeStackSource._get_index`  s   € ÝLà-×<Ñ<¸T¿X¹XÓFÐFr*   Nc                 óÂ   ‡— ‰j                  ˆfd„«       ‰j                  ‰j                  | j                  «       «      g«       ‰j                  t	        dd«      «       y )Nc                  óD   •— ‰ j                  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  sQ   ø€ Ø×Ñóô	
ð
 	×Ñ˜w×8Ñ8¸¿¹Ó9JÓKÐLÔ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  sW   … à	ƒHà×ÑðU ò Uó ðUðG˜Có Gó
>ð ð"˜kò "ó ñ"r*   rÏ  c                   óp   — 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y)
r   Úsource_namer   Nc                 ó\   — |j                  |j                  | j                  d¬«      «       y )NFrw   )r9   rz   rÜ  r;   s     r   r=   zConstantSource.reconstructw  s&   € Ø×Ñ˜g×8Ñ8¸×9IÑ9IÈuÐ8ÓUÕ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ð ð$˜kò $ó ð$ð ×Ñð  ò  ó ð ð"˜Sð " Sô "r*   r   c                   ó*   — e Zd Zedefd„«       Zdd„Zy)ÚNumpyTensorSourcer   c                  ó   — y)Nz___from_numpy({0})rT   rB   s    r   rG   z NumpyTensorSource._name_templateˆ  s   € à#r*   Nc                 óˆ   ‡— ‰j                  ˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nc                  ó(   •— ‰ j                  dd«      S )NÚtorchÚ	as_tensorr+  r,  s   €r   rˆ   z/NumpyTensorSource.reconstruct.<locals>.<lambda>�  s   ø€  g×&>Ñ&>¸wÈÓ&T€ r*   r   Fr-  r;   s    `r   r=   zNumpyTensorSource.reconstructŒ  s4   ø€ Ø×ÑÓTÔUÙ�—	‘	ÔØ×ÑÔ2°1°eÓ<Õ=r*   rH   )rI   rJ   rK   rQ   r'   rG   r=   rT   r*   r   râ  râ  †  s    „ àð$ ò $ó ð$ô>r*   râ  c                   ó"   — e Zd Zedefd„«       Zy)ÚSubclassAttrListSourcer   c                  ó   — y)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é  ’  s   „ àð- ò -ó ñ-r*   ré  c                   ó"   — e Zd Zedefd„«       Zy)ÚFloatTensorSourcer   c                  ó   — y)Nz___as_tensor({0})rT   rB   s    r   rG   z FloatTensorSource._name_template�  s   € à"r*   Nrë  rT   r*   r   rí  rí  ›  s   „ àð# ò #ó ñ#r*   rí  c                   ó"   — e Zd Zedefd„«       Zy)ÚCallMethodItemSourcer   c                  ó   — y)Nz
{0}.item()rT   rB   s    r   rG   z#CallMethodItemSource._name_template¤  s   € àr*   Nrë  rT   r*   r   rð  rð  ¢  s   „ àð ò ó ñr*   rð  c                   ó8   — e Zd Zedefd„«       Zedefd„«       Zy)ÚShapeEnvSourcer   c                  ó   — y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ó  ¬  s6   „ àð ò ó ðð ð%˜kò %ó ñ%r*   ró  c                   ó`   — e Zd ZU eed<   ej                  defd„«       Zdd„Z	e
defd„«       Zy)ÚCurrentStreamSourcer   r   c                 óˆ   — 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»  s=   € à5´h¸t¿{¹{×?OÑ?OÓ6PÐ5QÐQTÔU]Ð^b×^iÑ^i×^oÑ^oÓUpÐTqÐqsÐtÐtr*   Nc                 óÐ  ‡— d}‰j                  ˆfd„«       ‰j                  ˆfd„«       ‰j                  ‰j                  | j                  j                  «      g«       | j                  j
                  �:|dz  }‰j                  ‰j                  | j                  j
                  «      g«       ‰j                  t        |d«      «       ‰j                  t        dd«      «       y )Nr   c                  óD   •— ‰ j                  t        j                  d«      S )NÚget_current_streamrc  r,  s   €r   rˆ   z1CurrentStreamSource.reconstruct.<locals>.<lambda>Â  s   ø€ �G×,Ñ,¬U¯^©^Ð=QÓR€ r*   c                  ó(   •— ‰ j                  dd«      S )Nræ  r   r+  r,  s   €r   rˆ   z1CurrentStreamSource.reconstruct.<locals>.<lambda>Ä  s   ø€  g×&>Ñ&>¸wÈÓ&Q€ r*   F)rŠ   r‹   rn   r   rH  rO  r   )r<   r5   Únum_argss    ` r   r=   zCurrentStreamSource.reconstruct¿  s»   ø€ ØˆØ×ÑÛRô	
ð 	×ÑÓQÔRØ×Ñ˜w×8Ñ8¸¿¹×9IÑ9IÓJÐKÔLØ�;‰;×ÑÐ(Ø˜‰MˆHØ×!Ñ! 7×#<Ñ#<¸T¿[¹[×=NÑ=NÓ#OÐ"PÔQØ×ÑÔ2°8¸UÓCÔ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ø  ·  sJ   … àÓà×Ñðu ò uó ðuó>ð ð"˜kò "ó ñ"r*   rø  c                   ó8   — e Zd Zedefd„«       Zedefd„«       Zy)ÚBackwardStateSourcer   c                  ó   — y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  Ñ  s6   „ àð ò ó ðð ð*˜kò *ó ñ*r*   r  ©Úonly_allow_inputr  c                ó¨   — t        | t        «      rt        | j                  |¬«      S t        | t        «      sy |r| j
                  sy | j                  S ©Nr  )r   r   Úget_local_source_namer“   r-   r/   r.   ©r   r  s     r   r
  r
  Ü  sE   € ô �&œ-Ô(Ü$ V§[¡[ÐCSÔTÐTÜ�fœkÔ*ØÙ §¢ØØ×ÑÐr*   c                ó    — t        | |¬«      d uS r	  )r
  r  s     r   Úis_from_local_sourcer  é  s   € ä  Ð:JÔ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y | j
                  S r7   )r   r   r  r“   rs   rt   r   s    r   r  r  ó  s4   € ä�&œ-Ô(Ü% f§k¡kÓ2Ð2Ü�fœlÔ+ØØ×ÑÐr*   c                 ó¦   — t        | t        «      rt        | j                  «      S t        | t        «      xr | j
                  xr | j                   S r7   )r   r   Úis_from_nonlocal_sourcer“   r-   r1   r/   r   s    r   r  r  ü  sG   € ä�&œ-Ô(Ü& v§{¡{Ó3Ð3ä�6œ;Ó'ò 	 Ø×+Ñ+ò	 à—‘Ððr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   rÑ   r   Úis_from_closure_sourcer“   r   s    r   r  r    s+   € ä�&œ-Ô(ØÜ�&œ-Ô(Ü% f§k¡kÓ2Ð2Ør*   Útargetc                 ó\   — | |k(  ryt        | t        «      rt        | j                  |«      S yr   )r   r   Úis_from_sourcer“   )r   r  s     r   r  r    s+   € à�ÒØÜ�&œ-Ô(Ü˜fŸk™k¨6Ó2Ð2Ør*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   r°  r   Ú&is_from_unspecialized_nn_module_sourcer“   r   s    r   r  r    s,   € ä�&Ô5Ô6ØÜ�&œ-Ô(Ü5°f·k±kÓBÐBØr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   r´  r   Ú.is_from_unspecialized_builtin_nn_module_sourcer“   r   s    r   r  r  "  s,   € ä�&Ô<Ô=ØÜ�&œ-Ô(Ü=¸f¿k¹kÓJÐJØr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   râ   r   Ú)is_from_unspecialized_param_buffer_sourcer“   r   s    r   r  r  +  s,   € ä�&Ô8Ô9ØÜ�&œ-Ô(Ü8¸¿¹ÓEÐEØr*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   r0  r   Ú$is_from_flatten_script_object_sourcer“   r   s    r   r   r   4  s,   € ä�&Ô3Ô4ØÜ	�FœMÔ	*Ü3°F·K±KÓ@Ð@Ør*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   r¦  r   Úis_from_optimizer_sourcer“   r   s    r   r"  r"  =  s+   € ä�&œ/Ô*ØÜ�&œ-Ô(Ü'¨¯©Ó4Ð4Ør*   c                 ó€  — t        | t        «      ryt        | t        «      r4t        | j                  t        «      r| j                  j
                  dk(  ryt        | t        «      r4t        | j                  t        «      r| j                  j
                  dk(  ryt        | t        «      rt        | j                  «      S y)NTrE  rF  F)	r   r>  rw  r“   r›   rœ   rN  r   Úis_from_defaultsr   s    r   r$  r$  H  s‹   € ä�&œ.Ô)Øô 	�6Ô,Ô-Ü�v—{‘{¤JÔ/Ø�K‰K×ÑÐ"2Ò2àô 	�6œ=Ô)Ü�v—{‘{¤JÔ/Ø�K‰K×Ñ .Ò0àä�&œ-Ô(Ü §¡Ó,Ð,Ør*   c                 óp   — t        | t        «      ryt        | t        «      rt        | j                  «      S yr   )r   rõ   r   Úis_from_skip_guard_sourcer“   r   s    r   r&  r&  b  s+   € ä�&œ/Ô*Øä�&œ-Ô(Ü(¨¯©Ó5Ð5àr*   )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Ñ-TØ×,Ñ,¨k×.VÑ.Và×-Ñ-¨{×/XÑ/XØ×.Ñ.°×0ZÑ0ZØ×5Ñ5°{×7hÑ7hØ×6Ñ6¸×8jÑ8jØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$Bð'Ð #ð  ×Ñ�{×@Ñ@Ø×Ñ˜×BÑBØ×-Ñ-¨{×/XÑ/XØ×.Ñ.°×0ZÑ0Zà×+Ñ+¨[×-VÑ-VØ×,Ñ,¨k×.XÑ.Xà×5Ñ5°{×7hÑ7hØ×6Ñ6¸×8jÑ8jØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$Bð)Ð %ð" ×Ñ�{×HÑHØ×Ñ˜×JÑJØ×-Ñ-¨{×/`Ñ/`Ø×.Ñ.°×0bÑ0bØ×+Ñ+¨[×-^Ñ-^Ø×,Ñ,¨k×.`Ñ.`à×5Ñ5°{×7hÑ7hØ×6Ñ6¸×8jÑ8jØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$Bð1Ð -ð ×Ñ�{×4Ñ4Ø×Ñ˜×6Ñ6Ø×+Ñ+¨[×-JÑ-JØ×,Ñ,¨k×.LÑ.LØ×!Ñ! ;×#@Ñ#@Ø×"Ñ" K×$BÑ$BØ×-Ñ-¨{×/LÑ/LØ×.Ñ.°×0NÑ0NØ×5Ñ5°{×7TÑ7TØ×6Ñ6¸×8VÑ8VðÐ ð	˜vð 	¨$ó 	ð& 6¨D¡=ð &°Só &ñ3�ð 3 ð 3°#ó 3ñ  4Ô(ô,B�&ó ,Bó )ð,Bñ^  4Ô(ô
�fó 
ó )ð
ñ$  4Ô(ôP˜6ó Pó )ðPñ  4Ô(ôB˜ó Bó )ðBñ"  4Ô(ôC�6ó Có )ðCñ$  4Ô(ôE˜&ó Eó )ðEñ(  4Ô(ô˜ó ó )ðñ  4Ô(ô	Ð0ó 	ó )ð	ñ  4Ô(ô0�ó 0ó )ð0ñ@  4Ô(ô˜ó ó )ðñ&  4Ô(ô
˜ó 
ó )ð
ñ4  4Ô(ô$�]ó $ó )ð$ñ  4Ô(ô�Mó ó )ðñ  4Ô(ôL�fó Ló )ðLñ&  4Ô(ô�ó ó )ðñ  4Ô(ô!�Mó !ó )ð!ñ  4Ô(ô	0�ó 	0ó )ð	0ñ  4Ô(ôK˜
ó Kó )ðKñ  4Ô(ô	 Zó 	ó )ð	ñ  4Ô(ô�fó ó )ðñ&  4Ô(ô�mó ó )ðô@�T—Y‘Yô @ñ   4Ô(ô-E˜=ó -Eó )ð-Eñ`  4Ô(ô0�Mó 0ó )ð0ñ  4Ô(ô�=ó ó )ðñ  4Ô(ô
7�}ó 
7ó )ð
7ñ  4Ô(ô˜-ó ó )ðñ*  4Ô(ô
' ó 
'ó )ð
'ñ  4Ô(ô. mó .ó )ð.ô �mô  ñ  4Ô(ô(�]ó (ó )ð(ñV  4Ô(ô&E�Mó &Eó )ð&EñR  4Ô(ô˜ó ó )ðñ(  4Ô(ô mó ó )ðñ:  4Ô(ô(E˜ó (Eó )ð(EñZ  4Ô(ô(E ó (Eó )ð(EñV  4Ô(ô)W˜ó )Wó )ð)WñX  4Ô(ô
 ó 
ó )ð
ñ   4Ô(ô+˜]ó +ó )ð+ñ  4Ô(ô
*˜Mó 
*ó )ð
*ñ  4Ô(ô�ó ó )ðñ  4Ô(ô�mó ó )ðñ  4Ô(ô�]ó ó )ðñ   4Ô(ôM .ó Mó )ðMñ  4Ô(ôUÐ)Dó Uó )ðUñ  4Ô(ô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¸dð XÈtò Xó ðXð ×Ñð6 &ð 6¨Tò 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*   