
    3jc                    Z    S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
rJrJr  S SKJr  S SKrS SKrS SKrS SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$  S S	K%J&r&J'r'J(r(J)r)J*r*J+r+  S S
K,J-r-  S SK.J/r/  \(       a  S SK0J1r1J2r2  S SK%J3r3  S SK4J5r5  \(\Rl                  -  r7\" S5      r8\" S5      r9\" S5      r:\R*                  Rv                  r</ SQr=0 r>/ r?\R                  R                  R                  rBSZS jrCS[S jrD\C" / \BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  Rl                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P\BR                  R                  P76 r\\C" \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  5      rf\BR                  4rhS\S jri\R                  S]S j5       rk    S^S jrlS_S jrmS`S jrn\l" \>R                  5                SaS j5       rp\l" \k5      \l" / \\Q5                SbS j5       5       rq\l" \BR                  R                  5                ScS j5       rr\l" \R                  R                  R                  R                  5       Sd         SeS jj5       rt\l" \R                  R                  R                  R                  5              SfS j5       ru\l" \R                  R                  R                  R                  5       Sd         SgS jj5       rv\l" \BR                  R                  5      \l" \BR                  R                  5                SbS  j5       5       rwS_S! jrx\l" \x5                SbS" j5       ry\l" \BR                  R                  5                SbS# j5       rz\l" \BR                  R                  5                SbS$ j5       r{\l" S% 5                ShS& j5       r|   SiS'S(.                 SjS) jjjr}\l" \BR                  R                  5         Si             SkS* jj5       r\l" \BGR                   GR                  5                  SlS+ j5       r\l" \BGR                  R                  5         Si               SmS, jj5       r\l" \BGR                  R                  5         Sn             SoS- jj5       r Sp         SqS. jjr      SrS/ jr  Ss         StS0 jjr\l" \BGR                  R                  5                SuS1 j5       r\l" \BGR                  R                  5      \l" \BGR                  R                  5      S'S2.           SvS3 jj5       5       r\l" \BGR                  R                  5      SS4.           SwS5 jj5       r\l" \BGR                  Rl                  5       Sd         SxS6 jj5       r\l" \R                  R                  GR                   R                  5      \l" \R                  R                  GR"                  R                  5              SyS7 j5       5       r\l" \R                  R                  GR&                  R                  5              SzS8 j5       r\l" \R                  R                  GR(                  R                  5      S{S9 j5       r\l" \R                  R                  GR*                  R                  5       Sd           S|S: jj5       rS}S; jr\l" \R                  R                  GR.                  Rl                  5          S~               SS< jj5       r\l" \R                  R                  GR2                  R                  5                SS= j5       r\l" \R                  R                  GR4                  R                  5         SSSS>.                 SS? jjj5       r\l" S@ 5                ShSA j5       r        SSB jr          SSC jr\C" SDSESF5      rS_SG jrS]SH jr\l" SI 5                SSJ j5       r\l" \BGRF                  Rl                  5                SbSK j5       r\l" \BGRJ                  R                  5                SSL j5       r\l" \BGRN                  R                  5      \l" \BGRP                  R                  5      \l" \BGRR                  R                  5      \l" \BGRT                  R                  5      \l" \BGRV                  R                  5                SbSM j5       5       5       5       5       r\l" \BGRP                  R                  5      \l" \BGRT                  R                  5                SbSN j5       5       r\l" \BGR\                  R                  5      \l" \BGR^                  R                  5                SbSO j5       5       r\l" \BR                  R                  5      \l" \BR                  R                  5      \l" \BGRb                  R                  5      \l" \BGRd                  R                  5                ShSP j5       5       5       5       r\l" \f V s/ s Hv  n U \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  \BR                  R                  4;  d  Mt  U PMx     sn 5      ShSQ j5       r\l" \BGRj                  R                  \BGRl                  R                  /5                SSR j5       r\l" \R                  R                  GRp                  R                  5        S           SSS jj5       r\l" \R                  R                  GRr                  R                  5                  SST j5       r0 r    SSU jr      SSV jr\GRz                  4     SSW jjr Sp       SSX jjr\R                  SSY j5       rgs  sn f )    )annotationsN)reduce)AnycastTYPE_CHECKINGTypeVar)	ParamSpec)no_python_dispatcher)
OpOverload)canonicalize_dimelementwise_dtypesELEMENTWISE_TYPE_PROMOTION_KINDis_boolean_dtypeis_contiguous(is_contiguous_for_memory_format_or_falseis_contiguous_or_falseis_float_dtypeis_integer_dtypemake_contiguous_strides_for	ShapeType)DataDependentOutputExceptionDynamicOutputShapeException
FakeTensorin_kernel_invocation_managerrun_fallback_kernelUnsupportedOperatorException)_normalize_function_or_errorcount_label)CallableSequence)FakeTensorMode)IntLikeType_P_R_T)op_implementations_checksget_fast_op_implsstride_incorrect_ophas_metac                 .    [         R                  U S5      $ )NT)dictfromkeys)itemss    V/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/_subclasses/fake_impls.pyordered_setr0   I   s    ==%%    c                     U R                   S:g  $ )Nhpu)typedevices    r/   is_noncontiguous_supportedr7   O   s    ;;%r1   c                    [         R                  R                  R                  5       nU R	                  U5      =(       d     [        S U R                  5        5       5      $ )Nc              3  8   #    U  H  n[        U5      v   M     g 7fN)contains_tensor_types).0es     r/   	<genexpr>(contains_tensor_types.<locals>.<genexpr>   s      1*@Qa  *@s   )torch_C
TensorTypegetisSubtypeOfanycontainedTypes)type_tensor_types     r/   r;   r;      sO    ((%%))+K[) S 1*/*>*>*@1 . r1   c                v   [        U [        5      (       d  [        S[        U 5       35      eU R                  n[        S UR                   5       5      (       a  g[        UR                  5      S:H  =(       aA    UR                  S   R                  [        R                  R                  R                  5       L $ )Nz func must be an OpOverload, got c              3  L   #    U  H  n[        UR                  5      v   M     g 7fr:   )r;   r4   )r<   args     r/   r>   )_is_tensor_constructor.<locals>.<genexpr>   s     
G6Fs **6Fs   "$F   r   )
isinstancer   AssertionErrorr4   _schemarE   	argumentslenreturnsr@   rA   rB   rC   )funcschemas     r/   _is_tensor_constructorrV      s    dJ''?T
|LMM\\F

Gf6F6F
GGG 	FNNq XV^^A%6%;%;uxx?R?R?V?V?X%Xr1   c                   ^  SU 4S jjnU$ )Nc                b  > [        T[        5      (       a#  T[        ;   a  [        ST 35      eU [        T'   U $ [        T[        [
        45      (       a  T H  n[        U5      " U 5        M     U $ [        T5      (       d  [        S[        T5       35      e[        R                  TU 45        U $ )Nzduplicate registration: z%run_impl_check must be callable, got )rN   r   op_implementations_dictrO   listtupleregister_op_implcallabler4   r'   append)op_imploprun_impl_checks     r/   impl_decorator(register_op_impl.<locals>.impl_decorator   s    nj11!88$'??O%PQQ6=#N3  u66$ $W- %  N++$;D<P;QR  &,,ng-FGr1   r_   Callable[_P, _R]returnre    )ra   rb   s   ` r/   r\   r\      s    " r1   c                    U [         ;   $ r:   rY   r`   s    r/   _is_op_registered_to_fake_rulerk      s    (((r1   c                    [         R                  U S 5        [         H!  u  pXL d  M  [        R                  X45          g    g r:   )rY   popr'   remove)r`   checkimpls      r/   _deregister_op_implrq      s6    D)0;%,,e]; 1r1   c                (    [         U   " X/UQ70 UD6$ r:   ri   	fake_moderT   argskwargss       r/   #dispatch_to_op_implementations_dictrw      s     #4(J4J6JJr1   c                   U[         ;   a  [        SU 35      e[        XUSS9u  pESU;   a  [        U5      eU[        ;   a"  US   R
                  nUR                  S5      4nO[        R
                  " S5      nSnUR                  SS 5      nUb  UOUn[        R
                  " S	5      US'   [        U 5         U" U0 UD6nS S S 5        [        U WU5      $ ! , (       d  f       N= f)
Nz8func must not be in _non_kwarg_device_constructors, got Tru   rv   normalize_to_only_use_kwargsnamesinputcpurg   r6   meta)
_non_kwarg_device_constructorsrO   r   r   _like_tensor_constructorsr6   rm   r@   r   r   )	rt   rT   ru   rv   _
new_kwargsdefault_device
out_devicers	            r/   constructorsr      s    
 --FtfM
 	
 1TMA &*400((#G,33w') e,$/J)5>J <</Jx 
&i	0$%*% 
1iJ// 
1	0s   8	C
C$c                    [        XUSS9u  pEUR                  S5      n[        U 5         U" U5      nS S S 5        U$ ! , (       d  f       W$ = f)NTrz   r|   )r   rm   r   )rt   rT   ru   rv   r   r   inpr   s           r/   non_kwarg_is_pinnedr      sR     1FMA ..
!C 
&i	0I 
1H 
1	0Hs	   	=
Ac                    [        U 5         U" X#5      nS S S 5        [        R                  " WSS9n[        X[        R                  " S5      5      $ ! , (       d  f       NC= f)Nr~   r5   r}   )r   r@   
empty_liker   r6   )rt   rT   nameru   real_handlemeta_handles         r/   _record_function_enterr     sN    
 
&i	04& 
1 "";v>Kiell5.ABB 
1	0s   	A
A c                    g r:   rg   )rt   rT   handles      r/   _record_function_exitr     s     	r1   c                ^    [        U 5         U" X#5      sS S S 5        $ ! , (       d  f       g = fr:   r   )rt   rT   r   ru   s       r/   _record_function_enter_newr     s      
&i	0D 
1	0	0   
,c                @   [        XUSS9u  pEUS   nU(       a  UOUS   R                  n[        R                  " S5      US'   UR                  S5      n[	        U 5         U" U40 UD6n	S S S 5        U R
                  R                  U W	U5      $ ! , (       d  f       N+= f)NTr   r6   r|   r~   )r   r6   r@   rm   r   fake_tensor_converterfrom_meta_and_device)
rt   rT   ru   rv   r   r   input_devicer   r   r   s
             r/   non_kwarg_tor   #  s    
 1FMA h'L!-:g3F3M3MJ <</Jx
..
!C	%i	0#
# 
1 **??1j  
1	0s    
B
Bc                    g)NFrg   rj   s    r/   r)   r)   7  s    r1   c           	     "  ^ SS jmU R                   (       an  [        U4S j[        R                  " X#R	                  5       5       5       5      nU(       d0  [
        R                  X#45      u  pV[        U UUU[        S5      5      $ [        U5      e)Nc                    [        U [        5      (       a  U R                  $ [        U [        R                  [        R
                  [        R                  45      (       a  gg)NTF)rN   r   _has_symbolic_sizes_stridesr@   SymIntSymFloatSymBoolxs    r/   is_symbolic3workaround_stride_incorrect_op.<locals>.is_symbolicB  sA    a$$000a%,,FGGr1   c              3  4   >#    U  H  nT" U5      v   M     g 7fr:   rg   )r<   r   r   s     r/   r>   1workaround_stride_incorrect_op.<locals>.<genexpr>K  s      
$JqKNN$J   z2Cannot run fallback kernel for stride_incorrect_op)r   objectrf   bool)
allow_fallback_kernelsrE   	itertoolschainvaluespytreetree_flattenr   RuntimeErrorr   )rt   rT   ru   rv   require_dynamic	flat_args	args_specr   s          @r/   workaround_stride_incorrect_opr   <  s     '' 
$-OOD--/$J
 
 #)#6#6~#F I& QR  't
,,r1   c                ^    [        U 5         U" U0 UD6sS S S 5        $ ! , (       d  f       g = fr:   r   rs   s       r/   
resize_as_r   _  s%     
&i	0T$V$ 
1	0	0r   c                     [        X/UQ70 UD6$ r:   )r   rs   s       r/   (_sparse_coo_tensor_with_dims_and_tensorsr   g  s     	9$9&99r1   c                    [         R                  R                  U R                  ;   =(       aP    U [        R
                  R                  [        R                  R                  [        R                  R                  4;  $ r:   )
r@   Tagdynamic_output_shapetagsatenindexTensornonzerodefaultrepeat_interleaverT   s    r/   <lambda>r   p  sV    //499< TJJt||33T5K5K5R5RS	TTr1   c                    [        U5      er:   )r   rs   s       r/   	dyn_shaper   o  s     &d
++r1   Funique_consecutivec               *   U R                   b  U R                   R                  (       d  [        U5      eU(       a  UR                  OUR                  nUc  Uc  SSKJn	Jn
  U
" UR                  5       5      (       d  UR                  5       S:X  a  SnOoU R                   R                  5       n[        R                  S-
  nUc  UR                  5       OUR                  U5      nU
" U5      (       d  [        U5      nU	" XS9  Uc  U(       a  Xl        OXl        Uc  UR                  U45      /nO4UR                  " / UR                  S U QUPUR                  US-   S  Q76 /nUS L=(       a#    UR                   ["        R$                  " S5      :H  nU(       d  U(       a<  UR                  Uc  UR                  OUR                  U   4["        R&                  S9nOUR                  S["        R&                  S9nUR)                  U5        U(       d  U(       aB  UR                  Uc  US   R                  OUS   R                  U   4["        R&                  S9nOUR                  S["        R&                  S9nUR)                  U5        [+        U5      $ )Nr   _constrain_range_for_sizehas_free_symbolsrM   maxr}   dtype)	shape_envallow_dynamic_output_shape_opsr   unique_consecutive_memounique_memo%torch.fx.experimental.symbolic_shapesr   r   numelcreate_unbacked_symintsysmaxsizesizeint	new_emptyshapefake_devicer@   r6   int64r^   r[   )rt   rT   rK   dimsortedreturn_inversereturn_countsr   nnzr   r   maxvalr   retreturn_if_dim_and_cpuinversecountss                    r/   _uniquer   z  s    	#""AA *$//);#
%
%C #+	

  		,,1A C%%<<>C[[1_F#&;CIIKCHHSME#E**U%c6;!.1+"%
{}}cV$% }}JciioJsJSYYsQwy5IJKtOV5<<PUCV0V.--CII399S>*;5;;   
 ---5JJw-KCFLLc!fll3.?-A  
 q4JJv:r1   c           	          [        XUS X4U5      $ r:   r   )rt   rT   rK   r   r   r   s         r/   unique2r     s     9Cv}UUr1   c                   SSK Jn  UR                  (       a  [        $ UR	                  5       n[
        R                  " US:g  S 5        US:  a  UOX6-   nUR                  U5      n[        UR                  5       5      n[        UR                  5       5      n	S n
U" US:  5      (       a  UR                  5       XIU   -  -   n
O*U" US:  5      (       a  UR                  5       XG-   X   -  -   n
U
c^  U R                  b,  U R                  R                  (       d  U R                  (       d  [        U5      eU R                  R                  5       n
X	 X	 U
c  [        S5      eUR!                  XU
5      $ )Nr   guard_or_falsec                     g)Nz-select() cannot be applied to a 0-dim tensor.rg   rg   r1   r/   r   meta_select.<locals>.<lambda>  s    ?r1   z#new_storage_offset must not be None)r   r   	is_sparseNotImplementedr   r@   _check_indexr   rZ   stridestorage_offsetr   allow_scalar_outputsr   r   rO   
as_strided)rt   rT   selfr   r   r   ndimr   new_size
new_stridenew_storage_offsets              r/   meta_selectr    sL    E~~88:D		?
 #szC99S>DDIIK Hdkkm$Jeqj!!!002U_5LL			"	"!002eljo5UU!&##8822.t44 '00GGI!BCC??81CDDr1   c           
     b    [        U UUUS:  a  UOU[        UR                  S5      -  UUU5      $ )Nr   rM   )r   r   r   )rt   rT   rK   r   r   r   r   s          r/   
unique_dimr  
  s>     axS3sxx#33	 	r1   c                "    [        U UUUSUUSS9$ )NFTr   r   )rt   rT   rK   r   r   r   s         r/   r   r      s)     	 	r1   c                  ^^^ SSK JmJmJn  SUU4S jjnSUU4S jjn[	        U 5      S:X  a  S/[	        U5      -  $ [        [        R                  U S5      nU" US:H  5      nU(       a  U" U" X5      5      (       a  [        U5      $ S/[	        U5      -  n	U(       aU  [        [	        U5      S-
  SS5       H6  n
U
[	        U5      S-
  :X  a  SX'   M  [        X*S-      S5      XS-      -  X'   M8     U	$ [	        U5      S-
  n
US   nSnSn[        [	        U 5      S-
  SS5       H  nXU   -  nUS:X  d0  U" XS-
     S:g  5      (       d  M'  U" XS-
     X-  :g  5      (       d  M@  U
S:  a^  U" X:  5      (       d  U" X*   S:H  5      (       a=  X-  X'   XU
   -  nU
S-  n
U
S:  a%  U" X:  5      (       a  M)  U" X*   S:H  5      (       a  M=  U" X:g  5      (       a    g US:  d  M  XS-
     nSnSnM     U
S:w  a  g U	$ )Nr   )r   guard_or_truesym_eqc                &   > T(       a  T" U 5      $ U $ r:   rg   )r   r   size_obliviouss    r/   maybe_guard_or_false-_compute_stride.<locals>.maybe_guard_or_falseB  s    !!$$r1   c                &   > T(       a  T" U 5      $ U $ r:   rg   )r   r  r
  s    r/   maybe_guard_or_true,_compute_stride.<locals>.maybe_guard_or_trueH  s     ##r1   rM   )r   r   rf   r   )r   r   r  r  rR   r   operatormulrZ   ranger   )	old_shape
old_stride	new_shaper
  r  r  r  r   
zero_numelr   view_dchunk_base_stridetensor_numel
view_numeltensor_dr   r  s      `           @@r/   _compute_strider  6  s5       9~sS^##8<<A.E%eqj1J*6)+GHHJ%&C#i.$8JC	NQ.B7FY!++%&
" 	1*-q1Jz4JJ "	 8 ^aF%/^ !LJ#i.1,b"5(++q=	Q, 71 <==#a<(L,LL  A+#J$=>>'	(9Q(>??%/%C
"//
! A+#J$=>>'	(9Q(>?? #:#=>>!|$.!|$<! 
/ 60 |r1   c                  ^ SSK Jm  [        R                  " USS9n[	        U4S jU R                  5        5       5      =(       d?    [	        U4S jU R                  5        5       5      =(       d    [	        U4S jU 5       5      $ )Nr   has_guarding_hintFvalidatec              3  >   >#    U  H  nT" U5      (       + v   M     g 7fr:   rg   r<   sr   s     r/   r>   +_view_has_unbacked_input.<locals>.<genexpr>  s     7h!!$$$h   c              3  >   >#    U  H  nT" U5      (       + v   M     g 7fr:   rg   r$  s     r/   r>   r&    s     <A$Q'''r'  c              3  >   >#    U  H  nT" U5      (       + v   M     g 7fr:   rg   r$  s     r/   r>   r&    s     7A$Q'''r'  )r   r   utilsextract_shape_from_varargsrE   r   r   )ar   r   s     @r/   _view_has_unbacked_inputr-    sb     H,,UUCE 	7affh77 	8<<<	8777r1   c                  ^ ^ SSK Jn  SSKJnJn  [
        R                  " TSS9m[
        R                  " TT R                  5       5      mT R                  S:X  aS  T nT H<  n[        R                  " US:H  5        [        R                  R                  US5      nM>     UT L a  U" T 5      $ U$ [        T5      S:X  a]  T nT R                   H<  n[        R                  " US:H  5        [        R                  R!                  US5      nM>     UT L a  U" T 5      $ U$ [#        [$        R&                  TS5      n	[        R                  " T R                  5       U	:H  U U4S j5        [        T5      [        T R                  5      :X  a&  U" U" TT R                  5      5      (       a  U" T 5      $ U(       a  [)        T 5      (       a.  O[+        T 5      (       a  [-        T5      n
T R/                  TU
5      $ [1        T R3                  5       T R5                  5       TUS	9nUb  T R/                  TU5      $ U(       aP  [        R6                  R8                  R:                  R<                  (       d  [?        T T5      (       a  [A        T TSUS
9$ U(       a8  [-        T5      n
T RC                  [        RD                  S9R/                  TU
5      $ ST R                   ST R5                  5        ST S3n[G        U5      e)Nr   )view_ofr   r  Fr!  rM   r  c                 *   > ST R                    ST S3$ )Nz&Could not reshape a tensor with shape  as a tensor with shape !)r   )r,  r   s   r/   r   %_view_unbacked_meta.<locals>.<lambda>  s    8	AYZ_Y``abr1   )r
  )size_oblivious_enabled
allow_copymemory_formatz Cannot view a tensor with shape z and strides r2  r3  )$torch._primsr/  r   r   r  r*  r+  
infer_sizer   r   r@   _check_refs	unsqueezerR   r   squeezer   r  r  r   r   r   r   r  r   r   fxexperimental_configbacked_size_obliviousr-  _view_unbacked_metaclonecontiguous_format
ValueError)r,  r   r5  r6  r/  r   r  _alengthshape_numelstridesnew_stridesmsgs   ``           r/   rC  rC    sh    %L ,,UUCE UAGGI.E 	vv{FLL1%&&r2.B  71:I 5zQggFLL1%$$R,B  71:Iua0K	LL		[ b
 5zS\!nVE1775K&L&Lqz$:a  a@P@P-e4||E7++!	!((*e4JK ||E;// %%;;#Au--"uUz
 	
 -e4wwU%<%<w=HHPWXX,QWWI]188:,Nfglfmmn
oC
S/r1   c                   UR                   (       d  UR                  (       a  [        $ [        R                  " / UQUR                  5       P76 n[        U5      (       a8  [        XU/UQ76 n[        [        UR                  [        R                  S95      $ [        U U[        [        UR                  [        R                  S95      /UQ76 $ Nr7  )r   	is_mkldnnr   r*  r:  r   r   
_view_metatyping_castr   rD  r@   rE  )rt   rT   r,  r   views        r/   _reshape_copyrS    s     	{{akk /e/QWWY/Ea  )15u5

1H1H
I
 	
 
AGG%:Q:QG$RS
 	
 	
r1   r6  c          	        [         R                  R                  R                  R                  (       d  [        X$5      (       a  [        [        [        X$US95      $ [        [        [         R                  R                  " U/UQ7SU065      $ )NrT  r6  )r@   r?  r@  rA  rB  r-  rQ  r   rC  r<  _reshape_view_helper)rt   rT   r,  r6  r   s        r/   rP  rP    sw     xx$$::>V	? ? +AL
 	
 KK,,QNN:N
 	
r1   )outc               Z    [        XU/UQ7SS06nUb  U$ [        R                  S U5      $ )Nr6  Tc                <    U R                  [        R                  S9$ rN  )rD  r@   rE  r   s    r/   r   !_view_meta_copy.<locals>.<lambda>$  s    !''(?(?'@r1   )rP  r   tree_map)rt   rT   r,  rW  r   results         r/   _view_meta_copyr]    s;     	DUDtDF
??@ r1   c                    Uc[  U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       nSSKJn  U" U5        UR                  U5      $ Nr   r   )r   r   r   r   r   r   r   )rt   rT   repeatsoutput_sizer   s        r/   repeat_interleave_tensorrc  )  sc     '&&EE-d33))@@B 	T!+.[))r1   c                *   UR                   =nb  U$ U R                  b,  U R                  R                  (       d  U R                  (       d  [        U5      e[	        UR
                  5      (       a  U R                  R                  5       nO[        UR
                  5      (       a  U R                  R                  5       nOM[        UR
                  5      (       a  U R                  R                  5       nO[        SUR
                   35      eX2l         U$ )Nz local_scalar_dense/item NYI for )	item_memor   r   r   r   r   create_unbacked_symfloatr   r   r   create_unbacked_symboolNotImplementedError)rt   rT   rK   r   s       r/   local_scalar_denseri  A  s    
 ]]'"44.. +400cii  88:	#))	$	$668	#))	$	$779!$DSYYK"PQQMHr1   c                    [         R                  R                  R                  R	                  U5      R                  S5      $ )NrM   )r@   opsr   r   r   unbind)rt   rT   rK   s      r/   nonzero_numpyrm  Z  s.     99>>!!))#.55a88r1   c                h   U R                   b  U R                   R                  (       d  [        U5      eUR                  =nGc@  SSKJnJn  SSKJn  SSK	J
n  U" UR                  5       5      (       d  UR                  5       S:X  a  SnOU R                   R                  5       n[        R                  S-
  nU" UR                  5       5      (       d  [        UR                  5       5      nO[         R"                  " UR$                  5      R&                  n	U" U	R(                  U	R                   R*                  5      n
[-        U
R.                  U5      (       a  [        R                  S-
  nOU
R.                  nU" X8S9  X2l        UR1                  X2R3                  5       4SU4[4        R6                  S9$ )Nr   r   IntInfinitybound_sympyrM   r   r   )r   r   r   nonzero_memor   r   r   torch.utils._sympy.numbersrp  torch.utils._sympy.value_rangesrr  r   r   r   r   r   mathprodr   nodeexprvar_to_rangerN   uppernew_empty_stridedr   r@   r   )rt   rT   rK   r   r   r   rp  rr  r   	prod_node
prod_ranges              r/   r   r   a  sL    	#""AA *$//(	
 	;?		,,1A C%%<<>C[[1_F#CIIK00SYY[) IIcii055	(NNI$7$7$D$D
 j..<< [[1_F'--F%c6  #wwy!1As85;; OOr1   c                   [        U5      S:w  a  [        S[        U5       S35      eU(       d  U R                  b  U R                  R                  (       d  [	        U5      eU R                  R                  5       n[        R                  S-
  nSSKJ	nJ
n  U" UR                  5       5      (       d  [        UR                  5       5      nU" USUS9  U/UR                  SS  Q7nUR                  U5      $ )NrM   z&Only one jagged dim is supported, got z offsetsr   r   )minr      )rR   rO   r   r   r   r   r   r   r   r   r   r   r   r   r   )	rt   rT   paddedoffsetstotal_Lr   r   r   output_shapes	            r/   _padded_dense_to_jagged_forwardr    s     7|q4S\N(K
 	
 '&&EE .d33%%<<>q	

  //(F!'qf=/fll12./LL))r1   c                h   SSK JnJn  U" U" US:  X:*  5      5      (       a  U$ U" U" US:  X* :  5      5      (       a  X-   $ U" X* :  5      (       a  gU" X:  5      (       a  U $ U" US:  5      (       a  [        R                  " X5      $ U" US:  5      (       a  [        R
                  " X-   S5      $ g )Nr   )r   sym_and)r   r   r  r@   sym_minsym_max)r   r   r   r  s       r/   _compute_slice_indexr    s    Mgeqj%-899		5E>:	;	;|		&	&		%	%	
	#	#}}U))			"	"}}U\1--r1   c                2   SSK JnJn  U R                  n	UR	                  5       n
U
S:X  a  [        S5      e[        UR	                  5       U5      n[        UR                  5       5      n[        UR                  5       5      nUS::  a  [        S5      eUc  SO[        X   U5      nU" U[        R                  :H  5      (       d  Uc  X   O[        X   U5      nS nUbV  UbS  U" X:  5      (       a  X-
  U-   S-
  U-  nO6U" X:  5      (       a  SnO$[        R                  " X-
  S5      nUU-   S-
  U-  nUcR  U	c  [        S5      eU	R!                  5       n[        R"                  " US:  5        [        R"                  " XU   :*  5        X   U-  nUb  UR%                  5       XU   -  -   nO7U	c  [        S5      eU	R!                  5       n[        R"                  " US:  5        XU'   UX'   UR&                  (       a  [)        S5      eUR+                  XU5      $ )Nr   )r   statically_known_truez,slice() cannot be applied to a 0-dim tensor.zslice step must be positiverM   z$Must have shape_env to create symintz<Slice decomposition for quantized tensors aren't implemented)r   r   r  r   r   r   r   rZ   r   r   r  r   r   r@   r  rO   r   r;  r   is_quantizedrh  r   )rt   rT   r   r   startendstepr   r  r   r   sizesrJ  start_index	end_indexr   diffr   r   s                      r/   slice_forwardr    s   
 ##I88:DqyIJJ
488:s
+CE4;;=!Gqy899 }!*>uz5*QK !!344 	
!%*c2  $(H9#8)233!/$6:tCHK455H
 ==!8!<DtaD0H  !GHH335X]#Xs+, $J ,,.s|1KK !GHH"99;^q()#JGL!J
 	
 u~>>r1   c                   U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       n[        R
                  S-
  nSSKJnJn  SSK	J
n  SSKJn	  U" UR                  5       5      (       d  [        UR                  5       5      n
O[        R                   " UR"                  5      R$                  nU	" UR&                  UR                   R(                  5      n[+        UR,                  U5      (       a  [        R
                  S-
  n
OUR,                  n
U
S:  a  U
nU" XES9  UR/                  U45      $ )NrM   r   r   ro  rq  r  r   )r   r   r   r   r   r   r   r   r   rt  rp  ru  rr  r   r   rv  rw  r   rx  ry  rz  rN   r{  r   )rt   rT   r   maskr   r   r   r   rp  rr  num_elementsr}  r~  s                r/   masked_selectr    s   
 	#""AA *$//



4
4
6C [[1_F 7;
 DJJL))4::<(IIdjj)..	 1D1D1Q1QR
j&&44;;?L%++Lac.>>3&!!r1   )r6   layoutc                  Ub3  UR                  5       U:w  a  [        SU SUR                  5        35      eUb3  UR                  5       U:w  a  [        SU SUR                  5        35      eUb+  UR                  U:w  a  [        SU SUR                   35      eUb+  UR                  U:w  a  [        SU SUR                   35      eUb,  UR
                  U:w  a  [        SU SUR
                   35      eg g )Nz!Tensor sizes mismatch! Expected: z, Got: z#Tensor strides mismatch! Expected: z!Tensor dtype mismatch! Expected: z"Tensor layout mismatch! Expected: z"Tensor device mismatch! Expected: )r   rO   r   r   r  r6   )rt   rT   tr  rJ  r   r6   r  s           r/   assert_tensor_metadatar  J  s    668u 3E7'!&&(L  88:  5gYgahhj\R  77e 3E7'!''K  88v 4VHGAHH:N  88v 4VHGAHH:N   r1   c                P    [         R                  R                  U R                  ;   $ r:   )r@   r   data_dependent_outputr   r   s    r/   r   r   r  s    uyy>>$))Kr1   c                    [        U5      er:   )r   rs   s       r/   data_depr  r  s     't
,,r1   c                    U HA  nUc  M  UR                   [        R                  [        R                  4;   d  M8  [	        U 5      e   g r:   )r   r@   r   uint8r   )rT   r   indicesr   s       r/   check_no_bool_index_tensorsr  {  s7     U[[0I!I-d33 r1   c                   [        XUSS9u  pEUS   R                  n[        U 5         U" U0 UD6n[        U5      (       d  UR	                  UR
                  5      nS S S 5        WUS   L a  U$ [        XU5      $ ! , (       d  f       N$= fNTry   r|   )r   r6   r   r7   r   r   r   )rt   rT   ru   rv   r   r   r   rW  s           r/   )run_and_return_new_tensor_of_input_devicer    s     1TMA G$++J	%i	0D#F#)*55--		*C 
1
 j!!
ij11 
1	0s   4A::
Br   primsprimc                (    U R                   [        ;   $ r:   )	namespace_is_builtin_namespacesrj   s    r/   
is_builtinr    s    <<111r1   c                ^    [         R                  R                  U R                  5       S5      $ )NMeta)r@   rA   ._dispatch_has_computed_kernel_for_dispatch_keyr   r   s    r/   r*   r*     s     88BB499;PVWWr1   c                    [        U 5      =(       a1    U R                  5       R                  S5      =(       a    [        U 5      $ )Nzaten::_foreach_)r  r   
startswithr*   r   s    r/   r   r     s4    D! 		01r1   c           	        [         R                  " X#R                  5       5       Vs/ s HX  n[        U[        [
        45      (       d  M   [        U5      (       d  M2  [        US   [        R                  5      (       d  MV  UPMZ     nn [        U 5         U" U0 UD6nS S S 5        W(       d  U$ U(       d  [        S5      e/ n[        U5       H[  u  p[        R                  " X V
s/ s H  oU   PM	     sn
5      u  pUR!                  U R"                  R%                  X	U5      5        M]     U$ s  snf ! , (       d  f       N= f! [         a	    [        s $ f = fs  sn
f )Nr   ztensor_lists must not be empty)r   r   r   rN   rZ   r[   rR   r@   r   r   rh  r   rO   	enumerater   _find_common_devicer^   r   r   )rt   rT   ru   rv   rK   tensor_listsout_metaout_fakeimeta_ttlr6   r   s                r/    foreach_run_and_map_input_devicer    s0    ??499CcD%=) 	 H 	 s1vu||,	 	9  ))4T,V,H 5
 =>>Hx(	224,9W,BQ%,9WX	++@@6	
 ) O; 54  :XsM   D.
D. D. D.	E 	D3E &E3
E=E E EEc                    SSK Jn  [        XUSS9u  pVUS   R                  nU    U" U0 UD6nUR	                  U5      sS S S 5        $ ! , (       d  f       g = f)Nr   )meta_index_TensorTry   r|   )torch._meta_registrationsr  r   r6   to)	rt   rT   ru   rv   r  r   r   r   rW  s	            r/   index_tensorr    sT     <0TMA G$++J	00vvj! 
s   A
Ac                X    SSK Jn  U    U" U0 UD6sS S S 5        $ ! , (       d  f       g = f)Nr   )meta_embedding_bag)r  r  )rt   rT   ru   rv   r  s        r/   embedding_bagr    s!     =	!4262 
s   
)c                    [        XX#5      $ r:   )r  rs   s       r/   multi_device_op_defaultr    s     5YdSSr1   c                    [        U 5         U" U0 UD6  S S S 5        [        XUSS9u  pEUS   $ ! , (       d  f       N = fr  )r   r   )rt   rT   ru   rv   r   r   s         r/   multi_device_op_outr    sI    
 
&i	0df 
1 1TMA g 
1	0s   	/
=c                `  ^^^ [        TX#SS9u  pEUS   mUS   R                  m[        R                  " TTR                  :H  =(       d)    TR                  S:H  =(       a    TR                  5       S:H  UUU4S j5        [        U TX#5      nT[        R                  R                  L a  US   $ U$ )NTry   r   r|   r   rM   c                 0   > ST  ST STR                    S3$ )NzMismatching z device between self (z) and values ()r5   )rT   self_devicer   s   r/   r    index_put_impl.<locals>.<lambda>  s$    ,tf$:;-~V\VcVcUddefr1   )
r   r   r@   r;  r   r   r  r   
index_put_r   )	rt   rT   ru   rv   r   r   rW  r  r   s	    `     @@r/   index_put_implr    s    
 14TMA !FW%11K	LLv)))WfkkQ.>.V6<<>UVCVf
 4ItT
RCt&&&'""
r1   c                    [        U5      er:   )r   rs   s       r/   nested_tensors_unsupportedr    s     't
,,r1   c                4    U[         ;   a  [        SU 35      eg )NzNYI: )_device_not_kwarg_opsrO   rs   s       r/   nyir  (  s#      $$uTF^,, %r1   c                *  ^ ^^ [        XUSS9u  pEUS   nUS   nUR                  mT    UR                  nSSKJm  [        U4S jUR                   5       5      =(       a    [        U4S jUR                   5       5      n	U	(       d  S n
OUR                  S	5      n[        US
   US   US   US   US   US   US9nUc  UR                  S5      US'   [        R                  R                  " Xg40 UD6nUS:X  aR  UR                  (       dA  UR                  (       d0  UR                  5       R                  S5      nUR                  S5      n[        R                  R!                  XgU5      n
S S S 5              SUU 4S jjn[#        T 5         U" S0 UD6nU[$        R&                  R(                  L a  U" UW
5      sS S S 5        $ U" US   W
5      U" US   U
5      U" US   S 5      4sS S S 5        $ ! , (       d  f       N= f! , (       d  f       g = f)NTry   r|   weightr   r  c              3  4   >#    U  H  nT" U5      v   M     g 7fr:   rg   r$  s     r/   r>   conv.<locals>.<genexpr>N  s     D|!*1--|r   c              3  4   >#    U  H  nT" U5      v   M     g 7fr:   rg   r$  s     r/   r>   r  N  s      M
*6Qa  ,r   biasr   paddingdilation
transposedoutput_paddinggroups)r   r  r  r  r  r  r  
bias_sizes   r  c                   > U c  U $ Ube  U R                  5       S:X  aB  U[        R                  :X  a.  U R                  S5      R	                  US9R                  S5      n OU R	                  US9n [        TU T5      $ )Nr  r  r7  )r   r@   channels_lastr=  r  r>  r   )r  mem_fmtr6   rt   s     r/   convertconv.<locals>.converts  st     9Huuw!|5+>+> >KKN%%G%<DDQGDDwD/)Q//r1   rM   )r  ztorch.Tensor | Noner  ztorch.memory_format | Nonerf   FakeTensor | Nonerg   )r   r   r   r   r   allr   rC   r,   r@   rA   _select_conv_backendrO  is_xpu
contiguousr=  %_conv_determine_backend_memory_formatr   r   convolutionr   )rt   rT   ru   rv   r   r   input_r  k
all_hintedr  r  select_kwargsconv_backendr  rW  r6   r   s   `               @@r/   convr  <  s    1TMA  F!FF	KK 	LDv||DD 
 M
*0,,M
 J

  G >>&)D/3!(+"9-#J/%l3)*:;!(+0M |.8nn\.Jl+ 8888"/L Avf..v}}**,66q9))!,hhDDGQ 
X00)C0	0 0 
&i	0 Z 4##+++3(	 
1	0 A(A(A% 
1	0s 
r 
1	0s   EG3.H"H3
H
Hc                
   U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       nSSKJn  U" U5        [        R                  " XT:  5        UR                  U5      $ r_  )	r   r   r   r   r   r   r@   r;  r   )rt   rT   inputsweights	minlengthr   r   s          r/   bincountr    sk     	#""AA *$//""99;HOh'	LL&'H%%r1   c                T   U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       nSSKJn  U" U5        U(       d  UR                  SS5      nUR                  SS  nUR                  U5      nUR                  U45      n	X4$ )Nr   r`  rM   )	r   r   r   r   r   r   	transposer   r   )
rt   rT   r  lengthsbatch_firstnew_batch_sizer   res_sizepacked_data
batch_sizes
             r/   _pack_padded_sequencer    s     	#""AA *$//((??ANOn-!!!Q'||ABH""8,K!!>"34J$$r1   c                   ^  SU 4S jjnU$ )Nc                   > U [         T'   U $ r:   )FAST_OP_IMPLEMENTATIONS)r_   rT   s    r/   rb   -register_fast_op_impl.<locals>.impl_decorator  s    (/%r1   rd   rg   )rT   rb   s   ` r/   register_fast_op_implr    s     r1   c                  ^
^^ SSK Jn  [        U 5      n[        U5      n[        X45      nS/U-  n[	        US-
  SS5       H  m
US-
  T
-
  nUS-
  U-
  nUS-
  U-
  n	US:  a  X   OSmU	S:  a  X   OSm[
        R                  " U" TS:H  5      =(       d    U" TS:H  5      =(       d    TT:H  U
UU4S j5        U" TS:H  5      (       a  TOTUT
'   M     [        U5      $ )Nr   r   rM   r  c                    > ST ST ST  S3$ )NzThe size of tensor a (z#) must match the size of tensor b (z) at non-singleton dimension r  rg   )r  sizeAsizeBs   r/   r   infer_size.<locals>.<lambda>  s%    ,UG 4005w 7**+A/r1   )r   r   rR   r   r  r@   r;  r[   )r,  br   dimsAdimsBr   expandedSizesoffsetdimAdimBr  r  r  s             @@@r/   r:  r:    s     EFEFEuD()sTzM4!8R$Aqy6!qy6!19!19! 	5A:&V.!*DVQV/	
 %35A:$>$>5Ea1 %2 r1   c                   ^ ^ SU U4S jjnU$ )Nc           
       >^ ^^ SUUU U4S jjn[        S5        TnS nU H@  n[        U[        R                  5      (       a  UR                  OSnUc  Un[        XW5      nMB     Uc  [        S5      eSSKJnJ	n	  U Hh  n[        U[        R                  5      (       d  M$  [        UR                  5      [        U5      :X  d  MH  U" U	" UR                  U5      5      (       d  Mh    O
   U" S5      $ [        R                  " S5      n
U
nS nS	nU H  n[        U[        R                  5      (       d  S
nM&  X:X  a&  UR                  R                  S:w  a  UR                  nUc&  T[        R                  :w  a  S
nMl  UR                  nMz  XR                  :w  d  M  S
nM     U(       a  [!        UST06u  pSnSnU H~  n[        U[        R                  5      (       d  M$  X:w  a;  UR#                  5       S:X  a'  UR                  U
:X  a  UU:  a
  U" S5      s  $ US-  nMd  UR                  U:w  d  Mv  U" S5      s  $    S
nS
n[%        U5      (       al  U Hf  n[        U[        R                  5      (       d  M$  U=(       a    ['        U[        R(                  S9nU=(       a    ['        U[        R*                  S9nMh     U(       a9  [        S5        [-        T [        R.                  " UUS[        R(                  S9US9$ U(       a9  [        S5        [-        T [        R.                  " UUS[        R*                  S9US9$ U" S5      $ )Nc                j   > [        SU  35        T   T" T0 TD6sS S S 5        $ ! , (       d  f       g = f)Nzslow r   )rL  ru   rv   modeslow_refs    r/   slow=make_fast_binary_impl.<locals>.fast_binary_impl.<locals>.slow  s+    %u&00 s   $
2zattempt fastrg   zfinal_shape must not be Noner   r0  z#both tensors nontrivially broadcastr}   FTtype_promotion_kindrM   errorr7  zfast is_contiguousr~   )r   r6   r8  r5   zfast channels_lastzno contiguity match)rL  strrf   r   )r   rN   r@   r   r   r:  rO   r   r   r  rR   r6   r4   r   DEFAULTr   r   r   r7   r   rE  r  r   empty)r  ru   rv   r  operandsfinal_shaper`   r   r   r  r}   common_devicecommon_dtypehas_different_input_dtypesr   current_cpu_scalars_on_non_cpumax_cpu_scalars_on_non_cpudefinitely_contiguousdefinitely_channels_lastr  r  s   ```                r/   fast_binary_impl/make_fast_binary_impl.<locals>.fast_binary_impl  s   	1 	1
 	N#  )-B+5b%,,+G+GrxxRE"#
 %[8K   !?@@P B2u||,,MS%55"6"((K#@AA  =>> ll5!&)+/%*"Bb%,,//-1*#		%(? "		#&*I*Q*QQ15.#%88L)-1*  & 1/BOA *+&%&"Bb%,,//#A"))s:J15OO=(.!3.m+G}$  !%#' 
 &m44!"ell33) @%*A*A & - @%*=*= )  !,-&!"'"9"9	 %	 	 $,-&!"'"5"5	 %	 	 )**r1   )r  r"   ru   r   rv   r   rf   r   rg   )r  r  r*  s   `` r/   make_fast_binary_implr,    s    K+ K+Z r1   c                v   [        5          [        U 5         [        R                  R                  R
                  R                  U5      nS S S 5        S S S 5        U(       a   [        U WUR                  UR                  S9$ [        U WUR                  5      $ ! , (       d  f       NT= f! , (       d  f       N]= f)N)real_tensor)
r
   r   r@   rk  r   detachr   r   r6   r.  )rt   r   include_realrW  s       r/   fast_detachr1    sy     
	!=i!Hiinn##++A. "I	)S!((NNiahh//	 "I!H		s"   B*4BB*
B'	#B**
B8c                 Z   SS K n [        U R                  R                  R                  R
                  5      " [        U R                  R                  5      5        [        U R                  R                  R                  R
                  5      " [        U R                  R                  5      5        [        U R                  R                  R                  R
                  5      " [        U R                  R                  5      5        [        U R                  R                  R                  R
                  5      " [        U R                  R                  [        R                  S95        [        U R                  R                  R                  R                  5      " [        5        [         $ )Nr   )r  )torch._refsr  rk  r   addr   r,  r<  subr  divr   INT_TO_FLOATr/  r   r1  r  )r@   s    r/   r(   r(     s   %))..,,334ekkoo. %))..,,334ekkoo. %))..,,334ekkoo. %))..,,334KKOO ? L L	
 %))..//778E""r1   )r.   r&   rf   zdict[_T, bool])r6   ztorch.devicerf   r   )rG   r   rf   r   )rT   r   rf   r   )ra   zUCallable[[OpOverload], bool] | OpOverload | list[OpOverload] | tuple[OpOverload, ...]rf   .Callable[[Callable[_P, _R]], Callable[_P, _R]])r`   r   rf   r   )r`   r   rf   None)
rt   r"   rT   r   ru   r   rv   r   rf   r   )
rt   r"   rT   r   ru   r   rv   r   rf   r   )
rt   r"   rT   r   ru   r   rv   r   rf   r   r:   )
rt   r"   rT   r   r   r  ru   object | Nonerf   r   )rt   r"   rT   r   r   r   rf   r9  )
rt   r"   rT   r   r   r  ru   r:  rf   r   )
rt   r"   rT   r   ru   r   rv   r   rf   r9  )TFF)rt   r"   rT   r   rK   r   r   
int | Noner   r   r   r   r   r   r   r   rf   )tuple[FakeTensor, FakeTensor, FakeTensor])rt   r"   rT   r   rK   r   r   r   r   r   r   r   rf   r<  )rt   r"   rT   r   r   r   r   r   r   r#   rf   r   )rt   r"   rT   r   rK   r   r   r   r   r   r   r   r   r   rf   r<  )FFN)rt   r"   rT   r   rK   r   r   r   r   r   r   r;  rf   r<  )F)
r  Sequence[IntLikeType]r  r=  r  r=  r
  r   rf   zlist[IntLikeType] | None)r,  torch.Tensorr   ShapeType | tuple[ShapeType]rf   r   )TF)
r,  r>  r   r?  r5  r   r6  r   rf   r>  )
rt   r"   rT   r   r,  r   r   r   rf   zFakeTensor | Exception)rt   r"   rT   r   r,  r   r   r   r6  r   rf   r   )rt   r"   rT   r   r,  r   r   r#   rW  r  rf   r   )
rt   r"   rT   r   ra  r   rb  IntLikeType | Nonerf   r   )rt   r"   rT   r   rK   r   rf   zBint | float | bool | torch.SymInt | torch.SymFloat | torch.SymBool)rt   r"   rT   r   rK   r   rf   list[FakeTensor])rt   r"   rT   r   rK   r   rf   r   )rt   r"   rT   r   r  r   r  rA  r  r@  rf   r   )r   r#   r   r#   rf   r@  )r   NNrM   )rt   r"   rT   r   r   r   r   r   r  r;  r  r;  r  r   rf   r   )
rt   r"   rT   r   r   r   r  r   rf   r   )NNN)rt   r"   rT   r   r  r   r  ztorch.Size | NonerJ  ztuple[int, ...] | Noner   ztorch.dtype | Noner6   ztorch.device | Noner  ztorch.layout | Nonerf   r9  )rT   r   r   r   r  zlist[FakeTensor | None]rf   r9  )
rt   r"   rT   r   ru   ztuple[Any, ...]rv   zdict[str, Any]rf   r   )
rt   r"   rT   r   ru   r   rv   r   rf   zlist[FakeTensor] | None)
rt   r"   rT   r   ru   r   rv   r   rf   z5tuple[FakeTensor, FakeTensor, FakeTensor, FakeTensor])
rt   r"   rT   r   ru   r   rv   r   rf   zKFakeTensor | tuple[FakeTensor | None, FakeTensor | None, FakeTensor | None])Nr   )rt   r"   rT   r   r  r   r  r  r  r#   rf   r   )rt   r"   rT   r   r  r   r  r   r  r   rf   ztuple[FakeTensor, FakeTensor])rT   r   rf   r8  )r,  r=  r  r=  rf   ztuple[IntLikeType, ...])r  zCallable[..., Any]r  r   rf   zCallable[..., FakeTensor])rt   r"   r   r   r0  r   rf   r   )rf   z$dict[OpOverload, Callable[..., Any]])
__future__r   	functoolsr   rv  r  r   r   typingr   r   rQ  r   r   typing_extensionsr	   r@   torch._custom_optorch._loggingtorch._prims_common_prims_commonr*  torch._dispatch.pythonr
   
torch._opsr   r   r   r   r   r   r   r   r   r   r   r   torch._subclasses.fake_tensorr   r   r   r   r   r   torch.fx.operator_schemasr   torch.utils._statsr   collections.abcr    r!   r"   torch.typesr#   r   FakeTensorLiker$   r%   r&   _pytreer   __all__rY   r'   _opsrk  r   r0   r7   r   r   rW  	full_like	ones_like	rand_like	generatorgenerator_out
randn_likerandint_likeTensor_generator
Tensor_outTensor_generator_out	low_dtypelow_generator_dtypelow_dtype_outlow_generator_dtype_out
zeros_liker   r|  new_full	new_zerosnew_onesr   _resize_output__nested_tensor_from_tensor_list
pin_memoryr  r6   prim_Device	is_pinned_pin_memory_resize_outputr  _list_to_tensorr   r;   cacherV   r\   rk   rq   __contains__rw   r   r   profilerr   r   r   r   r)   r   r   r   r   r   _unique2r   selectr   r  r  r   r  r-  rC  rS  rR  _unsafe_viewrP  	view_copyr]  r   rc  item_local_scalar_denseri  rm  r   r  r  slicer  r  _assert_tensor_metadatar  r  r  r  r  r  r*   r  r   r  _embedding_bagr  _unsafe_index_putcopycopy_slice_scatterdiagonal_scatterr  r  	index_putr  r  _nested_view_from_buffer_nested_view_from_buffer_copyr  r  r  convolution_backwardr  r  r  r  r  r:  r  r,  r1  r(   r   s   0r/   <module>r     s   "     
  C C '    # 7 !     C * 2<' ell*t_T]T]			    zz~~&  ( 'OO'OO' 	NN' 	NN	'
 	NN' 	NN' 	NN' 	NN' 	NN' 	NN  ' 	OO' 	OO' 	OO' 	OO!!' 	'  	!'" 	#'$ 	&&%'& 	  ''( 	**)'* 	+', 	##-'. 	/'0 	))1'2 	##3'4 	--5'6 	OO7'8 	OO9': 	NN;'< 	NN='> 	""?'@ 	A'B 	MMC'D 	MME'F 	NNG'H 	NNI'J 	MMK'L 	MMM' T $  ((00((,,OOGGNNGGNN  #'"6"6!8  	 	
 44) )667KK%/K8;KGJKK 8K ().-./00%/08;0GJ00 0 *0@ $..(()%/8;GJ	 *  %))$$;;CCDRV	C	C%/	C7:	CBO	C	C E	C %))$$::BBC		%/	9<			 D	 %))$$??GGHRV  %/ 7: BO   I  $''%%&$''..!%/8;GJ " '$
 %&--%/-8;-GJ-- '-D $//))*%%%/%8;%GJ%% +% $??GGH::%/:8;:GJ:: I: T
,,%/,8;,GJ,	,
,  O  %OO
O 
O 
	O
 O O O O /Od $--''(
  VV
V 
V 	V
 V V /V )V $++//".E.E
.E .E 
	.E
 .E .E #.Eb $//))*  
 
 
	
    / +* $))112
 !
 
 	
  
 / 32 !	L$L%L %L 	L
 L^8	" $(	PP'P !P 	P
 Pf $$$,,-

%/
4>
HK

 .
, $))##$$##++, 



 
 	

 
 
 - %
( $..(() "
  	
 
  ** $((//0
 '+	**
* * $	*
 * 1*. %))..%%--.%))..44<<=%/6@G > /. %))....66799%/96@99 89 %))..((001/P 2/Pd %))..@@HHI #'%*%*
%* %* 	%*
  %* %* J%*P& %))..&&--.
 J?J?
J? J? 
	J?
 J? 
J? J? J? /J?Z %))....667("("%/("7A("IS("(" 8("V %))..88@@A
  $&* $# #'"&##
# # 	#
 $# #  #  # 
# B#N KL--%/-8;-GJ-	- M-4
4&41H4	422
2 2 	2
 2* %VWf= 2X
 
  %/ 8; GJ  
 L $**##$""%/"8;"GJ"" %"$ $%%--.33%/38;3GJ3:3 /3 $((001$))##$$**$$%$$$,,-$''//0TT%/T8;TGJTT 1 . & % 2
T $))-- $$$(()

%/
8;
GJ

 * !
 $..(()$//))*%/8;GJ + *( $66>>?$66::;$//778$44<<=--%/-8;-GJ-	- > 9 < @-  '&A NN""GGNNGG00880044

 	
&--
 4##++T-F-F-N-NOPMM%/M8;MGJMPM QM` %))..))112
 "&&&
& & 	&
 & & 3&. %))..66>>?%%
% % 	%
 % #% @%>  

3" " !6" " N <[;b;bQ Q8Q Qn DI00",0<@00 # #es   7A3A@(.A@(