
    קg0A                    v   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZmZmZ d dlZd dlmZmZ d dlmZ ddlmZmZ dd	lmZmZmZmZ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( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z> ddl?m@Z@mAZAmBZBmCZCmDZDmEZE ddlFmGZGmHZHmIZImJZJmKZKmLZL ddlMmNZNmOZOmPZPmQZQmRZR ddlSmTZTmUZU erd dlVmWZW  ejX        eY          ZZej[        ej\        ej]        ej^        ej_        ej`        eja        ejb        ejc        ejd        eje        ejf        ejg        ejg        ejh        eji        ejj        ejk        ejl        ejm        ejn        ejo        ejp        ejq        ejr        ejs        iZt G d de9          Zue jv        d             ZwdS )    N)defaultdictOrderedDict)KeysView)DictListTYPE_CHECKING)	sym_floatsym_int)is_traceable_wrapper_subclass   )config	variables)AttributeMutationErrorunimplementedUnsupported	UserErrorUserErrorType)GuardBuilderinstall_guard)DummyModule)
AttrSourceGetItemSourceis_constant_source
TypeSource)check_constant_argscheck_numpy_ndarray_argscheck_unspec_or_constant_argscheck_unspec_python_args#does_not_override_dict_iter_methodsextract_fake_example_valueget_fake_valueguard_if_dynis_wrapper_or_member_descriptoristypenumpy_operator_wrapperproxy_args_kwargstensortype_to_dtype   )MutableLocalVariableTrackerConstantVariable)EventVariableStreamVariable)ConstDictVariableDefaultDictVariableDictViewFrozensetVariableis_hashableSetVariable)BaseListVariableListIteratorVariableListVariableSizeVariableTupleIteratorVariableTupleVariable)FakeItemVariablesupported_comparison_opsSymNodeVariableTensorVariableUnspecializedPythonVariable)UserDefinedObjectVariableUserDefinedVariable)InstructionTranslatorc                   ~    e Zd Z e            Zdhej        Zed             Ze	 e
j        d          d                         Zd Ze	 e
j        d          d                         Ze	 e
j        d          d                         Ze	 e
j        d          d                         Ze	d	             Zd
 Zd] fdZdefdZd Z fdZd Zd Zd Zd Zd Ze	d             Zd Ze	dee          de!fd            Z"d^dZ#i Z$	 	 	 	 	 	 	 	 d_d"Z%	 	 	 	 	 	 d` fd#Z&d^d$Z'e'Z(e'Z)d^d%Z*d^d&Z+d^d'Z,d^d(Z-e+Z.e+Z/dad*Z0dad+Z1dad,Z2d^d-Z3d^d.Z4d/ Z5d^d0Z6d^d1Z7	 db	 d^d2Z8dbd3Z9d^d4Z:e9Z;e9Z<d^d5Z=d6 Z>d^d7Z?e	d^d8            Z@e		 	 d^d9            ZAd^d:ZBd^d;ZCd^d<ZDd^d=ZEd^d>ZFd^d?ZGd^d@ZHd^dAZIddd)efdBZJd^dCZKd^dDZLd^dEZMefd^dFZNef	 d^dGZO	 dbdddHedIefdJZPdddHedIedKefdLZQdddHedIefdMZRdddHefdNZSdddHefdOZTdddHefdPZUd^dQZVd^dRZWd^dSZXd^dTZYd^dUZZd^dVZ[d^dWZ\d^dXZ]d^dYZ^dddZed[efd\Z_ xZ`S )cBuiltinVariablefnc                 t    t          |                    t          j                              | ||          S )N)source)r   
make_guardr   BUILTIN_MATCH)clsvaluerG   s      [/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/_dynamo/variables/builtin.pycreate_with_sourcez"BuiltinVariable.create_with_sourcei   s6    f''(BCCDDDs5((((    Nc                  H   h t           t          t          t          t          t
          t          t          t          t          t          t          t          t          t          t          t           t"          t"          j        t&          t(          t*          j         t*          j        t*          j        t*          j        t*          j        t*          j        t*          j        t*          j        t*          j        t*          j        t*          j        t*          j        t*          j         t*          j!        t*          j"        t*          j#        t*          j$        t*          j%        t*          j&        t*          j'        t*          j(        t*          j)        t*          j*        t*          j+        t*          j,        t*          j-        t*          j.        t*          j/        t*          j0        t*          j1        t*          j2        t*          j3        t*          j4        t*          j5        t*          j6        } ddl7m8} | 9                     |j:                               | 9                    d tv          j<        :                                D                        | S )Nr(   )r<   c              3   h   K   | ]-}t          |t          t          j                            )|V  .d S N)
isinstancetypemathsqrt.0xs     rL   	<genexpr>z;BuiltinVariable._constant_fold_functions.<locals>.<genexpr>   s9      WW
1d49oo8V8VW1WWWWWWrN   )=absallanyboolcallablechrdivmodfloatgetattrintlenmaxminordpowreprroundstrformatsumrS   operatorposnegnot_truthinvertmulmatmulfloordivtruedivmodaddsubgetitemlength_hintlshiftrshiftand_or_xoripowimulimatmul	ifloordivitruedivimodiaddisubilshiftirshiftiandixoriorindextensorr<   updatevaluesrT   __dict__)fnsr<   s     rL   _constant_fold_functionsz(BuiltinVariable._constant_fold_functionsn   s    9
9
9
 9
 	9

 9
 9
 9
 9
 9
 9
 9
 9
 9
 9
 9
  !9
" #9
$ %9
& J'9
( )9
* +9
, L-9
. L/9
0 L19
2 M39
4 N59
6 O79
8 L99
: L;9
< O=9
> ?9
@ A9
B LC9
D LE9
F LG9
H I9
J  K9
L OM9
N OO9
P MQ9
R LS9
T LU9
V MW9
X MY9
Z [9
\ ]9
^ _9
` Ma9
b Mc9
d Me9
f g9
h i9
j Mk9
l Mm9
n Lo9
p Nq9
t 	544444

2+244555

WWdm2244WWWWWW
rN   c                 8    | j         |                                 v S rQ   )rE   r   selfs    rL   can_constant_fold_throughz)BuiltinVariable.can_constant_fold_through   s    w$779999rN   c                     h t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j         t           j!        t           j"        t           j#        t           j$        t           j%        t           j&        t           j'        } | S rQ   )(rn   rZ   ro   rp   rq   rs   rh   rt   ru   rv   rw   rx   ry   ltgtgeleneeqrz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s    rL   _fx_graph_functionsz#BuiltinVariable._fx_graph_functions   s   (
L(
L(
 L(
 M	(

 O(
 L(
 L(
 O(
 (
 (
 L(
 L(
 K(
 K(
 K(
  K!(
" K#(
$ K%(
& L'(
( )(
*  +(
, O-(
. O/(
0 M1(
2 L3(
4 L5(
6 M7(
8 M9(
: ;(
< =(
> ?(
@ MA(
B MC(
D ME(
F G(
H I(
J MK(
L MM(
N LO(
R 
rN   c                     t           j        g dt           j        ft           j        g dt           j        ft           j        g dt           j        ft           j        g dt           j        ft           j	        g dt           j
        ft           j        g dt           j        ft          g dt           j        ft           j        g dt           j        ft           j        g dt           j        ft           j        g d	t           j        fi
} | S )
N)__add____radd____iadd__)__sub____rsub____isub__)__mul____rmul____imul__)__truediv____rtruediv____itruediv__)__floordiv____rfloordiv____ifloordiv__)__mod____rmod____imod__)__pow____rpow____ipow__)
__lshift____rlshift____ilshift__)
__rshift____rrshift____irshift__)rn   ry   r   rz   r   rt   r   rw   r   rv   r   rx   r   rh   r   r}   r   r~   r   r   s    rL   _binopszBuiltinVariable._binops   s    
 L>>>NL>>>NL>>>N???! BBB"  L>>>N555x}EL>>>NO<<<  O<<< '
> 
rN   c            
          ddl m} m} ddlmm ddlm ddlm	 ddl
m ddlmmm i }t                                                                           D ]e\  }\  }}g ||<   g ||<   |\  }}}||dfd	
}	||                             t(          f|	f           ||                             t(          f|	f           |d
	 dd}
||                             t(          f|
f           ||                             t(          f|
f           |ddd}||                             t*          t(          f|f           ||                             t(          t*          f|f           ||                             t*          t(          f|f           ||                             t(          t*          f|f           gdd}dd}t,          t,          f|ft.          t.          f|ft.          t0          f|ft0          t.          fd ft2          t4          t0          t6          ffd ft4          t4          fd fg}|t8          j                                     |           dd}t2          t(          f|ft.          t.          f|ft.          t0          f|fg}|t8          j                                     |           dd}t2          t0          f|ft.          t0          f|ft0          t2          f|ft0          t.          f|fg}|t8          j                                      |           t,          t.          f|| ff
d}tC          j"                    D ]'}tG          |          sJ ||vsJ  ||          ||<   (|S )Nr(   )DictKeysr4   )BaseUserFunctionVariableUserFunctionVariableNNModuleVariable)supported_const_comparison_ops)BaseTorchVariable)UserDefinedClassVariabler@   rA   )forward_namereverse_namec                    t          |          r|                    | ||gi           S |                    | ||gi           S rQ   )rR   call_method)txabr   r   rA   s        rL   user_defined_handlerz=BuiltinVariable._binop_handlers.<locals>.user_defined_handler%  sM    , a!455 D==\A3CCC==\A3CCCrN   )r   r   rB   c                4    |                     | ||gi           S rQ   r   )r   r   r   r   s       rL   user_defined_inplace_handlerzEBuiltinVariable._binop_handlers.<locals>.user_defined_inplace_handlerG  s     }}RsB???rN   rE   c          
      j    ddl m}  ||  | j        j        d|gt	          ||gi           R            S Nr(   wrap_fx_proxycall_function)builderr   outputcreate_proxyr&   )r   r   r   rE   r   s        rL   dynamic_handlerz8BuiltinVariable._binop_handlers.<locals>.dynamic_handlerT  s_    222222$}*BI*'.?A.K.K    rN   c                 X    t          g |j        |                    |                     S rQ   )r:   itemsunpack_var_sequencer   r   r   s      rL   tuple_add_handlerz:BuiltinVariable._binop_handlers.<locals>.tuple_add_handlerp  s+     !G17!GQ-B-B2-F-F!GHHHrN   c                 X    t          g |j        |                    |                     S rQ   )r8   r   r   r   s      rL   size_add_handlerz9BuiltinVariable._binop_handlers.<locals>.size_add_handlers  s+     F!' FA,A,A",E,E FGGGrN   c                 X    t          g |                    |           |j                  S rQ   )r:   r   r   r   s      rL   <lambda>z1BuiltinVariable._binop_handlers.<locals>.<lambda>  s-    :a++B//:!':" " rN   c                 t    t          g |j        |                    |           t                                S Nmutable_local)r7   r   r   r)   r   s      rL   r   z1BuiltinVariable._binop_handlers.<locals>.<lambda>  s8    :ag: 5 5b 9 9:,.." " " rN   c                 N     t          |          g |j        |j                  S rQ   )rS   r   r   s      rL   r   z1BuiltinVariable._binop_handlers.<locals>.<lambda>  s%    a)=17)=QW)=!>!> rN   c                     |j         r|                    |           sd S |                    |           }| j        j                            |           |j                            |           |S rQ   )r   has_unpack_var_sequencer   r   side_effectsmutationr   extend)r   r   r   seqs       rL   list_iadd_handlerz:BuiltinVariable._binop_handlers.<locals>.list_iadd_handler  sk    ? !*C*CB*G*G t''++CI"++A...GNN3HrN   c                     t          |t                    r||}}|                    |j        |                                z  t                                S )N)r   r   )rR   r,   	__class__r   as_python_constantr)   )r   lstconsts      rL   expand_list_likez9BuiltinVariable._binop_handlers.<locals>.expand_list_like  sV    #/00 ("CU==i%":":"<"<<*nn !   rN   c                 n  
  d fd}t           t           f|fg}                                 v r  t                      d            j                            d          rdfd}|}|}ndddt           ffd}dddt           ffd	}t
          t          t          t          f}|	                    |t           f|ft           |f|fg           d fd
}d fd}d fd}	d fd}
 j                            d          r|}n|
}t                     }|	                    t          ft          ff fdff fdff|ft          j        t          j        f|ff|	ff|ff|ft          t          t           ft          t          t           ff|ft
          t          f|j        ft          t
          f|j        ft          t          f|j        ft          t          f|j        fg            j                            d          r)d fd}|                    t          t          f|f           |S )Nr   rB   c                 J    t           |j        |j                            S rQ   )r,   rK   r   r   r   ops      rL   compare_by_valuezYBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.compare_by_value  s!    '17AG(<(<===rN   is_c                 "    t                    S rQ   r+   r   r   r   none_results      rL   neverzNBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.never  s    /<<<rN   r   c                 X    |j         |j         du s	|j         du rt                    S d S NTFrK   r,   r   s      rL   obj_op_nonezTBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.obj_op_none  :     7?agooEAQAQ#3K#@#@@ BRAQrN   r   c                 X    |j         |j         du s	|j         du rt                    S d S r  r  r   s      rL   none_op_objzTBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.none_op_obj  r  rN   c                 2    t          j        | ||          S rQ   )r5   list_comparer   leftrightr   s      rL   list_compare_nocheckz]BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.list_compare_nocheck  s    '4RT5IIIrN   c                     t          |          t          |          urt          j         d| d| d           t          j        | ||          S )N(, ))rS   r   __name__r5   r  r  s      rL   list_compare_checkz[BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.list_compare_check  sg    ::T& &   "R["C"C4"C"C5"C"C"CDDD'4RT5IIIrN   c                 J    t           |j        |j                            S rQ   )r,   	set_itemsr  s      rL   compare_set_itemszZBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.compare_set_items	  s!    '4>5?(K(KLLLrN   c                 H    |                     | dj         d|gi           S )N__)r   r  r  s      rL   compare_via_methodz[BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.compare_via_method  s-    '',@,@,@,@5'2NNNrN   c                 J    t           |j        |j                            S rQ   )r,   rE   r   s      rL   r   zQBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.<lambda>  s    )9""QT14..)I)I rN   c                     t           | j                            |j                  | j                            |j                                      S rQ   )r,   r   get_submodule
module_keyr   s      rL   r   zQBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.<lambda>#  sK    )9B "	 7 7 E E "	 7 7 E E * * rN   c                 ~    t          |          t          |          urt          j        j        dk              S d S )Nr   )rS   r,   creater  r  s      rL   	handle_iszRBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handle_isT  s<     Dzze44/6r{e7KLLL 54rN   r   rB   )r,   r   objectr  
startswithr>   r=   r5   r/   r   rD   r   r.   r-   r*   _comparison_with_tensor_comparison_with_symnodeappend)r   r   resultr  r  r	  types_that_are_never_noner  r  r  r  compare_user_definedop_varr"  r  r   r   r   r   r@   rA   r   has_set_itemssize_or_tupler   s   `             @rL   create_cmp_op_handlersz?BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers  s   > > > > > > )*:;=MNOF3::<<<< b400;))%00 A= = = = = = #(K"'KKA3A;KA A A A A AA3A8HA A A A A A ##$$',%%	-)  78HI'
 ./HI'	  J J J J J JJ J J J J JM M M M M MO O O O O O {%%e,, :'7$$'9$$R((FMM 2?C1?C JIII -,    $]35IJ"3Y5OP* $]35FG24MN,
 23KL, ,]<LM+]<LM ) (96
 ).96
 )/:7
 )/:7k9; ; ;z {%%e,, OM M M M M M A9MNNNMrN   r#  )$dictsr   r4   	functionsr   r   	nn_moduler   r   r   torchr   user_definedr   r@   rA   rD   r   r   r(  r*   r=   r8   r:   r,   r7   r5   r6   rn   ry   r   r   rt   r<   r   r^   )r   r4   op_handlersr   magic_method_namesin_place_opr   r   inplace_namer   r   r   r   r   list_like_addition_handlersr   list_like_iadd_handlersr   list_like_expansion_handlersr/  r   r   r   r   r@   rA   r   r-  r.  r   s                       @@@@@@@@@@rL   _binop_handlerszBuiltinVariable._binop_handlers  s|    	10000000MMMMMMMM//////::::::,,,,,,	
 	
 	
 	
 	
 	
 	
 	
 	
 	
  $$&&,,..P	 P	 
- KO')K$7I4L, *)D D D D D D D6 O""%79MN   O""!#679MN  
 DP@ @+@ @ @ @
 $++%79UV   $++!#679UV  
 JL       O""!?3_E   O""!?3_E  
 $++!?3_E   $++!?3_E   	I 	I 	I 	I	H 	H 	H 	H |, 
 .!
  01!
 "=1  !%'79MN  "#34>>?#'
#H 	HL!(()DEEE	 	 	 	 /!
 .!
  01!#
 	HM"))*ABBB	 	 	 	 ,-/?@-.0@A-/?@.0@A	(
$ 	HL!(()EFFF%}5$h/R	 R	 R	 R	 R	 R	 R	 R	 R	 R	 R	 R	 R	 R	h +133 	9 	9BB<<[((((44R88KOOrN   c                     t                                                               |           }|d S g }|D ]=\  \  }}}t          ||          r%t          ||          r|                    |           >|S rQ   )rD   r<  get
issubclassr(  )r   a_typeb_typehandlersmatchestype1type2handlers           rL   _find_binop_handlerz#BuiltinVariable._find_binop_handlere  s    "224488<<4'/ 	( 	(#NUEG&%(( (Z-F-F (w'''rN   c                 8    | j         |                                 v S rQ   )rE   r   r   s    rL   can_insert_in_graphz#BuiltinVariable.can_insert_in_graphq  s    w$224444rN   returnc                 H     t                      j        di | || _        d S )N )super__init__rE   )r   rE   kwargsr   s      rL   rN  zBuiltinVariable.__init__t  s+    ""6"""rN   c                 R    | j         d}n| j         j        }| j        j         d| dS )NNoner  r  )rE   r  r   )r   names     rL   __str__zBuiltinVariable.__str__x  s6    7?DD7#D.)33D3333rN   c                     | j         S rQ   r   r   s    rL   r   z"BuiltinVariable.as_python_constant  s	    wrN   c                     t           t          j         t          t          j        t          t          j        i}| j        |v r|| j                 S t                                                      S rQ   )	r]   r3  rc   int64ra   float64rE   rM  as_proxy)r   DTYPEr   s     rL   rX  zBuiltinVariable.as_proxy  sP    %*5=

 7e>!ww!!!rN   c                     | j         j        }| j         j        dk    sJ ||j        j        vs
J d            |                    |                    |dd                     d S )Nbuiltinszshadowed globalFT)ry   )rE   r  
__module__r   	f_globalsappend_outputcreate_load_global)r   codegenrR  s      rL   reconstructzBuiltinVariable.reconstruct  sp    ww!Z////7:////1B///g88u$8OOPPPPPrN   c                 "    t          ||          S rQ   )r   r   argsrO  s      rL   constant_argszBuiltinVariable.constant_args  s    "4000rN   c                     d}|D ];}t          |t          j                  r dS |pt          |t          j                  }<|S NF)rR   r   GetAttrVariabler>   )r   rd  
any_tensorargs       rL   tensor_argszBuiltinVariable.tensor_args  sS    
 	Q 	QC#y899 uu#Pz#y7O'P'PJJrN   c                     d}|D ];}t          |t          j                  r dS |pt          |t          j                  }<|S rg  )r?  r   rh  r>   )r   	arg_typesri  arg_types       rL   tensor_args_typez BuiltinVariable.tensor_args_type  sS    
! 	V 	VH(I$=>> uu#Uz(I<T'U'UJJrN   c                 .   g }g }t          j        ||                                          D ]G}t          |t          j                  r|                    |           2|                    |           Ht          d |D                       o	 | j        | S )Nc              3   P   K   | ]!}|j         t          |j                   ndV  "d S rg  )rG   r   )rW   ts     rL   rY   zBBuiltinVariable.python_and_tensor_constant_only.<locals>.<genexpr>  sM       
 
 -.H,@qx(((e
 
 
 
 
 
rN   )		itertoolschainr   rR   r   r>   r(  r[   re  )r   rd  rO  rk  non_tensor_argsis         rL   python_and_tensor_constant_onlyz/BuiltinVariable.python_and_tensor_constant_only  s    v}}77 	* 	*A!Y566 *""1%%%%&&q)))) 
 
 
 
 
 
 
 3 !d /2	3rN   c                 V    d | D             d |                                 D             fS )Nc                 6    g | ]}|                                 S rL  r   rV   s     rL   
<listcomp>z=BuiltinVariable.unwrap_unspec_args_kwargs.<locals>.<listcomp>  s$    5551$$&&555rN   c                 >    i | ]\  }}||                                 S rL  rz  rW   kvs      rL   
<dictcomp>z=BuiltinVariable.unwrap_unspec_args_kwargs.<locals>.<dictcomp>  s7     8
 8
 8
*.!QAq##%%8
 8
 8
rN   )r   )rd  rO  s     rL   unwrap_unspec_args_kwargsz)BuiltinVariable.unwrap_unspec_args_kwargs  sA    55555 8
 8
28,,..8
 8
 8
 
 	
rN   c                 J    |                                  ot          ||          S rQ   )r   r   rc  s      rL   has_constant_handlerz$BuiltinVariable.has_constant_handler  s-    --// 
4Q&5
 5
 	
rN   rm  
has_kwargsc                    	
 ddl m} ddlm	 t	                     g t          	fd|D                       rfdS t          j                   rt           t                    r
	 	 d fd}|S 
                                rf t          j        u r t          |d	         t          j                  r8                    |          rj        S |r                    j                   t%          |          d
k    rb|s`t	          j         g|R  snKt%                    dk    r\  
                    
fd           ndfd}                    |           t)          d j         d           rdfd}                    |                                           rF|j        t1          d |D                       r
|sd fd}nd fd}                    |           d j         d| d| t%                    d	k    rfdS t%                    dk    r\  dfd}ndfd}|S )Nr(   SourcelessBuilder)LazyVariableTrackerc              3   8   K   | ]}t          |          V  d S rQ   )r?  )rW   rr  r  s     rL   rY   z0BuiltinVariable._make_handler.<locals>.<genexpr>  s.      EEaz!011EEEEEErN   c                 F                         | d |D             |          S )Nc                 6    g | ]}|                                 S rL  realizerW   r  s     rL   r{  zCBuiltinVariable._make_handler.<locals>.<lambda>.<locals>.<listcomp>  s     ///QQYY[[///rN   )r   )r   rd  rO  objs      rL   r   z/BuiltinVariable._make_handler.<locals>.<lambda>  s-    C,=,=//$///- - rN   r   rB   c                     t           u r(t          d |D                       st          d           t          j        |fi |S )Nc              3   ~   K   | ]8}t          |t          j                  ot          |j        t                    V  9d S rQ   )rR   r   r,   rK   rk   rV   s     rL   rY   zWBuiltinVariable._make_handler.<locals>.create_exception_class_object.<locals>.<genexpr>  sY       4 4  q)"<== 1"17C004 4 4 4 4 4rN   zassert with non-string message)AssertionErrorr[   r   r   ExceptionVariable)r   rd  rO  rE   s      rL   create_exception_class_objectzDBuiltinVariable._make_handler.<locals>.create_exception_class_object  si     '' 4 4 "4 4 4 1 1'
 ""BCCC 22tFFvFFFrN   r   r   c                      | g|R  S rQ   rL  )r   rd  _binop_handlers      rL   r   z/BuiltinVariable._make_handler.<locals>.<lambda>  s    MM"4Lt4L4L4L rN   c                 0    D ]} || g|R  }|r|c S d S rQ   rL  )r   rd  r  rE   rvbinop_handlerss        rL   call_binop_handlersz:BuiltinVariable._make_handler.<locals>.call_binop_handlers  sE    , & &R]T]]] &#%III&& &rN   call_c           
         	  | g|R i |}||S d S # t           $ r 	  t          j                  j        | g|R i |  # t           $ r_}                    ||          }|s;t
                              d|           t          d d| d|            Y d }~Y d S Y d }~Y d S d }~ww xY wt          $ r8}                    ||          }|s |	                                 Y d }~d S d }~ww xY w)Nz1incorrect arg count %s %s and no constant handlerzinvalid handler args  )
	TypeErrorinspect	signaturebindr  logwarningr   r   remove_from_stats)	r   rd  rO  r)  er  excr  self_handlers	          rL   call_self_handlerz8BuiltinVariable._make_handler.<locals>.call_self_handler  s   ,)\">t>>>v>>F)% *)    <),77<RQ$QQQ&QQQ  % 
 
 
/2/G/Gf/U/U,3 KK S , !  
 * V V Vt V Vf V V               
 # , , ,+.+C+CD&+Q+Q(/ ))+++++++++,sE    
C1#AC1
B-AB(C1!C1(B--C19-C,,C1c              3   @   K   | ]}t          |t                    V  d S rQ   )r?  r,   rV   s     rL   rY   z0BuiltinVariable._make_handler.<locals>.<genexpr>   s-      GGJq"233GGGGGGrN   c                     	  d |D              }n6# t           $ r)}t          dt          |                      Y d }~nd }~ww xY w | |          S )Nc                 6    g | ]}|                                 S rL  rz  rV   s     rL   r{  zPBuiltinVariable._make_handler.<locals>.constant_fold_handler.<locals>.<listcomp>(  s$    CCCa2244CCCrN   constant fold exception: )	Exceptionr   ri   r   rd  rO  resr  r   rE   s        rL   constant_fold_handlerz<BuiltinVariable._make_handler.<locals>.constant_fold_handler$  s    O bCCdCCC % O O O%&M$s))&M&MNNNNNNNNO"72s+++s    
AAAc                    t          ||          rr	  d |D             i d |                                D             }n6# t          $ r)}t          dt	          |                      Y d }~nd }~ww xY w | |          S d S )Nc                 6    g | ]}|                                 S rL  rz  rV   s     rL   r{  zPBuiltinVariable._make_handler.<locals>.constant_fold_handler.<locals>.<listcomp>5  s$    !G!G!GQ!"6"6"8"8!G!G!GrN   c                 >    i | ]\  }}||                                 S rL  rz  r}  s      rL   r  zPBuiltinVariable._make_handler.<locals>.constant_fold_handler.<locals>.<dictcomp>6  s7     #" #" #"BF!QAq';';'='=#" #" #"rN   r  )r   r   r  r   ri   r  s        rL   r  z<BuiltinVariable._make_handler.<locals>.constant_fold_handler0  s    4T6BB 
0S"$"!G!G$!G!G!G##" #"JP,,..#" #" #"# #CC  ) S S S)*Qd3ii*Q*QRRRRRRRRS&wr3///
0 
0s   .A 
A5A00A5z	builtin: r  c                  "    t                    S rQ   r   )rd  	error_msgs    rL   r   z/BuiltinVariable._make_handler.<locals>.<lambda>B  s    y!9!9 rN   c                 H     | ||          }|r|S t                     d S rQ   r  )r   rd  rO  r  r  rF  s       rL   builtin_dispatchz7BuiltinVariable._make_handler.<locals>.builtin_dispatchF  s7    WRv.. Ii(((((rN   c                 V    D ]} || ||          }|r|c S t                     d S rQ   r  )r   rd  rO  rE   r  r  rB  s        rL   r  z7BuiltinVariable._make_handler.<locals>.builtin_dispatchN  sO    " " "BBf--B "!			"i(((((rN   r#  )r   r  lazyr  rD   r\   r  isclassr?  r  rI  rn   r{   r   r>   ro  _handle_insert_op_in_graphr(  rd   rG  rb   r  r   r!  r[   )rE   rm  r  r  r  r  r  r  r  r  r  r  r   r  rF  rB  r  r  s   `        @@@@@@@@@rL   _make_handlerzBuiltinVariable._make_handler  s   ......------b!!EEEE9EEEEE 	     ?2 	1:b)#<#< 	1
G+
G 
G 
G 
G 
G 
G 10""$$ 	@("""y|Y-EFF # ##I.. @55 @ >??? y>>Qz,@PiPPPN! 5^$$))#1  L L L LMMMM& & & & & &  3444s$9BK$9$94@@  	/, , , , , , ,< OO-...((** "	3'.G GGYGGGGG0"0
, , , , , , , ,0 0 0 0 0 0 0 OO1222FFFiFF*FF	x==A99999]]a!JW) ) ) ) ) ) ) )) ) ) ) ) ) )  rN   r   rB   c           	      
   ddl m}m} |r# | j        g ||                                R  sd S | j        }	  | j        |i |r)ddlm} ddl	m
}  ||| ||j                  ||          S |t          v r=t          |d         t          j                  rt          |         |d         |d         g}}|t           j        u rUt          |d         t$                    r:t&          j        |d         t          j                            d          |d         g}}t-          ||          r_t/          d |D                       sF |j        j        dt5          |          gt7          ||          R  }	 |t          j        ||	          S  |j        j        d|gt7          ||          R  }	t/          d	 |D                       r |t:          ||	          S t=          ||          rt|                     ||          \  }
} ||
i |}t/          d
 tA          j!        ||                                          D                       } |tD          ||	||          S tG          d |D                       rt%          j        ||	d           S |t           j$        u r>t          |d         t          j"                  r|d         %                    |          |d<    |||	          S # tL          $ r tO          d|  d| d|            Y d S w xY w)Nr(   )r   wrap_fx_proxy_clsr   )	unique_id)invoke_and_store_as_constantr   c              3   P   K   | ]!}t          |          t          j        k    V  "d S rQ   )rS   r   r>   rW   rj  s     rL   rY   z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>  sI       B B:=S		Y55B B B B B BrN   r   c              3   @   K   | ]}t          |t                    V  d S rQ   rR   r;   r  s     rL   rY   z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>  s-      EE:c#344EEEEEErN   c              3   X   K   | ]%}t          |t          j                  |j        V  &d S rQ   rR   r   r?   need_unwraprV   s     rL   rY   z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>  K       " "!!Y%JKK"M" " " " " "rN   )	raw_valuer  c              3   @   K   | ]}t          |t                    V  d S rQ   rR   r=   rV   s     rL   rY   z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>  s,      BBZ?33BBBBBBrN   zpartial tensor op: r  )(r   r   r  rk  r   rE   rw  bytecode_transformationr  r1  r  r  IN_PLACE_DESUGARING_MAPrR   r   r,   rn   r{   r=   r3  selectr!  r   r\   r   r   r%   r&   NumpyNdarrayVariabler;   r   r  rs  rt  r?   r[   rw   convert_to_constantNotImplementedErrorr   )r   r   rd  rO  r   r  rE   r  r  proxy_args_kwargsr  r  s                 rL   r  z*BuiltinVariable._handle_insert_op_in_graphW  s   ======== 	*$*CDC6==??CCC 	FWT	H3t3TDVDD ??????CCCCCC33IIbk22D&   ,,,Q32 2, 326a$q'8JDX%%%*T!Wo*N*N% !<G.55a88G*D (f55 	Tc B BAEB B B ? ? 	T /	.#*2.. 'tV44   )()GUSSS*BI* #400  E
 EEEEEEE  0(($  
 *$77 0!%!?!?f!M!MwB111	! " "&_T6==??CC" " "   )(/' +    BBTBBBBB 	0&-b%>>> )))jGYB/ /) #1g99"==DG$}R///" 	H 	H 	HFFFtFFfFFGGGGGG	Hs3   5K ,DK AK BK .K AK "LLrd  List[VariableTracker]rO  Dict[str, VariableTracker]r*   c                 h   |r6d |                                 D             }| j        gd |D             dR }n| j        gd |D             R }| j                            |          }|s=|                     | j        d |D             t          |                    x| j        |<   } ||||          S )Nc                 >    i | ]\  }}||                                 S rL  r  r}  s      rL   r  z1BuiltinVariable.call_function.<locals>.<dictcomp>  s&    @@@Aa@@@rN   c              3   4   K   | ]}t          |          V  d S rQ   rS   rV   s     rL   rY   z0BuiltinVariable.call_function.<locals>.<genexpr>  (      44!d1gg444444rN   Tc              3   4   K   | ]}t          |          V  d S rQ   r  rV   s     rL   rY   z0BuiltinVariable.call_function.<locals>.<genexpr>  r  rN   c                 ,    g | ]}t          |          S rL  r  rV   s     rL   r{  z1BuiltinVariable.call_function.<locals>.<listcomp>  s    000a$q''000rN   )r   rE   call_function_handler_cacher>  r  r]   )r   r   rd  rO  keyrF  s         rL   r   zBuiltinVariable.call_function  s      	6@@@@@F7;44t444;d;;CC7544t44455C266s;; 	>B>P>P004000$v,,? ? D,S1G wr4(((rN   c                    | j         t          u r|dk    rt          |          dk    sJ t          |          dk    sJ |\  }}}|                                }t	          |t
                    rJ|j        j                            |          r+|	                                r|
                    |||          S | j         t          u rU|dk    rOt          |          dk    sJ t          |          dk    sJ |j        j                            |d                   S | j         t          u r!|dk    rt          j        |t          g|R i |S t                                          ||||          S )N__setattr__   r   __new__r(   fromkeys)rE   r$  rd   r  rR   r@   r   r   is_attribute_mutationis_python_constantmethod_setattr_standard(track_object_new_from_user_defined_classdictrD   call_custom_dict_fromkeysrM  r   )	r   r   rR  rd  rO  r  name_varvalr   s	           rL   r   zBuiltinVariable.call_method  s~    7f!6!6t99>>>>v;;!####!%C3++--C3 9::FI*@@EEF //11F
 222xEEE7f!2!2t99>>>>v;;!####9)RRQ   7d??tz11"<RWWWWPVWWWww""2tT6:::rN   c           	      l   t          |t          t          j        f          rt          |t          j                  r|                    |dg i           }n|}| j        t          u rt          nt          }ddl	m
}  |||j                            d||                                fi                     S d S )Nitemr   r   r   r   r  )rR   r=   r   r>   r   rE   rc   r
   r	   torch._dynamo.variables.builderr   r   r   rX  )r   r   rj  r  fn_r   s         rL   _call_int_floatzBuiltinVariable._call_int_float  s     cOY-EFGG 	#y788 r62r::!W^^''CEEEEEE =i,,#]]__&	    	 	rN   c                 r   t          |t          j                  r2t          j                            t          |j                            S t          |t          j                  rOt          |j	        d          r|j	        j
        }n1t          |j	        d          r|j	        j        }nt          d           t          |j	                  j
        t          j
        u r:	 t          j                             |                      S # t          $ r Y d S w xY wt!          |          r&t          t          |j	                   d           d S |j        }	 t          j        |          }n3# t$          $ r&}t&                              d|           Y d }~d S d }~ww xY w|                    ||gi           S d S )NrK   rS  __repr__z5user defined object has no __str__ or __repr__ methodz has a C/C++ based str methodz)Failed to create UserFunctionVariable: %s)rR   r   r   r,   r!  rk   rE   r@   hasattrrK   rS  r  r   rS   r$  AttributeErrorr#   __func__r  r  r  inline_user_function_return)r   r   rj  
str_methodbound_methoduser_func_variabler  s          rL   call_strzBuiltinVariable.call_str  s   cI:<< #	U-443sv;;4GGGiACC !	Usy),, W Y.

J// W Y/

UVVVCI&&.88$5<<::<<<PPP%   FF 1<< UciOOOPPPPP  *2)2)G)U)U&&%   KK KQOOOFFFFF 556H3%QSTTTC!	U !	Us*   !'D	 	
DDE, ,
F6FFc                    t          |          dk    rL|d                             |          r1|d                             |          }|                     ||          S t          |          dk    r#|                     ||d         |d                   S t          |          dk    r|                     ||          S d S )Nr(   r   r   )rd   has_force_unpack_var_sequenceforce_unpack_var_sequence_call_min_max_seq_call_min_max_binary)r   r   rd  r   s       rL   _call_min_maxzBuiltinVariable._call_min_max$  s    t99>>d1gCCBGG>G55b99E))"e444YY!^^,,Ra$q'BBBYY]]))"d333 ]rN   c                     t          |          dk    sJ t          |          dk    r|d         S t          j        t          j        | j        |          |          S Nr   r(   )rd   	functoolsreducepartialr  )r   r   r   s      rL   r  z!BuiltinVariable._call_min_max_seq-  sQ    5zzA~~~~u::??8O	 1$2KR P PRWXXXrN   c                    ||d S |                      ||          r>t          |t          j                  s||}}t          |t          j                  sJ t          |t                    r4t          j        t          j                                      ||gi           }t          |t                    st          |t                    rHddl
m}  |t          |          | |j        j        d| j        gt!          ||gi           R            S |                                rt          |t          j                  rdd l}t          j        |j                  }nt          j        t          j                  }| j        t.          u rd|ind|i}|                    ||g|          }nt          |t          j                  r>dd l}t.          |j        t2          |j        i| j                 }t          j        |          }nCt.          t          j        t2          t          j        i| j                 }t          j        |          }|                    |||gi           }t7          d ||fD                       rt9          d	 ||fD                       rt          j                            |          S |                                r|                                }	n|j        }	| j        t.          u rt/          |j        |	          }
nt3          |j        |	          }
t9          d
 ||fD                       }t          j                             ||
|          S |S t          |t                    st          |t                    r`| j        t.          u rt          j!        nt          j"        } |j        j        d|gt!          ||gi           R  }t          j#        ||d           S d S )Nr(   r  r   r  r   rf   re   c              3   b   K   | ]*}t          |t          j        t          j        f          V  +d S rQ   )rR   r   r?   r,   )rW   rv  s     rL   rY   z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>h  sV       	 	  !=!2 	 	 	 	 	 	rN   c              3   @   K   | ]}t          |t                    V  d S rQ   r  )rW   r  s     rL   rY   z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>r  s-      KKSz#'788KKKKKKrN   c              3   X   K   | ]%}t          |t          j                  |j        V  &d S rQ   r  rV   s     rL   rY   z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>~  r  rN   )$rk  rR   r   r>   r;   TorchInGraphFunctionVariabler3  r   r   r=   r   r  rS   r   r   rE   r&   r  r  numpyNumpyVariableclipclampre   maximumrf   minimumr[   r\   from_tensor_variabler   r  r?   sym_maxsym_minr!  )r   r   r   r   r  nprE   rO  r)  raw_braw_resr  r  s                rL   r  z$BuiltinVariable._call_min_max_binary4  s   9	 FAq!! U	;a!9:: !1a!9::::: !-.. :5<HHVVR 
 !_-- A1O1O 666666((GG0")0' +Aq6266      ##%% :a!?@@ M&&&&"099BB"?LLB(,3%eQZ))"qc6::a!?@@ D&&&&rz3
;DGDB"044BBu}c5=A$'JB"?CCB))"q!fb99  	 	 Q	 	 	 	 	   KKQFKKKKK S$5JJ6RRR'')) (0022EEKE7c>>!!+u55GG!!+u55G! " "V" " "  
 !<QQG[  
 ?++ 	;z!_/M/M 	;"&'S..emB*BI*&7A&C&C  E #)"eT:::	; 	;rN   rj  c                     t          t                                        ||t          j        d          gi           }|                    |g i           S )N__abs__rD   rb   r   r,   r!  )r   r   rj  
abs_methods       rL   call_abszBuiltinVariable.call_abs  Q    $W--;;&-i8892
 

 ''B333rN   c                     t          t                                        ||t          j        d          gi           }|                    |g i           S )N__pos__r  )r   r   rj  
pos_methods       rL   call_poszBuiltinVariable.call_pos  r"  rN   c                     t          |t          j                  rt          d           t	          |          }t          j        |          }t          j                            |          S )Nzunsupported index(tensor))	rR   r   r>   r   r"   rn   r   r,   r!  )r   r   rj  constant_values       rL   
call_indexzBuiltinVariable.call_index  sY    c9344 	756663!,,)00@@@rN   c                     t          t                                        ||t          j        d          gi           }|                    |||          S )N	__round__r  )r   r   rj  rd  rO  round_methods         rL   
call_roundzBuiltinVariable.call_round  sQ    &w//==&-k::;R
 
 ))"dF;;;rN   c                     t          |i           rt          j        |          S  | j        | r d |D             }t          j        |          S d S )Nc                 f    g | ].}t           j                            t          |                    /S rL  )r   r,   r!  r"   r  s     rL   r{  z.BuiltinVariable.call_range.<locals>.<listcomp>  s>       IL	*11,s2C2CDD  rN   )r   r   RangeVariable_dynamic_argsr   r   rd  s      rL   
call_rangezBuiltinVariable.call_range  sm    (r22 	1*4000T& 	1 PT  D *4000trN   c                     t          d |D                       p*t          d |                                D                       S )Nc              3   @   K   | ]}t          |t                    V  d S rQ   r  rV   s     rL   rY   z0BuiltinVariable._dynamic_args.<locals>.<genexpr>  s,      @@a:a11@@@@@@rN   c              3   @   K   | ]}t          |t                    V  d S rQ   r  rV   s     rL   rY   z0BuiltinVariable._dynamic_args.<locals>.<genexpr>  sE       H
 H
/0Jq/**H
 H
 H
 H
 H
 H
rN   )r\   r   rc  s      rL   r1  zBuiltinVariable._dynamic_args  s]    @@4@@@@@ 
C H
 H
4:MMOOH
 H
 H
 E
 E
 	
rN   c                 *    t          j        |          S rQ   )r   SliceVariabler2  s      rL   
call_slicezBuiltinVariable.call_slice  s    &t,,,rN   c           
      p    ddl m}  || |j        j        d| j        gt          ||          R            S r   )r   r   r   r   rE   r&   )r   r   rd  rO  r   s        rL   
_dyn_proxyzBuiltinVariable._dyn_proxy  s]    ******}"BI"+<T6+J+J  
 
 	
rN   c                    t          |t          j                  rJ  | j        |i |r | j        |g|R i |S t          j                            | j                  }| |g t                                S |	                    |          r=|j
        rt          |j
                  st          |t                    r2t          |j
                            t          j                             nt#          |dd          r`t          |t$                    rKt'          |t(                    s6|j        j                            |j
                                                   t          |j
                            t          j                              |t5          |                    |                    t                                S d S )Nr   rG   F)rR   r   IteratorVariabler1  r;  r5   cls_forrE   r)   r   rG   r   r9   r   rH   r   TUPLE_ITERATOR_LENrb   r/   r$   r4   r   guard_on_key_orderry   rR  SEQUENCE_LENGTHlistr   r   r   r  rd  rO  rJ   s         rL   _call_iter_tuple_listz%BuiltinVariable._call_iter_tuple_list  s    c9#=>>>>>4t.v.. 	8"4?27777777(0099;3*nn    ((,, 	z W"4SZ"@"@ Wc#899 W!
--l.MNN   
  Xu55L&s,=>>L !'sK 8 8L
 	4889J9JKKK!#*"7"78T"U"UVVV3S,,R0011*nn   !	 	rN   c                    t          |t          j                  r]t          j                            | j                  } |t          |                    |                    t                                S  | j	        ||g|R i |S r   )
rR   r   r=  r5   r>  rE   rB  r  r)   rD  rC  s         rL   _call_tuple_listz BuiltinVariable._call_tuple_list  s    c9566 	H,44TW==C3S2226677*nn   
 .4-b#GGGGGGGrN   c                     t          |t          j                  r|}n | j        ||g|R i |}||                    |d||          S |S )N__iter__)rR   r   r=  rD  r   )r   r   r  rd  rO  rets         rL   	call_iterzBuiltinVariable.call_iter  si    c9566 	GCC -$,RFtFFFvFFC; ??2z4@@@
rN   c           	         ddl m} ddlm} t	          |t
          j        ||f          rt
          j                            d          S t	          |t                    r1t
          j                            t          |j                            S t	          |t          t          t          t          t          t           f          rt
          j                            d          S d S )Nr(   )r   r   TF)r1  r   r2  r   rR   r   r   r,   r!  rA   r^   rK   r=   r>   r7   r:   r6   )r   r   rj  r   r   s        rL   call_callablezBuiltinVariable.call_callable  s    777777//////2( 
 
 	< -44T:::011 	<-44Xci5H5HIII $

 

 	< -44U;;;	< 	<rN   c                 f    t          |          dk    r|d         S t          d| d|            d S )Nr   r(   z$unsupported args to builtin cast(): r  )rd   r   )r   r  rd  rO  s       rL   	call_castzBuiltinVariable.call_cast(  s?    t99>>7NLTLLFLLMMMMMrN   c                 8    t          j        |t          g|R i |S rQ   )rD   call_custom_dictr  r   r   rd  rO  s       rL   	call_dictzBuiltinVariable.call_dict.  s%    /DJ4JJJ6JJJrN   c                     ddl m} |s^|si f}t          |          dk    sJ |d         }t          |t                    rt          ||t                                S t          |t          j                  r#|                    |t                                S t          |t          t          t          t          j        f          rLt	           fd|                               D                       }t          ||t                                S t          |t          j                  r7t          t!          |j                            rx j        j                            |          rt+          |j         d| d| d	           t	          |j                                                  }|                     |          S |                     d
          }t          |t          j                  st+          |j         d| d|                                 |||          }	t          |	t
                    r|	S t9          |                               ||	          S nE|sC|rAd |                                D             }t          j        ||t                                S t+          |j         d| d|            d S )Nr(   r  r   r   )user_clsr   c              3   B   K   | ]}|                               V  d S rQ   )r  )rW   rX   r   s     rL   rY   z3BuiltinVariable.call_custom_dict.<locals>.<genexpr>G  sE         //33     rN   z
.items(): r  z - object is mutatedr   c                 >    i | ]\  }}t          j        |          |S rL  r,   r!  r}  s      rL   r  z4BuiltinVariable.call_custom_dict.<locals>.<dictcomp>c  s*    NNNtq!%,Q//NNNrN   z(): )r   r  rd   rR   r  r/   r)   r   cloner7   r:   r6   r=  r  MutableMappingVariabler   rS   rK   r   r   has_pending_mutationr   r  r   r!  var_getattrr   r  rD   rP  )
r   rT  rd  rO  r  rj  r   new_dictfunc_varouts
   `         rL   rP  z BuiltinVariable.call_custom_dict1  s   ...... 1	 ut99>>>>q'C#t$$ 'Y(hlnnUUUUC!<== %Yyy(,..yQQQ !(.	  #Y      ::2>>     )WWWWC!ABB Y 7tCIGG Y y-BB3GG %'0__D__6___    $CIOO$5$566H,33BAAA"r7;;H%h	0NOO W%):&U&Ud&U&UV&U&UVVV884PPC!#'899 #"
*844EEb(TWXXX+Y,  	& 	NNv||~~NNNE.    	*????v??@@@@@rN   c                    |t           t          t          hv sJ |rQ|t          u sJ t          |          dk    rt          |          dk    rd|v sJ g ||                    d          R }t          |          dk    rt          t          d          t          |          dk    rg |t          j        d           R }t          |          dk    sJ |\  }}|t          urt          nt          }t          |t                     rQd |                                D             } |t                               ||          |t                                S |                    |           ra|                    |           }t#          d |D                       r3 |t                               ||          |t                                S t%          |j         d	| d
|            d S )Nr(   rK   r   z,fromkeys expected at least 1 argument, got 0r   c                 6    g | ]}t          j        |          S rL  rW  )rW   r~  s     rL   r{  z=BuiltinVariable.call_custom_dict_fromkeys.<locals>.<listcomp>~  s$    BBB!#*1--BBBrN   r   c              3   4   K   | ]}t          |          V  d S rQ   )r3   r  s     rL   rY   z<BuiltinVariable.call_custom_dict_fromkeys.<locals>.<genexpr>  s(      00a;q>>000000rN   z.fromkeys(): r  )r  r   r   rd   popr   r  r,   r!  r/   r0   rR   keysr  r)   r  r  r[   r   r  )r   rT  rd  rO  rj  rK   DictVariableTyperc  s           rL   r  z)BuiltinVariable.call_custom_dict_fromkeysi  s    D+{;;;;; 	0{****t99>>c&kkQ&6&67f;L;L;L;L/T/6::g..//Dt99>>I'UVVVt99>>9T9+248899D4yyA~~~~
U!)!<!<BU 	 c4   
	BBsxxzzBBBC##c5))8<>>    ..r22 	0044D00400000 ''MM$..    	*HHHHHHIIIIIrN   c                 X   |rJ |st          g t                                S t          |          dk    sJ |d         }t          |t          j                   r"|                    t                                S |                    |          r2|                    |          }t          |t                                S t          |t          j                  rt          |j	        t                    r|                    |d          }t          |t          j                  rV|                    |||          }t          |t                     r|S t          t                                        ||          S t#          d| d|            d S t#          d| d|            d S )Nr   r(   r   rH  zset(): r  )r4   r)   rd   rR   r   rX  r  r  r@   rK   r   r[  UserMethodVariabler  rD   setcall_setr   )r   r   rd  rO  rj  r   iter_fnr^  s           rL   rh  zBuiltinVariable.call_set  s    	Ar@@@@4yyA~~~~1gc9011 	599<>>9:::..r22 	511"55EuLNNCCCCY@AA 	5jIxG
 G
 	5 oob*55G'9#?@@ 944WdFKKc;// J&s++44R===777v77888883D3363344444rN   c                 v   |rJ |st          g           S t          |          dk    sJ |d         }t          |t          j                   rt          d |j        D                       S |                    |          r$|                    |          }t          |          S t          d| d|            d S )Nr(   r   c                     g | ]	}|j         
S rL  )vtrV   s     rL   r{  z2BuiltinVariable.call_frozenset.<locals>.<listcomp>  s    %B%B%Bqad%B%B%BrN   zfrozenset(): r  )r2   rd   rR   r   r  r   r   r   )r   r   rd  rO  rj  r   s         rL   call_frozensetzBuiltinVariable.call_frozenset  s     	)$R(((4yyA~~~~1gc9677 	;$%B%BCM%B%B%BCCC((,, 	;++B//E$U+++9$9999:::::rN   c                     |rt          |          dk    rd|v sJ |                    dd          }fd|D             }t          j        ||t	                                S )Nr(   strictFc                 h    g | ].}|                               r|                              n|/S rL  r   r   )rW   rj  r   s     rL   r{  z,BuiltinVariable.call_zip.<locals>.<listcomp>  P     
 
 
 ,/+F+Fr+J+JSC##B'''PS
 
 
rN   )ro  r   )rd   rb  r   ZipVariabler)   )r   r   rd  rO  ro  s    `   rL   call_zipzBuiltinVariable.call_zip  s     	;v;;!##F(:(:(:(:He,,
 
 
 

 
 
 $T&WWWWrN   c                 N    |d                              |d|dd          |          S )Nr   __len__r(   r   rQ  s       rL   call_lenzBuiltinVariable.call_len  s(    Aw""2y$qrr(FCCCrN   c                 N    |d                              |d|dd          |          S )Nr   __getitem__r(   r   rQ  s       rL   call_getitemzBuiltinVariable.call_getitem  s(    Aw""2}d122hGGGrN   c           	      6   	                                  }n(# t          $ r t          d d| d            Y nw xY w|                                }t	          t
          j                  r5j        .fd}t
          j        	                     ||                    S t	          t
          j
                  r4t	          j        t          j                  rt          d d|            t	          t
          j
                  rKd|j        j        v r=t
          j        	                    |j                            |j                            S 	 t#          ||          }n# t$          $ r ||u }Y nw xY wt
          j        	                    |          S )Nzisinstance(r  z): can't determine type of c                     fdt          |          t          u rt          fd|D                       S  |          S )Nc                 <   | t           vr}                                j        j        d         }t	          |          r(| t
          j        j        j        u rt          ||           S t                                          |           S t           |          }j        |v S )Nexample_value)r'   rX  nodemetar   r3  nn	parameter	ParameterrR   r?  python_typedtype)tyexample_valdtypesrj  s      rL   
check_typezOBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.check_type  s    !444&)llnn&9&>&O9+FF	E "eh&8&B B B
 $.k2#>#>>#-coo.?.?#D#DD04F9..rN   c              3   .   K   | ]} |          V  d S rQ   rL  )rW   r  r  s     rL   rY   zNBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.<genexpr>  s+      DD"zz"~~DDDDDDrN   )rS   tupler\   )
tensor_vartensor_typer  rj  s     @rL   _tensor_isinstancez;BuiltinVariable.call_isinstance.<locals>._tensor_isinstance  se    / / / / /" $$--DDDDDDDDDD%:k222rN   z&isinstance called on UserDefinedClass r  __instancecheck__)r  r  r   r   rR   r   r>   r  r,   r!  r@   rK   typesMemberDescriptorTyper   r   r  r?  r  )r   r   rj  isinstance_typern  r  r  s     `    rL   call_isinstancezBuiltinVariable.call_isinstance  s   	((HH" 	 	 	VcVV_VVQTVV    	
 *<<>>c9344 	9N3 3 3 3 3. -44""388  
 c9>?? 	JIu1E
 E
 	 PPPPP  
 sI?@@	#'@'III-44);;OSYWW  	.X77CC 	. 	. 	.o-CCC	.)00555s    "==E( (E98E9c                     	 |                                 }|                                 }n%# t          $ r t          d| d|            Y nw xY wt          j        t          ||                    S )z,Checks if first arg is subclass of right argz+call_issubclass args not constant left_ty: z, right_ty: )r   r  r   r   r,   r?  )r   r   left_tyright_ty
left_ty_pyright_ty_pys         rL   call_issubclasszBuiltinVariable.call_issubclass  s    	 3355J"5577KK" 	 	 	]g]]S[]]    	
 )*Z*M*MNNNs   (+ AAc                 ,    t          j        ||          S rQ   )r   SuperVariabler   r   r   r   s       rL   
call_superzBuiltinVariable.call_super  s    &q!,,,rN   c                     	 |                     |          S # t          $ rF}t          |t          j                  r&|                                 |j        d         cY d }~S  d }~ww xY w)Nr   )next_variabler   rR   r   r5   r  r   )r   r   rj  exs       rL   	call_nextzBuiltinVariable.call_next  s    	$$R((( 	 	 	#y9:: $$$&&&y|######		s     
A':A"A'!A""A'c                    |                                 rk|                                }t          |t          j                  r't          j        t          |j        |                    S |                    ||          S d S rQ   )	r  r   rR   r   rD   r,   r  rE   call_hasattr)r   r   r  attrrR  s        rL   r  zBuiltinVariable.call_hasattr  sz    ""$$ 	.**,,D#y899 I 1'#&$2G2GHHH##B---		. 	.rN   c                 f    fd|D             }t          j        ||t                                S )Nc                 h    g | ].}|                               r|                              n|/S rL  rq  )rW   r   r   s     rL   r{  z,BuiltinVariable.call_map.<locals>.<listcomp>  rr  rN   r   )r   MapVariabler)   )r   r   rE   seqss    `  rL   call_mapzBuiltinVariable.call_map  sI    
 
 
 

 
 
 $R\^^LLLLrN   c                     |                               r\|                              }	 t          t          fd|                    }t	          j        |          S # t          $ r Y d S w xY wd S )Nc                 X                         | gi                                           S rQ   r   r   )rX   rE   r   s    rL   r   z-BuiltinVariable.call_filter.<locals>.<lambda>+  s'    ""2"22sB"?"?"R"R"T"T rN   )r   r   rB  filterr   r:   r  )r   r   rE   r   seq_unpackedr   s    ``   rL   call_filterzBuiltinVariable.call_filter%  s    &&r** 	22266L	TTTTT$   !.u555&   	 	s   4A# #
A10A1c                 h   t          |t          j        t          j        f          rt	          d |j        D                       r|| j        u r;t          j                            t          d |j        D                                 S t          |t          j                  rct          |j
        t          t          f          rBt          j                            t          d |j        D             |j
                            S |                    |          r|| j        u rt          j                            d          }|                    |          }t          t           j                                      |t          t&          j                  t          j        |          |gi           S d S )Nc              3      K   | ]?}t          |t          j                  o t          |j        t          t
          f          V  @d S rQ   )rR   r   r,   rK   rc   ra   rV   s     rL   rY   z+BuiltinVariable.call_sum.<locals>.<genexpr>5  se       V
 V
  q)455 217S%L11V
 V
 V
 V
 V
 V
rN   c              3   $   K   | ]}|j         V  d S rQ   r  rV   s     rL   rY   z+BuiltinVariable.call_sum.<locals>.<genexpr><  s$      33A333333rN   c              3   $   K   | ]}|j         V  d S rQ   r  rV   s     rL   rY   z+BuiltinVariable.call_sum.<locals>.<genexpr>B  s$      44Q444444rN   )startr   )rR   r   r7   r:   r[   r   	_SENTINELr,   r!  rm   rK   rc   ra   r  r  rD   r  r	  r   rn   ry   )r   r   r   r  r   s        rL   call_sumzBuiltinVariable.call_sum3  s   cI2I4KLMM 	RU V
 V
 YV
 V
 V
 S
 S
 	
 && 1883333333   %!;<< c5\B B  !18844#)444EKHHH   ,,R00 	&&!299!<<11"55E"9#344BB#HL11+E22
   		 	rN   c                     |                     |          rS|                    |          }|| j        u r|d         |dd          }}n|}|D ]}|                    |||gi           }|S d S r  )r  r  r  r   )r   r   functioniterableinitialr   rK   elements           rL   call_reducezBuiltinVariable.call_reduceR  s     11"55 	66r::E$.(($Qxqrru  I I ..rE73CRHHL	 	rN   r  r  c           	      2	   ddl m} ddl m}m}m}m}	 ddlmm |	                                }
|
                                st          d           j        j                            |          rWt          |t           j                  r=|
dv r9|j        r2j        j                            |          rt          d|
d	           j        j                            ||
          r j        j                            ||
          S |E|                     ||          }|	                                d
v sJ |	                                s|S i }|j        rt1          |j        |
          |d<   nd |
dv r	 |	                                }t          |t2                    r|
dk    rH|j        }fdt7          |          D             }nfd|D             }t!          j        |fi |S |
dk    r4|j        }            |          S                     |          S |
dk    r |j        |j                  S n# t@          $ r Y nw xY wt          |t           j!                  r|"                    |
          S t          |t           j#        t           j$        t           j        t           j%        t           j&        t           j'        f          r1	 |"                    |
          S # t@          $ r  |||
fi |cY S w xY wt          ||          rgtQ          |j)        |
          }t          |tT          j+        j,        tT          j+        j-        f          r|.                    |          r ||fi |S d S d S t          |t^                    r|j0        s|
|j)        j1        vrtQ          |j)        |
          }n|j)        j1        |
         }td          j3        r!j4        5                    |j)        |
|                       |          S                     |          S tm          ||	          r'|
dv r# |j        tQ          |j7        |
                    S 	 |"                    |
          S # t@          $ r  |||
fi |cY S w xY w)Nr   )trace_rulesr(   )r,   rh  r  r   r  VariableBuilderznon-const getattr() name)named_parameters
parametersnamed_buffersbuffersnamed_modulesmodulesz4pending mutation on nn module, so graph breaking at z call)TFrG   >   __base__	__bases__	__flags__r  c           
      \    g | ](\  }}  t          |                    |          )S rL  )r   )rW   rv  r   r  rG   r   s      rL   r{  z0BuiltinVariable.call_getattr.<locals>.<listcomp>  sN     * * *$(Aq !NM&!4L4L M Ma P P* * *rN   c                 <    g | ]}                     |          S rL  )r!  )rW   r   r  r   s     rL   r{  z0BuiltinVariable.call_getattr.<locals>.<listcomp>  s7     * * *DE 1 8 8Q ? ?* * *rN   r  r  )r  r\  )8 r  r,   rh  r  r   r   r  r  r   r  r   r   r   r  rR   r   UnspecializedNNModuleVariableis_state_mutatedrZ  has_pending_mutation_of_attr	load_attrr  rG   r   rS   r  	enumerater:   r  r!  r  r  r   r[  r>   NamedTupleVariableDistributedVariabler   r@   rb   rK   r3  _opsOpOverloadPacket
OpOverloadis_aten_op_or_tensor_methodr   is_torchr   r   replay_record_enabledexec_recorderrecord_module_accessr$   rE   )r   r   r  r  defaultr  r,   rh  r  r   rR  hasattr_varoptionsrK   bases
tuple_argsbasememberr  r  rG   s    `                @@@rL   call_getattrzBuiltinVariable.call_getattr_  s    	#"""""	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	@???????**,,**,, 	645559!77<< 	#yFGG   , 	.CCCHH "\t\\\   9!>>sDII 	?9)33C>>>++BX>>K1133}DDDD1133 : 	
D11F &GHF999..00eT** H{** %!-* * * * * *,5e,<,<* * *JJ
* * * * *IN* * *J  )6zMMWMMMz))$~!-#>??2v#>#>t#D#DD077DAAA{**6/6uGGG&    c9566 ,	=??2t,,,(,*-23

 

 *	==r4000& = = =&sD<<G<<<<<=9:: 	=SY--F4ej6KL  G99&AAG 43FFFgFFFG G G G [)) 	=| 2t39+=== D11+D1+ O 55civNNN!2r6226:::(//F;;;C-.. 	=4;U3U3U*#*7364+@+@AAA=r4000& = = =&sD<<G<<<<<=sI   >A6I 5#I I /I 
IIK4 4L
L)Q? ?RRr  c                 j	   t          |t          j        t          j        t          j        f          r|                    |d||gi           S |j        j                            |          r|	                                r|
                                }t          |t          j                  rmddlm} |dk    rt          d           |dk    rKg }|j        j        D ]'}|j        |j        k    r|                    |           (|D ]!}|j        j                            |           "t'          |          5  t)          j                    5   || |j        j        dt(          j        j        gt3          ||gi           R            }	d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d }
|j                            d|
|	                                fi             |
|                                j        j        d	                    |	S |j        j                            |||           |d
k    r!|j        j                            |d|           |S t          |t          j                  r+t          dt=          |j                  j                     d S t          |t          j!                  rI|j        "                                stG          d          |	                                rt          |t          j                  rtI          |                                j        |          }	 |%                    ||
                                          }n# tL          $ r d }Y nw xY wt          |t          j                  r_tI          |                                j        |          }tO          j(        |j)        d          }||u r|t(          j*        j+        j         u r|S |,                    |           d S t          |t          j-        j.                  r~|j/        ry|	                                rgt          |t          j0                  rOtc          |j2        |
                                |
                                           ta          d           S d S d S d S d S )Nr  r(   r   requires_gradzmutating requires_grad can introduce a new leaf from non-leaf or vice versa in the middle of the graph, which aot_autograd does not currently know how to handle. datar   c                 t    | j         }|dk    r|dz
  }t          j        j                            | |           | S r  )_versionr3  _C	_autograd_unsafe_set_version_counter)rX   versions     rL   _lower_version_count_by_1z?BuiltinVariable.call_setattr.<locals>._lower_version_count_by_1  s;    "#*"Q;;&-kG*FFq'RRR rN   r~  _gradgradz#setattr(UserDefinedObjectVariable) z?Can't inplace modify module params/buffers inside HigherOrderOp)3rR   r   CustomizedDictVariablePlacementVariabler@   r   r   r   r  r  r   r>   r   r   r   tracked_fakesrG   r(  removedynamo_disable_gradr3  no_gradr   Tensorset_r&   rX  r  r  
store_attrrS   rK   r  r   is_root_tracerr   r!   r[  r  r  getattr_staticmodule_typer  Moduleconvert_to_unspecializedr0  HFPretrainedConfigVariableexportr,   setattrr  )r   r   r  r  r  rR  r   	to_removetfr^  r  assigning_fake_valgetattr_varexisting_fake_attrmod_setattrs                  rL   call_setattrzBuiltinVariable.call_setattr  s    0+3
 
 w	. ??2}xorJJJI"88==n	.++--n	. ..00D#y788 6222222?**!n   6>> !#I i5 1 19
22%,,R000' ; ;	/66r:::: -R00 	 	%-// 	 	+m2BI2 / % 1 "3C:r!B!B   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	! ! ! I**'1)	   .-cllnn.A.F.WXXX JI"--c4===w	&11#vsCCCJY@AA ,	.Sd39oo6QSS     Y788 (	.9++-- ,U   **,, +Y-2 2 + &4CLLNN4G%L%L"'"%//"h6Q6Q6S6S"T"TKK% ' ' '"&KKK' k9+CDD 
+)78L8L8N8N8SUW)X)X& #*"8-"X"XK*.@@@'58?+FFF**((,,,,, Y_GHH 	.RY 	.**,, .Y/2 2 . GX88::C<R<R<T<T   (---	. 	. 	. 	.. . . .sH   ;F0>FF0F	F0 F	!F00F47F4(M. .M=<M=c                 T    |                      |||t          j                              S rQ   )r  r   DeletedVariable)r   r   r  r  s       rL   call_delattrzBuiltinVariable.call_delattr_  s'       S(I4M4O4OPPPrN   c                 >   ddl m}m} 	 |                                }n<# t          $ r/}t          t          j        t          |          d          d d }~ww xY w|j	        |
                    ||          S   ||t          |j	                            |          S )Nr(   r  unknown_python_type)	case_name)r   r  r  r  r  r   r   INVALID_INPUTrk   rG   r!  r   )r   r   r  r  r  py_typeerrors          rL   	call_typezBuiltinVariable.call_typeg  s    ????????	oo''GG" 	 	 	+E

/   		 :$++B888>??2z#*'='=>>wGGGs    
A*AAc                     |                     |          rCt          t          |                    |                              }t	          j        |          S d S rQ   )r   rB  reversedr   r   r:   )r   r   r  r   s       rL   call_reversedzBuiltinVariable.call_reversedx  sV    &&r** 	2#"9"9""="=>>??E*5111	2 	2rN   c                    |                               rt          |t          j                  s|                              }t          d |D                       sd S |                    dd           |                    dt          j        d                    	                                }t          |          dk    sJ rt          |fd|          }nt          |d |          }t          j        |          S d S d S )	Nc              3   >   K   | ]}|                                 V  d S rQ   )r  rV   s     rL   rY   z.BuiltinVariable.call_sorted.<locals>.<genexpr>  s.      @@!q++--@@@@@@rN   r  reverseFr   c                 X                         | gi                                           S rQ   r  )rX   r  r   s    rL   r   z-BuiltinVariable.call_sorted.<locals>.<lambda>  s/    ("8"8QC# #((** rN   )r  r  c                 *    |                                  S rQ   rz  )rX   s    rL   r   z-BuiltinVariable.call_sorted.<locals>.<lambda>  s    !"6"6"8"8 rN   )r  rR   r   r>   r  r[   rb  r,   r!  r   rd   sortedr7   )r   r   r  rO  unpackedr  r   r  s    `     @rL   call_sortedzBuiltinVariable.call_sorted}  sS   ,,R00 	1):
 :
 	1 44R88H@@x@@@@@ zz%..Hjj+2599   ""  v;;!#### + + + + + $   88#  
 )%0003	1 	1 	1 	1rN   c                     t          |t                    r;t          j        |t          j        |                                          d           S d S )Nsym_num)rR   r=   r!  rn   rp   rX  r   r   r   s      rL   call_negzBuiltinVariable.call_neg  sP    a)) 	")qzz||,,    trN   c                 l    |                                 }t          j                            |||          S rQ   )r   r   StringFormatVariabler!  )r   r   _format_stringrd  rO  format_strings         rL   call_formatzBuiltinVariable.call_format  s.    &99;;-44]D&QQQrN   c                    t          |          dk    rst          |d         t          j                  rS|d         }|j                            |j                  }t          j                            t          |                    S t          |          dk    rt          |d         t          j
                  rpt          |d         j                            t          j                             t          |d         j                  }t          j                            |          S t          |          dk    r8t          |d         t"                    r|d         }|                    |          S t'          d|            d S )Nr   r(   zcall_id with args )rd   rR   r   r   r   r  r  r,   r!  idr@   r   rG   rH   r   ID_MATCHrK   r>   call_idr   )r   r   rd  nn_mod_variablerx   constant_resulttensor_variables          rL   r*  zBuiltinVariable.call_id  s9   t99q==ZQ1KLL="1gO)))/*DEEC-44RWW===YY!^^
GY8!
 !
^ $q'.33L4IJJKKK a//O-44_EEEYY!^^
47N C C^"1gO"**2...5t5566666rN   c                 D    t          dt          |                      d S )Nzcopy.deepcopy )r   ri   )r   r   rX   s      rL   call_deepcopyzBuiltinVariable.call_deepcopy  s%    0tAww0011111rN   c           	      H   ddl m} ddlm} | j        }|t
          j        t
          j        fv rt          |t                    o|t          |t                    ogt          t          |                                j                            t          t          |                                j                            k    }|t
          j        u rt          j        |          S t          j        |           S ||vrt!          |j         d| d| d           t          |t                    rt          |t                    rl|j        o|j        ^|j        |j        k    rN	 t'          j        |j        |j                   n-# t*          $ r  t!          |j         d| d| d           Y nw xY wt          |t                    r|n|}|j                            d||                                |                                fi           }	 |t1          |          ||	          S )Nr(   r  %supported_tensor_comparison_op_valuesr  r  r  r   )r   r  r   r2  rE   rn   r   is_notrR   r>   r(  r    rX  r  r,   r!  r   r  sizer3  broadcast_shapesRuntimeErrorr   r   rS   )
r   r   r  r  r  r2  r   	is_result
tensor_clsr  s
             rL   r&  z'BuiltinVariable._comparison_with_tensor  sG   ......AAAAAAW(,000400 Iun55I1$--//2FGGHH01A1A1FGGHHI  X\!!'.y999'.9}===:::R[;;4;;5;;;<<<t^,,
	A5.11
	A )uz6	UZ''A&ty%*==== A A A??t??u???@@@@@A (n==HTT5
	&&R$--//5>>3C3C!Db
 
 ! 
 
 	
s   !F 'F+*F+c                    ddl m} | j        }||vrt          |j         d| d| d           |j                            d||                                |                                fi           }t          j	        ||d           S )Nr(   r1  r  r  r  r   r  )
r   r2  rE   r   r  r   r   rX  r=   r!  )r   r   r  r  r2  r   r  s          rL   r'  z(BuiltinVariable._comparison_with_symnode  s    AAAAAAW:::R[;;4;;5;;;<<<	&&R$--//5>>3C3C!Db
 
 %
 
 
 	
rN   c           
         t          |t                    rt          |t                    rd S t          |t          t          f          r_t          |t          t          f          rCt          j        | |j        j        dt          j        gt          ||gi           R  d           S t          |d          r9t          |d          r+t          t          |j        |j        z                      S d S d S Nr   r  r  )rR   r,   r=   r!  r   r   rn   r   r&   r  r4   rB  r  r  s       rL   	call_and_zBuiltinVariable.call_and_  s   a)** 	z!=M/N/N 	4a/+;<== 		*!12C
 C
 		 #)&	&#X]5F1vr5R5R       1k"" 	@wq+'>'> 	@tAK!+$=>>???	@ 	@ 	@ 	@rN   c           
         t          |t                    rt          |t                    rd S t          |t          t          f          r_t          |t          t          f          rCt          j        | |j        j        dt          j        gt          ||gi           R  d           S t          |d          r9t          |d          r)t          t          |j        |j        z                      S d S r;  )rR   r,   r=   r!  r   r   rn   r   r&   r  r4   rB  r  r  s       rL   call_or_zBuiltinVariable.call_or_  s   a)** 	z!=M/N/N 	4a/+;<== 		*!12C
 C
 		 #)&	&#X\4Eq!fb4Q4Q       1k"" 	@wq+'>'> 	@tAK!+$=>>???trN   c           
      x   t          |t                    rBt          j        | |j        j        dt
          j        gt          |gi           R  d           S t          |t                    r|j	        }t          |t          t          f          r*t          j        t          |j                  dk              S d S )Nr   r  r   )rR   r=   r!  r   r   rn   rq   r&   r1   dv_dictr7   r/   r,   rd   r   r   s      rL   	call_not_zBuiltinVariable.call_not_  s    a)) 	")&	&#X]5FsB5O5O       a"" 		Aa,(9:;; 	>#*3qw<<1+<===trN   r   r   c                 4    |                     |d|gi           S )N__contains__r   r  s       rL   call_containszBuiltinVariable.call_contains-  s     }}R!b999rN   )rJ  Nr#  )r   rB   rd  r  rO  r  rJ  r*   )rd  r  rO  r  rJ  r*   )r   rB   rj  r*   rQ   )ar  r\  __qualname__r$  r  r*   _nonvar_fieldsclassmethodrM   staticmethodr  	lru_cacher   r   r   r   r<  rG  rI  rN  rk   rS  r   rX  ra  re  rk  ro  rw  r  r  r   rS   r]   r  r  r  r   r   r  call_int
call_floatr  r  r  r  call_mincall_maxr!  r&  r)  r-  r3  r1  r9  r;  rD  rF  rJ  
call_tuple	call_listrL  rN  rR  rP  r  rh  rm  rt  rw  rz  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r!  r&  r*  r/  r&  r'  r<  r>  rA  rD  __classcell__)r   s   @rL   rD   rD   b   s       I		'N
 ) ) [) Y? ?  \?B: : : Y* *  \*X Y! !  \!F YZ Z  \Zx
 	 	 \	5 5 5     4 4 4 4 4  " " " " "Q Q Q1 1 1    3 3 3 
 
 \


 
 

 V T$Z V T V  V  V  \V p[H [H [H [Hz #%)#) &) -	)
 
) ) ) )&; &	;
 -; 
; ; ; ; ; ;8   * H J%U %U %U %UN4 4 4 4Y Y Y YZ; Z; Z; Z;x HH4 4 4 44 4 4 4A A A A< < < <	 	 	 	
 
 

- - - -
 
 
 
 04!)! ! ! !FH H H H    "J I< < < <8N N NK K K K 5A 5A 5A \5An J#J J J \J@5 5 5 54; ; ; ;X X X XD D D DH H H H;6 ;6 ;6 ;6z
O 
O 
O 
O- - - -3 /    . . . .M M M M    @I     @ HQ)   $ ~= ~=#~= ~= "	~= ~= ~= ~=@~.#~. ~. "	~.
 ~. ~. ~. ~.@Q#Q Q "	Q Q Q QH3 H/ H H H H"2 7 2o 2 2 2 2
15 1O 1 1 1 1:   R R R R7 7 7 7"2 2 2 2'
 '
 '
 '
R
 
 
 
"@ @ @ @$   &   $:):.=:BQ: : : : : : : :rN   rD   c              #      K   ddl m} t          j                    }|                    | d          }	 |                    |            d V  |                    |            d S # |                    |            w xY w)Nr(   )GradModeVariableF)r  rR  r3  is_grad_enabledr!  enterexit)r   rR  	org_valuegmvs       rL   r  r  3  s      """"""%''I

!
!"e
,
,C		"s   A# #A:)x
contextlibr  r  rs  loggingrT   rn   r  collectionsr   r   collections.abcr   typingr   r   r   r3  r	   r
   torch.utils._python_dispatchr   r  r   r   r  r   r   r   r   r   guardsr   r   replay_recordr   rG   r   r   r   r   utilsr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r  r)   r*   constantr,   ctx_managerr-   r.   r0  r/   r0   r1   r2   r3   r4   listsr5   r6   r7   r8   r9   r:   r   r;   r<   r=   r>   r?   r4  r@   rA   torch._dynamo.symbolic_convertrB   	getLoggerr  r  r   ry   r   rz   r   rt   r   rv   r   rw   r   rx   r   r   r}   r   r~   r   rh   r   r   r   r   r   r   r  rD   contextmanagerr  rL  rN   rL   <module>rg     sp                    0 0 0 0 0 0 0 0 $ $ $ $ $ $ , , , , , , , , , ,  $ $ $ $ $ $ $ $ F F F F F F                              1 0 0 0 0 0 0 0 ' ' ' ' ' ' N N N N N N N N N N N N                              0 / / / / / / / & & & & & & 6 6 6 6 6 6 6 6                                            I H H H H H H H  EDDDDDD g!! M8<M8<M8<)x'M8<h&hohoM8<M8=L(,M8< "N: N: N: N: N:o N: N: N:b> 	 	 	 	 	rN   