§
    Ë²Åj¥  ã            	       ó†	  — 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	¦  «        dMd
ej        fd„¦   «         ¦   «         Z ed¦  «         e
j        ddd	¦  «        dMd
ej        fd„¦   «         ¦   «         Z ed¦  «         e
j        ddd¦  «        dNd
ej        fd„¦   «         ¦   «         Z ed¦  «         e
j        dddd¦  «        dMd
ej        fd„¦   «         ¦   «         Z ed¦  «        dMd
ej        fd„¦   «         Z ed¦  «        	 dMd
ej        fd„¦   «         Z ed¦  «        	 dMd
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¦  «        dOd
ej        fd„¦   «         ¦   «         Z  ed¦  «        dMd
ej        fd„¦   «         Z! ed¦  «         e
j        dddd¦  «        dPd
ej        fd „¦   «         ¦   «         Z" ed!¦  «         e
j        dddddd¦  «        	 	 dQd
ej        fd$„¦   «         ¦   «         Z# ed%¦  «         e
j        ddddd¦  «        	 	 dQd
ej        fd&„¦   «         ¦   «         Z$d'„ Z% ed( e
j&        d)d*¦  «        g¬+¦  «        d,„ ¦   «         Z' ed-¦  «        d
ej        fd.„¦   «         Z( ed/¦  «         e
j        dddd¦  «        dMd
ej        fd0„¦   «         ¦   «         Z) ed1¦  «        d
ej        fd2„¦   «         Z* ed3¦  «        	 dRd
ej        fd4„¦   «         Z+ ed5¦  «         e
j        dddd¦  «        d
ej        fd6„¦   «         ¦   «         Z, ed7¦  «        d
ej        fd8„¦   «         Z- ed9¦  «        d
ej        fd:„¦   «         Z. ed;¦  «        d
ej        fd<„¦   «         Z/ ed=¦  «        d
ej        fd>„¦   «         Z0 ed?¦  «        d
ej        fd@„¦   «         Z1 edA¦  «        d
ej        fdB„¦   «         Z2 edC¦  «        d
ej        fdD„¦   «         Z3 edE¦  «        d
ej        fdF„¦   «         Z4 edG¦  «        d
ej        fdH„¦   «         Z5 edI¦  «        d
ej        fdJ„¦   «         Z6 edK¦  «        d
ej        fdL„¦   «         Z7dS )Sé    N)Ú
_constantsÚ_type_utilsÚerrorsÚsymbolic_helperÚsymbolic_opset11Úsymbolic_opset9Úutils)Ú	jit_utilsÚregistrationé   )Úopsetzaten::softmaxÚvÚiÚnoneÚgc                 ó2  — |                       d||¬¦  «        }|r||                     ¦   «                              ¦   «         dk    rRt          j        |dd¦  «        }|                       d|t          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         úLC:\Projects\Historical\venv\Lib\site-packages\torch/onnx/symbolic_opset13.pyr$   r$      s“   € ð �dŠd�9˜e¨CˆdÑ0Ô0€GØð 
�—’‘”×"Ò"Ñ$Ô$Ð(8Ò8Ð8Ý&Ô1°%¸¸gÑFÔFˆØ—$’$Ø�G¥+Ô";¸LÑ"IÔ"I×"SÒ"SÑ"UÔ"Uð ñ 
ô 
ˆð €Nó    zaten::log_softmaxc                 ó2  — |                       d||¬¦  «        }|r||                     ¦   «                              ¦   «         dk    rRt          j        |dd¦  «        }|                       d|t          j        |¦  «                             ¦   «         ¬¦  «        }|S )NÚ
LogSoftmaxr   r   r   r   r   r   r   )r   r"   r#   r   Ú	return_opr%   s         r&   Úlog_softmaxr+   &   s”   € ð —’�\ 5°�Ñ5Ô5€IØð 
�—’‘”×"Ò"Ñ$Ô$Ð(8Ò8Ð8Ý&Ô1°%¸¸gÑFÔFˆØ—D’DØ�I¥KÔ$=¸lÑ$KÔ$K×$UÒ$UÑ$WÔ$Wð ñ 
ô 
ˆ	ð Ðr'   zaten::frobenius_normFc                 ó4  — t          j        |d¦  «        }t          j        |¦  «        s+t          |¦  «        dk    r|                      d|d¬¦  «        S |                      d||¦  «        }t          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“   € õ Ô.¨s°DÑ9Ô9€GÝÔ$ WÑ-Ô-ð 4µ#°g±,´,À!Ò2CÐ2CØ�tŠt�J °ˆtÑ3Ô3Ð3Ø
�$Š$ˆu�d˜DÑ
!Ô
!€CÝÔ.¨q°#°sÀwÐOÑOÔO€FØ�4Š4�˜ÑÔÐr'   zaten::splitc           
      ó  ‡ ‡— t          j        ||¦  «        �s`‰                      d|||¬¦  «        Š|€‰S t          j        |¦  «        �rt	          t          j        |¦  «        ¦  «        |k    ríˆ fd„t          j        |¦  «        D ¦   «         }‰                      dt          j        dgt          j        ¬¦  «        ¬¦  «        }‰                      dt          j        |gt          j        ¬¦  «        ¬¦  «        }g }t          |¦  «        D ]M}	‰                      d|||	         ¦  «        }
| 
                    ‰                      d	|||
|¦  «        ¦  «         |
}ŒN|S ˆ ˆfd
„t          |¦  «        D ¦   «         S t          j        |                     ¦   «         d¦  «        }|                     ¦   «         dk    r‰                      d||||¬¦  «        S t          j        |dd¦  «        }t          j        ||¦  «        }|€|�||z  }nt!          j        d|¦  «        ‚|g||z  z  }||z  }|r| 
                    |¦  «         ‰                      dt          j        |¦  «        ¬¦  «        }‰                      d||||¬¦  «        S )NÚSplitToSequencer   c                 ó>   •— g | ]}t          j        ‰|d g¦  «        ‘ŒS )r   )r   Ú_unsqueeze_helper)Ú.0r   r   s     €r&   ú
<listcomp>zsplit.<locals>.<listcomp>I   s:   ø€ ð ð ð àõ  Ô1°!°Q¸¸Ñ<Ô<ðð ð r'   ÚConstantr   ©r   ©Úvalue_tÚAddÚSlicec                 ó¦   •— g | ]M}‰                      d ‰‰                      dt          j        |gt          j        ¬¦  «        ¬¦  «        ¦  «        ‘ŒNS )Ú
SequenceAtrC   rD   rE   ©r   ÚtorchÚtensorÚlong)rA   r   r   Ú	split_outs     €€r&   rB   zsplit.<locals>.<listcomp>X   se   ø€ ð 
ð 
ð 
ð ð �DŠDØØØ—’�Z­¬°q°cÅÄÐ)LÑ)LÔ)L�ÑMÔMñô ð
ð 
ð 
r'   ÚvalueÚSplit©r   Úoutputsr   Ú
split_sizeú$Unknown dimension size not supported)r   Ú_is_split_staticr   Ú_is_packed_listr5   Ú_unpack_listrL   rM   rN   ÚrangeÚappendÚ	_node_getr   r#   r   Ú_get_tensor_dim_sizer   ÚSymbolicValueError)r   r7   Úsplit_size_or_sizesr#   Ú_outputsÚsplit_sizesÚstartÚaxisÚresr   ÚendÚ	split_valrT   ÚsizeÚsplitsÚleftoverrO   s   `               @r&   Úsplitri   =   s½  øø€ õ Ô+Ð,?ÀÑJÔJñ 
Ø—D’DÐ*¨DÐ2EÈc�DÑRÔRˆ	ØÐØÐõ Ô+Ð,?Ñ@Ô@ñ	å•OÔ0Ð1DÑEÔEÑFÔFÈ(ÒRÐRðð ð ð å(Ô5Ð6IÑJÔJðñ ô ˆKð
 —D’D˜­U¬\¸1¸#ÅUÄZÐ-PÑ-PÔ-P�DÑQÔQˆEØ—4’4˜
­E¬L¸#¸ÅeÄjÐ,QÑ,QÔ,Q�4ÑRÔRˆDØˆCÝ˜8‘_”_ð ð �Ø—d’dØ˜5 +¨a¤.ñô �ð —
’
˜1Ÿ4š4 ¨¨u°c¸4Ñ@Ô@ÑAÔAÐAØ��ØˆJð
ð 
ð 
ð 
ð 
õ ˜8‘_”_ð
ñ 
ô 
ð 	
õ  Ô)Ð*=×*BÒ*BÑ*DÔ*DÀgÑNÔN€IØ‡}‚}�„˜ÒÐØ�tŠt�G˜TÐ#6¸sÈHˆtÑUÔUÐUÝ Ô+Ð,?ÀÀlÑSÔS€JåÔ/°°cÑ:Ô:€DØ€|ØÐØ Ñ(ˆDˆDåÔ+Ø6¸ñô ð ð ˆ\˜T ZÑ/Ñ0€FØ�jÑ €HØð  Ø�Š�hÑÔÐØ�TŠT�*¥e¤l°6Ñ&:Ô&:ˆTÑ;Ô;€FØ�4Š4�˜˜v¨c¸8ˆ4ÑDÔDÐDr'   zaten::split_with_sizesc                 ó(   — t          | ||||¦  «        S ©N©ri   ©r   r7   r`   r#   r_   s        r&   Úsplit_with_sizesrn   v   s   € å��D˜+ s¨HÑ5Ô5Ð5r'   zaten::unsafe_splitc                 ó(   — t          | ||||¦  «        S rk   rl   )r   r7   r^   r#   r_   s        r&   Úunsafe_splitrp   {   s   € õ ��DÐ-¨s°HÑ=Ô=Ð=r'   zaten::unsafe_split_with_sizesc                 ó(   — t          | ||||¦  «        S rk   )rn   rm   s        r&   Úunsafe_split_with_sizesrr   ‚   s   € õ ˜A˜t [°#°xÑ@Ô@Ð@r'   zaten::tensor_splitc                 ó(  — |                       dt          j        |t          j        ¬¦  «        ¬¦  «        }t	          j        | |d¦  «        }|                       dt          j        dt          j        ¬¦  «        ¬¦  «        }t          j        ||¦  «        �rt          j        | 	                    ¦   «         d¦  «        }| 
                    ¦   «         dk    �r|                       dt          j        dgt          j        ¬¦  «        ¬¦  «        }g }	|€J ‚t          |dz
  ¦  «        D ]}}
|                       d||                       dt          j        |
gt          j        ¬¦  «        ¬¦  «        d¬¦  «        }|	                     |                       d	||||¦  «        ¦  «         |}Œ~t          j        | ||¦  «        }|	                     |                       d	||||¦  «        ¦  «         |	S t          j        |d
d¦  «        }t          j        ||¦  «        }|€|�||z  }nt!          j        d|¦  «        ‚||z  }||z  }||dz   gz  }||z
  |gz  }|                       dt          j        ||z   t          j        ¬¦  «        ¬¦  «        }|                       d||||¬¦  «        S t          j        |¦  «        �ràt          j        |¦  «        dk    �rÇt          j        | ||                       dt          j        d¦  «        ¬¦  «        ¦  «        }t	          j        | |d¦  «        }|                       d|t(          j        j        ¬¦  «        }|                       dt          j        dgt          j        ¬¦  «        ¬¦  «        }|                       d||d¬¦  «        }|                       d¦  «        }t/          j        | d|||dd¬¦  «        \  }\  }}|j        }t5          j        |¦  «        }t5          j        |¦  «        }t5          j        |¦  «        }|                      d||d¬¦  «        }|                      d||                      d||¦  «        d¬¦  «        }|                      d	||||¦  «        }|                      d||¦  «        }|                      d|¦  «        }t5          j        ||¦  «         t5          j        ||¦  «         | 	                    ¦   «                              ¦   «         }|                       d||                       dt          j        dt          j        ¬¦  «        ¬¦  «        d¬¦  «        }t	          j        | |d¦  «        }t          j        | ||¦  «        }|                       d	||||¦  «        }|                       d||¦  «        S t          j        | ||¦  «        } |                       d| |¦  «        }|                       d||¦  «        }!|                       d| |¦  «        }|                       d|!|¦  «        }|                       d||                       dt	          j        | |d¦  «        |¦  «        ¦  «        }|                       d||d¬¦  «        }|€|                       d|||¬¦  «        S |                       d||||¬¦  «        S )NrC   rD   rE   r   é   rP   ÚGatherr   rH   r   Úindices_or_sectionsrU   rQ   rR   r   r   ÚConcatÚSequenceEmptyÚLoop)rS   Ún_blocksrG   ÚSequenceInsertÚIdentityéÿÿÿÿÚDivÚModÚTileÚSubr>   )r   rL   rM   rN   Úopset11Ú	unsqueezer   rV   r[   r   r#   rY   rZ   Ú_size_helperr   r\   r   r]   Ú
_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   rv   r#   r_   rb   Úconst_1re   ra   rc   r   rd   rT   rf   Úmin_split_sizeÚnum_splits_one_extrarg   rh   Ú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Š  € ð
 �4Š4�
¥E¤L°½E¼JÐ$GÑ$GÔ$Gˆ4ÑHÔH€DÝÔ˜Q  aÑ(Ô(€DØ�dŠd�:¥u¤|°A½U¼ZÐ'HÑ'HÔ'HˆdÑIÔI€GåÔ'Ð(;¸XÑFÔFñ +IÝ#Ô-Ð.A×.FÒ.FÑ.HÔ.HÈ'ÑRÔRˆ	à�=Š=‰?Œ?˜QÒÑØ—D’D˜­U¬\¸1¸#ÅUÄZÐ-PÑ-PÔ-P�DÑQÔQˆEØˆCØÐ'Ð'Ð'Ý˜8 a™<Ñ(Ô(ð ð �Ø—d’dØØ'Ø—D’D˜­U¬\¸1¸#ÅUÄZÐ-PÑ-PÔ-P�DÑQÔQØð	 ñ ô �ð —
’
˜1Ÿ4š4 ¨¨u°c¸4Ñ@Ô@ÑAÔAÐAØ��å!Ô.¨q°$¸Ñ=Ô=ˆCØ�JŠJ�q—t’t˜G T¨5°#°tÑ<Ô<Ñ=Ô=Ð=ØˆJå$Ô/Ø Ð&;ñ
ô 
ˆ
õ Ô3°D¸#Ñ>Ô>ˆØˆ<ØÐ#Ø! HÑ,��åÔ/Ø:¸Dñô ð ð  Ñ+ˆØ# jÑ0Ðà%¨¸!Ñ);Ð(<Ñ<ˆØÐ!5Ñ5¸.Ð9IÑIˆà—’Ø¥¤¨V°hÑ->ÅeÄjÐ QÑ QÔ Qð ñ 
ô 
ˆð �tŠt�G˜T 6°#¸xˆtÑHÔHÐHõ 	Ô"Ð#6Ñ7Ô7ñQIåÔ,Ð-@ÑAÔAÀQÒFÑFå"Ô/ØÐ" A§D¢D¨½U¼\È!¹_¼_ DÑ$MÔ$Mñ
ô 
ˆõ Ô$ Q¨°!Ñ4Ô4ˆØŸš˜f gµGÔ4OÔ4T˜ÑUÔUˆð —D’D˜­U¬\¸1¸#ÅUÄZÐ-PÑ-PÔ-P�DÑQÔQˆ	ØŸdšd 8¨YÐ8KÐTU˜dÑVÔVÐà—t’t˜OÑ,Ô,ˆå#,Ô#?Øˆv�x °ÀqÐSTð$
ñ $
ô $
Ñ ˆ‰oˆ|˜qð "Ô'ˆ
Ý Ô4°ZÑ@Ô@ÐÝÔ(¨Ñ4Ô4ˆÝÔ0°Ñ<Ô<ˆà—’ØÐ)Ð+;ÀAð  ñ 
ô 
ˆð �oŠoØØØ�OŠO˜EÐ#3°WÑ=Ô=Øð	 ñ 
ô 
ˆð —’ ¨¨u°c¸4Ñ@Ô@ˆØ#—’Ð'7¸ÀuÑMÔMˆð  —?’? :¨~Ñ>Ô>ˆÝÔ" :¨xÑ8Ô8Ð8ÝÔ" :¨|Ñ<Ô<Ð<à—9’9‘;”;×%Ò%Ñ'Ô'ˆØ—’ØØØ�DŠD�¥U¤\°"½E¼JÐ%GÑ%GÔ%GˆDÑHÔHØð	 ñ 
ô 
ˆõ Ô! ! U¨AÑ.Ô.ˆÝÔ*¨1¨d°DÑ9Ô9ˆà—T’T˜' 4¨°°TÑ:Ô:ˆ
à�tŠtÐ$ h°
Ñ;Ô;Ð;õ #Ô/°°4¸Ñ>Ô>ˆØŸš˜e XÐ/BÑCÔCˆØ !§¢ØØØñ!
ô !
Ðð
  !Ÿtšt E¨8Ð5HÑIÔIÐØ—’�fÐ3Ð5IÑJÔJˆØ—4’4ØØØ�DŠDØÝÔ! !Ð%8¸!Ñ<Ô<Ø$ñô ñ
ô 
ˆð —’�h ¨¸�Ñ;Ô;ˆØÐØ—4’4Ð)¨4°À�4ÑDÔDÐDØ�tŠt�G˜T 6°#¸xˆtÑHÔHÐHr'   zaten::unbindc                 ój  ‡ ‡— |€M‰                       d|‰                       dt          j        dt          j        ¬¦  «        ¬¦  «        ‰d¬¦  «        S ‰                       dt          j        dg|z  ¦  «        ¬¦  «        }‰                       d||‰|¬	¦  «        }|dk    r|gn|}ˆˆ fd
„|D ¦   «         }|S )Nr>   rC   rt   rD   rE   r   ©r   r0   rQ   rR   c                 óŽ   •— g | ]A}‰                      d |‰                      dt          j        ‰g¦  «        ¬¦  «        ¦  «        ‘ŒBS )ÚSqueezerC   rE   )r   rL   rM   )rA   Úoutr#   r   s     €€r&   rB   zunbind.<locals>.<listcomp>"  sU   ø€ ð ð ð àð 	
�ŠˆY˜˜QŸTšT *µe´lÀCÀ5Ñ6IÔ6I˜TÑJÔJÑKÔKðð ð r'   rK   )r   r7   r#   r_   rg   rS   Úsqueezed_outputss   ` `    r&   Úunbindr©     sâ   øø€ ð ÐØ�tŠtØØØ�DŠD�¥U¤\°!½5¼:Ð%FÑ%FÔ%FˆDÑGÔGØØð ñ 
ô 
ð 	
ð �TŠT�*¥e¤l°A°3¸±>Ñ&BÔ&BˆTÑCÔC€FØ�dŠd�7˜D &°¸hˆdÑGÔG€GØ# qš=˜=ˆwˆiˆi¨g€Gðð ð ð ð àðñ ô Ðð Ðr'   zaten::nonzero_numpyc                 óN   — t          | t          j        | |¦  «        d|¬¦  «        S )Nrt   )r_   )r©   Úopset9Únonzero)r   r"   r_   s      r&   Únonzero_numpyr­   )  s'   € õ �!•V”^ A uÑ-Ô-¨q¸8ÐDÑDÔDÐDr'   zaten::wherec           
      óR  — t          j        |¦  «        s'|                      d|t          j        j        ¬¦  «        }|€St          j        | |¦  «        }t          j        | ||                      dt          j
        d¦  «        ¬¦  «        |¦  «        S |                      d|||¦  «        S )Nr   r   rC   rt   rE   ÚWhere)r   Ú_is_boolr   r‡   rˆ   r‰   r«   r¬   Ú_unbind_helperrL   rM   )r   Ú	conditionr7   Úotherr_   s        r&   Úwherer´   /  s›   € õ Ô# IÑ.Ô.ð SØ—D’D˜ µÔ1LÔ1Q�DÑRÔRˆ	Ø€|Ý”N 1 iÑ0Ô0ˆ	ÝÔ-Øˆy˜!Ÿ$š$˜zµ5´<À±?´?˜$ÑCÔCÀXñ
ô 
ð 	
ð �4Š4�˜ D¨%Ñ0Ô0Ð0r'   z&aten::fake_quantize_per_channel_affineé€ÿÿÿé   c                 ó"  — ||fdvrt          j        d|› d|› d�|¦  «        ‚|dk    r(|                      d|t          j        j        ¬¦  «        }n'|                      d|t          j        j        ¬¦  «        }|                      d||||¬	¦  «        }||fd
k    r]|                      d|t          j        | ¦  «        |                      dt          j
        dt          j        ¬¦  «        ¬¦  «        ¦  «        }|                      d||||¬	¦  «        S )N©)r   éÿ   ©rµ   r¶   ©r   r¶   úVFor (quant_min, quant_max), ONNX allows only (0, 127), (0, 255) and (-128, 127). Got (ú, ú)r   r   r   ÚQuantizeLinearr   r»   ÚCliprC   r¶   rD   rE   ÚDequantizeLinear)r   r]   r   r‡   rˆ   ÚUINT8ÚINT8r«   ÚunusedrL   rM   Úuint8)r   ÚinputsÚscaleÚ
zero_pointrb   Ú	quant_minÚ	quant_maxÚ	quantizeds           r&   Ú fake_quantize_per_channel_affinerÌ   =  s-  € ð 	�9ÐÐ%FÐFÐFÝÔ'ð.Øð.ð .Ø!*ð.ð .ð .àñ
ô 
ð 	
ð �A‚~€~Ø—T’T˜& *µ7Ô3NÔ3T�TÑUÔUˆ
ˆ
à—T’T˜& *µ7Ô3NÔ3S�TÑTÔTˆ
Ø—’Ð% v¨u°jÈ�ÑNÔN€IØ�9Ð Ò)Ð)Ø—D’DØØÝŒM˜!ÑÔØ�DŠD�¥U¤\°#½U¼[Ð%IÑ%IÔ%IˆDÑJÔJñ	
ô 
ˆ	ð �4Š4Ð" I¨u°jÈˆ4ÑNÔNÐNr'   z%aten::fake_quantize_per_tensor_affinec                 óì  — ||fdvrt          j        d|› d|› d�|¦  «        ‚|dk    r(|                      d|t          j        j        ¬¦  «        }n'|                      d|t          j        j        ¬¦  «        }t          j         	                    |t          j        j
        ¦  «        t          j        j        k    r'|                      d|t          j        j        ¬¦  «        }|                      d|||¦  «        }||fd	k    r]|                      d
|t          j        | ¦  «        |                      dt          j        dt          j        ¬¦  «        ¬¦  «        ¦  «        }|                      d|||¦  «        S )Nr¸   r¼   r½   r¾   r   r   r   r¿   r»   rÀ   rC   r¶   rD   rE   rÁ   )r   r]   r   r‡   rˆ   rÂ   rÃ   r   r    Ú
from_valueÚ	UNDEFINEDÚFLOATr«   rÄ   rL   rM   rÅ   )r   rÆ   rÇ   rÈ   rÉ   rÊ   rË   s          r&   Úfake_quantize_per_tensor_affinerÑ   `  ss  € ð 	�9ÐÐ%FÐFÐFÝÔ'ð.Øð.ð .Ø!*ð.ð .ð .àñ
ô 
ð 	
ð
 �A‚~€~Ø—T’T˜& *µ7Ô3NÔ3T�TÑUÔUˆ
ˆ
à—T’T˜& *µ7Ô3NÔ3S�TÑTÔTˆ
åÔ!×,Ò,¨UµKÔ4MÔ4WÑXÔXÝÔ$Ô*ò	+ð 	+ð —’�V˜U­Ô)DÔ)J�ÑKÔKˆØ—’Ð% v¨u°jÑAÔA€IØ�9Ð Ò)Ð)Ø—D’DØØÝŒM˜!ÑÔØ�DŠD�¥U¤\°#½U¼[Ð%IÑ%IÔ%IˆDÑJÔJñ	
ô 
ˆ	ð �4Š4Ð" I¨u°jÑAÔAÐAr'   c                 ó   ‡ — dˆ fd„	}|S )Nc                 ó¼   •— t          j        | |¦  «        }|€t          j        | |‰¦  «        S t          j        |dd¦  «        }|                      ‰|||¬¦  «        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‡  s]   ø€ ÝÔ:¸1¸dÑCÔCˆØˆ;å"Ô:¸1¸dÀLÑQÔQÐQå%Ô0°¸#¸yÑIÔIˆGØ—4’4˜ d¨C¸G�4ÑDÔDÐDr'   ©NN© )rÖ   r×   s   ` r&   Ú_reduce_op_symbolicrÚ   †  s.   ø€ ðEð Eð Eð Eð Eð Eð €Or'   z	aten::sumÚ	ReduceSumÚsum)Údecoratec                 óX   ‡‡— 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  •— d }|                      ¦   «                              ¦   «         dk    rUt          j        |dd¦  «        }t	          j        |¦  «                             ¦   «         }|                      d||¬¦  «        }n@|                      ¦   «                              ¦   «         dk    rt          j        ‰d|¦  «        S  ‰| |¦  «        }|�Ot          j         	                    |¦  «                             ¦   «         }||k    r|                      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Ø�zŠz‰|Œ|× Ò Ñ"Ô"Ð&6Ò6Ð6Ý'Ô2°5¸#¸wÑGÔG�Ý(Ô6°uÑ=Ô=×GÒGÑIÔI�
Ø—t’t˜F D¨z�tÑ:Ô:��Ø—’‘”×"Ò"Ñ$Ô$Ð(8Ò8Ð8Ý&Ô5°d¸GÀUÑKÔKÐKØ�X˜a Ñ&Ô&ˆFØÐ%Ý$/Ô$=×$HÒ$HØñ%ô %ç’)‘+”+ð "ð %¨
Ò2Ð2ØŸTšT &¨&°z˜TÑBÔB�FØˆMr'   r   c                 óH  •— d }|                      ¦   «                              ¦   «         dk    rUt          j        |dd¦  «        }t	          j        |¦  «                             ¦   «         }|                      d||¬¦  «        }n@|                      ¦   «                              ¦   «         dk    rt          j        ‰d|¦  «        S  ‰	| |||¦  «        }|�Ot          j         	                    |¦  «                             ¦   «         }||k    r|                      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Ø�zŠz‰|Œ|× Ò Ñ"Ô"Ð&6Ò6Ð6Ý'Ô2°5¸#¸wÑGÔG�Ý(Ô6°uÑ=Ô=×GÒGÑIÔI�
Ø—t’t˜F D¨z�tÑ:Ô:��Ø—’‘”×"Ò"Ñ$Ô$Ð(8Ò8Ð8Ý&Ô5°d¸GÀUÑKÔKÐKØ�X˜a  s¨GÑ4Ô4ˆFØÐ%Ý$/Ô$=×$HÒ$HØñ%ô %ç’)‘+”+ð "ð %¨
Ò2Ð2ØŸTšT &¨&°z˜TÑBÔB�FØˆMr'   )r   Ú
parse_args)r   ÚargsÚkwargsrè   rê   rç   r×   s        €€r&   Úreducez"_reduce_with_dtype.<locals>.reduceš  s‚   ø€ å	Ô	# C¨Ñ	0Ô	0ð	ð 	ð 	ð 	ð 	ñ 
1Ô	0ð	õ" 
Ô	# C¨¨c°6Ñ	:Ô	:ð	ð 	ð 	ð 	ð 	ñ 
;Ô	:ð	ð" ˜ZÐ'Ð'r'   )rÚ   r   Ú_overload_by_arg_count)Úonnx_oprç   rî   r×   s    ` @r&   Ú_reduce_with_dtyperñ   “  sG   øø€ õ
 # 7Ñ+Ô+€HåÔ+ð%(ð %(ð %(ð %(ð %(ñ ,Ô+ð%(ðN €Mr'   zaten::unflattenc                 óº  — t          j        |¦  «        }|€t          j        dd¦  «        S |                      dt	          j        |gt          j        ¬¦  «        ¬¦  «        }|                      d||¦  «        }|                      d||¦  «        }|                      d|¦  «        }|                      dt	          j        d	gt          j        ¬¦  «        ¬¦  «        }|                      d
||                      dt	          j        dgt          j        ¬¦  «        ¬¦  «        ¦  «        }|                      d|||¦  «        }|                      d||                      dt	          j        dgt          j        ¬¦  «        ¬¦  «        ¦  «        }	|                      d
|	|                      dt	          j        dgt          j        ¬¦  «        ¬¦  «        ¦  «        }
|                      dt	          j        t          j        gt          j        ¬¦  «        ¬¦  «        }|                      d||
|¦  «        }|                      d|||d	¬¦  «        }t          j	        | ||¦  «        S )Nr#   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.rC   rD   rE   rG   r   ÚShaper   ÚReshapert   rH   rw   r   )
r   r†   rã   r   rL   rM   Ú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°Ñ7Ô7€IØÐÝÔ-Øð7ñ
ô 
ð 	
ð —’�Z­¬°y°kÍÌÐ)UÑ)UÔ)U�ÑVÔV€IØ
�$Š$ˆu�i Ñ
%Ô
%€CØ
�$Š$ˆu�c˜9Ñ
%Ô
%€Cà—’�g˜uÑ%Ô%€Jà—T’T˜*­e¬l¸A¸3ÅeÄkÐ.RÑ.RÔ.R�TÑSÔS€NØ—4’4Ø�3˜Ÿš˜Zµ´¸q¸cÍÌÐ1UÑ1UÔ1U˜ÑVÔVñô €Lð —T’T˜' :¨~¸|ÑLÔL€Nà—4’4Øˆs�A—D’D˜­U¬\¸1¸#ÅUÄ[Ð-QÑ-QÔ-Q�DÑRÔRñô €Lð —T’TØØØ	�ŠˆZ¥¤¨q¨c½¼Ð!EÑ!EÔ!EˆÑFÔFñô €Nð
 —4’4Ø�EœL­*Ô*>Ð)?ÅuÄ{ÐSÑSÔSð ñ ô €Lð —T’T˜' :¨~¸|ÑLÔL€Nà—$’$Ø�.Ð"2°NÈ1ð ñ ô €Kõ Ô*¨1¨e°[ÑAÔAÐAr'   zaten::unsafe_chunkc                 óö  — |€M|                       d||                       dt          j        dt          j        ¬¦  «        ¬¦  «        |d¬¦  «        S t	          j        ||¦  «        }|€t	          j        dd	¦  «        S ||z   dz
  |z  }|g||z  z  }||z  }|r|                     |¦  «         |                       dt          j        |t          j        ¬¦  «        ¬¦  «        }|                       d
||||¬¦  «        S )Nr>   rC   rt   rD   rE   r   r¤   Úunsafe_chunkzunknown dimension sizerQ   rR   )r   rL   rM   rN   r   r\   rã   rZ   )	r   r7   Úchunksr#   r_   rf   rT   rg   rh   s	            r&   r  r  ó  s  € ð ÐØ�tŠtØØØ�DŠD�¥U¤\°!½5¼:Ð%FÑ%FÔ%FˆDÑGÔGØØð ñ 
ô 
ð 	
õ Ô/°°cÑ:Ô:€DØ€|ÝÔ-¨nÐ>VÑWÔWÐWØ˜‘- !Ñ#¨Ñ.€JØˆ\˜T ZÑ/Ñ0€FØ�jÑ €HØð  Ø�Š�hÑÔÐð
 �TŠT�*¥e¤l°6ÅÄÐ&LÑ&LÔ&LˆTÑMÔM€FØ�4Š4�˜˜v¨c¸8ˆ4ÑDÔDÐDr'   z
aten::tilec                 ó:  — |                       d|¦  «        }|                       d|¦  «        }|                       d|¦  «        }|                       d||¦  «        }|                       dt          j        dg¦  «        ¬¦  «        }|                       d||¦  «        }t          j        | d|d	d
¬¦  «        \  }	\  }
}}|
                      dt          j        d
g¦  «        ¬¦  «        }|
                      d||¦  «        }|
                      d||¦  «        }|
                      d||d¬¦  «        }t          j        |
j        |¦  «         |                      d|¦  «        }t          j        |j        |¦  «         |	 	                    ¦   «          
                    ¦   «         }|                       d||¦  «        }t          j        | d|d	d
¬¦  «        \  }\  }}}|                      dt          j        d
g¦  «        ¬¦  «        }|                      d|                      d|¦  «        |¦  «        }|                      d||¦  «        }|                      d||d¬¦  «        }|                      d||¦  «        }t          j        |j        |¦  «         |                      d|¦  «        }t          j        |j        |¦  «         | 	                    ¦   «          
                    ¦   «         }|                       d|t          j        j        ¬¦  «        }|                       d||¦  «        S )Nró   ÚSizer�   rC   r   rE   ÚGreaterÚIfé   rt   )rz   rS   rô   ÚExpandrw   r   r|   ÚLessÚAbsr   r   r€   )r   rL   rM   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  € à—’�g˜tÑ$Ô$€JØ—’�V˜ZÑ(Ô(€IØ—’�V˜TÑ"Ô"€IØ�4Š4��y )Ñ,Ô,€DØ—’�j­%¬,¸°sÑ*;Ô*;�Ñ<Ô<€Jð $%§4¢4¨	°4¸Ñ#DÔ#DÐ õ
 	Ô$Ø	ˆ4Ð-¸À1ð	ñ 	ô 	ñ	ØÙ2Ð	Ð1Ø	ð #×%Ò% j½%Ô:JÈAÈ3Ñ:OÔ:OÐ%ÑPÔP€IØ(×+Ò+¨I°t¸YÑGÔG€OØ,×/Ò/°¸)À_ÑUÔUÐØ×!Ò! (Ð,?ÀÈaÐ!ÑPÔP€EÝ	ÔÐ1Ô7¸Ñ?Ô?Ð?Ø'×*Ò*¨:°tÑ<Ô<€LÝ	ÔÐ3Ô9¸<ÑHÔHÐHØ×#Ò#Ñ%Ô%×,Ò,Ñ.Ô.€Jð #$§$¢$ v¨t°ZÑ"@Ô"@Ðõ
 	Ô$Ø	ˆ4Ð,°qÀ!ð	ñ 	ô 	ñ	ØÙ,ˆÐ+Ø	ð  ×"Ò" :µuÔ7GÈÈÑ7LÔ7LÐ"ÑMÔM€IØ"×%Ò%ØØ×Ò˜5 $Ñ'Ô'Øñô €Lð
 '×)Ò)¨(°I¸|ÑLÔLÐØ&×)Ò)ØÐ" J°qð *ñ ô Ðð ×Ò˜y¨$Ð0@ÑAÔA€EÝ	Ô˜Ô4°eÑ<Ô<Ð<Ø%×(Ò(¨°TÑ:Ô:€MÝ	ÔÐ0Ô6¸ÑFÔFÐFØ—’Ñ"Ô"×)Ò)Ñ+Ô+€Jà—’�f˜j­wÔ/JÔ/P�ÑQÔQ€JØ�4Š4�˜
 JÑ/Ô/Ð/r'   zaten::repeat_interleavec           
      ó"  — t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }|€t          j        d|¦  «        ‚|€t          j        d|¦  «        ‚|€t          j        d|¦  «        ‚|}t          j        |¦  «        r_t          j        | ||                      dt          j	        dg¦  «        ¬¦  «        ¦  «        }t          j	        dt          j
        ¬¦  «        }nt          j        |¦  «        }|dk     r|t          |¦  «        z  }|                     ¦   «         }	t          |¦  «        D ]\  }
}|€d	\  |	|
<   ||
<   Œ|dk    s|d
k    r#|d         d
k    rt          j        | |||¦  «        S |d
k    o	|d         d u }|	|         dk    s|rÓt          j        | ||¦  «        }t#          j        | |d¦  «        }|r¤t          j        | ||                      dt          j        dg¦  «        ¬¦  «        ¦  «        }|                      d||                      dt          j        d
g¦  «        ¬¦  «        ¦  «        }t)          | ||                      d||¦  «        |¦  «        }nt+          j        | |||¦  «        S |                      d|                      d|¦  «        t          j	        d
gt          j        ¬¦  «        ¬¦  «        }t1          | ||d¦  «        }t1          | |||¦  «        }d\  |	|<   ||<   |                      dt          j	        d
¦  «        ¬¦  «        }|                      d|t2          j        j        ¬¦  «        }|}|                      d¦  «        }t9          j        | d|||d
¬¦  «        \  }\  }}|j        }t?          j         |¦  «        }t?          j         |¦  «        }t?          j         |¦  «        }|                     d||¦  «        }|                     d||¦  «        }t#          j        |||d
z   ¦  «        }|                     dt          j        |d |d
z   …         ¦  «        ¬¦  «        ||                     dt          j        ||d
z   d …         ¦  «        ¬¦  «        g} |j        dg|¢R ddiŽ}t+          j!        |||d ¦  «        }t          j        |||                      dt          j        |	¦  «        ¬¦  «        ¦  «        }|                     d||¦  «        }|                     d|t2          j        j        ¬¦  «        }t?          j"        ||¦  «         t?          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.rC   r}   rE   r   rD   )r   r}   rt   ÚEqualr  ÚConstantOfShaperó   )r}   rt   r   r   rx   ry   ©rz   rJ   rw   r   r{   ÚConcatFromSequencer   )%r   r†   Ú_get_tensor_sizesr   r]   Ú_is_noner÷   r   rL   rM   rõ   Ú_maybe_get_scalarr5   ÚcopyÚ	enumerateÚ-_repeat_interleave_single_value_repeat_helperr„   r‚   rƒ   r  r´   r«   Úrepeat_interleaverN   ri   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&   r7  r7  F  s¼  € õ "Ô2°7Ñ;Ô;€KÝ#Ô5°gÑ>Ô>€MÝ!Ô3°DÑ9Ô9€KØÐÝÔ'ØUØñ
ô 
ð 	
ð ÐÝÔ'ØUØñ
ô 
ð 	
ð ÐÝÔ'ØSØñ
ô 
ð 	
ð
 €Iõ Ô Ñ$Ô$ð 5ÝÔ.Øˆt�Q—T’T˜*­e¬l¸B¸4Ñ.@Ô.@�TÑAÔAñ
ô 
ˆõ Œl˜1¥E¤KÐ0Ñ0Ô0ˆˆåÔ/°Ñ4Ô4ˆð ˆQ‚w€wØ�s�;ÑÔÑˆà×#Ò#Ñ%Ô%€LÝ$ [Ñ1Ô1ð 8ð 8‰ˆˆZØÐØ27Ñ/ˆL˜Ñ˜{¨3Ñ/øð �aÒÐ˜K¨1Ò,Ð,°¸qÔ1AÀQÒ1FÐ1FÝÔLØˆt�W˜cñ
ô 
ð 	
ð '¨!Ò+ÐH°¸aÔ0@ÀDÐ0HÐà�CÔ˜AÒÐÐ!5ÐÝÔ+¨A¨t°SÑ9Ô9ˆÝÔ   D¨!Ñ,Ô,ˆð
  ð 	TÝ(Ô5Ø�7˜AŸDšD µUÔ5EÀqÀcÑ5JÔ5J˜DÑKÔKñô ˆJð Ÿ$š$Ø˜ Q§T¢T¨*½eÔ>NÐPQÈsÑ>SÔ>S TÑ%TÔ%Tñô ˆKõ ˜A˜{¨A¯DªD°¸7ÀDÑ,IÔ,IÈ7ÑSÔSˆGøõ Ô'¨¨4°¸)ÑDÔDÐDà—’ØØ	�ŠˆW�gÑÔÝ”˜a˜S­¬
Ð3Ñ3Ô3ð ñ ô €Iõ
 �Q˜ ¨AÑ.Ô.€HÝ�Q˜˜i¨Ñ-Ô-€Hà*/Ñ'€L�Ñ�{ 3Ñ'ð —T’T˜*­e¬l¸1©o¬o�TÑ>Ô>€NØ—T’T˜& .µwÔ7RÔ7W�TÑXÔX€NØ€Hð —4’4˜Ñ(Ô(€Lõ  )Ô;Ø	ˆ6�8˜^¨\ÀAð ñ  ô  Ñ€D‰/ˆ<˜1ð Ô#€JÝÔ0°Ñ<Ô<ÐÝÔ$ ZÑ0Ô0€DÝÔ,¨ZÑ8Ô8€Là�oŠo˜l¨HÐ6FÑGÔG€GØ�oŠo˜l¨HÐ6FÑGÔG€GåÔ ¨g°s¸Q±wÑ?Ô?€Gà�Š˜
­EÔ,<¸[ÈÈ3ÐQRÉ7ÈÔ=SÑ,TÔ,TˆÑUÔUØØ�Š˜
­EÔ,<¸[ÈÈqÉÈÈÔ=SÑ,TÔ,TˆÑUÔUð€Hð
 ˆ|Œ˜xÐ=¨(Ð=Ð=Ð=¸1Ð=Ð=€HÝŒm˜L¨'°8¸TÑBÔB€GÝÔ-Ø�g˜qŸtšt J½Ô8HÈÑ8VÔ8V˜tÑWÔWñô €Gð  —?’?Ð#3°\À7ÑKÔK€Lð �ŠØ�¥WÔ%@Ô%Eð ñ ô €Hõ 
Ô˜z¨8Ñ4Ô4Ð4Ý	Ô˜z¨<Ñ8Ô8Ð8à�yŠy‰{Œ{×!Ò!Ñ#Ô#€HØ�tŠtÐ(¨(¸3ˆtÑ?Ô?€HØ€Or'   zaten::diagonalc                 óÞ	  ‡ ‡— t          j        |¦  «        }|�|dk    r|n||z   }|dk    r|n||z   }t          j        ‰ |‰                      dt          j        |g¦  «        ¬¦  «        ¬¦  «        }t          j        ‰ |‰                      dt          j        |g¦  «        ¬¦  «        ¬¦  «        }‰                      d||d¬¦  «        }t          j        ‰ |d d d ¦  «        }	‰                      d|	|¬¦  «        }	|�dt          t          |¦  «        ¦  «        }
|
 
                    |¦  «         |
 
                    |¦  «         ‰                      d	||
||gz   ¬
¦  «        }nt          j        dd¦  «        S ‰                      d||	¦  «        Št          j        ‰ ‰dgd¬¦  «        Š‰                      dt          j        |g¦  «        ¬¦  «        }|dk    rl‰                      d‰                      d|‰                      d||¦  «        ¦  «        ‰                      dt          j        dg¦  «        ¬¦  «        ¦  «        }d}ni‰                      d‰                      d‰                      d||¦  «        |¦  «        ‰                      dt          j        dg¦  «        ¬¦  «        ¦  «        }‰                      d|d¬¦  «        }t          j        ‰ |dd d ¦  «        }‰                      d|‰                      dt          j        dg¦  «        ¬¦  «        ¦  «        }‰                      d|‰                      dt          j        t          |¦  «        dz
  g¦  «        ¬¦  «        ¦  «        }ˆ ˆfd„t          t          |¦  «        ¦  «        d d…         D ¦   «         }|                     |¦  «          ‰ j        dg|¢R ddiŽ}t          j        ‰ |dd d ¦  «        }‰                      d‰                      d|‰                      dt          j        dt
          j        ¬¦  «        ¬¦  «        ¦  «        ¦  «        }t%          j        ‰ d|d¬¦  «        \  }\  }}}|                     d||¦  «        }t          j        |||dz
  g¦  «        }|                     d ‰||dz
  ¬!¦  «        }t          j        ||d"d d ¦  «        }t+          j        |j        |¦  «         t+          j        |j        |¦  «         |S )#Nr   rC   rE   ©r#   rw   r   ÚEyeLike)Úk_iÚ	Transpose)Úperm_iÚdiagonalzunknown input rankr1   r}   )Úaxes_ir0   ÚMaxÚMinr�   rG   é   ÚCumSumrt   c                 óŽ   •— g | ]A}t          j        ‰‰‰                     d t          j        |g¦  «        ¬¦  «        ¬¦  «        ‘ŒBS )rC   rE   rL  )r«   rf   r   rL   r  )rA   rb   r   rå   s     €€r&   rB   zdiagonal.<locals>.<listcomp>  sW   ø€ ð ð ð àõ 	Œ�A�v 1§4¢4¨
½EÔ<LÈdÈVÑ<TÔ<T 4Ñ#UÔ#UÐVÑVÔVðð ð r'   éþÿÿÿr   ÚNotr-  rD   r
  r  r/  ÚGatherND)Úbatch_dims_ié   )r   r†   r«   rf   r   rL   r  ÚzerosÚlistrY   Úremoverã   r6   ÚonesÚabsrZ   rM   rõ   r
   rŠ   r@   r	   r�   r‹   )r   r7   ÚoffsetÚdim1Údim2ÚrankÚ	dim1_sizeÚ	dim2_sizeÚ
mask_shapeÚmaskÚaxesÚ	offset_opÚ	diag_sizeÚselect_window_ones_fillÚselect_windowÚgather_shapeÚgather_indicesÚoverrun_condÚif_opÚ
if_contextÚelse_contextr˜   Úgather_indices_if_blockÚfinal_non_overrunÚfinal_overrunrå   s   `                        @r&   rQ  rQ  Ó  s  øø€ õ Ô+¨DÑ1Ô1€DàÐØ˜q’y�yˆtˆt d¨T¡kˆØ˜q’y�yˆtˆt d¨T¡kˆå”Ø	ˆ4�Q—T’T˜*­eÔ.>À¸vÑ.FÔ.F�TÑGÔGðñ ô €Iõ ”Ø	ˆ4�Q—T’T˜*­eÔ.>À¸vÑ.FÔ.F�TÑGÔGðñ ô €Ið —’�h 	¨9¸Q�Ñ?Ô?€JÝŒ<˜˜: t¨T°4Ñ8Ô8€DØ�4Š4�	˜4 Vˆ4Ñ,Ô,€Dð ÐÝ•E˜$‘K”KÑ Ô ˆØ�Š�DÑÔÐØ�Š�DÑÔÐØ�tŠt�K ¨d°d¸D°\Ñ.AˆtÑBÔBˆˆåÔ-¨jÐ:NÑOÔOÐOð �TŠT�%˜˜tÑ$Ô$€FÝÔ.¨q°&À"ÀÐRSÐTÑTÔT€Fð
 —’�Z­Ô)9¸6¸(Ñ)CÔ)C�ÑDÔD€IØ�‚{€{Ø—D’DØØ�DŠD�˜	 1§4¢4¨¨y¸)Ñ#DÔ#DÑEÔEØ�DŠD�¥UÔ%5°q°cÑ%:Ô%:ˆDÑ;Ô;ñ
ô 
ˆ	ð
 ˆˆà—D’DØØ�DŠD�˜Ÿš˜U I¨yÑ9Ô9¸9ÑEÔEØ�DŠD�¥UÔ%5°q°cÑ%:Ô%:ˆDÑ;Ô;ñ
ô 
ˆ	ð
 —’�X˜y°�Ñ3Ô3€Iõ %œk¨!¨Y¸¸4ÀÑFÔFÐØ—D’DØØØ	�ŠˆZ¥Ô!1°1°#Ñ!6Ô!6ˆÑ7Ô7ñô €Mð
 —D’DØØØ	�ŠˆZ¥Ô!1µ3°v±;´;À±?Ð2CÑ!DÔ!DˆÑEÔEñô €Mðð ð ð ð å�˜t™œÑ%Ô% c r cÔ*ðñ ô €Lð ×Ò˜	Ñ"Ô"Ð"Ø�1”4˜Ð: <Ð:Ð:Ð:¸Ð:Ð:€LÝ”\ ! \°1°d¸DÑAÔA€Nð —4’4ØØ	�ŠØØØ�DŠD�¥U¤\°!½5¼;Ð%GÑ%GÔ%GˆDÑHÔHñ	
ô 	
ñô €Lõ ,5Ô+GØ	ˆ4�¨ð,ñ ,ô ,Ñ(€EÑ%ˆJ˜ qð )Ÿmšm¨E°>À=ÑQÔQÐÝ-Ô?ØÐ+¨d°Q©h¨Zñô Ðð #ŸšØ�FÐ3À$ÈÁ(ð &ñ ô Ðõ ”L ¨|¸QÀÀdÑKÔK€MÝ	Ô˜zÔ/Ð1BÑCÔCÐCÝ	Ô˜|Ô1°=ÑAÔAÐAØ€Lr'   zquantized::linearc                 ó*  — t          j        | |¦  «        \  }}}}t          j        | |¦  «        \  }	}
}}t          j        | |||
|¦  «        }t          j        | |¦  «        \  }}}}t          j        | ||	|¦  «        }t          j        | |||¦  «        S rk   )r   Údequantize_helperÚrequantize_bias_helperr«   ÚlinearÚquantize_helper©r   Úq_inputÚq_weightÚbiasÚop_scaleÚop_zero_pointr"   Úinput_scaler˜   ÚweightÚweight_scalerb   Úq_biasrŽ   s                 r&   Úquantized_linearr‡  N  sŸ   € õ  /Ô@ÀÀGÑLÔLÑ€Eˆ;˜˜1Ý$3Ô$EÀaÈÑ$RÔ$RÑ!€FˆL˜!˜TÝÔ3Ø	ˆ4�˜l¨Dñô €Fõ $Ô5°a¸Ñ@Ô@�M€Dˆ!ˆQ�åŒ]˜1˜e V¨TÑ2Ô2€FåÔ*¨1¨f°hÀÑNÔNÐNr'   zquantized::linear_reluc                 óT  — t          j        | |¦  «        \  }}}}t          j        | |¦  «        \  }	}
}}t          j        | |||
|¦  «        }t          j        | |¦  «        \  }}}}t          j        | ||	|¦  «        }t          j        | |¦  «        }t          j        | |||¦  «        S rk   )r   ry  rz  r«   r{  Úrelur|  r}  s                 r&   Úquantized_linear_relurŠ  ^  s°   € õ  /Ô@ÀÀGÑLÔLÑ€Eˆ;˜˜1Ý$3Ô$EÀaÈÑ$RÔ$RÑ!€FˆL˜!˜TÝÔ3Ø	ˆ4�˜l¨Dñô €Fõ $Ô5°a¸Ñ@Ô@�M€Dˆ!ˆQ�åŒ]˜1˜e V¨TÑ2Ô2€FÝŒ[˜˜FÑ#Ô#€FåÔ*¨1¨f°hÀÑNÔNÐNr'   zquantized::conv1d_reluc
           
      ó\  — t          j        | |¦  «        \  }
}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | |
||||||¦  «        }t          j        | |¦  «        }t          j        | |||	¦  «        S rk   )r   ry  rz  r«   Úconv1dr‰  r|  ©r   r~  r  r€  ÚstrideÚpaddingÚdilationÚgroupsr�  r‚  r"   rƒ  r˜   r„  r…  rb   r†  rŽ   s                     r&   Úquantized_conv1d_relur’  o  ó¸   € õ  /Ô@ÀÀGÑLÔLÑ€Eˆ;˜˜1Ý$3Ô$EÀaÈÑ$RÔ$RÑ!€FˆL˜!˜TÝÔ3Ø	ˆ4�˜l¨Dñô €Fõ $Ô5°a¸Ñ@Ô@�M€Dˆ!ˆQ�åŒ]˜1˜e V¨T°6¸7ÀHÈfÑUÔU€FÝŒ[˜˜FÑ#Ô#€FåÔ*¨1¨f°hÀÑNÔNÐNr'   zquantized::conv2d_reluc
           
      ó\  — t          j        | |¦  «        \  }
}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | |
||||||¦  «        }t          j        | |¦  «        }t          j        | |||	¦  «        S rk   )r   ry  rz  r«   Úconv2dr‰  r|  r�  s                     r&   Úquantized_conv2d_relur–  ‰  r“  r'   zquantized::conv3d_reluc
           
      ó\  — t          j        | |¦  «        \  }
}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | |
||||||¦  «        }t          j        | |¦  «        }t          j        | |||	¦  «        S rk   )r   ry  rz  r«   Úconv3dr‰  r|  r�  s                     r&   Úquantized_conv3d_relur™  £  r“  r'   zquantized::conv1dc
           
      ó2  — t          j        | |¦  «        \  }
}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | |
||||||¦  «        }t          j        | |||	¦  «        S rk   )r   ry  rz  r«   rŒ  r|  r�  s                     r&   Úquantized_conv1dr›  ½  ó§   € õ  /Ô@ÀÀGÑLÔLÑ€Eˆ;˜˜1Ý$3Ô$EÀaÈÑ$RÔ$RÑ!€FˆL˜!˜TÝÔ3Ø	ˆ4�˜l¨Dñô €Fõ $Ô5°a¸Ñ@Ô@�M€Dˆ!ˆQ�åŒ]˜1˜e V¨T°6¸7ÀHÈfÑUÔU€FåÔ*¨1¨f°hÀÑNÔNÐNr'   zquantized::conv2dc
           
      ó2  — t          j        | |¦  «        \  }
}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | |
||||||¦  «        }t          j        | |||	¦  «        S rk   )r   ry  rz  r«   r•  r|  r�  s                     r&   Úquantized_conv2drž  Ö  rœ  r'   zquantized::conv3dc
           
      ó2  — t          j        | |¦  «        \  }
}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | |
||||||¦  «        }t          j        | |||	¦  «        S rk   )r   ry  rz  r«   r˜  r|  r�  s                     r&   Úquantized_conv3dr   ï  rœ  r'   zquantized::conv_transpose1dc                 ó4  — t          j        | |¦  «        \  }}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | ||||||||¦	  «	        }t          j        | ||	|
¦  «        S rk   ©r   ry  rz  r«   Úconv_transpose2dr|  ©r   r~  r  r€  rŽ  r�  Úoutput_paddingr�  r‘  r�  r‚  r"   rƒ  r˜   r„  r…  rb   r†  rŽ   s                      r&   Úquantized_conv_transpose1dr¦    ó±   € õ  /Ô@ÀÀGÑLÔLÑ€Eˆ;˜˜1Ý$3Ô$EÀaÈÑ$RÔ$RÑ!€FˆL˜!˜TÝÔ3Ø	ˆ4�˜l¨Dñô €Fõ $Ô5°a¸Ñ@Ô@�M€Dˆ!ˆQ�åÔ$Ø	ˆ5�&˜$ ¨°ÀÈñô €Fõ Ô*¨1¨f°hÀÑNÔNÐNr'   zquantized::conv_transpose2dc                 ó4  — t          j        | |¦  «        \  }}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | ||||||||¦	  «	        }t          j        | ||	|
¦  «        S rk   r¢  r¤  s                      r&   Úquantized_conv_transpose2dr©  $  r§  r'   zquantized::conv_transpose3dc                 ó4  — t          j        | |¦  «        \  }}}}t          j        | |¦  «        \  }}}}t          j        | ||||¦  «        }t          j        | |¦  «        \  }}}}t          j        | ||||||||¦	  «	        }t          j        | ||	|
¦  «        S rk   )r   ry  rz  r«   Úconv_transpose3dr|  r¤  s                      r&   Úquantized_conv_transpose3dr¬  @  r§  r'   rk   )NF)r   N)NNNrº   rØ   )8Ú	functoolsrL   Ú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<   ri   rn   rp   rr   r¢   r©   r­   r´   rÌ   rÑ   rÚ   Ú_apply_paramsrñ   r  r  r+  r7  rQ  r‡  rŠ  r’  r–  r™  r›  rž  r   r¦  r©  r¬  rÙ   r'   r&   ú<module>r¸     s‚	  ðð Ð Ð Ð à €€€Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð #�Ô" <Ô#=ÀRÐHÑHÔH€ð €�Ñ Ô Ø€Ô˜C  fÑ-Ô-ðð ˆyÔ%ð ð ð ñ .Ô-ñ !Ô ðð €Ð#Ñ$Ô$Ø€Ô˜C  fÑ-Ô-ðð �9Ô)ð ð ð ñ .Ô-ñ %Ô$ðð €Ð&Ñ'Ô'Ø€Ô˜C  cÑ*Ô*ð ð  �iÔ,ð  ð  ð  ñ +Ô*ñ (Ô'ð ð €�ÑÔØ€Ô˜C  c¨3Ñ/Ô/ð4Eð 4EˆYÔ#ð 4Eð 4Eð 4Eñ 0Ô/ñ Ôð4Eðn €Ð(Ñ)Ô)ð6ð 6˜	Ô.ð 6ð 6ð 6ñ *Ô)ð6ð €Ð$Ñ%Ô%àHLð>ð >ØÔð>ð >ð >ñ &Ô%ð>ð €Ð/Ñ0Ô0à@DðAð AØÔðAð Að Añ 1Ô0ðAð €Ð$Ñ%Ô%Ø€Ô˜C  c¨3Ñ/Ô/àHLðEIð EIØÔðEIð EIð EIñ 0Ô/ñ &Ô%ðEIðP €�ÑÔØ€Ô˜C  cÑ*Ô*ðð ˆiÔ$ð ð ð ñ +Ô*ñ  Ôðð( €Ð%Ñ&Ô&ðEð E�YÔ+ð Eð Eð Eñ 'Ô&ðEð €�ÑÔØ€Ô˜C  c¨3Ñ/Ô/ð	1ð 	1ˆYÔ#ð 	1ð 	1ð 	1ñ 0Ô/ñ Ôð	1ð €Ð8Ñ9Ô9Ø€Ô˜C  c¨3°°SÑ9Ô9ð ØðOð OØÔðOð Oð Oñ :Ô9ñ :Ô9ðOðB €Ð7Ñ8Ô8Ø€Ô˜C  c¨3°Ñ4Ô4ð Øð!Bð !BØÔð!Bð !Bð !Bñ 5Ô4ñ 9Ô8ð!BðH
ð 
ð 
ð €ØØ+ˆoÔ+¨K¸Ñ?Ô?Ð@ðñ ô ð+ð +ñ	ô ð+ðb €Ð!Ñ"Ô"ð'B�Ô'ð 'Bð 'Bð 'Bñ #Ô"ð'BðT €Ð$Ñ%Ô%Ø€Ô˜C  c¨3Ñ/Ô/ðEð E�IÔ*ð Eð Eð Eñ 0Ô/ñ &Ô%ðEð4 €�ÑÔð30ˆIÔ"ð 30ð 30ð 30ñ Ôð30ðl €Ð)Ñ*Ô*àDHðIð IØÔðIð Ið Iñ +Ô*ðIðX €Ð Ñ!Ô!Ø€Ô˜C  c¨3Ñ/Ô/ðs�	Ô&ð sð sð sñ 0Ô/ñ "Ô!ðsðr €Ð#Ñ$Ô$ðOØÔðOð Oð Oñ %Ô$ðOð €Ð(Ñ)Ô)ðOØÔðOð Oð Oñ *Ô)ðOð  €Ð(Ñ)Ô)ðOØÔðOð Oð Oñ *Ô)ðOð2 €Ð(Ñ)Ô)ðOØÔðOð Oð Oñ *Ô)ðOð2 €Ð(Ñ)Ô)ðOØÔðOð Oð Oñ *Ô)ðOð2 €Ð#Ñ$Ô$ðOØÔðOð Oð Oñ %Ô$ðOð0 €Ð#Ñ$Ô$ðOØÔðOð Oð Oñ %Ô$ðOð0 €Ð#Ñ$Ô$ðOØÔðOð Oð Oñ %Ô$ðOð0 €Ð-Ñ.Ô.ðOØÔðOð Oð Oñ /Ô.ðOð6 €Ð-Ñ.Ô.ðOØÔðOð Oð Oñ /Ô.ðOð6 €Ð-Ñ.Ô.ðOØÔðOð Oð Oñ /Ô.ðOð Oð Or'   