
    JTh4                       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rS SKJ	s  J
r  S SKrS SKJ	r	  S SKJrJrJrJrJr  S SKJr  S SKJrJr  \(       a  S SKJr  / S	Qr\R6                  " \R8                  S
S9r\" S5      SS j5       r\R>                  " SSS5      SS j5       r \" S5      SS j5       r!\" S5      \R>                  " SSSS5      SSS jj5       5       r"\" S5      \R>                  " SSSSSS5      SSS jj5       5       r#                  SS jr$            SS jr%                        SS jr&\" S\RN                  " SSSS 9/S!9\" S"\RN                  " S#S$SS 9/S!9\" S%\RN                  " S&S'SS 9/S!9\" S(\RN                  " S)SS*S 9/S!9\" S+\RN                  " S,S$S*S 9/S!9\" S-\RN                  " S.S'S*S 9/S!9SS/ j5       5       5       5       5       5       r(          SS0 jr)\" S1\RN                  " S2S5      /S!9\" S3\RN                  " S4S$5      /S!9\" S5\RN                  " S6S'5      /S!9S7 5       5       5       r*\" S8\RN                  " S9S'S:5      /S!9\" S;\RN                  " S<S=S:5      /S!9\" S>\RN                  " S?S@S:5      /S!9\" SA\RN                  " SBS'SC5      /S!9\" SD\RN                  " SES=SC5      /S!9\" SF\RN                  " SGS@SC5      /S!9SH 5       5       5       5       5       5       r+\" SI5        SSJ j5       r, S           SSK jjr-\" SL5      SSM j5       r.\" SN5      \R>                  " SSO5      SSP j5       5       r/\" SQ5      SSR j5       r0\" SS5      \R>                  " SSSSSSSSS5	        SST j5       5       r1\" SU5      \R>                  " SSSSS5        S SSV jj5       5       r2\" SW5      SSX j5       r3\" SY5      SSZ j5       r4\" S[5      SS\ j5       r5\" S]5      SS^ j5       r6\" S_5      \R>                  " SS`S`S`5      SSa j5       5       r7\" Sb5        SSc j5       r8\" Sd5        SSe j5       r9\" Sf5      SSg j5       r:\" Sh5      SSi j5       r;\" Sj5      SSk j5       r<\" Sl5      SSm j5       r=\" Sn5      SSo j5       r>\" Sp5        SSq j5       r?\" Sr5        SSs j5       r@\" St5        SSu j5       rA\" Sv5      \R>                  " SSSS`SS5        SSw j5       5       rB\" Sx5        SSy j5       rC\" Sz5        SS{ j5       rD\" S|5        SS} j5       rE\" S~5        SS j5       rF\" S5        SS j5       rG\" S5        SS j5       rH\" S5        SS j5       rI\" S5        SS j5       rJ\" S5        SS j5       rK\" S5      \R>                  " SSSS5                  SS j5       5       rLg)    )annotationsN)TYPE_CHECKING)_C)
_constants_type_utilserrorssymbolic_helpersymbolic_opset9)GLOBALS)	jit_utilsregistration)Sequence)"
dequantizedivembedding_bagfake_quantize_per_tensor_affineflipfmodisfiniteisinf
nan_to_numquantize_per_tensorquantized_add_reluquantized_addquantized_catquantized_conv1d_reluquantized_conv2d_reluquantized_conv3d_reluquantized_conv1dquantized_conv2dquantized_conv3dquantized_conv_transpose1dquantized_conv_transpose2dquantized_conv_transpose3dquantized_group_normquantized_hardswishquantized_instance_normquantized_layer_normquantized_leaky_reluquantized_linearquantized_linear_reluquantized_mulquantized_sigmoidslicesorttopk
   )opsetz	aten::divc                h    [        U5      S:X  a  [        R                  " XU5      $ [        XU/UQ76 $ Nr   )lenopset9true_divide_div_rounding_mode)gselfotherargss       S/var/www/auris/envauris/lib/python3.13/site-packages/torch/onnx/symbolic_opset10.pyr   r   P   s2    
4yA~!!!511!!58488    vsc                T    US:X  a  [        XU5      $ [        R                  " XX#5      $ )Nfloor)_floor_divider6   r8   )r9   r:   r;   rounding_modes       r=   r8   r8   X   s*    Qe,,((%GGr>   zaten::_floor_dividec                   [         R                  " U5      (       d  [         R                  " U5      (       a)  [        R                  " XU5      nU R	                  SU5      $ U R	                  SX5      nU R	                  S[
        R                  " S[
        R                  S9S9nU R	                  SU R	                  SX5      U R	                  SX%5      5      nU R	                  S	XSS
9nU R	                  SX`R	                  SU R	                  SXu5      5      5      nU R	                  S[
        R                  " S[
        R                  S9S9n	U R	                  SXI5      n
U R	                  SXU5      $ )NFloorDivConstantr   dtypevalue_tXorLessModfmod_iAndNotEqual   SubWhere)r	   _is_fpr6   r7   optorchtensorint64)r9   r:   r;   outr   zeronegativemod
fixup_maskonefixups              r=   rC   rC   `   s!   d##'='=e'D'D  %0ttGS!! dd5$&ttJQekk(JtK44qttFD7fe9RS dd5$ad0TT%44qttGS7O+PQ
dd:u||AU[['IdJUC%ttGZ44r>   z
aten::sortinonec                .    [         R                  " XX#US9$ )N)	decendingr]   )r	   _sort_helper)r9   r:   dimrg   r]   s        r=   r/   r/   u   s     ''sSSr>   z
aten::topkc           
     0    [         R                  " XX#XEUS9$ )N)largestsortedr]   )r	   _topk_helper)r9   r:   kri   rk   rl   r]   s          r=   r0   r0   {   s      ''	S r>   c                   U R                  SU R                  SU5      5      nX:X  aC  U R                  SUU R                  S[        R                  " S/[        R                  S9S95      nU R                  SUS	UUUUUS
9u  pX:X  aC  U R                  SU	U R                  S[        R                  " S/[        R                  S9S95      n	U	$ )NSizeShape	UnsqueezerH   r   rI   rK   MaxPool   outputsceil_mode_idilations_ikernel_shape_ipads_i	strides_iSqueezerY   rZ   r[   r\   )r9   r:   kernel_shapestridespads	dilations	ceil_modeunbatched_rank	self_rankpool_result_s              r=   _aten_max_pool_onnxr      s     VQTT'401I"ttDDU\\1#U[[%IDJ
 TT#  	NK "ddDDU\\1#U[[%IDJ
 r>   c                   [        U[        5      (       a  U/U -  n[        U[        5      (       a  U/U -  nOUn[        U[        5      (       a
  U/U -  S-  nOC[        U5      S:X  a  X0-  S-  nO,[        U5      S:X  a  US-  nO[        U5      S:X  a  US-  nOUn[        U[        5      (       a  U/U -  nOU(       d  UnOUnXWXd4$ ):Adjust attributes of avg_pool to match ONNX specification.rt   rU      
isinstanceintr5   )expand_sizekernel_sizestridepaddingdilationr~   r   r   s           r=   _adjust_attributes_of_max_poolr      s     (C  :++s###}{2"'3y;&*	W	$q(	W	{	W	{
 &#([(422r>   c                6   U R                  SU R                  SU5      5      nX:X  aC  U R                  SUU R                  S[        R                  " S/[        R                  S9S95      nU R                  SUS	UUUUUS
9u  pU R                  SUS	UUUS9u  pU R                  S[        R                  " U5      S9nU R                  S[        R                  " U	5      S9nU R                  S[        R                  " U
5      S9nU R                  SUUUU5      nU R                  SUU5      nX:X  af  U R                  SU[        R                  " S/[        R                  S9S9nU R                  SU[        R                  " S/[        R                  S9S9nX4$ )Nrp   rq   rr   rH   r   rI   rK   rs   rt   ru   )rv   rx   ry   r{   SlicerV   r|   r}   )r9   r:   r~   r   r   r   r   r   
n_dims_onen_dims_zeron_dims_axesr   r   indicesr   flatten_indicesendsstartsaxesdeltas                       r=    _aten_max_pool_with_indices_onnxr      s    VQTT'401I"ttDDU\\1#U[[%IDJ
 44#   	K !  A 44
ELL$<4=DTT*ell;&?T@F44
ELL$=4>DDD/64>Edd5'5)G"dd{ELL!EKK,P  
 $$y'5<<5;;3W$X!!r>   zaten::max_pool1d
max_pool1drU   F)return_indices)decoratezaten::max_pool2d
max_pool2drt   zaten::max_pool3d
max_pool3dr   zaten::max_pool1d_with_indicesmax_pool1d_with_indicesTzaten::max_pool2d_with_indicesmax_pool2d_with_indiceszaten::max_pool3d_with_indicesmax_pool3d_with_indicesc           	        ^^ [         R                  " SSSSSS5      [         R                  " SSSSSS5                    SUU4S jj5       5       nU$ )NTFr?   isrd   c                   > [        TX#XE5      u  pxpT(       a=  [        U UUUU	U
UTS-   S/T-  S/T-  [        T5       Vs/ s H  nSU-   PM
     sn5      $ [        U UUUU	U
UTS-   5      $ s  snf )NrU   r   rt   )r   r   ranger   )r9   inputr   r   r   r   r   r~   r   r   r   rd   r   r   s               r=   symbolic_fn_max_pool.<locals>.symbolic_fn9  s     2Pg2
.t 3a{"{"!&{!34!3A!a%!34  'a	 	 5s    A+)r9   jit_utils.GraphContextr   _C.Valuer   Sequence[int]r   r   r   int | Sequence[int]r   r   r   boolr	   quantized_args
parse_args)namer   r   r   s    `` r=   	_max_poolr     s    V ##D%ueLT4tSA%!%% #% 	%
 %%  % % B M%N r>   c                4   [        U[        5      (       a  U/U -  nOUn[        U[        5      (       a
  U/U -  S-  nO0[        U5      S:X  a  X0-  S-  nO[        U5      S:X  a  X0-  nOUS-  n[        U[        5      (       a  U/U -  nOU(       d  UnOUnXFU4$ )r   rt   rU   r   )r   r   r   r   r~   r   r   s          r=   _adjust_attributes_of_avg_poolr   f  s     +s###}{2"'3y;&*	W	$q(	W	${&#([(4((r>   zaten::avg_pool1d
avg_pool1dzaten::avg_pool2d
avg_pool2dzaten::avg_pool3d
avg_pool3dc           
        ^ [         R                  " SSSSSSS5      [         R                  " SSSSSSS5       S           S	U4S jjj5       5       nU$ )
NTFr?   r   rd   re   c           
     R   > [        TX#U5      u  pn
U R                  SUUUUU
U	S9nU$ )NAveragePool)rw   count_include_pad_iry   rz   r{   )r   rY   )r9   r   r   r   r   r   count_include_paddivisor_overrider~   r   r   resultr   s               r=   r   _avg_pool.<locals>.symbolic_fn  sM     'Eg'
#t ! 1'  
 r>   N)r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   s    ` r=   	_avg_poolr     s     ##D%ueUST4sCH  # 	
 %   I T4 r>   zaten::upsample_nearest1dupsample_nearest1dnearestzaten::upsample_nearest2dupsample_nearest2d   zaten::upsample_nearest3dupsample_nearest3d   zaten::upsample_linear1dupsample_linear1dlinearzaten::upsample_bilinear2dupsample_bilinear2dzaten::upsample_trilinear3dupsample_trilinear3dc                R   ^ ^^ [         R                  " SSS5      UUU 4S j5       nU$ )NTFc                &  > [         R                  " U TU5      u  pE[         R                  " T5        [         R                  " U5      nU(       a  [         R                  " TSU5      $ Uc  [         R
                  " XUT5      nU R                  SXTS9$ )Nzalign_corners == TrueResizemode_s)r	   _get_interpolate_attributes_interpolate_warning_maybe_get_scalar_unimplemented_interpolate_size_to_scalesrY   )	r9   r   output_sizer<   scalesalign_cornersri   interpolate_moder   s	         r=   r   !_interpolate.<locals>.symbolic_fn  s     / K K!
 	,,-=>'99-H"11$8OQVWW>$@@+sF ttHe4DtEEr>   )r	   r   )r   ri   r   r   s   ``` r=   _interpolater     s0    2 ##D%7F 8F r>   zaten::__interpolatec                X    [         R                  " XX#XE5      u  pU R                  SXUS9$ )Nr   r   )r	    _interpolate_get_scales_and_moderY   )	r9   r   sizescale_factormoder   recompute_scale_factor	antialiasr   s	            r=   __interpolater     s4     #CC	$dLF 44%455r>   c                <  ^ ^ S mSU U4S jjnS nU" U5      S:X  a+  U" U5      [         R                  :X  a  Ub  U" U5      S:X  a  U$ U" U5      nU" USS9nU" U[         R                  S9nUc  T R                  SXXB5      $ U" USS9nT R                  SXXBU5      $ )	Nc                    U c  g[        U [        R                  R                  5      =(       aP    U R	                  5       R                  5       S:H  =(       a(    [        U R                  5       [        R                  5      $ )NTzprim::Constant)r   rZ   r   ValuenodekindtypeNoneType)values    r=   is_none_value_slice.<locals>.is_none_value  sW    =uehhnn- 6

!!#'7765::<5	
r>   c                j  > T" U 5      (       a  Ub  U/n [        U [        [        R                  45      (       a$  TR	                  S[        R
                  " U 5      S9$ [        R                  " U 5      nUS:X  a  [        R                  " TU S/5      $ US:X  a  U $ [        R                  " SU 3U 5      e)NrH   rK   r   rU   zRank must be 0 or 1, not )r   listrZ   TensorrY   r[   r	   _get_tensor_rank_unsqueeze_helperr   SymbolicValueError)list_or_valuedefault_valuerankr9   r   s      r=   to_slice_input_slice.<locals>.to_slice_input  s    ''M,E*OMmdELL%9::44
ELL,G4HH//>19"44QsKK19  '''v.
 	
r>   c                    [        U [        [        R                  45      (       a  [	        U 5      S:X  a  U S   $ g [
        R                  " U S5      $ )NrU   r   rd   )r   r   rZ   r   r5   r	   _maybe_get_const)r   s    r=   get_const_value_slice.<locals>.get_const_value  sF    mdELL%9::=!Q&$Q''//sCCr>   r   rU   )r   r   r   )r   	INT64_MAXrY   )	r9   r   r   r   r   stepsr   r  r   s	   `       @r=   _slicer    s    

 
"D 	1$D!Z%9%99]oe49$DF!4F$j.B.BCD}ttGUD7752E44E::r>   zaten::slicec           	         [        U5      S:X  a  Uu  p4pVO/[        U5      S:X  a	  Uu  pEnS/nO[        R                  " SU5      e[        R                  " U UUUUUS9$ )Nr   r   r   zUnknown aten::slice signaturer   r   r   r  )r5   r   r   r	   _slice_helper)r9   r:   r<   dimsstartendsteps          r=   r.   r.   (  sn    
4yA~!%S$	TaDs''(GNN((	 r>   z
aten::flipr   c                    [         R                  " U UUS/[        U5      -  [        R                  * /[        U5      -  S/[        U5      -  S9$ )Nr  )r	   r  r5   r   r  )r9   r   r	  s      r=   r   r   >  sT     ((	tc$i###$s4y0dSY r>   z
aten::fmodc                $    U R                  SXSS9$ )NrO   rU   rP   )rY   )r9   r   r;   s      r=   r   r   K  s    44uA4..r>   zaten::embedding_bagc
                   U(       a+  [         R                  (       a  [        R                  " S5      $ U	b  U	S:  a  [	        S5      e[
        R                  " S5        [        R                  " US5      n
U
Gb\  U(       a  U
S-
  nUnOMU
nUU R                  S[        R                  " [        R                  /5      S9/nU R                  " S/UQ7S	S06n/ n[        U5       GH  n[        R                  " U [        R                   " X[        R                  " S5      [        R                  " U5      5      S/5      n[        R                  " U [        R                   " X[        R                  " S5      [        R                  " US-   5      5      S/5      nU R                  S[        R                  " S/5      S9nU R                  S
X/UU5      nU R                  SUU5      n[        R"                  " U5      (       d@  U R                  S
XUU5      n[        R                  " U US/5      nU R                  SUU5      nUS:X  a  [        R$                  " U US/SS9nO-US:X  a  U R                  SUS/SS9nOU R                  SUS/SS9n[        R                  " U US/5      nUR'                  U5        GM     U R                  " S/UQ7S	S06nUS S S 4$ [        R                  " S5      $ )Nz7embedding_bag with scale_grad_by_freq for training moder   zembedding_bag with padding_idxzExport of embedding_bag with dynamic input/offsets shape is not supported in opset 10. Please use opset 11 or higher to export model for dynamic input shape.'rU   rH   rK   Concataxis_ir   GatherMul)axes_i
keepdims_i
ReduceMean	ReduceMaxziembedding_bag with unknown shape of offsets for opset 10 is not supported. please use opset 11 or higher.)r   export_trainingr	   _onnx_unsupportedRuntimeErrorwarningswarn_get_tensor_dim_sizerY   rZ   r[   sysmaxsizer   r   r6   select_is_none_reducesum_helperappend)r9   embedding_matrixr   offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxoffsets_dim_0
offset_lenoffsets_extendedlist_rd   start_end_axes_indices_row
embeddingsper_sample_weights_rowoutputs                         r=   r   r   P  s    g5500E
 	
 ;!#3;<<MM	R $88!DM &*J&&JZs{{m)DE   !ttHJ/?JJz"A$66a5<<?ELLQROTF
 #44a%,,q1u:M D DDU\\1#->D?E$$wuEKh(8+FJ"++,>??)*/u*& *9)J)J-s*& TT%5KL
qy,>>z1#!
 TT,
A3STTU
TT+z1#RSTT
(::1j1#NJLL$G #J h11q1 tT4''00-
 	
r>   z%aten::fake_quantize_per_tensor_affinec           	     $   XE4S:X  a  [         R                  " SSSSU5        XE4S;  a  [        R                  " SU SU S	3U5      e[         R                  " U5      nUc  [         R                  " SSSS
U5        UR                  5       R                  nUS:X  a*  U R                  SU[        R                  R                  S9nO)U R                  SU[        R                  R                  S9nU R                  SU R                  SXU5      UU5      $ )N)r      r   r1      z=Quantize range (0, 127) not supported, requires opset 13 Clip))r      ir8  zLFor (quant_min, quant_max), ONNX allows only (0, 255) and (-128, 127). Got (z, )z Non-constant scale not supportedr   Castto_iDequantizeLinearQuantizeLinear)r	    _onnx_opset_unsupported_detailedr   r   r   floatdatarY   _C_onnxTensorProtoDataTypeUINT8INT8)r9   inputsscale
zero_point	quant_min	quant_maxs         r=   r   r     s     	)88-K	
 	%<<'';b1.
 	

 --e4E}88-.	
 KKMEA~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
44	vj9	 r>   zaten::isinfc           	     t    U R                  SU R                  SU[        R                  R                  S95      $ )NIsInfr=  r>  )rY   rE  rF  DOUBLEr9   r   s     r=   r   r     s.    44fe'2M2M2T2TUVVr>   zaten::isfinitec                    [        X5      n[        R                  " X5      n[        R                  " U [        R                  " XU5      5      $ r   )r   r6   isnan__not___or_)r9   r   inf_nodenan_nodes       r=   r   r     s5    QH||A%H==FLLh?@@r>   zaten::quantize_per_tensorc                   [         R                  " USS5      nU R                  SU[        R                  " U5      R                  5       S9nU R                  SU[        R                  R                  S9n[         R                  " XX#5      $ )Nrd   rJ   r=  r>  )
r	   
_get_constrY   r   JitScalarType	onnx_typerE  rF  FLOATquantize_helper)r9   r   rJ  rK  rJ   s        r=   r   r     sy    &&uc7;E
!:!:5!A!K!K!M  J DDW%@%@%F%FDGE**1UGGr>   zaten::dequantizec                4    [         R                  " X5      S   $ r4   )r	   dequantize_helperrQ  s     r=   r   r     s    ,,Q6q99r>   zaten::nan_to_numfc                   [         R                  " U5      (       d  U$ [        R                  R	                  U5      R                  5       nUc  Sn[        R                  " X5      nU R                  SUU R                  S[        R                  " U/US9S9U5      n[        R                  " U5      nUc  UR                  n[        R                  " U [        X5      [        R                  " XU R                  S[        R                   " S/5      S95      5      n	U R                  SU	U R                  S[        R                  " U/US9S9U5      n
Uc  UR"                  n[        R                  " U [        X
5      [        R$                  " X
U R                  S[        R                   " S/5      S95      5      nU R                  SUU R                  S[        R                  " U/US9S9U
5      $ )N        rW   rH   rI   rK   r   )r	   rX   r   rZ  
from_valuerJ   r6   rS  rY   rZ   r[   finfomaxlogical_andr   gt
LongTensorminlt)r9   r   nanposinfneginfinput_dtypenan_cond
nan_resultrd  posinf_condnan_posinf_resultneginf_conds               r=   r   r     s   
 !!%((++66u=CCEK
{||A%H	Zse;!GH	J KK$E~$$	a		!j%:J:JA3:O!PQK
 	Zvhk!JK	 ~$$	a#		!$$z5;K;KQC;P$"Q	
K 44	Zvhk!JK	 r>   zquantized::linearc                *   [         R                  " X5      u  pg  n[         R                  " X5      u  p  n[         R                  " XXz5      n[         R                  " X5      u  n    n[        R                  " XX5      n[         R
                  " XXE5      $ r   )r	   r_  requantize_bias_helperr6   r   r]  r9   q_inputq_weightbiasop_scaleop_zero_pointr   input_scaler   weightweight_scaleq_biasr6  s                r=   r*   r*   *  s      /@@LE1!0!B!B1!OF!Q33A[WF#55a@MD!Q]]1V2F**1hNNr>   zquantized::linear_reluc                V   [         R                  " X5      u  pg  n[         R                  " X5      u  p  n[         R                  " XXz5      n[         R                  " X5      u  n    n[        R                  " XX5      n[        R
                  " X5      n[         R                  " XXE5      $ r   )r	   r_  ru  r6   r   relur]  rv  s                r=   r+   r+   8  s      /@@LE1!0!B!B1!OF!Q33A[WF#55a@MD!Q]]1V2F[[#F**1hNNr>   zquantized::addc                    [         R                  " X5      u  n    n[         R                  " X5      u  n    n[        R                  " XU5      n[         R                  " XX45      $ r   )r	   r_  r6   addr]  r9   xyrz  r{  r   r6  s          r=   r   r   G  U     2218JAq!Q 2218JAq!QZZa F**1hNNr>   zquantized::add_reluc                    [         R                  " X5      u  n    n[         R                  " X5      u  n    n[        R                  " XU5      n[        R                  " X5      n[         R
                  " XX45      $ r   )r	   r_  r6   r  r  r]  r  s          r=   r   r   Q  sc     2218JAq!Q 2218JAq!QZZa F[[#F**1hNNr>   zquantized::mulc                    [         R                  " X5      u  n    n[         R                  " X5      u  n    n[        R                  " XU5      n[         R                  " XX45      $ r   )r	   r_  r6   mulr]  r  s          r=   r,   r,   \  r  r>   zquantized::hardswishc                    [         R                  " X5      u  n    n[        R                  " X5      n[         R                  " XX#5      $ r   )r	   r_  r6   	hardswishr]  r9   r  rz  r{  r   r6  s         r=   r&   r&   f  s=     2218JAq!Qa#F**1hNNr>   zquantized::sigmoidc                    [         R                  " X5      u  n    n[        R                  " X5      n[         R                  " XX#5      $ r   )r	   r_  r6   sigmoidr]  r  s         r=   r-   r-   o  s;     2218JAq!Q^^A!F**1hNNr>   zquantized::leaky_reluc                    [         R                  " X5      u  n    n[        R                  " XX#5      n[         R                  " XXE5      $ r   )r	   r_  r6   
leaky_relur]  )r9   r  negative_slopeinplacerz  r{  r   r6  s           r=   r)   r)   x  sA     !2218JAq!Qq^=F**1hNNr>   zquantized::layer_normc           	         [         R                  " X5      u  n    n[        R                  " XX#XES5      n	[         R                  " X	Xg5      $ NF)r	   r_  r6   
layer_normr]  )
r9   r  normalized_shaper}  ry  epsrz  r{  r   r6  s
             r=   r(   r(     sF     !2218JAq!Qq%5t%PF**1hNNr>   zquantized::group_normc           	         [         R                  " X5      u  n    n[        R                  " XX#XES5      n	[         R                  " X	Xg5      $ r  )r	   r_  r6   
group_normr]  )
r9   r  
num_groupsr}  ry  r  rz  r{  r   r6  s
             r=   r%   r%     sE     !2218JAq!QqZEJF**1hNNr>   zquantized::instance_normc                    [         R                  " X5      u  n    n[        R                  " XX#S S SSUS5
      n	[         R                  " X	XV5      $ )NFrb  )r	   r_  r6   instance_normr]  )
r9   rw  r}  ry  r  rz  r{  r   r   r6  s
             r=   r'   r'     sR     %66qBNE1a!!	&dE3UF **1hNNr>   zquantized::conv1d_reluc
           
     ^   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " X5      u  n    n[        R                  " X
XXEXg5      n[        R
                  " U U5      n[         R                  " U UX5      $ r   )r	   r_  ru  r6   conv1dr  r]  r9   rw  rx  ry  r   r   r   groupsrz  r{  r   r|  r   r}  r~  r  r6  s                    r=   r   r           /@@LE1!0!B!B1!OF!Q33A[WF#55a@MD!Q]]1V6HUF[[F#F**1fhNNr>   zquantized::conv2d_reluc
           
     ^   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " X5      u  n    n[        R                  " X
XXEXg5      n[        R
                  " U U5      n[         R                  " U UX5      $ r   )r	   r_  ru  r6   conv2dr  r]  r  s                    r=   r   r     r  r>   zquantized::conv3d_reluc
           
     ^   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " X5      u  n    n[        R                  " X
XXEXg5      n[        R
                  " U U5      n[         R                  " U UX5      $ r   )r	   r_  ru  r6   conv3dr  r]  r  s                    r=   r   r     r  r>   zquantized::conv1dc
           
     0   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " X5      u  n    n[        R                  " X
XXEXg5      n[         R
                  " U UX5      $ r   )r	   r_  ru  r6   r  r]  r  s                    r=   r   r           /@@LE1!0!B!B1!OF!Q33A[WF#55a@MD!Q]]1V6HUF**1fhNNr>   zquantized::conv2dc
           
     0   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " X5      u  n    n[        R                  " X
XXEXg5      n[         R
                  " U UX5      $ r   )r	   r_  ru  r6   r  r]  r  s                    r=   r    r      r  r>   zquantized::conv3dc
           
     0   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " X5      u  n    n[        R                  " X
XXEXg5      n[         R
                  " U UX5      $ r   )r	   r_  ru  r6   r  r]  r  s                    r=   r!   r!   1  r  r>   zquantized::conv_transpose1dc                4   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " U U5      u  n    n[        R                  " XXXEXhU5	      n[         R
                  " U UX5      $ r   r	   r_  ru  r6   conv_transpose2dr]  r9   rw  rx  ry  r   r   output_paddingr   r  rz  r{  r   r|  r   r}  r~  r  r6  s                     r=   r"   r"   H        /@@LE1!0!B!B1!OF!Q33A[WF#55a@MD!Q$$	&F **1fhNNr>   zquantized::conv_transpose2dc                4   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " U U5      u  n    n[        R                  " XXXEXhU5	      n[         R
                  " U UX5      $ r   r  r  s                     r=   r#   r#   b  r  r>   zquantized::conv_transpose3dc                4   [         R                  " X5      u  p  n[         R                  " X5      u  p  n[         R                  " XX5      n[         R                  " U U5      u  n    n[        R                  " XXXEXhU5	      n[         R
                  " U UX5      $ r   )r	   r_  ru  r6   conv_transpose3dr]  r  s                     r=   r$   r$   |  r  r>   zquantized::catc                    [         R                  " U5      nU Vs/ s H  n[         R                  " X5      S   PM     nnU R                  " S/UQ7SU06n[         R                  " XX45      $ s  snf )Nr   r  r  )r	   _unpack_listr_  rY   r]  )	r9   q_inputsri   rz  r{  unpacked_inputsr   dequantizedconcatenateds	            r=   r   r     sr     &228<ODSDS5))!3A6O   44;;;s;L**1HTT	s   #A-)r9   r   r   )r9   r   r:   r   r~   r   r   r   r   r   r   r   r   r   r   r   returnr   )r   r   r   Sequence[int] | intr   r  r   r  r   r  r  zAtuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]])r9   r   r:   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  ztuple[_C.Value, Sequence[int]])r   strr   r   r   r   )
r   r   r   r  r   r  r   r  r  z2tuple[Sequence[int], Sequence[int], Sequence[int]])r9   r   r   ztorch._C.Valuer   $list | torch.Tensor | torch._C.Valuer   r  r   r  r  z+list | torch.Tensor | torch._C.Value | Noner;  )r9   r   r  r   ri   r   rz  r   r{  r   r  r   )M
__future__r   	functoolsr  r  typingr   rZ   torch._C._onnxr   _onnxrE  
torch.onnxr   r   r   r	   r
   r6   torch.onnx._globalsr   torch.onnx._internalr   r   collections.abcr   __all__partialonnx_symbolic_onnx_symbolicr   r   r8   rC   r/   r0   r   r   r   _apply_paramsr   r   r   r   r   r  r.   r   r   r   r   r   r   r   r   r   r*   r+   r   r   r,   r&   r-   r)   r(   r%   r'   r   r   r   r   r    r!   r"   r#   r$   r    r>   r=   <module>r     s(
   #  
            ( 8 (#L ""<#=#=RH 9 9 Cc*H +H %&5 '5( Cc62T 3 T Cc3V< = $$
$  $ 	$
 $ $ $ $ $P(3(3$(3  (3 !	(3
 "(3 G(3V5"5"
5"  5" 	5"
 5" 5" 5" 5" 5" 5" 5" $5"p ++L!ERS ++L!ERS ++L!ERS #%%%	
	 #%%%	
	 #%%%	
	*						T*\))$)  ) !	)
 8)@ ++L!<= ++L!<= ++L!<=			@ ++,@!YOP ++,@!YOP ++,@!YOP ++,?HMN ++,A1hOP  ++,BAxPQ						0& %&66 '6, :>7;7;7; /7; 1	7;
 /7; 77;t  * C& '  / / %&Cc3S#sCHQ
Q
 I 'Q
h 78Cc34 ++ 5 9+\ W W  !A "A +,H -H "#: $: "#Cc3// 0 $/l #$
O
O %
O ()OO *O  !O "O %&O 'O  !O "O &'O (O $%O &O '(OO )O '(OO )O" '(OO )O" *+Cc3S9OO : ,O$ ()OO *O. ()OO *O. ()OO *O. #$OO %O, #$OO %O, #$OO %O, -.OO /O2 -.OO /O2 -.OO /O2  !Cc3/UUU 
U 	U
 U U 0 "Ur>   