
    '}hy                       d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 d dlZd dlmc mZ d dlZd dlmZ d dlmZmZmZmZmZ d dlmZ d dlmZmZmZ g dZ ej<                  ej>                  d	
      Z d Z! e d      ejD                  dd              Z# ejH                  ddd      ejD                  dd              Z% e d      ejD                  dd              Z& e d       ejH                  dddd      ejD                  ddd                     Z' e d       ejH                  dddddd      ejD                  ddd                     Z(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ)	 	 	 	 	 	 	 	 	 	 	 	 ddZ*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ+ e d e!ddd       g!       e d" e!d#d$d       g!       e d% e!d&d'd       g!       e d( e!d)dd*       g!       e d+ e!d,d$d*       g!       e d- e!d.d'd*       g!      ejD                  dd/                                                 Z,	 	 	 	 	 	 	 	 	 	 dd0Z- e d1 e!d2d      g!       e d3 e!d4d$      g!       e d5 e!d6d'      g!      ejD                  d7                             Z. e d8 e!d9d'd:      g!       e d; e!d<d=d:      g!       e d> e!d?d@d:      g!       e dA e!dBd'dC      g!       e dD e!dEd=dC      g!       e dF e!dGd@dC      g!      ejD                  dH                                                  Z/ e dI      ejD                  	 	 ddJ              Z0ejD                  	 d	 	 	 	 	 	 	 	 	 	 	 ddK       Z1 e dL      ejD                  ddM              Z2 e dN       ejH                  ddO      ejD                  ddP                     Z3 e dQ      ejD                  ddR              Z4 e dS       ejH                  ddddddddd	      ejD                  	 	 ddT                     Z5 e dU       ejH                  ddddd      ejD                  	 	 d	 ddV                     Z6 e dW      ejD                  ddX              Z7 e dY      ejD                  ddZ              Z8 e d[      ejD                  dd\              Z9 e d]      ejD                  dd^              Z: e d_       ejH                  dd`d`d`      ejD                  dda                     Z; e db      ejD                  	 	 ddc              Z< e dd      ejD                  	 	 dde              Z= e df      ejD                  ddg              Z> e dh      ejD                  ddi              Z? e dj      ejD                  ddk              Z@ e dl      ejD                  ddm              ZA e dn      ejD                  ddo              ZB e dp      ejD                  	 	 ddq              ZC e dr      ejD                  	 	 dds              ZD e dt      ejD                  	 	 ddu              ZE e dv       ejH                  dddd`dd      ejD                  	 	 ddw                     ZF e dx      ejD                  	 	 ddy              ZG e dz      ejD                  	 	 dd{              ZH e d|      ejD                  	 	 dd}              ZI e d~      ejD                  	 	 dd              ZJ e d      ejD                  	 	 dd              ZK e d      ejD                  	 	 dd              ZL e d      ejD                  	 	 dd              ZM e d      ejD                  	 	 dd              ZN e d      ejD                  	 	 dd              ZO e d       ejH                  dddd      ejD                  	 	 	 	 	 	 	 	 	 	 	 	 dd                     ZPy)    )annotationsN)ListOptionalSequenceTupleUnion)_C)
_constants_type_utilserrorssymbolic_helpersymbolic_opset9)GLOBALS)	_beartype	jit_utilsregistration)"
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
   )opsetc                       fd}|S )z_Returns a decorator that calls the decorated (higher-order) function with the given parameters.c                     | i S N )fnargskwargss    Z/var/www/html/test/engine/venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset10.py_applyz_apply_params.<locals>._applyL   s    4"6""    r:   )r<   r=   r?   s   `` r>   _apply_paramsrA   I   s    # Mr@   z	aten::divc                h    t        |      dk(  rt        j                  | ||      S t        | ||g| S Nr   )lenopset9true_divide_div_rounding_mode)gselfotherr<   s       r>   r   r   R   s8     4yA~!!!T511!!T58488r@   vsc                V    |dk(  rt        | ||      S t        j                  | |||      S )Nfloor)_floor_dividerE   rG   )rH   rI   rJ   rounding_modes       r>   rG   rG   [   s2     Qe,,((D%GGr@   zaten::_floor_dividec                   t        j                  |      st        j                  |      r)t        j                  | ||      }| j	                  d|      S | j	                  d||      }| j	                  dt        j                  dt
        j                              }| j	                  d| j	                  d||      | j	                  d||            }| j	                  d	||d
      }| j	                  d|| j	                  d| j	                  d||                  }| j	                  dt        j                  dt
        j                              }	| j	                  d||	      }
| j	                  d||
|      S )NFloorDivConstantr   dtypevalue_tXorLessModfmod_iAndNotEqual   SubWhere)r   _is_fprE   rF   optorchtensorint64)rH   rI   rJ   outr   zeronegativemod
fixup_maskonefixups              r>   rO   rO   d   s/    d#'='=e'D  D%0ttGS!! dd5$&ttJQekk(JtK44qttFD$7feT9RS dd5$ad0TT%144qttGS$7O+PQ
dd:u||AU[['IdJUC%ttGZ44r@   z
aten::sortinonec                6    t        j                  | ||||      S )N)	decendingri   )r   _sort_helper)rH   rI   dimrs   ri   s        r>   r3   r3   z   s     ''4	sSSr@   z
aten::topkc           	     :    t        j                  | ||||||      S )N)largestsortedri   )r   _topk_helper)rH   rI   kru   rw   rx   ri   s          r>   r4   r4      s&     ''	4CS r@   c                   | j                  d| j                  d|            }||k(  rH| j                  d|| j                  dt        j                  dgt        j                                    }| j                  d|d	|||||
      \  }	}
||k(  rH| j                  d|	| j                  dt        j                  dgt        j                                    }	|	S )NSizeShape	UnsqueezerT   r   rU   rW   MaxPool   outputsceil_mode_idilations_ikernel_shape_ipads_i	strides_iSqueezere   rf   rg   rh   )rH   rI   kernel_shapestridespads	dilations	ceil_modeunbatched_rank	self_rankpool_result_s              r>   _aten_max_pool_onnxr      s     VQTT'401IN"ttDDU\\1#U[[%IDJ
 TT#  	NK N"ddDDU\\1#U[[%IDJ
 r@   c                ^   t        |t              r|g| z  }t        |t              r|g| z  }n|}t        |t              r
|g| z  dz  }nAt        |      dk(  r	|| z  dz  }n*t        |      dk(  r|dz  }nt        |      dk(  r|dz  }n|}t        |t              r|g| z  }n|s|}n|}||||fS ):Adjust attributes of avg_pool to match ONNX specification.r   ra      
isinstanceintrD   )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                r   | j                  d| j                  d|            }||k(  rH| j                  d|| j                  dt        j                  dgt        j                                    }| j                  d|d	|||||
      \  }}| j                  d|d	|||      \  }}| j                  dt        j                  |            }| j                  dt        j                  |	            }| j                  dt        j                  |
            }| j                  d||||      }| j                  d||      }||k(  rp| j                  d|t        j                  dgt        j                              }| j                  d|t        j                  dgt        j                              }||fS )Nr|   r}   r~   rT   r   rU   rW   r   r   r   )r   r   r   r   Slicerb   r   r   )rH   rI   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N"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N"dd{ELL!EKK,P  
 $$y'5<<5;;3W$X!!r@   zaten::max_pool1d
max_pool1dra   F)return_indices)decoratezaten::max_pool2d
max_pool2dr   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           	         t        j                  dddddd      t        j                  dddddd      	 	 	 	 	 	 	 	 	 	 	 	 	 	 dfd              }|S )NTFrK   isrp   c                    t        ||||      \  }}}	}
r:t        | ||||	|
|dz   dgz  dgz  t              D cg c]  }d|z   	 c}      S t        | ||||	|
|dz         S c c}w )Nra   r   r   )r   r   ranger   )rH   inputr   r   r   r   r   r   r   r   r   rp   r   r   s               r>   symbolic_fnz_max_pool.<locals>.symbolic_fnA  s     2Pfgx2
.gtY 3a{"{"!&{!34A!a%4  'a	 	 5s   A')rH   jit_utils.GraphContextr   _C.Valuer   Sequence[int]r   r   r   Union[int, Sequence[int]]r   r   r   bool)r   quantized_args
parse_args)namer   r   r   s    `` r>   	_max_poolr     s    X ##D%ueLT4tSA%!%% #% 	%
 +%  % % B M%N r@   c                   t        |t              r|g| z  }n|}t        |t              r
|g| z  dz  }n0t        |      dk(  r	|| z  dz  }nt        |      dk(  r|| z  }n|dz  }t        |t              r|g| z  }n|s|}n|}|||fS )r   r   ra   r   )r   r   r   r   r   r   r   s          r>   _adjust_attributes_of_avg_poolr   n  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           
         t        j                  ddddddd      t        j                  ddddddd      t        j                  	 d	 	 	 	 	 	 	 	 	 	 	 d	fd                     }|S )
NTFrK   r   rp   rq   c           	     \    t        |||      \  }}	}
| j                  d|||||
|	      }|S )NAveragePool)r   count_include_pad_ir   r   r   )r   re   )rH   r   r   r   r   r   count_include_paddivisor_overrider   r   r   resultr   s               r>   r   z_avg_pool.<locals>.symbolic_fn  sQ     'Efg'
#gt ! 1'  
 r@   r9   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   beartype)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                t     t        j                  ddd      t        j                   fd              }|S )NTFc                   t        j                  | |      \  }}t        j                         t        j                  |      }|rt        j                  d|      S |t        j
                  | ||      }| j                  d||      S )Nzalign_corners == TrueResizemode_s)r   _get_interpolate_attributes_interpolate_warning_maybe_get_scalar_unimplemented_interpolate_size_to_scalesre   )	rH   r   output_sizer<   scalesalign_cornersru   interpolate_moder   s	         r>   r   z!_interpolate.<locals>.symbolic_fn  s     !0 K K!
 	,,-=>'99-H"11$8OQVWW>$@@5+sF ttHeV4DtEEr@   )r   r   r   r   )r   ru   r   r   s   ``` r>   _interpolater     s>    4 ##D%7F  8F r@   zaten::__interpolatec                f    t        j                  | |||||      \  }}| j                  d|||      S )Nr   r   )r    _interpolate_get_scales_and_modere   )	rH   r   sizescale_factormoder   recompute_scale_factor	antialiasr   s	            r>   __interpolater     s>     #CC	5$dMLFD 44%455r@   c                H    d d fd	}d } ||      dk(  r( ||      t         j                  k(  r| ||      dk(  r|S  ||      } ||d      } ||t         j                        }| j                  d||||      S  ||d      } j                  d|||||      S )	Nc                    | yt        | t        j                  j                        xrK | j	                         j                         dk(  xr( t        | j                         t        j                        S )NTzprim::Constant)r   rf   r	   ValuenodekindtypeNoneType)values    r>   is_none_valuez_slice.<locals>.is_none_value  sW    =uehhnn- 6

!!#'7765::<5	
r@   c                N    |       r||g} t        | t        t        j                  f      r&j	                  dt        j
                  |             S t        j                  |       }|dk(  rt        j                  | dg      S |dk(  r| S t        j                  d| |       )NrT   rW   r   ra   zRank must be 0 or 1, not )r   listrf   Tensorre   rg   r   _get_tensor_rank_unsqueeze_helperr   SymbolicValueError)list_or_valuedefault_valuerankrH   r   s      r>   to_slice_inputz_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                    t        | t        t        j                  f      rt	        |       dk(  r| d   S y t        j                  | d      S )Nra   r   rp   )r   r   rf   r   rD   r   _maybe_get_const)r  s    r>   get_const_valuez_slice.<locals>.get_const_value  sC    mdELL%9:=!Q&$Q''//sCCr@   r   ra   )r  r   r9   )r
   	INT64_MAXre   )	rH   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}ttGUFD$7752E44dE::r@   zaten::slicec                    t        |      dk(  r|\  }}}}n.t        |      dk(  r
|\  }}}dg}nt        j                  d|      t        j                  | |||||      S )Nr   r   r   zUnknown aten::slice signaturer   r   r   r	  )rD   r   r   r   _slice_helper)rH   rI   r<   dimsstartendsteps          r>   r2   r2   6  st     4yA~!%eS$	TasDs''(GNN((	 r@   z
aten::flipr   c                    t        j                  | ||dgt        |      z  t        j                   gt        |      z  dgt        |      z        S )Nr  )r   r  rD   r
   r  )rH   r   r  s      r>   r   r   M  sT     ((	tc$i###$s4y0dSY r@   z
aten::fmodc                ,    | j                  d||d      S )Nr[   ra   r\   )re   )rH   r   rJ   s      r>   r   r   [  s     44ueA4..r@   zaten::embedding_bagc
                   |r%t         j                  rt        j                  d      S |	|	dk\  rt	        d      t        j                  d       t        j                  |d      }
|
S|r|
dz
  }|}nO|
}|| j                  dt        j                  t        j                  g            g} | j                  dg|d	di}g }t        |      D ]  }t        j                  | t        j                   | |t        j                  d      t        j                  |            dg      }t        j                  | t        j                   | |t        j                  d      t        j                  |dz               dg      }| j                  dt        j                  dg            }| j                  d
||||      }| j                  d||      }t        j"                  |      s@| j                  d
||||      }t        j                  | |dg      }| j                  d||      }|dk(  rt        j$                  | |dgd      }n2|dk(  r| j                  d|dgd      }n| j                  d|dgd      }t        j                  | |dg      }|j'                  |         | j                  dg|d	di}|d d d fS t        j                  d      S )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.'ra   rT   rW   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_sizere   rf   rg   sysmaxsizer   r   rE   select_is_none_reducesum_helperappend)rH   embedding_matrixr   offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxoffsets_dim_0
offset_lenoffsets_extendedlist_rp   start_end_axes_indices_row
embeddingsper_sample_weights_rowoutputs                         r>   r   r   a  s    g5500E
 	
 ;!#3;<<MM	R $88!DM &*J&&JZs{{m)DE   $qttHJ/?JJz" #	%A$66a!15<<?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           	     $   ||fdk(  rt        j                  dddd|       ||fdvrt        j                  d| d| d	|      t        j                  |      }|t        j                  dddd
|       |j                         j                  }|dk(  r-| j                  d|t        j                  j                        }n,| j                  d|t        j                  j                        }| j                  d| j                  d|||      ||      S )N)r      r   r5      z=Quantize range (0, 127) not supported, requires opset 13 Clip))r      ir=  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datare   _C_onnxTensorProtoDataTypeUINT8INT8)rH   inputsscale
zero_point	quant_min	quant_maxs         r>   r   r     s&    	9)88-K	
 	9%<<'';b1.
 	

 --e4E}88-.	
 KKMEA~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
44	vuj9	 r@   zaten::isinfc                z    | j                  d| j                  d|t        j                  j                              S )NIsInfrB  rC  )re   rJ  rK  DOUBLErH   r   s     r>   r   r     s0     44fe'2M2M2T2TUVVr@   zaten::isfinitec                    t        | |      }t        j                  | |      }t        j                  | t        j                  | ||            S r9   )r   rE   isnan__not___or_)rH   r   inf_nodenan_nodes       r>   r   r     s=     QH||Au%H==FLLHh?@@r@   zaten::quantize_per_tensorc                "   t        j                  |dd      }| j                  d|t        j                  |      j                               }| j                  d|t        j                  j                        }t        j                  | |||      S )Nrp   rV   rB  rC  )
r   
_get_constre   r   JitScalarType	onnx_typerJ  rK  FLOATquantize_helper)rH   r   rO  rP  rV   s        r>   r   r     s     &&uc7;E
!:!:5!A!K!K!M  J DDW%@%@%F%FDGE**1eUJGGr@   zaten::dequantizec                4    t        j                  | |      d   S rC   )r   dequantize_helperrV  s     r>   r   r     s     ,,Q6q99r@   zaten::nan_to_numfc                   t        j                  |      s|S t        j                  j	                  |      j                         }|d}t        j                  | |      }| j                  d|| j                  dt        j                  |g|            |      }t        j                  |      }||j                  }t        j                  | t        | |      t        j                  | || j                  dt        j                   dg                        }	| j                  d|	| j                  dt        j                  |g|            |      }
||j"                  }t        j                  | t        | |
      t        j$                  | |
| j                  dt        j                   dg                        }| j                  d|| j                  dt        j                  |g|            |
      S )N        rc   rT   rU   rW   r   )r   rd   r   r_  
from_valuerV   rE   rX  re   rf   rg   finfomaxlogical_andr   gt
LongTensorminlt)rH   r   nanposinfneginfinput_dtypenan_cond
nan_resultri  posinf_condnan_posinf_resultneginf_conds               r>   r   r   	  s    !!%(++66u=CCEK
{||Au%H	Zse;!GH	J KK$E~$$	a		!Z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                4   t        j                  | |      \  }}}}t        j                  | |      \  }	}
}}t        j                  | |||
      }t        j                  | |      \  }}}}t        j                  | ||	|      }t        j
                  | |||      S r9   )r   rd  requantize_bias_helperrE   r   rb  rH   q_inputq_weightbiasop_scaleop_zero_pointr   input_scaler   weightweight_scaleq_biasr;  s                r>   r.   r.   B  s    
  /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT2F**1fhNNr@   zquantized::linear_reluc                `   t        j                  | |      \  }}}}t        j                  | |      \  }	}
}}t        j                  | |||
      }t        j                  | |      \  }}}}t        j                  | ||	|      }t        j
                  | |      }t        j                  | |||      S r9   )r   rd  rz  rE   r   relurb  r{  s                r>   r/   r/   Q  s    
  /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT2F[[F#F**1fhNNr@   zquantized::addc                    t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||      }t        j                  | |||      S r9   )r   rd  rE   addrb  rH   xyr  r  r   r;  s          r>   r   r   a  a     !221a8JAq!Q 221a8JAq!QZZ1a F**1fhNNr@   zquantized::add_reluc                    t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||      }t        j                  | |      }t        j
                  | |||      S r9   )r   rd  rE   r  r  rb  r  s          r>   r   r   l  sq     !221a8JAq!Q 221a8JAq!QZZ1a F[[F#F**1fhNNr@   zquantized::mulc                    t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||      }t        j                  | |||      S r9   )r   rd  rE   mulrb  r  s          r>   r0   r0   x  r  r@   zquantized::hardswishc                    t        j                  | |      \  }}}}t        j                  | |      }t        j                  | |||      S r9   )r   rd  rE   	hardswishrb  rH   r  r  r  r   r;  s         r>   r*   r*     sG     !221a8JAq!Qa#F**1fhNNr@   zquantized::sigmoidc                    t        j                  | |      \  }}}}t        j                  | |      }t        j                  | |||      S r9   )r   rd  rE   sigmoidrb  r  s         r>   r1   r1     sE     !221a8JAq!Q^^Aq!F**1fhNNr@   zquantized::leaky_reluc                    t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |||      S r9   )r   rd  rE   
leaky_relurb  )rH   r  negative_slopeinplacer  r  r   r;  s           r>   r-   r-     sK    
 !221a8JAq!Qq!^W=F**1fhNNr@   zquantized::layer_normc           	         t        j                  | |      \  }}}}t        j                  | |||||d      }	t        j                  | |	||      S NF)r   rd  rE   
layer_normrb  )
rH   r  normalized_shaper  r~  epsr  r  r   r;  s
             r>   r,   r,     sR     !221a8JAq!Qq!%5vtS%PF**1fhNNr@   zquantized::group_normc           	         t        j                  | |      \  }}}}t        j                  | |||||d      }	t        j                  | |	||      S r  )r   rd  rE   
group_normrb  )
rH   r  
num_groupsr  r~  r  r  r  r   r;  s
             r>   r)   r)     sQ     !221a8JAq!Qq!ZsEJF**1fhNNr@   zquantized::instance_normc                    t        j                  | |      \  }}}}t        j                  | |||d d dd|d
      }	t        j                  | |	||      S )NFrg  )r   rd  rE   instance_normrb  )
rH   r|  r  r~  r  r  r  r   r   r;  s
             r>   r+   r+     s\     %66q'BNE1a!!	5&$dE3UF **1fhNNr@   zquantized::conv1d_reluc
           
     h   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S r9   )r   rd  rz  rE   conv1dr  rb  rH   r|  r}  r~  r   r   r   groupsr  r  r   r  r   r  r  r  r;  s                    r>   r    r            /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT67HfUF[[F#F**1fhNNr@   zquantized::conv2d_reluc
           
     h   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S r9   )r   rd  rz  rE   conv2dr  rb  r  s                    r>   r!   r!     r  r@   zquantized::conv3d_reluc
           
     h   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S r9   )r   rd  rz  rE   conv3dr  rb  r  s                    r>   r"   r"     r  r@   zquantized::conv1dc
           
     <   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S r9   )r   rd  rz  rE   r  rb  r  s                    r>   r#   r#   )        /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#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 r9   )r   rd  rz  rE   r  rb  r  s                    r>   r$   r$   A  r  r@   zquantized::conv3dc
           
     <   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S r9   )r   rd  rz  rE   r  rb  r  s                    r>   r%   r%   Y  r  r@   zquantized::conv_transpose1dc                >   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S r9   r   rd  rz  rE   conv_transpose2drb  rH   r|  r}  r~  r   r   output_paddingr   r  r  r  r   r  r   r  r  r  r;  s                     r>   r&   r&   q        /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#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 r9   r  r  s                     r>   r'   r'     r  r@   zquantized::conv_transpose3dc                >   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S r9   )r   rd  rz  rE   conv_transpose3drb  r  s                     r>   r(   r(     r  r@   zquantized::catc                    t        j                  |      }|D cg c]  }t        j                  | |      d    }} | j                  dg|d|i}t        j                  | |||      S c c}w )Nr   r  r  )r   _unpack_listrd  re   rb  )	rH   q_inputsru   r  r  unpacked_inputsr   dequantizedconcatenateds	            r>   r   r     sx     &228<ODS;@))!U3A6K  144;;;s;L**1lHmTT	s    A*)rH   r   r9   )rH   r   rI   r   r   r   r   r   r   r   r   r   r   r   r   r   returnr   )r   r   r   Union[Sequence[int], int]r   r  r   r  r   r  r  zATuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]])rH   r   rI   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]])rH   r   r   ztorch._C.Valuer   )Union[List, torch.Tensor, torch._C.Value]r   r  r   r  r	  z3Optional[Union[List, torch.Tensor, torch._C.Value]]r@  )rH   r   r  r   ru   r   r  r   r  r   r  r   )Q
__future__r   	functoolsr$  r!  typingr   r   r   r   r   rf   torch._C._onnxr	   _onnxrJ  
torch.onnxr
   r   r   r   r   rE   torch.onnx._globalsr   torch.onnx._internalr   r   r   __all__partialonnx_symbolic_onnx_symbolicrA   r   r   r   rG   rO   r3   r4   r   r   r   r   r   r   r   r   r
  r2   r   r   r   r   r   r   r   r   r   r.   r/   r   r   r0   r*   r1   r-   r,   r)   r+   r    r!   r"   r#   r$   r%   r&   r'   r(   r   r:   r@   r>   <module>r     s0   "  
  9 9         ( C C#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BC L!EBC L!EBC #%	
	 #%	
	 #%	
	 * 						V*\))*) &) '	)
 8)@ L!,- L!,- L!,-  			B 0!Y?@ 0!Y?@ 0!Y?@ /H=> 11h?@  2Ax@A  						2( %&
66  '6   BF7;7;7; 47; 6	7;
 4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@   