
    ¯wg
              	       :	   d dl Z d dlZd dlmc mZ d dlmZmZm	Z	m
Z
mZmZmZ d dlmZmZ  e j&                  ej(                  d      Z ed       e
j,                  ddd	      dJd
ej.                  fd              Z ed       e
j,                  ddd	      dJd
ej.                  fd              Z ed       e
j,                  ddd      dKd
ej.                  fd              Z ed       e
j,                  dddd      dJd
ej.                  fd              Z ed      dJd
ej.                  fd       Z ed      	 dJd
ej.                  fd       Z ed      	 dJd
ej.                  fd       Z ed       e
j,                  dddd      	 dJd
ej.                  fd              Z ed       e
j,                  ddd      dLd
ej.                  fd              Z  ed      dJd
ej.                  fd       Z! ed       e
j,                  dddd      dMd
ej.                  fd              Z" ed        e
j,                  dddddd      	 	 dNd
ej.                  fd!              Z# ed"       e
j,                  ddddd      	 	 dNd
ej.                  fd#              Z$d$ Z% ed% e
jL                  d&d'      g(      d)        Z' ed*      d
ej.                  fd+       Z( ed,       e
j,                  dddd      dJd
ej.                  fd-              Z) ed.      d
ej.                  fd/       Z* ed0      	 dOd
ej.                  fd1       Z+ ed2       e
j,                  dddd      d
ej.                  fd3              Z, ed4      d
ej.                  fd5       Z- ed6      d
ej.                  fd7       Z. ed8      d
ej.                  fd9       Z/ ed:      d
ej.                  fd;       Z0 ed<      d
ej.                  fd=       Z1 ed>      d
ej.                  fd?       Z2 ed@      d
ej.                  fdA       Z3 edB      d
ej.                  fdC       Z4 edD      d
ej.                  fdE       Z5 edF      d
ej.                  fdG       Z6 edH      d
ej.                  fdI       Z7y)P    N)
_constants_type_utilserrorssymbolic_helpersymbolic_opset11symbolic_opset9utils)	jit_utilsregistration   )opsetzaten::softmaxvinonegc                    | j                  d||      }|rm|j                         j                         dk7  rLt        j                  |dd      }| j                  d|t        j                  |      j                               }|S )NSoftmaxaxis_iprim::Constantr   dtypeCastto_iopnodekindr   
_get_constr   JitScalarType	onnx_type)r   inputdimr   softmaxparsed_dtypes         `/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset13.pyr$   r$      s{     dd9eCd0G""$(88&11%gF$$G+";";L"I"S"S"U  
 N    zaten::log_softmaxc                    | j                  d||      }|rm|j                         j                         dk7  rLt        j                  |dd      }| j                  d|t        j                  |      j                               }|S )N
LogSoftmaxr   r   r   r   r   r   r   )r   r"   r#   r   	return_opr%   s         r&   log_softmaxr+   &   s|     \55I""$(88&11%gFDDIK$=$=l$K$U$U$W  
	 r'   zaten::frobenius_normc                    t        j                  |d      }t        j                  |      s"t        |      dk(  r| j	                  d|d      S | j	                  d||      }t        j
                  | |||      }| j	                  d|      S )Nisr   ReduceL2
keepdims_iMulSqrt)r   _maybe_get_const	_is_valuelenr   _reducesum_helper)r   selfr#   keepdimdim_valsqrsumsqrs          r&   frobenius_normr<   2   s}     ..sD9G$$W-#g,!2CttJt33
$$udD
!C..q#swOF44r'   zaten::splitc                 |   t        j                  ||      s| j                  d|||      }||S t        j                  |      rt	        t        j
                  |            |k(  rt        j
                  |      D cg c]  }t        j                  | |dg       }}| j                  dt        j                  dgt        j                              }| j                  dt        j                  |gt        j                              }	g }
t        |      D ]>  }| j                  d|||         }|
j                  | j                  d||||	             |}@ |
S t        |      D cg c]J  }| j                  d	|| j                  dt        j                  |gt        j                                    L c}S t        j                  |j                         d
      }|j                         dkD  r| j                  d||||      S t        j                  |dd      }t        j                   ||      }||||z  }nt#        j$                  d|      |g||z  z  }||z  }|r|j                  |       | j                  dt        j                  |            }| j                  d||||      S c c}w c c}w )NSplitToSequencer   r   Constantr   value_tAddSlice
SequenceAtvalueSplitr   outputsr   
split_size$Unknown dimension size not supported)r   _is_split_staticr   _is_packed_listr5   _unpack_list_unsqueeze_helpertorchtensorlongrangeappend	_node_getr   r#   r   _get_tensor_dim_sizer   SymbolicValueError)r   r7   split_size_or_sizesr#   _outputs	split_outr   split_sizesstartaxisresr   end	split_valrJ   sizesplitsleftovers                     r&   splitrd   =   s    ++,?JDD*D2EcDR	 ++,?@O001DEF(R )556IJ  11!Q<K 
 DDU\\1#UZZ-PDQE44
ELL#ejj,Q4RDC8_ dd5+a. 

144uc4@A J 8_
  DDZqc)LM
 	
  ))*=*B*B*DgNI}}ttGT#6sHtUU ++,?lSJ//c:D|(D++6  \TZ/0Fj HhTT*ell6&:T;F44vc84DDU
s   ?J4+AJ9zaten::split_with_sizesc                      t        | ||||      S Nrd   r   r7   r[   r#   rY   s        r&   split_with_sizesri   v   s    D+sH55r'   zaten::unsafe_splitc                      t        | ||||      S rf   rg   )r   r7   rX   r#   rY   s        r&   unsafe_splitrk   {   s     D-sH==r'   zaten::unsafe_split_with_sizesc                      t        | ||||      S rf   )ri   rh   s        r&   unsafe_split_with_sizesrm      s     At[#x@@r'   zaten::tensor_splitc                 t   | j                  dt        j                  |t        j                              }t	        j
                  | |d      }| j                  dt        j                  dt        j                              }t        j                  ||      rt        j                  |j                         d      }|j                         dkD  r| j                  dt        j                  dgt        j                              }g }	|J t        |dz
        D ]r  }
| j                  d|| j                  dt        j                  |
gt        j                              d      }|	j                  | j                  d	||||             |}t t        j                  | ||      }|	j                  | j                  d	||||             |	S t        j                  |d
d      }t        j                  ||      }||||z  }nt!        j"                  d|      ||z  }||z  }||dz   gz  }||z
  |gz  }| j                  dt        j                  ||z   t        j                              }| j                  d||||      S t        j$                  |      rt        j&                  |      dk(  rt        j                  | || j                  dt        j                  d                  }t	        j
                  | |d      }| j                  d|t(        j*                  j,                        }| j                  dt        j                  dgt        j                              }| j                  d||d      }| j                  d      }t/        j0                  | d|||dd      \  }\  }}|j2                  }t5        j6                  |      }t5        j6                  |      }t5        j6                  |      }|j                  d||d      }|j                  d||j                  d||      d      }|j                  d	||||      }|j                  d||      }|j                  d|      }t5        j8                  ||       t5        j8                  ||       |j                         j;                         }| j                  d|| j                  dt        j                  dt        j                              d      }t	        j
                  | |d      }t        j                  | ||      }| j                  d	||||      }| j                  d||      S t        j                  | ||      } | j                  d| |      }| j                  d||      }!| j                  d| |      }| j                  d|!|      }| j                  d|| j                  dt	        j
                  | |d      |            }| j                  d||d      }|| j                  d|||      S | j                  d||||      S )Nr?   r@   rA   r      rF   Gatherr   rD   r   indices_or_sectionsrK   rG   rH   r   r   ConcatSequenceEmptyLoop)rI   n_blocksrC   SequenceInsertIdentityDivModTileSubr>   )r   rP   rQ   rR   opset11	unsqueezer   rL   rU   r   r#   rS   rT   _size_helperr   rV   r   rW   
_is_tensor_get_tensor_rank_C_onnxTensorProtoDataTypeBOOLr
   add_op_with_blocksblockr	   _add_input_to_block_add_output_to_blockoutput)"r   r7   rq   r#   rY   r]   const_1r`   r\   r^   r   r_   rJ   ra   min_split_sizenum_splits_one_extrarb   rc   loop_lenloop_condition	padding_0final_splitslooploop_context_
loop_blockblock_input_itercondslicecond_outloop_out
last_slicedim_sizemin_split_size_plus_1s"                                     r&   tensor_splitr      s   
 44
ELLEJJ$G4HDQa(Ddd:u||AUZZ'HdIG''(;XF#--.A.F.F.H'R	==?QDDU\\1#UZZ-PDQEC'''8a<( dd'DDU\\1#UZZ-PDQ	   

144uc4@A "..q$=CJJqttGT5#t<=J$//&;

 33D#><#!H,//:D  +#j0%!);(<<!55.9IIVh->ejj Q  
 ttGT6#xtHH 	""#67,,-@AQF"//"ADDU\\!_D$M
 $$Q!4fgG4O4O4T4TU DDU\\1#UZZ-PDQ	dd8Y8KTUdVttO,#,#?#?vxqST$
 o|q "''
 44Z@((400<)+;A   
 ooOOE#3W=	  
 uc4@#'7uM  ??:~>"":x8"":|<99;%%'DDU\\"EJJ%GDH	  
 !!!UA.**1dD9TT'4T:
tt$h
;; #//4>eX/BC !!

  !ttE85HIf35IJ44DD!!!%8!<$
 h;44)44DDttGT6#xtHHr'   zaten::unbindc                    |J| j                  d|| j                  dt        j                  dt        j                              |d      S | j                  dt        j                  dg|z              }| j                  d||||	      }|dk(  r|gn|}|D cg c]:  }| j                  d
|| j                  dt        j                  |g                  < }}|S c c}w )Nr>   r?   ro   r@   rA   r   r   r0   rG   rH   Squeeze)r   rP   rQ   rR   )r   r7   r#   rY   rb   rI   outsqueezed_outputss           r&   unbindr     s     ttDDU\\!5::%FDG  
 	
 TT*ellA3>&BTCFdd7D&hdGG#q=wigG  	
YQTT*ellC56ITJK  	s   ?Czaten::nonzero_numpyc                 H    t        | t        j                  | |      d|      S )Nro   )rY   )r   opset9nonzero)r   r"   rY   s      r&   nonzero_numpyr   )  s      !V^^Au-q8DDr'   zaten::wherec           
      T   t        j                  |      s,| j                  d|t        j                  j
                        }|Rt        j                  | |      }t        j                  | || j                  dt        j                  d            |      S | j                  d|||      S )Nr   r   r?   ro   rA   Where)r   _is_boolr   r   r   r   r   r   _unbind_helperrP   rQ   )r   	conditionr7   otherrY   s        r&   wherer   /  s     ##I.DD1L1L1Q1QDR	|NN1i0	--y!$$z5<<?$CX
 	
 44D%00r'   z&aten::fake_quantize_per_channel_affinec                     ||fdvrt        j                  d| d| d|      |dk(  r-| j                  d|t        j                  j
                        }n,| j                  d|t        j                  j                        }| j                  d||||	      }||fd
k(  r[| j                  d|t        j                  |       | j                  dt        j                  dt        j                                    }| j                  d||||	      S )N)r      i   r   r   VFor (quant_min, quant_max), ONNX allows only (0, 127), (0, 255) and (-128, 127). Got (, )r   r   r   QuantizeLinearr   r   Clipr?   r   r@   rA   DequantizeLinear)r   rW   r   r   r   UINT8INT8r   unusedrP   rQ   uint8)r   inputsscale
zero_pointr]   	quant_min	quant_max	quantizeds           r&    fake_quantize_per_channel_affiner   =  s	    	9%FF'';b1.
 	
 A~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
%vujNI9)DDMM!DDU\\#U[[%IDJ	
	 44"Iuj4NNr'   z%aten::fake_quantize_per_tensor_affinec                    ||fdvrt        j                  d| d| d|      |dk(  r-| j                  d|t        j                  j
                        }n,| j                  d|t        j                  j                        }t        j                  j                  |t        j                  j                        t        j                  j                  k7  r,| j                  d|t        j                  j                        }| j                  d|||      }||fd	k(  r[| j                  d
|t        j                  |       | j                  dt        j                  dt        j                                     }| j                  d|||      S )Nr   r   r   r   r   r   r   r   r   r   r?   r   r@   rA   r   )r   rW   r   r   r   r   r   r   r    
from_value	UNDEFINEDFLOATr   r   rP   rQ   r   )r   r   r   r   r   r   r   s          r&   fake_quantize_per_tensor_affiner   `  sY    	9%FF'';b1.
 	

 A~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
!!,,UK4M4M4W4WX$$**	+ VU)D)D)J)JK%vujAI9)DDMM!DDU\\#U[[%IDJ	
	 44"IujAAr'   c                      d fd	}|S )Nc                     t        j                  | |      }|t        j                  | |      S t        j                  |dd      }| j	                  |||      S )Nr   r8   r/   )r   _maybe_cast_reduce_op_input_handle_reduce_dim_noner   r   )r   r7   r#   r8   onnx_op_names       r&   symbolicz%_reduce_op_symbolic.<locals>.symbolic  sZ    ::1dC;"::1dLQQ%00#yIG44dCG4DDr'   NN )r   r   s   ` r&   _reduce_op_symbolicr     s    E Or'   z	aten::sum	ReduceSumsum)decoratec                 R    t        |       t        j                  fd       }|S )Nc                     t        j                  dd      fd       }t        j                  dddd      fd       }||fS )Nr   r   c                    d }|j                         j                         dk(  rOt        j                  |dd      }t	        j
                  |      j                         }| j                  d||      }n8|j                         j                         dk7  rt        j                  d|      S  | |      }|Ft        j
                  j                  |      j                         }||k7  r| j                  d||      }|S Nzonnx::Constantr   r   r   r   r   
r   r   r   r   r   r    r!   r   _unimplementedr   )r   r7   r   
dtype_onnxresultresult_dtype_onnxnamer   s         r&   reduce_nodimz8_reduce_with_dtype.<locals>.reduce.<locals>.reduce_nodim  s    Jzz|  "&66'225#wG(66u=GGI
ttFDzt:""$(88&55dGUKKa&F%$/$=$=$H$H%)+ " %
2TT&&zTBFMr'   r   c                    d }|j                         j                         dk(  rOt        j                  |dd      }t	        j
                  |      j                         }| j                  d||      }n8|j                         j                         dk7  rt        j                  d|      S  	| |||      }|Ft        j
                  j                  |      j                         }||k7  r| j                  d||      }|S r   r   )
r   r7   r#   r8   r   r   r   r   r   r   s
           r&   
reduce_dimz6_reduce_with_dtype.<locals>.reduce.<locals>.reduce_dim  s    Jzz|  "&66'225#wG(66u=GGI
ttFDzt:""$(88&55dGUKKasG4F%$/$=$=$H$H%)+ " %
2TT&&zTBFMr'   )r   
parse_args)r   argskwargsr   r   r   r   s        r&   reducez"_reduce_with_dtype.<locals>.reduce  sT    		#	#C	0	 
1	" 
	#	#Cc6	:	 
;	" Z''r'   )r   r   _overload_by_arg_count)onnx_opr   r   r   s    ` @r&   _reduce_with_dtyper     s/    
 #7+H++%( ,%(N Mr'   zaten::unflattenc                    t        j                  |      }|t        j                  dd      S | j                  dt	        j
                  |gt        j                              }| j                  d||      }| j                  d||      }| j                  d|      }| j                  dt	        j
                  d	gt        j                              }| j                  d
|| j                  dt	        j
                  dgt        j                                    }| j                  d|||      }| j                  d|| j                  dt	        j
                  dgt        j                                    }	| j                  d
|	| j                  dt	        j
                  dgt        j                                    }
| j                  dt	        j
                  t        j                  gt        j                              }| j                  d||
|      }| j                  d|||d	      }t        j                  | ||      S )Nr#   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.r?   r@   rA   rC   rz   Shaper   Reshapero   rD   rr   r   )
r   r   r   r   rP   rQ   int64r   	INT64_MAX_reshape_helper)r   r"   r#   unflattened_size	input_dim
input_sizehead_start_idxhead_end_idxhead_part_rankdim_plus_onetail_start_idxtail_end_idxtail_part_rankfinal_shapes                 r&   	unflattenr     s   007I--7
 	
 Zyk)UVI
$$ui
%C
$$uc9
%Cgu%JTT*ellA3ekk.RTSN443Zqc1UVL TT':~|LN44sADDU\\1#U[[-QDRL TT	Zqc!EFN
 44ELL**>*>)?u{{S  L TT':~|LN$$."2N1  K **1e[AAr'   zaten::unsafe_chunkc                    |J| j                  d|| j                  dt        j                  dt        j                              |d      S t	        j
                  ||      }|t	        j                  dd	      S ||z   dz
  |z  }|g||z  z  }||z  }|r|j                  |       | j                  dt        j                  |t        j                              }| j                  d
||||      S )Nr>   r?   ro   r@   rA   r   r   unsafe_chunkzunknown dimension sizerG   rH   )r   rP   rQ   rR   r   rV   r   rT   )	r   r7   chunksr#   rY   ra   rJ   rb   rc   s	            r&   r   r     s     ttDDU\\!5::%FDG  
 	
 //c:D|--n>VWW-!#.J\TZ/0Fj Hh
 TT*ell6&LTMF44vc84DDr'   z
aten::tilec                    | j                  d|      }| j                  d|      }| j                  d|      }| j                  d||      }| j                  dt        j                  dg            }| j                  d||      }t        j                  | d|d	d
      \  }	\  }
}}|
j                  dt        j
                  d
g            }|
j                  d||      }|
j                  d||      }|
j                  d||d      }t        j                  |
j                  |       |j                  d|      }t        j                  |j                  |       |	j                         j                         }| j                  d||      }t        j                  | d|d	d
      \  }\  }}}|j                  dt        j
                  d
g            }|j                  d|j                  d|      |      }|j                  d||      }|j                  d||d      }|j                  d||      }t        j                  |j                  |       |j                  d|      }t        j                  |j                  |       |j                         j                         }| j                  d|t        j                  j                        }| j                  d||      S )Nr   Sizer|   r?   r   rA   GreaterIf   ro   )ru   rI   r   Expandrr   r   rw   LessAbsr   r   r{   )r   rP   rQ   r
   r   
LongTensorr	   r   r   r   r   r   r   INT64)r   r7   dims
self_shape	self_rank	dims_rankdiff
const_zerodims_shorter_than_self_shapeif_op_greaterif_context_greaterelse_context_greaterr   	const_onediff_1d_greaterexapnd_ones_greaterdims_identity_dim
dims_finaldims_longer_than_self_shape
if_op_lessif_context_lesselse_context_lessdiff_1d_lessexapnd_ones_lessself_final_shapeself_identity_self
self_finals                                r&   tiler$    s   gt$JVZ(IVT"I44y),Dj%,,s*;<J $%44	4#D 
 	$$	4-1		2	1	 #%%j%:J:JA3:O%PI(++ItYGO,//)_U!!(,?a!PE	177?'**:t<L	399<H##%,,.J #$$$vtZ"@
 	$$	4,q!		,+	  "":u7G7G7L"MI"%%5$'L
 '))(I|L&))"Jq *  y$0@AE	44e<%((T:M	066F"))+Jfjw/J/J/P/PQJ44
J//r'   zaten::repeat_interleavec           
      
   t        j                  |      }t        j                  |      }t        j                  |      }|t        j                  d|      |t        j                  d|      |t        j                  d|      |}t        j
                  |      rbt        j                  | || j                  dt        j                  dg                  }t        j                  dt        j                        }nt        j                  |      }|dk  r|t        |      z  }|j                         }	t        |      D ]  \  }
}|	d	\  |	|
<   ||
<    |dk(  s|d
k(  r |d   d
k(  rt        j                  | |||      S |d
k(  xr |d   d u }|	|   dk(  s|rt        j                   | ||      }t#        j$                  | |d      }|rt        j                   | || j                  dt        j&                  dg                  }| j                  d|| j                  dt        j&                  d
g                  }t)        | || j                  d||      |      }nt+        j,                  | |||      S | j                  d| j                  d|      t        j                  d
gt        j.                              }t1        | ||d      }t1        | |||      }d\  |	|<   ||<   | j                  dt        j                  d
            }| j                  d|t2        j4                  j6                        }|}| j                  d      }t9        j:                  | d|||d
      \  }\  }}|j<                  }t?        j@                  |      }t?        j@                  |      }t?        j@                  |      }|j                  d||      }|j                  d||      }t#        j$                  |||d
z         }|j                  dt        j&                  |d |d
z                ||j                  dt        j&                  ||d
z   d              g} |j                  dg|ddi}t+        jB                  |||d       }t        j                  ||| j                  dt        j&                  |	                  }|j                  d||      }|j                  d|t2        j4                  j6                        }t?        jD                  ||       t?        jD                  ||       |jG                         jI                         } | j                  d| |      } | S )NzGUnsupported: ONNX export of repeat_interleave for unknown repeats rank.zGUnsupported: ONNX export of repeat_interleave for unknown repeats size.zEUnsupported: ONNX export of repeat_interleave for unknown input size.r?   rx   rA   r   r@   )r   rx   ro   Equalr  ConstantOfShaper   )rx   ro   r   r   rs   rt   ru   rE   rr   r   rv   ConcatFromSequencer   )%r   r   _get_tensor_sizesr   rW   _is_noner   r   rP   rQ   r   _maybe_get_scalarr5   copy	enumerate-_repeat_interleave_single_value_repeat_helperr   r}   r~   r  r   r   repeat_interleaverR   rd   r   r   r   r
   r   r   r	   r   expandr   r   r   )!r   r7   repeatsr#   output_sizerepeats_dimrepeats_sizesinput_sizes	final_dimoutput_sizesidxr   cond_dynamic_repeatsreps
repeat_dimrepeat_cond	reps_liker_splitsi_splitsr   r   r   r   r   r   r   r   r   r_spliti_splitr_concatr   r   s!                                    r&   r0  r0  F  s,    "227;K#55g>M!33D9K''U
 	
 ''U
 	
 ''S
 	

 I $..tQTT*ellB4.@TA
 ll1EKK0//4 Qws;##%L$[1 8Z27/L{3/8
 aK1,q1AQ1FLLtWc
 	
 '!+Ha0@D0HCA!5++AtS9  D!,
  (557ADDU5E5Eqc5JDKJ $$QTT*e>N>NPQs>ST%TK A{ADD7D,I7SG ''4)DD	WgaS

3  I
 QA.HQi-H*/'L{3' TT*ell1oT>NTT&.w7R7R7W7WTXNH 44(L  );;	68^\A D/<1 ##J00<$$Z0D,,Z8LoolH6FGGoolH6FGGgsQw?G
E,<,<[3QR7=S,TU
E,<,<[q=S,TUH
 |x=(=1=HmmL'8TBG--gqttJ8H8H8VtWG  ??#3\7KL W%@%@%E%E  H 
z84	z<8yy{!!#Htt((3t?HOr'   zaten::diagonalc                 	   t        j                  |      }||dk\  r|n||z   }|dk\  r|n||z   }t        j                  | || j	                  dt        j                  |g                  }t        j                  | || j	                  dt        j                  |g                  }| j	                  d||d      }t        j                  | |d d d       }	| j	                  d|	|      }	|Pt        t        |            }
|
j                  |       |
j                  |       | j	                  d	||
||gz   
      }nt        j                  dd      S | j	                  d||	      }t        j                  | |dgd      }| j	                  dt        j                  |g            }|dk\  r]| j	                  d| j	                  d|| j	                  d||            | j	                  dt        j                  dg                  }d}nZ| j	                  d| j	                  d| j	                  d||      |      | j	                  dt        j                  dg                  }| j	                  d|d      }t        j                  | |dd d       }| j	                  d|| j	                  dt        j                  dg                  }| j	                  d|| j	                  dt        j                  t        |      dz
  g                  }t        t        |            d d D cg c]?  }t        j                  | || j	                  dt        j                  |g                  A }}|j                  |        | j                  dg|ddi}t        j                  | |dd d       }| j	                  d| j	                  d|| j	                  dt        j                   dt
        j"                                          }t%        j&                  | d|d      \  }\  }}}|j	                  d||      }t        j(                  |||dz
  g      }|j	                  d|||dz
         }t        j                  ||d!d d       }t+        j,                  |j.                  |       t+        j,                  |j.                  |       |S c c}w )"Nr   r?   rA   )r#   rr   r   EyeLike)k_i	Transpose)perm_idiagonalzunknown input rankr1   rx   )axes_ir0   MaxMinr|   rC      CumSumro   r   Notr&  r@   r  r  r(  GatherND)batch_dims_i   )r   r   r   ra   r   rP   r  zeroslistrS   remover   r6   onesabsrT   rQ   r   r
   r   rO   r	   r   r   )r   r7   offsetdim1dim2rank	dim1_size	dim2_size
mask_shapemaskaxesr   	offset_op	diag_sizeselect_window_ones_fillselect_windowr]   gather_shapegather_indicesoverrun_condif_op
if_contextelse_contextr   gather_indices_if_blockfinal_non_overrunfinal_overruns                              r&   rI  rI    st    ++D1DqytdTkqytdTk	4QTT*e.>.>v.FTGI 	4QTT*e.>.>v.FTGI h	9Q?J<<:tT48D44	4V4,D E$K DDttKddD\.AtB--j:NOO TT%t$F..q&"RSTF
 Z)9)96()CDI{DDDD	144y)#DEDDU%5%5qc%:D;
	
 DDDDUIy99EDDU%5%5qc%:D;
	
 Xy3I %kk!Y4FDD	Z!1!11#!67M
 DD	Z!1!13v;?2C!DEM t%cr* 	Av144
E<L<LdV<T4#UVL  	"144:<::L\\!\1dDAN 44	DDU\\!5;;%GDH	
L ,5+G+G	4,(E%Jq )mmE>=Q-??+dQhZ #F3$( &  LL|QdKM	z//1BC	|11=ALSs   &ASzquantized::linearc                 6   t        j                  | |      \  }}}}t        j                  | |      \  }	}
}}t        j                  | |||
|      }t        j                  | |      \  }}}}t        j                  | ||	|      }t        j
                  | |||      S rf   )r   dequantize_helperrequantize_bias_helperr   linearquantize_helperr   q_inputq_weightbiasop_scaleop_zero_pointr"   input_scaler   weightweight_scaler]   q_biasr   s                 r&   quantized_linearr~  N  s      /@@GLE;1$3$E$Ea$R!FL!T33	4lDF $55a@MD!Q]]1eVT2F**1fhNNr'   zquantized::linear_reluc                 b   t        j                  | |      \  }}}}t        j                  | |      \  }	}
}}t        j                  | |||
|      }t        j                  | |      \  }}}}t        j                  | ||	|      }t        j
                  | |      }t        j                  | |||      S rf   )r   rp  rq  r   rr  relurs  rt  s                 r&   quantized_linear_relur  ^  s      /@@GLE;1$3$E$Ea$R!FL!T33	4lDF $55a@MD!Q]]1eVT2F[[F#F**1fhNNr'   zquantized::conv1d_reluc
           
      j   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S rf   )r   rp  rq  r   conv1dr  rs  r   ru  rv  rw  stridepaddingdilationgroupsrx  ry  r"   rz  r   r{  r|  r]   r}  r   s                     r&   quantized_conv1d_relur  o        /@@GLE;1$3$E$Ea$R!FL!T33	4lDF $55a@MD!Q]]1eVT67HfUF[[F#F**1fhNNr'   zquantized::conv2d_reluc
           
      j   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S rf   )r   rp  rq  r   conv2dr  rs  r  s                     r&   quantized_conv2d_relur    r  r'   zquantized::conv3d_reluc
           
      j   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S rf   )r   rp  rq  r   conv3dr  rs  r  s                     r&   quantized_conv3d_relur    r  r'   zquantized::conv1dc
           
      >   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S rf   )r   rp  rq  r   r  rs  r  s                     r&   quantized_conv1dr          /@@GLE;1$3$E$Ea$R!FL!T33	4lDF $55a@MD!Q]]1eVT67HfUF**1fhNNr'   zquantized::conv2dc
           
      >   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S rf   )r   rp  rq  r   r  rs  r  s                     r&   quantized_conv2dr    r  r'   zquantized::conv3dc
           
      >   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S rf   )r   rp  rq  r   r  rs  r  s                     r&   quantized_conv3dr    r  r'   zquantized::conv_transpose1dc                 @   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S rf   r   rp  rq  r   conv_transpose2drs  r   ru  rv  rw  r  r  output_paddingr  r  rx  ry  r"   rz  r   r{  r|  r]   r}  r   s                      r&   quantized_conv_transpose1dr          /@@GLE;1$3$E$Ea$R!FL!T33	4lDF $55a@MD!Q$$	5&$F **1fhNNr'   zquantized::conv_transpose2dc                 @   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S rf   r  r  s                      r&   quantized_conv_transpose2dr  $  r  r'   zquantized::conv_transpose3dc                 @   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S rf   )r   rp  rq  r   conv_transpose3drs  r  s                      r&   quantized_conv_transpose3dr  @  r  r'   rf   )NF)r   N)NNNr   r   )8	functoolsrP   torch._C._onnx_C_onnxr   
torch.onnxr   r   r   r   r   r}   r   r   r	   torch.onnx._internalr
   r   partialonnx_symbolic_onnx_symbolicr   GraphContextr$   r+   r<   rd   ri   rk   rm   r   r   r   r   r   r   r   _apply_paramsr   r   r   r$  r0  rI  r~  r  r  r  r  r  r  r  r  r  r  r   r'   r&   <module>r     s~           9 #""<#=#=RH  Cf-y%%  . ! #$Cf-9))  . % &'Cc* i,,   + (  Cc3/4EY## 4E 0 4En ()6	.. 6 *6 $%HL>> &> /0@DAA 1A $%Cc3/HLEIEI 0 &EIP Cc*i$$  +  ( %&EY++ E 'E Cc3/	1Y## 	1 0 	1 89Cc3S9 OO : :OB 78Cc34 !B!B 5 9!BH
 +o++K?@+	+b !"'B'' 'B #'BT $%Cc3/EI** E 0 &E4 30I"" 30 30l )*DHII +IX  !Cc3/s	&& s 0 "sr #$OO %O ()OO *O  ()OO *O2 ()OO *O2 ()OO *O2 #$OO %O0 #$OO %O0 #$OO %O0 -.OO /O6 -.OO /O6 -.OO /Or'   