
    wiYg                        d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	m
Z
 ddlmZ ddlmZmZ 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 Zd	ed
         fdZ  ej!        d           G d de
                      Z" ej!        d           G d de
                      Z# ej!        d           G d de
                      Z$ ej!        d           G d de
                      Z% ej!        d           G d de
                      Z& ej!        d           G d de                      Z' ej!        d           G d de'                      Z( ej!        d           G d de                      Z) ej!        d           G d de
                      Z* ej!        d           G d  d!e                      Z+ ej!        d           G d" d#e)                      Z, ej!        d           G d$ d%e)                      Z- ej!        d           G d& d'e
                      Z. G d( d)ej/                  Z0 ej!        d           G d* d+e                      Z1 ej!        d           G d, d-e                      Z2 ej!        d           G d. d/e                      Z3 ej!        d           G d0 d1e                      Z4 ej!        d           G d2 d3e                      Z5 G d4 d5e          Z6 ej!        d           G d6 d7e                      Z7 ej!        d           G d8 d9e                      Z8 ej!        d           G d: d;e8                      Z9 ej!        d           G d< d=e8                      Z: ej!        d           G d> d?e                      Z; ej!        d           G d@ dAe                      Z< ej!        d           G dB dCe                      Z= ej!        d           G dD dEe                      Z> ej!        d           G dF dGe>                      Z? ej!        d           G dH dIe?                      Z@ ej!        d           G dJ dKe>                      ZA ej!        d           G dL dMe
                      ZB ej!        d           G dN dOe
                      ZC ej!        d           G dP dQe
                      ZD ej!        d           G dR dSe                      ZE ej!        d           G dT dUe                      ZF ej!        d           G dV dWe                      ZG ej!        d           G dX dYe                      ZH ej!        d           G dZ d[e
                      ZI ej!        d           G d\ d]e
                      ZJd^d_d	e
fd`ZKd	e
fdaZLd	e
fdbZMd	e
fdcZNd	e
fddZOdS )e    N)AnyOptionalUnion)ChainedSourceGuardSourceSource   )utils)create_call_functioncreate_instruction)	enum_reprc                     t          | t                    rdS 	 |                                 t          j        k    rdS n# t
          $ r Y nw xY wdS NTF)
isinstanceConstantSourceguard_sourcer   CONSTANTNotImplementedErrorsources    d/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/torch/_dynamo/source.pyis_constant_sourcer   M   si    &.)) t  K$8884 9    5s   "> 
A
Ar   )GetItemSourceODictGetItemSourcec                    | j                             |           t          | j        t                    r| j                            |           d S |rSt          | t
                    sJ |                    |                    |                                                      d S |                    |                    | j                             d S N)	basereconstructr   indexr   r   append_outputcreate_load_constunpack_slice)r   codegenindex_is_slices      r   reconstruct_getitemr%   Y   s     KG$$$&,'' K  ))))) 	Kfm44444!!'";";F<O<O<Q<Q"R"RSSSSS!!'";";FL"I"IJJJJJ    T)frozenc                   H    e Zd ZU eed<   dZeed<   dZeed<   d Zd Z	d Z
dS )	LocalSource
local_nameFis_inputis_derefed_cell_contentsc                     | j         r|                    | j                   d S |                    |                    | j                             d S r   )r,   
load_derefr*   r    create_loadselfr#   s     r   r   zLocalSource.reconstructs   sT    ( 	Ht/////!!'"5"5do"F"FGGGGGr&   c                     t           j        S r   )r   LOCALr1   s    r   r   zLocalSource.guard_sourcey   s      r&   c                 2    dt          | j                   dS )NzL[])reprr*   r4   s    r   namezLocalSource.name|   s    ,D)),,,,r&   N)__name__
__module____qualname__str__annotations__r+   boolr,   r   r   r8    r&   r   r)   r)   g   st         OOO Hd
 &+d***H H H! ! !- - - - -r&   r)   c                   ,    e Zd ZU eed<   d Zd Zd ZdS )SyntheticLocalSourcer*   c                 `    |                     |                    | j                             d S r   )r    r/   r*   r0   s     r   r   z SyntheticLocalSource.reconstruct   s,    g11$/BBCCCCCr&   c                     t           j        S r   )r   SYNTHETIC_LOCALr4   s    r   r   z!SyntheticLocalSource.guard_source   s    **r&   c                     d| j         dS )NzSYNTHETIC_LOCAL[r6   )r*   r4   s    r   r8   zSyntheticLocalSource.name   s    6$/6666r&   Nr9   r:   r;   r<   r=   r   r   r8   r?   r&   r   rA   rA      sO         OOOD D D+ + +7 7 7 7 7r&   rA   c                   ,    e Zd ZU eed<   d Zd Zd ZdS )RandomValueSourcerandom_call_indexc                     t           j        S r   )r   RANDOM_VALUEr4   s    r   r   zRandomValueSource.guard_source   s    ''r&   c                    |                     |                    |j        j        j                             |                     |                    | j                             |                     t          d                     d S NBINARY_SUBSCR)r    r/   txoutputrandom_values_varr!   rI   r   r0   s     r   r   zRandomValueSource.reconstruct   st    g11'*2C2UVVWWWg778NOOPPP0AABBBBBr&   c                     d| j          S )Nrandom_value_)rI   r4   s    r   r8   zRandomValueSource.name   s    7t5777r&   N)r9   r:   r;   intr=   r   r   r8   r?   r&   r   rH   rH      sR         ( ( (C C C
8 8 8 8 8r&   rH   c                   ,    e Zd ZU eed<   d Zd Zd ZdS )GlobalSourceglobal_namec                 d    |                     |                    | j        d                     d S NTaddr    create_load_globalrW   r0   s     r   r   zGlobalSource.reconstruct   s2    g889It8TTUUUUUr&   c                     t           j        S r   r   GLOBALr4   s    r   r   zGlobalSource.guard_source       !!r&   c                 2    dt          | j                   dS )NG[r6   r7   rW   r4   s    r   r8   zGlobalSource.name   s    -D)**----r&   NrF   r?   r&   r   rV   rV      sR         V V V" " ". . . . .r&   rV   c                   ,    e Zd ZU eed<   d Zd Zd ZdS )GlobalWeakRefSourcerW   c                                            fd                               t          dd                     d S )Nc                  b                                               j        d                    S rY   r\   r#   r1   s   r   <lambda>z1GlobalWeakRefSource.reconstruct.<locals>.<lambda>   s0    G))**4+;*FF  r&   r   Fadd_push_nullextend_outputr   r0   s   ``r   r   zGlobalWeakRefSource.reconstruct   s\        	
 	
 	

 	21e<<=====r&   c                     t           j        S r   r_   r4   s    r   r   z GlobalWeakRefSource.guard_source   ra   r&   c                 2    dt          | j                   dS )Nrc   z]()rd   r4   s    r   r8   zGlobalWeakRefSource.name   s    /D)**////r&   NrF   r?   r&   r   rf   rf      sO         > > >" " "0 0 0 0 0r&   rf   c                        e Zd Zd Zd Zd ZdS )WeakRefCallSourcec                                            fd                               t          dd                     d S )Nc                  8    j                                        S r   r   r   ri   s   r   rj   z/WeakRefCallSource.reconstruct.<locals>.<lambda>   s    di&;&;G&D&D r&   r   Frk   r0   s   ``r   r   zWeakRefCallSource.reconstruct   sJ    DDDDDEEE21e<<=====r&   c                 4    | j                                         S r   r   r   r4   s    r   r   zWeakRefCallSource.guard_source       y%%'''r&   c                 :    | j                                          dS )Nz()r   r8   r4   s    r   r8   zWeakRefCallSource.name   s    )..""&&&&r&   Nr9   r:   r;   r   r   r8   r?   r&   r   rq   rq      sA        > > >( ( (' ' ' ' 'r&   rq   c                       e Zd ZdS )CallFunctionNoArgsSourceNr9   r:   r;   r?   r&   r   r|   r|              Dr&   r|   c                   2    e Zd ZU eed<   d Zd Zd Zd ZdS )
AttrSourcememberc                 J   | j         s
J d            d| j        v r| j                            d          }t                              | dt          | j         d                    |d d                                        t                              | d|d                    d S d S )Nz9Can't construct an AttrSource without a valid base source.r   r   )r   r   splitobject__setattr__r   join)r1   member_partss     r   __post_init__zAttrSource.__post_init__   s    yUUUUUy$+;,,S11LfjCHH\#2#=N4O4OPP   tX|B/?@@@@@ r&   c                     | j                             |           |                    |                    | j                             d S r   r   r   rm   create_load_attrsr   r0   s     r   r   zAttrSource.reconstruct   B    	g&&&g77DDEEEEEr&   c                 4    | j                                         S r   rv   r4   s    r   r   zAttrSource.guard_source   rw   r&   c                     | j                                         s%d| j                                         d| j         dS | j                                         d| j          S )Nzgetattr(, )r   )r   isidentifierr   r8   r4   s    r   r8   zAttrSource.name   sb    {'')) 	CBdinn..BB$+BBBB)..""22T[222r&   N)	r9   r:   r;   r<   r=   r   r   r   r8   r?   r&   r   r   r      sa         KKKA A AF F F( ( (3 3 3 3 3r&   r   c                   $    e Zd ZU dZeed<   d ZdS )LocalCellSourcez
    Conceptually, this class is `LocalSource` for cell objects implicitly
    generated by Python (e.g., captured variables).
    r*   c                 `    |                     |                    | j                             d S r   )r    create_load_closurer*   r0   s     r   r   zLocalCellSource.reconstruct   s.     	g99$/JJKKKKKr&   N)r9   r:   r;   __doc__r<   r=   r   r?   r&   r   r   r      s?          
 OOOL L L L Lr&   r   c                   0    e Zd ZU dZeed<   d Zd Zd ZdS )
GradSourcegradr   c                     | j                             |           |                    |                    | j                             d S r   r   r0   s     r   r   zGradSource.reconstruct  r   r&   c                 4    | j                                         S r   rv   r4   s    r   r   zGradSource.guard_source
  rw   r&   c                 H    | j                                          d| j         S )Nr   )r   r8   r   r4   s    r   r8   zGradSource.name  s$    )..""22T[222r&   N)	r9   r:   r;   r   r<   r=   r   r   r8   r?   r&   r   r   r     sV         FCF F F( ( (3 3 3 3 3r&   r   c                       e Zd Zd ZdS )ParamBufferSourcec                 J    t           | j                                                 S r   #_GUARD_SOURCE_SPECIALIZED_NN_MODULEr   r   r4   s    r   r   zParamBufferSource.guard_source      2493I3I3K3KLLr&   Nr9   r:   r;   r   r?   r&   r   r   r     s(        M M M M Mr&   r   c                       e Zd ZdS )UnspecializedParamBufferSourceNr}   r?   r&   r   r   r     r~   r&   r   c                   B    e Zd ZU dZee         ed<   d Zd Zd Z	d Z
dS )EphemeralSourceNdescc                     t           j        S r   )r   	EPHEMERALr4   s    r   r   zEphemeralSource.guard_source*      $$r&   c                 0    d| j         
d| j         z   nd dS )Nz
<ephemeralz:  >)r   r4   s    r   r8   zEphemeralSource.name-  s&    P	0ED49,,2PPPPr&   c                     t           r   r   r1   fns     r   
make_guardzEphemeralSource.make_guard0      !!r&   c                     dS NTr?   r4   s    r   is_ephemeralzEphemeralSource.is_ephemeral3      tr&   )r9   r:   r;   r   r   r<   r=   r   r8   r   r   r?   r&   r   r   r   &  si         D(3-% % %Q Q Q" " "    r&   r   c                        e Zd ZdZdZdZd ZdS )TensorPropertyr   r	      c                 f    | t           j        u rdS | t           j        u rdS | t           j        u rdS d S )Nsizestridestorage_offset)r   SIZESTRIDESTORAGE_OFFSETr4   s    r   method_namezTensorProperty.method_name<  sD    >&&&6^***8^222## 32r&   N)r9   r:   r;   r   r   r   r   r?   r&   r   r   r   7  s2        DFN$ $ $ $ $r&   r   c                   L    e Zd ZU eed<   dZee         ed<   d Zd Z	d Z
d ZdS )TensorPropertySourcepropNidxc                 f    | j         J | j        t          j        u r| j        J d S | j        J d S r   )r   r   r   r   r   r4   s    r   r   z"TensorPropertySource.__post_init__J  sH    y$$$95558#####8'''''r&   c                 0                          fd            j                                        j        -                                         j                                                 t           j        dndd                     d S )Nc                  x                          t          j        dj                                                   S )Ncall_)load_import_fromr
   r9   r   r   ri   s   r   rj   z2TensorPropertySource.reconstruct.<locals>.<lambda>S  s5    G,, A	(=(=(?(? A A  r&   r   r	   F)rl   r   r   r   r    r!   rm   r   r0   s   ``r   r   z TensorPropertySource.reconstructQ  s        	
 	
 	

 		g&&&8!!'";";DH"E"EFFF dh&:5II	
 	
 	
 	
 	
r&   c                 4    | j                                         S r   rv   r4   s    r   r   z!TensorPropertySource.guard_source_  rw   r&   c                 |   | j         t          j        u r$| j                                         d| j         dS | j         t          j        u r$| j                                         d| j         dS | j         t          j        u r%| j        J | j                                         dS t          d| j                    )Nz.size()[r6   z
.stride()[z.storage_offset()z
unhandled )	r   r   r   r   r8   r   r   r   AssertionErrorr4   s    r   r8   zTensorPropertySource.nameb  s    9+++inn&&;;;;;;Y.///inn&&==$(====Y.7778###inn&&9999 !9di!9!9:::r&   )r9   r:   r;   r   r=   r   r   rT   r   r   r   r8   r?   r&   r   r   r   E  sr         
C#( ( (
 
 
( ( (	; 	; 	; 	; 	;r&   r   c                   &    e Zd Zd Zd Zd Zd ZdS )NegateSourcec                     | j         J d S r   r   r4   s    r   r   zNegateSource.__post_init__p      y$$$$$r&   c                     t           r   r   r0   s     r   r   zNegateSource.reconstructs  r   r&   c                 4    | j                                         S r   rv   r4   s    r   r   zNegateSource.guard_sourcev  rw   r&   c                 :    | j                                          dS )Nz
.__neg__()ry   r4   s    r   r8   zNegateSource.namey  s    )..""....r&   Nr9   r:   r;   r   r   r   r8   r?   r&   r   r   r   n  sP        % % %" " "( ( (/ / / / /r&   r   c                   &    e Zd Zd Zd Zd Zd ZdS )ConvertIntSourcec                     | j         J d S r   r   r4   s    r   r   zConvertIntSource.__post_init__  r   r&   c                 :    | j                             |           d S r   rt   r0   s     r   r   zConvertIntSource.reconstruct      	g&&&&&r&   c                 4    | j                                         S r   rv   r4   s    r   r   zConvertIntSource.guard_source  rw   r&   c                 <    d| j                                          dS )Nz!cast_symbool_to_symint_guardless(r   ry   r4   s    r   r8   zConvertIntSource.name  s    F49>>3C3CFFFFr&   Nr   r?   r&   r   r   r   ~  sU        % % %' ' '( ( (G G G G Gr&   r   c                   &    e Zd Zd Zd Zd Zd ZdS )FlattenScriptObjectSourcec                     | j         J d S r   r   r4   s    r   r   z'FlattenScriptObjectSource.__post_init__  r   r&   c                 :    | j                             |           d S r   rt   r0   s     r   r   z%FlattenScriptObjectSource.reconstruct  r   r&   c                 4    | j                                         S r   rv   r4   s    r   r   z&FlattenScriptObjectSource.guard_source  rw   r&   c                 :    | j                                          dS )Nz.__obj_flatten__()ry   r4   s    r   r8   zFlattenScriptObjectSource.name  s    )..""6666r&   Nr   r?   r&   r   r   r     sP        % % %' ' '( ( (7 7 7 7 7r&   r   c                   &    e Zd Zd Zd Zd Zd ZdS )ScriptObjectQualifiedNameSourcec                     | j         J d S r   r   r4   s    r   r   z-ScriptObjectQualifiedNameSource.__post_init__  r   r&   c                 :    | j                             |           d S r   rt   r0   s     r   r   z+ScriptObjectQualifiedNameSource.reconstruct  r   r&   c                 4    | j                                         S r   rv   r4   s    r   r   z,ScriptObjectQualifiedNameSource.guard_source  rw   r&   c                 :    | j                                          dS )Nz._type().qualified_name()ry   r4   s    r   r8   z$ScriptObjectQualifiedNameSource.name  s    )..""====r&   Nr   r?   r&   r   r   r     sP        % % %' ' '( ( (> > > > >r&   r   c                        e Zd Zd Zd Zd ZdS )AttrProxySourcec                 :    | j                             |           d S r   rt   r0   s     r   r   zAttrProxySource.reconstruct  r   r&   c                 4    | j                                         S r   rv   r4   s    r   r   zAttrProxySource.guard_source  rw   r&   c                 :    | j                                          dS )Nz.get_base()ry   r4   s    r   r8   zAttrProxySource.name  s    )..""////r&   Nrz   r?   r&   r   r   r     sA        ' ' '( ( (0 0 0 0 0r&   r   c                       e Zd ZU eeef         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 Zd Zd	 Zd
 ZdS )DefaultsSourceidx_keyFis_kw)initr7   comparefield_namec           
      2   | j         s
J d            | j        rt          | j        t                    sJ t
                              | dd           t
                              | d| j                                          d| j         d| j         d           d S t          | j        t                    sJ t
                              | dd           t
                              | d| j                                          d| j         d	| j         d
           d S )Nz]Base must be a valid source in order to properly track and guard this Defaults to its origin.r   __kwdefaults__r   r   z['z']__defaults__[r6   )
r   r   r   r   r<   r   r   r8   r   rT   r4   s    r   r   zDefaultsSource.__post_init__  s6   I	k 	kj	k 	k: 	dlC00000tW.>???g$).."2"2SSTZSS4<SSS     dlC00000tWn===g$).."2"2QQTZQQ$,QQQ    r&   c                 2   | j                             |           |                    |                    | j                             |                    |                    | j                             |                    t          d                     d S rM   )	r   r   rm   r   r   r    r!   r   r   r0   s     r   r   zDefaultsSource.reconstruct  s    	g&&&g77
CCDDDg77EEFFF0AABBBBBr&   c                 4    | j                                         S r   rv   r4   s    r   r   zDefaultsSource.guard_source  rw   r&   c                     | j         S r   )r   r4   s    r   r8   zDefaultsSource.name  s
    zr&   N)r9   r:   r;   r   rT   r<   r=   r   r>   dataclassesr   r   r   r   r   r8   r?   r&   r   r   r     s         38_E4""E5IIIE3III""E5IIIE3III  "C C C( ( (    r&   r   c                   P     e Zd ZU eed<   dZeed<    fdZd Zd Z	d Z
d Z xZS )	r   r   Fr$   c                    | j         J t          | j        t                    r]t	                                          d| j                                                   t	                                          dd           d S d S )Nr   r$   T)r   r   r   slicesuperr   
__reduce__)r1   	__class__s    r   r   zGetItemSource.__post_init__  sx    y$$$dj%(( 	8GG)>)>)@)@AAAGG 0$77777	8 	8r&   c                 x    t          | || j                   |                    t          d                     d S )Nr$   rN   )r%   r$   r    r   r0   s     r   r   zGetItemSource.reconstruct  s=    D'$:MNNNN0AABBBBBr&   c                 4    | j                                         S r   rv   r4   s    r   r   zGetItemSource.guard_source  rw   r&   c                 2    | j         sJ | j        \  }} || S r   )r$   r   )r1   slice_class
slice_argss      r   r"   zGetItemSource.unpack_slice  s*    """""&*Z{J''r&   c                    t          | j        t                    r_t          | j        t                    st	          d          | j                                         d| j                                         dS | j        r1| j                                         d|                                 dS t          | j        t          j
                  rV| j                                         dt          | j        |                                                                            dS | j                                         d| j        dS )NzBGetItemSource index must be a constant, enum or ConstDictKeySourcer   r6   )r   r   r   ConstDictKeySource
ValueErrorr   r8   r$   r"   enumEnumr   r   is_localr4   s    r   r8   zGetItemSource.name  s/    dj&)) 	9dj*<==  X   inn&&==):):====  	9inn&&AA):):)<)<AAAA
DI.. 	9inn&&aa4:t?P?P?R?R?[?[?]?])^)^aaaainn&&888888r&   )r9   r:   r;   r   r=   r$   r>   r   r   r   r"   r8   __classcell__)r  s   @r   r   r     s         JJJ ND   8 8 8 8 8C C C( ( (( ( (
9 9 9 9 9 9 9r&   r   c                        e Zd Zd Zd Zd ZdS )r  c                     dS r   r?   r4   s    r   is_dict_keyzConstDictKeySource.is_dict_key	  r   r&   c                                         fd           | j                                                                               | j                                                 t          dd                     d S )Nc                  D                          t          j        d          S )Ndict_keys_getitemr   r
   r9   r#   s   r   rj   z0ConstDictKeySource.reconstruct.<locals>.<lambda>  s    G,,U^=PQQ r&   r   Frl   r   r   r    r!   r   rm   r   r0   s    `r   r   zConstDictKeySource.reconstruct  s    QQQQ	
 	
 	
 		g&&&g77
CCDDD21e<<=====r&   c                 L    d| j                                          d| j        dS )Nzlist(z	.keys())[r6   r   r8   r   r4   s    r   r8   zConstDictKeySource.name  s)    Aty~~''AA$*AAAAr&   N)r9   r:   r;   r  r   r8   r?   r&   r   r  r    sF          > > >B B B B Br&   r  c                       e Zd Zd Zd ZdS )TupleIteratorGetItemSourcec                                         fd           | j                                                                               | j                                                 t          dd                     d S )Nc                  D                          t          j        d          S )Ntuple_iterator_getitemr  r  s   r   rj   z8TupleIteratorGetItemSource.reconstruct.<locals>.<lambda>  s    G,,U^=UVV r&   r   Fr  r0   s    `r   r   z&TupleIteratorGetItemSource.reconstruct  s    VVVV	
 	
 	
 		g&&&g77
CCDDD21e<<=====r&   c                 L    d| j                                          d| j        dS )Nz___tuple_iterator_getitem(r   r   r   r4   s    r   r8   zTupleIteratorGetItemSource.name#  s)    ODINN,<,<OO
OOOOr&   N)r9   r:   r;   r   r8   r?   r&   r   r"  r"    s7        > > >P P P P Pr&   r"  c                   &    e Zd Zd Zd Zd Zd ZdS )
TypeSourcec                     | j         J d S r   r   r4   s    r   r   zTypeSource.__post_init__)  r   r&   c                                          fd           | j                                                           t	          dd                     d S )Nc                  0                          dd          S )Nbuiltinstyper   r  s   r   rj   z(TypeSource.reconstruct.<locals>.<lambda>-  s    g&>&>z6&R&R r&   r	   Frl   r   r   rm   r   r0   s    `r   r   zTypeSource.reconstruct,  s\    RRRRSSS	g&&&21e<<=====r&   c                 4    | j                                         S r   rv   r4   s    r   r   zTypeSource.guard_source1  rw   r&   c                 <    d| j                                          dS )Nztype(r   ry   r4   s    r   r8   zTypeSource.name4  s    *ty~~''****r&   Nr   r?   r&   r   r(  r(  '  sP        % % %> > >
( ( (+ + + + +r&   r(  c                   2    e Zd ZU eed<   d Zd Zd Zd ZdS )r   r   c                     | j         J d S r   r   r4   s    r   r   z ODictGetItemSource.__post_init__<  r   r&   c                                          fd           t          | d                               t          dd                     d S )Nc                  r                                               t          j        j                            S r   )r    create_load_const_uncheckedcollectionsOrderedDict__getitem__r  s   r   rj   z0ODictGetItemSource.reconstruct.<locals>.<lambda>A  s.    G))33K4K4WXX  r&   Fr
  r   )rl   r%   rm   r   r0   s    `r   r   zODictGetItemSource.reconstruct?  sk       	
 	
 	

 	D'%@@@@21e<<=====r&   c                 4    | j                                         S r   rv   r4   s    r   r   zODictGetItemSource.guard_sourceH  rw   r&   c                    t          | j        t                    r<d| j        j         d| j        j         }d| j                                         d| dS t          | j        t                    r7d| j                                         d| j                                         dS d| j                                         d| j        dS )Nz__load_module("z").z___odict_getitem(r   r   )r   r   r-  r:   r;   r   r8   r   )r1   reps     r   r8   zODictGetItemSource.nameK  s    dj$'' 	KWDJ$9WWdj>UWWCAty~~'7'7AA3AAAA
F++ 	KOty~~'7'7OO4:??;L;LOOOOJty~~'7'7JJ4:JJJJr&   N)	r9   r:   r;   r   r=   r   r   r   r8   r?   r&   r   r   r   8  s`         JJJ% % %> > >( ( (K K K K Kr&   r   c                        e Zd Zd Zd Zd ZdS )OptimizerSourcec                 :    | j                             |           d S r   rt   r0   s     r   r   zOptimizerSource.reconstructW  r   r&   c                 4    | j                                         S r   rv   r4   s    r   r   zOptimizerSource.guard_sourceZ  rw   r&   c                 4    | j                                         S r   ry   r4   s    r   r8   zOptimizerSource.name]      y~~r&   Nrz   r?   r&   r   r>  r>  U  sA        ' ' '( ( (         r&   r>  c                        e Zd Zd Zd Zd ZdS )NNModuleSourcec                 :    | j                             |           d S r   rt   r0   s     r   r   zNNModuleSource.reconstructc  r   r&   c                 J    t           | j                                                 S r   r   r4   s    r   r   zNNModuleSource.guard_sourcef  r   r&   c                 4    | j                                         S r   ry   r4   s    r   r8   zNNModuleSource.namei  rB  r&   Nrz   r?   r&   r   rD  rD  a  sD        ' ' 'M M M         r&   rD  c                       e Zd Zd ZdS )UnspecializedNNModuleSourcec                 J    t           | j                                                 S r   )%_GUARD_SOURCE_UNSPECIALIZED_NN_MODULEr   r   r4   s    r   r   z(UnspecializedNNModuleSource.guard_sourceo  s    4TY5K5K5M5MNNr&   Nr   r?   r&   r   rI  rI  m  s(        O O O O Or&   rI  c                       e Zd Zd ZdS )"UnspecializedBuiltinNNModuleSourcec                 J    t           | j                                                 S r   )-_GUARD_SOURCE_UNSPECIALIZED_BUILTIN_NN_MODULEr   r   r4   s    r   r   z/UnspecializedBuiltinNNModuleSource.guard_sourceu  s    <TY=S=S=U=UVVr&   Nr   r?   r&   r   rM  rM  s  s(        W W W W Wr&   rM  c                       e Zd Zd ZdS )FSDPNNModuleSourcec                 J    t           | j                                                 S r   )_GUARD_SOURCE_FSDP_MODULEr   r   r4   s    r   r   zFSDPNNModuleSource.guard_source{  s    ()?)?)A)ABBr&   Nr   r?   r&   r   rQ  rQ  y  s(        C C C C Cr&   rQ  c                       e Zd Zd Zd ZdS )GlobalStateSourcec                     dS Nr   r?   r4   s    r   r8   zGlobalStateSource.name      rr&   c                     t           j        S r   r_   r4   s    r   r   zGlobalStateSource.guard_source  ra   r&   Nr9   r:   r;   r8   r   r?   r&   r   rU  rU    s2          " " " " "r&   rU  c                   2    e Zd ZU eed<   d Zd Zd Zd ZdS )TorchFunctionModeStackSourceindc                 2    d|                                   dS )Nz$___get_torch_function_mode_stack_at(r   )
_get_indexr4   s    r   r8   z!TorchFunctionModeStackSource.name  s    Jdoo6G6GJJJJr&   c                 B    ddl m} |                    | j                  S )Nr	   )TorchFunctionModeStackVariable)variables.torch_functionra  get_mode_indexr]  )r1   ra  s     r   r_  z'TorchFunctionModeStackSource._get_index  s*    LLLLLL-<<TXFFFr&   c                                          fd                                                   |                                           g                               t	          dd                     d S )Nc                  D                          t          j        d          S )N get_torch_function_mode_stack_atr  r  s   r   rj   z:TorchFunctionModeStackSource.reconstruct.<locals>.<lambda>  s    G,, B  r&   r	   F)rl   rm   r!   r_  r   r0   s    `r   r   z(TorchFunctionModeStackSource.reconstruct  s       	
 	
 	

 	w889J9JKKLMMM21e<<=====r&   c                     t           j        S r   r_   r4   s    r   r   z)TorchFunctionModeStackSource.guard_source  ra   r&   N)	r9   r:   r;   rT   r=   r8   r_  r   r   r?   r&   r   r\  r\    sa         	HHHK K KG G G
> > >" " " " "r&   r\  c                   2    e Zd ZU eed<   d Zd Zd Zd ZdS )r   source_namec                 d    |                     |                    | j        d                     d S )NFrZ   )r    r]   ri  r0   s     r   r   zConstantSource.reconstruct  s2    g889Iu8UUVVVVVr&   c                     t           j        S r   )r   r   r4   s    r   r   zConstantSource.guard_source  s    ##r&   c                     | j         S r   )ri  r4   s    r   r8   zConstantSource.name  s    r&   c                     t           r   r   r   s     r   r   zConstantSource.make_guard  r   r&   N)	r9   r:   r;   r<   r=   r   r   r8   r   r?   r&   r   r   r     sa         W W W$ $ $     " " " " "r&   r   c                   &    e Zd ZdefdZd Zd ZdS )NumpyTensorSourcereturnc                 <    d| j                                          dS )Nz___from_numpy(r   ry   r4   s    r   r8   zNumpyTensorSource.name  s    3	 0 03333r&   c                 4    | j                                         S r   rv   r4   s    r   r   zNumpyTensorSource.guard_source  rw   r&   c                                          fd           | j                                                           t	          dd                     d S )Nc                  0                          dd          S )Ntorch	as_tensorr.  r  s   r   rj   z/NumpyTensorSource.reconstruct.<locals>.<lambda>  s    g&>&>w&T&T r&   r	   Fr/  r0   s    `r   r   zNumpyTensorSource.reconstruct  s\    TTTTUUU	g&&&21e<<=====r&   N)r9   r:   r;   r<   r8   r   r   r?   r&   r   ro  ro    sM        4c 4 4 4 4( ( (> > > > >r&   ro  c                        e Zd ZdefdZd ZdS )SubclassAttrListSourcerp  c                 :    | j                                          dS )Nz.__tensor_flatten__()[0]ry   r4   s    r   r8   zSubclassAttrListSource.name  s    )..""<<<<r&   c                 4    | j                                         S r   rv   r4   s    r   r   z#SubclassAttrListSource.guard_source  rw   r&   Nr9   r:   r;   r<   r8   r   r?   r&   r   rx  rx    s>        =c = = = =( ( ( ( (r&   rx  c                        e Zd ZdefdZd ZdS )FloatTensorSourcerp  c                 <    d| j                                          dS )Nz___as_tensor(r   ry   r4   s    r   r8   zFloatTensorSource.name  s    2ty~~//2222r&   c                 4    | j                                         S r   rv   r4   s    r   r   zFloatTensorSource.guard_source  rw   r&   Nr{  r?   r&   r   r}  r}    s>        3c 3 3 3 3( ( ( ( (r&   r}  c                        e Zd ZdefdZd ZdS )CallMethodItemSourcerp  c                 :    | j                                          dS )Nz.item()ry   r4   s    r   r8   zCallMethodItemSource.name  s    )..""++++r&   c                 4    | j                                         S r   rv   r4   s    r   r   z!CallMethodItemSource.guard_source  rw   r&   Nr{  r?   r&   r   r  r    s>        ,c , , , ,( ( ( ( (r&   r  c                       e Zd Zd Zd ZdS )ShapeEnvSourcec                     dS rW  r?   r4   s    r   r8   zShapeEnvSource.name  rX  r&   c                     t           j        S r   )r   	SHAPE_ENVr4   s    r   r   zShapeEnvSource.guard_source  r   r&   NrZ  r?   r&   r   r  r    s2          % % % % %r&   r  c                       e Zd Zd Zd ZdS )BackwardStateSourcec                     dS rW  r?   r4   s    r   r8   zBackwardStateSource.name  rX  r&   c                     t           j        S r   )r   BACKWARD_STATEr4   s    r   r   z BackwardStateSource.guard_source  s    ))r&   NrZ  r?   r&   r   r  r    s2          * * * * *r&   r  Fonly_allow_inputc                    t          | t                    rt          | j        |          S t          | t                    sdS |r	| j        sdS dS )Nr  FT)r   r   is_from_local_sourcer   r)   r+   )r   r  s     r   r  r    s]    &-(( T#FKBRSSSSfk** u  u4r&   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   r   r   $is_from_flatten_script_object_sourcer   r   s    r   r  r    sC    &344 At	FM	*	* A3FK@@@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                  S dS r   )r   r   r   is_from_defaultsr   r   s    r   r  r    s@    &.)) t&-(( -,,,5r&   )Pr7  r  r  typingr   r   r   torch._guardsr   r   r   r   r
   bytecode_transformationr   r   r   r3   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   rK  rO  rS  r   r%   	dataclassr)   rA   rH   rV   rf   rq   r|   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r"  r(  r   r>  rD  rI  rM  rQ  rU  r\  r   ro  rx  r}  r  r  r  r  r  r  r  r  r?   r&   r   <module>r     s            ' ' ' ' ' ' ' ' ' ' < < < < < < < < < <       M M M M M M M M       {>@+[-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 	 	 	K78K K K K d###- - - - -& - - $#-0 d###
7 
7 
7 
7 
76 
7 
7 $#
7 d###8 8 8 8 8 8 8 $#8 d###
. 
. 
. 
. 
.6 
. 
. $#
. d###0 0 0 0 0& 0 0 $#0$ d###	' 	' 	' 	' 	' 	' 	' $#	' d###	 	 	 	 	0 	 	 $#	 d###3 3 3 3 3 3 3 $#32 d###L L L L Lf L L $#L, d###3 3 3 3 3 3 3 $#3 d###M M M M M
 M M $#M d###	 	 	 	 	Z 	 	 $#	 d###    f   $# $ $ $ $ $TY $ $ $ d###%; %; %; %; %;= %; %; $#%;P d###/ / / / /= / / $#/ d###G G G G G} G G $#G d###7 7 7 7 7 7 7 $#7 d###> > > > >m > > $#>0 0 0 0 0m 0 0 0 d###! ! ! ! !] ! ! $#!H d###(9 (9 (9 (9 (9M (9 (9 $#(9V d###B B B B B B B $#B" d###
P 
P 
P 
P 
P 
P 
P $#
P d###+ + + + + + + $#+  d###K K K K K K K $#K8 d###         m     $#  d###         ]     $#  d###O O O O O. O O $#O
 d###W W W W W)D W W $#W
 d###C C C C C C C $#C
 d###" " " " " " " $#" d###" " " " "6 " " $#"0 d###" " " " "V " " $#"  d###
> 
> 
> 
> 
> 
> 
> $#
> d###( ( ( ( (] ( ( $#( d###( ( ( ( ( ( ( $#( d###( ( ( ( (= ( ( $#( d###% % % % %V % % $#% d###* * * * *& * * $#* >C       f        V    V      r&   