Ë
    Q/æjƒÐ  ã                  óŒ  — d Z ddlmZ ddlZddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZ ddlmZmZ g d	¢Z ej4                  ej6                  d
¬«      Z ed«       ej:                  d«       ej<                  ddd«      d·d„«       «       «       Z ed«      d¸d„«       Z  ed«       ej<                  dd«      d¸d„«       «       Z! ed«       ej<                  dd«      d¸d„«       «       Z" ed«      d¸d„«       Z# ed«       ej:                  d«       ej<                  ddd«      d¸d„«       «       «       Z$ ed«      	 d¹	 d¸d„«       Z% ed«       ej<                  dd«      d¸d „«       «       Z& ed! ejN                  d"d#d$«      g¬%«       ed& ejN                  d'd(d$«      g¬%«       ed) ejN                  d*d+d$«      g¬%«       ed, ejN                  d-d#d.«      g¬%«       ed/ ejN                  d0d(d.«      g¬%«       ed1 ejN                  d2d+d.«      g¬%«       ed3 ejN                  d4d(d5«      g¬%«      dºd6„«       «       «       «       «       «       «       Z( ed7«       ej:                  ddddddd«      	 	 d¸d8„«       «       Z) ed9«       ej<                  dddd«      d¹d¸d:„«       «       Z* ed;«       ej<                  dddd«      d¸d<„«       «       Z+ ed=«       ej<                  ddd>«      d»d¸d?„«       «       Z, ed@«      d¸dA„«       Z- edB«      d¸dC„«       Z. edD«      d¸dE„«       Z/ edF«      d¸dG„«       Z0 edH«      d¸dI„«       Z1 edJ«      d¸dK„«       Z2 edL«      d»d¸dM„«       Z3 edN«      d¸dO„«       Z4 edP«      d¸dQ„«       Z5 edR«      d¸dS„«       Z6 edT«       ej:                  d«      d¸dU„«       «       Z7 edV«      d¸dW„«       Z8 edX«       ej<                  dddd«      d¸dY„«       «       Z9 edZ«       ej<                  ddddd«      	 	 d¸d[„«       «       Z: ed\«       ej<                  dddddd>«      d»d¸d]„«       «       Z; ed^«       ej<                  dddd>«      d»d¸d_„«       «       Z< ed`«       ej<                  dddd>«      d»d¸da„«       «       Z= edb«       ej<                  dd«      d¼d¸dc„«       «       Z> edd«      d¸de„«       Z? edf«       ej<                  dddd«      d»d¸dg„«       «       Z@ edh«       ej<                  dddd«      d»d¸di„«       «       ZA edj«       ej<                  ddd«      d½d¸dk„«       «       ZBd¸dl„ZC edm«      d»d¸dn„«       ZD edo«       edp«       edq«      d¸dr„«       «       «       ZE eds«       edt«       edu«      d¸dv„«       «       «       ZF edw«      	 	 	 	 	 	 	 	 	 	 d¾dx„«       ZG edy«      d¸dz„«       ZH ed{«      d¸d|„«       ZI ed}«      d¸d~„«       ZJ ed«       ej<                  dd«      d¸d€„«       «       ZK ed�«       ej:                  dd¬‚«      d»d¸dƒ„«       «       ZL ed„«      d»d¸d…„«       ZM ed†«      d¸d‡„«       ZN edˆ«      d¸d‰„«       ZO edŠ«      d¸d‹„«       ZP edŒ«      d¸d�„«       ZQ edŽ«      d¸d�„«       ZR ed�«       ed‘«      d¸d’„«       «       ZS ed“«       ed”«      d¸d•„«       «       ZT	 	 d¸d–„ZUd¸d—„ZVd¸d˜„ZW ed™«       ej<                  ddšdšdšdš«      d¸d›„«       «       ZX edœ«      d¸d�„«       ZY edž«       ej:                  ddd«       ej<                  ddd«      d¸dŸ„«       «       «       ZZ ed «       ej<                  dddšd¡d«      	 	 	 	 	 	 d¿d¢„«       «       Z[ ed£«       ej<                  ddddddddd«	      	 	 d¸d¤„«       «       Z\ ed¥«       ej<                  dddd«      d¸d¦„«       «       Z] ed§«      d¸d¨„«       Z^ ed©«      	 	 	 	 	 	 dÀ	 d¸dª„«       Z_ ed««      dÁd¬„«       Z` ed­«      dÁd®„«       Za ed¯«      dÁd°„«       Zb ed±«      d¸d²„«       Zc ed³«      dÂd´„«       Zd edµ«      dÂd¶„«       Zey)Ãz(This file exports ONNX ops for opset 11.é    )ÚannotationsN)ÚSequence)Ú_C)Ú_onnx)Ú_type_utilsÚerrorsÚsymbolic_helperÚsymbolic_opset10Úsymbolic_opset9Úutils)Ú	jit_utilsÚregistration)9ÚaddÚappendÚarangeÚargsortÚ
atleast_1dÚ
atleast_2dÚ
atleast_3dÚcatÚchunkÚ	clamp_maxÚ	clamp_minÚclampÚconstant_pad_ndÚcumsumÚDeleteÚembedding_bagÚembedding_renormÚflattenÚgatherÚhardtanhÚhstackÚim2colÚ
index_fillÚindexÚ
index_copyÚ	index_putÚinsertÚ
linalg_detÚlinalg_vector_normÚlogdetÚmasked_scatterÚmasked_selectÚmmÚnarrowÚnormalÚpadÚpixel_shuffleÚpopÚprim_constant_chunkÚreflection_padÚrelu6Ú	remainderÚreplication_padÚroundÚscatterÚselectÚsizeÚsortÚsplit_with_sizesÚsplitÚsqueezeÚstackÚtopkÚunbindÚ
unique_dimÚ	unsqueezeÚvstacké   )Úopsetzaten::hardtanhTÚvÚfc                ó€  — t         j                  j                  |t         j                  j                  «      }| j	                  dt        j                  ||j                  «       ¬«      ¬«      }| j	                  dt        j                  ||j                  «       ¬«      ¬«      }t        j                  | d|||d¬«      S )NÚConstant©Údtype©Úvalue_tÚClipé   ©Úopset_before)
r   ÚJitScalarTypeÚ
from_valueÚFLOATÚopÚtorchÚtensorrO   r	   Ú_op_with_optional_float_cast)ÚgÚselfÚmin_valÚmax_valÚscalar_types        ú^/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset11.pyr"   r"   \   s«   € ô ×+Ñ+×6Ñ6ØŒk×'Ñ'×-Ñ-ó€Kð �d‰dØÜ—‘˜W¨K×,=Ñ,=Ó,?Ô@ð ó €Gð �d‰dØÜ—‘˜W¨K×,=Ñ,=Ó,?Ô@ð ó €Gô ×7Ñ7Ø	ˆ6�4˜ '¸ôð ó    zaten::clampc                ó*  ‡ — ˆ fd„}t         j                  j                  |t         j                  j                  «      }|t         j                  j                  k7  r |||«      } |||«      }t	        j
                  |«      rt        ‰ ||«      S t	        j
                  |«      rt        ‰ ||«      S t	        j                  |«      dk(  r3t	        j                  |«      dk(  rt	        j                  ‰ d|||d¬«      S t        ‰ t        ‰ ||«      |«      S )Nc                óz   •— | �7t        j                  | «      s"‰j                  d| |j                  «       ¬«      S | S )NÚCast©Úto_i)r	   Ú_is_nonerY   Ú	onnx_type)r[   rO   r]   s     €rb   Ú_cast_if_not_nonez clamp.<locals>._cast_if_not_noner   sC   ø€ ØÐ¤o×&>Ñ&>¸vÔ&FØ—4‘4ØØØ—_‘_Ó&ð ó ð ð ˆMrc   r   rR   rS   rT   )
r   rV   rW   Ú	UNDEFINEDr	   ri   r   r   Ú_get_tensor_rankr\   )r]   r^   ÚminÚmaxrk   ra   s   `     rb   r   r   p   sû   ø€ ôô ×+Ñ+×6Ñ6ØŒk×'Ñ'×1Ñ1ó€Kð ”k×/Ñ/×9Ñ9Ò9Ù  [Ó1ˆÙ  [Ó1ˆä×Ñ Ô$Ü˜˜D #Ó&Ð&Ü	×	!Ñ	! #Ô	&Ü˜˜D #Ó&Ð&ô ×,Ñ,¨SÓ1°QÒ6Ü×0Ñ0°Ó5¸Ò:ä"×?Ñ?Ø�6˜4  c¸ôð ô ˜Q¤	¨!¨T°3Ó 7¸Ó=Ð=rc   zaten::clamp_minc                óD  — | j                  d|t        j                  j                  |«      j	                  «       ¬«      }t        j                  |«      dk(  r0t        j                  | «      }t        j                  | d|||d¬«      S t        j                  | d||d¬«      S )Nrf   rg   r   rR   rS   rT   ÚMax©
rY   r   rV   rW   rj   r	   rm   Úopset9Úunusedr\   )r]   r^   rn   ro   s       rb   r   r   “   ó“   € ð �$‰$ˆv�s¤×!:Ñ!:×!EÑ!EÀdÓ!K×!UÑ!UÓ!Wˆ$Ó
X€CÜ×'Ñ'¨Ó,°Ò1Ü�m‰m˜AÓˆÜ×;Ñ;Øˆv�t˜S #°Bô
ð 	
ô ×;Ñ;Øˆu�d˜C¨bô
ð 	
rc   zaten::clamp_maxc                óD  — | j                  d|t        j                  j                  |«      j	                  «       ¬«      }t        j                  |«      dk(  r0t        j                  | «      }t        j                  | d|||d¬«      S t        j                  | d||d¬«      S )Nrf   rg   r   rR   rS   rT   ÚMinrr   )r]   r^   ro   rn   s       rb   r   r   ¢   ru   rc   zaten::relu6c                óf  — t         j                  j                  |t         j                  j                  «      }| j	                  dt        j                  d|j                  «       ¬«      ¬«      }| j	                  dt        j                  d|j                  «       ¬«      ¬«      }t        | |||«      S )NrM   r   rN   rP   é   )	r   rV   rW   rX   rY   rZ   r[   rO   r   )r]   Úinputra   r_   r`   s        rb   r7   r7   ±   sš   € ä×+Ñ+×6Ñ6ØŒ{×(Ñ(×.Ñ.ó€Kð �d‰dØÜ—‘˜Q k×&7Ñ&7Ó&9Ô:ð ó €Gð �d‰dØÜ—‘˜Q k×&7Ñ&7Ó&9Ô:ð ó €Gô ��E˜7 GÓ,Ð,rc   zaten::selectÚic                ó,   — | j                  d|||¬«      S )NÚGather©Úaxis_i©rY   )r]   r^   Údimr&   s       rb   r<   r<   Á   s   € ð
 �4‰4�˜$ ¨cˆ4Ó2Ð2rc   zaten::index_putFc                ó*  — t        j                  |«      rt        j                  |«      }n|g}t        j                  |d«      }t	        |«      dk(  r|S t	        |«      dkD  rÔt        t	        |«      «      D ]3  }t        j                  ||   «      sŒ| j                  d||   «      ||<   Œ5 |d   }|dd  D ]  }t        j                  | ||«      }Œ | j                  d|«      }	|D �cg c]0  }t        j                  | t        j                  | ||	d «      dg«      ‘Œ2 }} | j                  dg|¢­ddiŽ}nå|d   }|}
t        j                  |
«      rŸt        j                  |«      }|�|dk(  rt        j                  | ||
|«      S t        j                  |
«      }t        j                  |«      }|�1|�/||kD  r*t        j                  | |
t        t        ||«      «      «      }
t        | ||
|«      S | j                  d|«      }	t        j                  | |dg«      }t        j                   | | j                  d|«      dgt	        |«      gt"        j$                  g¬	«      }| j                  d|	|d¬
«      }t        j                  |«      }|�|dk(  rt        j                  | ||d «      }t        j&                  | ||«      }t(        j*                  j-                  |t(        j*                  j.                  «      }|t(        j*                  j.                  k7  r`t(        j*                  j-                  |t(        j*                  j.                  «      }||k7  r;| j                  d||j1                  «       ¬«      }n|rt3        j4                  d|«      ‚|rk| j                  d| j                  d|«      t7        j8                  dg|j;                  «       ¬«      ¬«      }| j                  d|||«      }t        | ||«      }|S | j                  d|||«      }|S c c}w )NÚbr   é   ÚNonZeroÚShapeéÿÿÿÿÚConcatr   ©ÚaxesÚstartsÚendsr~   rf   rg   z'self does not have a valid scalar type.ÚConstantOfShaperN   rP   Ú	ScatterND)r	   Ú_is_packed_listÚ_unpack_listÚ
_parse_argÚlenÚrangeÚ_is_boolrY   rs   r   Ú_unsqueeze_helperÚexpandrm   Úmasked_fillÚlistr-   Ú_slice_helperÚsysÚmaxsizeÚ_reshape_helperr   rV   rW   rl   rj   r   ÚSymbolicValueErrorrZ   r[   rO   )r]   r^   Úindices_list_valueÚvaluesÚ
accumulateÚindices_listÚidx_r&   ÚindÚbroadcast_index_shapeÚbool_inpÚrankÚ	mask_rankÚ	self_rankÚsub_data_shapeÚvalues_shapeÚself_scalar_typeÚvalues_scalar_typeÚzerosÚresults                       rb   r(   r(   É   s÷  € ô ×&Ñ&Ð'9Ô:Ü&×3Ñ3Ð4FÓG‰à*Ð+ˆÜ ×+Ñ+¨J¸Ó<€Jä
ˆ<Ó˜AÒØˆä
ˆ<Ó˜1ÒÜœ#˜lÓ+Ó,ò 	IˆDÜ×'Ñ'¨°TÑ(:Õ;Ø%&§T¡T¨)°\À$Ñ5GÓ%H�˜TÒ"ð	Ið ˜Q‘ˆà  Ð#ò 	.ˆCÜ—J‘J˜q %¨Ó-‰Eð	.à !§¡ W¨eÓ 4Ðð
 $ö	
ð ô ×-Ñ-Ø”6—=‘=  CÐ)>ÀÓEÈÀtõð
ˆð 
ð �—‘�XÐ8 Ò8°RÑ8‰ðP ˜Q‘ˆØˆÜ×#Ñ# HÔ-Ü"×3Ñ3°FÓ;ˆDØÐ D¨A¢IÜ×)Ñ)¨!¨T°8¸VÓDÐDÜ'×8Ñ8¸ÓBˆIÜ'×8Ñ8¸Ó>ˆIàÐ%ØÐ)Ø 	Ò)ô +×<Ñ<Ø�x¤¤e¨I°yÓ&AÓ!Bó�ô " ! T¨8°VÓ<Ð<Ø !§¡ W¨eÓ 4ÐÜ×1Ñ1°!°U¸R¸DÓAˆÜ$×2Ñ2Ø	ˆ1�4‰4�˜Ó a S´#°lÓ2CÐ1DÌCÏKÉKÈ=ô€Nð —4‘4˜Ð"7¸ÐPQ�4ÓR€Lä×+Ñ+¨FÓ3€DØÐ˜D AšIÜ—‘˜q &¨,¸Ó=ˆÜ×,Ñ,¨Q°¸ÓE€Fä"×0Ñ0×;Ñ;ØŒk×'Ñ'×1Ñ1óÐð œ;×4Ñ4×>Ñ>Ò>Ü(×6Ñ6×AÑAØ”K×-Ñ-×7Ñ7ó
Ðð Ð1Ò1Ø—T‘T˜& &Ð/?×/IÑ/IÓ/K�TÓL‰FÙ	Ü×'Ñ'Ð(QÐSWÓXÐXáØ—‘ØØ�D‰D�˜$ÓÜ—L‘L ! Ð,<×,BÑ,BÓ,DÔEð ó 
ˆð
 —‘�k 5¨%°Ó8ˆÜ�Q˜˜fÓ%ˆð €Mð —‘�k 4¨°Ó7ˆà€MùòG
s   Ã)5Pzaten::pixel_shufflec                ó�   — t        j                  |«      }|�|dk7  rt        j                  dd«      S | j                  d||d¬«      S )Né   r3   zonly support 4d inputÚDepthToSpaceÚCRD)Úblocksize_iÚmode_s)r	   rm   Ú_unimplementedrY   )r]   r^   Úupscale_factorr¦   s       rb   r3   r3   E  sK   € ô ×+Ñ+¨DÓ1€DØÐ˜D AšIÜ×-Ñ-¨oÐ?VÓWÐWØ�4‰4� °.Èˆ4ÓOÐOrc   zaten::upsample_nearest1dÚupsample_nearest1dé   Únearest)Údecoratezaten::upsample_nearest2dÚupsample_nearest2dr°   zaten::upsample_nearest3dÚupsample_nearest3dé   zaten::upsample_linear1dÚupsample_linear1dÚlinearzaten::upsample_bilinear2dÚupsample_bilinear2dzaten::upsample_trilinear3dÚupsample_trilinear3dzaten::upsample_bicubic2dÚupsample_bicubic2dÚcubicc                ó0   — t        j                  | ||«      S ©N)r	   Ú_interpolate_helper)Únamer�   Úinterpolate_modes      rb   Ú_interpolaterÉ   N  s   € ô: ×.Ñ.¨t°SÐ:JÓKÐKrc   zaten::__interpolatec           	     ó8   — t        j                  | ||||||«      S rÅ   )r	   Ú__interpolate_helper)r]   rz   r=   Úscale_factorÚmodeÚalign_cornersÚrecompute_scale_factorÚ	antialiass           rb   Ú__interpolaterÑ   n  s'   € ô ×/Ñ/Ø	ˆ5�$˜ d¨MÐ;Qóð rc   zaten::gatherc                ó„   — t        j                  |d«      rt        j                  dd«      S | j                  d|||¬«      S )Nr{   r!   zsparse_grad == TrueÚGatherElementsr~   )r	   Ú_maybe_get_constrµ   rY   )r]   r^   r�   r&   Úsparse_grads        rb   r!   r!     s@   € ô ×'Ñ'¨°SÔ9Ü×-Ñ-¨hÐ8MÓNÐNØ�4‰4Ð  $¨°cˆ4Ó:Ð:rc   zaten::scatterc           
     óØ  — t         j                  j                  |«      }t        j                  |«      }t        j
                  |«      r| j                  d||||¬«      S t         j                  j                  |«      |k7  r?| j                  d|t         j                  j                  |«      j                  «       ¬«      }| j                  d||t        j                  | ||«      |¬«      S )NÚScatterElementsr~   rf   rg   )
r   rV   rW   r	   Ú_maybe_get_scalarÚ	_is_valuerY   rj   rs   Ú	expand_as)r]   r^   r�   r&   ÚsrcÚsrc_types         rb   r;   r;   ‡  sÖ   € ô ×(Ñ(×3Ñ3°CÓ8€HÜ
×
+Ñ
+¨CÓ
0€CÜ× Ñ  Ô%Ø�t‰tÐ% t¨U°CÀˆtÓDÐDô ×$Ñ$×/Ñ/°Ó5¸ÒAØ—$‘$ØØÜ ×.Ñ.×9Ñ9¸$Ó?×IÑIÓKð ó ˆCð
 �t‰tØ˜t U¬F×,<Ñ,<¸QÀÀUÓ,KÐTWð ó 
ð 	
rc   zaten::cumsumÚnonec                ó|  — | j                  dt        j                  |t        j                  ¬«      ¬«      }|rn|j	                  «       j                  «       dk7  rMt        j                  |dd«      }| j                  d|t        j                  |«      j                  «       ¬«      }n|}| j                  d	||«      }|S )
NrM   rN   rP   zprim::Constantr{   rO   rf   rg   ÚCumSum)rY   rZ   r[   ÚintÚnodeÚkindr	   Ú
_get_constr   rV   rj   )r]   r^   r�   rO   Ú
dim_tensorÚparsed_dtypeÚcastÚcsums           rb   r   r   œ  sŸ   € ð —‘�j¬%¯,©,°sÄ%Ç)Á)Ô*L�ÓM€JÙ�—‘“×"Ñ"Ó$Ð(8Ò8Ü&×1Ñ1°%¸¸gÓFˆØ�t‰tØ�Dœ{×8Ñ8¸ÓF×PÑPÓRð ó 
‰ð ˆØ�4‰4�˜$ 
Ó+€DØ€Krc   zaten::masked_selectc                ó~   — t        j                  | t        j                  | ||«      «      }| j                  d||«      S )NÚGatherND)rs   ÚnonzerorÚ   rY   )r]   r^   Úmaskr&   s       rb   r.   r.   «  s4   € ä�N‰N˜1œf×.Ñ.¨q°$¸Ó=Ó>€EØ�4‰4�
˜D %Ó(Ð(rc   zaten::masked_scatterc                ó¬  — t        j                  | t        j                  | ||«      «      }t        j                  | |t        j                  dg«      «      }t        j                  | |t        j                  dg«      t        j                  dg«      t        j                  | |t        j                  dg«      «      ¬«      }| j                  d|||«      S )Nr‡   r   r‰   rŽ   )
rs   rê   rÚ   r	   rœ   rZ   Ú
LongTensorr™   r=   rY   )r]   r^   rë   Úsourcer&   s        rb   r-   r-   ±  s®   € ä�N‰N˜1œf×.Ñ.¨q°$¸Ó=Ó>€Eô ×,Ñ,¨Q°¼×8HÑ8HÈ"ÈÓ8NÓO€FÜ×*Ñ*Ø	ØÜ×Ñ˜q˜cÓ"Ü×Ñ  Ó$Ü�[‰[˜˜E¤5×#3Ñ#3°Q°CÓ#8Ó9ô€Fð �4‰4�˜T 5¨&Ó1Ð1rc   z	aten::lenc           
     ó&  — t        j                  |«      s!|j                  «       j                  «       dk(  r| j	                  d|«      S t        | || j	                  dt        j                  dg«      ¬«      «      }t        j                  | |dg«      S )Nzonnx::SplitToSequenceÚSequenceLengthrM   r   rP   )	r	   Ú_is_tensor_listrá   râ   rY   r=   rZ   rí   Ú_squeeze_helper)r]   r^   Úsz_0s      rb   Ú_lenrô   Â  s{   € ô 	×'Ñ'¨Ô-Ø�9‰9‹;×ÑÓÐ!8Ò8à�t‰tÐ$ dÓ+Ð+Ü��4˜Ÿ™˜j´%×2BÑ2BÀAÀ3Ó2G˜ÓHÓI€DÜ×*Ñ*¨1¨d°Q°CÓ8Ð8rc   zaten::__getitem_c                ór   — t        j                  |«      r| j                  d||«      S ddlm}  || ||«      S )NÚ
SequenceAtr   )Ú
__getitem_)r	   rñ   rY   Útorch.onnx.symbolic_opset9r÷   )r]   r^   r{   Úgetitems       rb   r÷   r÷   Í  s5   € ä×&Ñ& tÔ,à�t‰t�L $¨Ó*Ð*åDá�q˜$ Ó"Ð"rc   zaten::_set_itemc                óP   — | j                  d||«      }| j                  d|||«      S )NÚSequenceEraseÚSequenceInsertr€   )r]   Útensor_listr{   rJ   s       rb   Ú	_set_itemrþ   Ø  s*   € à—$‘$�¨°QÓ7€KØ�4‰4Ð  +¨q°!Ó4Ð4rc   zaten::appendc                ó(   — | j                  d||«      S ©Nrü   r€   )r]   r^   r[   s      rb   r   r   Þ  s   € à�4‰4Ð  $¨Ó/Ð/rc   z	aten::addc                ó^  — t        j                  |«      r�t        j                  |«      rl|j                  «       }|j	                  «       dk7  rt        j
                  dd«      S t        j                  |«      }|}|D ]  }| j                  d||«      }Œ |S t        j                  | |||«      S )Nzprim::ListConstructr   z6does not support adding dynamic tensor list to anotherrü   )
r	   rÙ   rñ   rá   râ   rµ   r�   rY   rs   r   )r]   r^   ÚotherÚalphaÚtensor_list_nodeÚtensorsÚlÚts           rb   r   r   ã  s§   € ä× Ñ  Ô&¬?×+JÑ+JÈ4Ô+PØ Ÿ:™:›<ÐØ× Ñ Ó"Ð&;Ò;Ü"×1Ñ1ØÐOóð ô "×.Ñ.¨uÓ5ˆØˆØò 	-ˆAØ—‘Ð% q¨!Ó,‰Að	-àˆä�:‰:�a˜˜u eÓ,Ð,rc   zaten::insertc                ó*   — | j                  d|||«      S r   r€   )r]   r^   Úposr[   s       rb   r)   r)   ô  s   € à�4‰4Ð  $¨°Ó4Ð4rc   z	aten::popc                ó(   — | j                  d||«      S ©Nrû   r€   ©r]   rý   r�   s      rb   r4   r4   ù  ó   € à�4‰4� ¨cÓ2Ð2rc   zaten::Deletec                ó(   — | j                  d||«      S r  r€   r  s      rb   r   r   þ  r  rc   z	aten::catc                ó°   — t        j                  |«      rt        j                  | ||«      S t        j                  |dd«      }| j                  d||¬«      S )Nr{   r�   ÚConcatFromSequencer~   )r	   r�   rs   r   rã   rY   r  s      rb   r   r     sO   € ô ×&Ñ& {Ô3Ü�z‰z˜!˜[¨#Ó.Ð.ä×(Ñ(¨¨c°5Ó9ˆØ�t‰tÐ(¨+¸cˆtÓBÐBrc   zaten::stackc                ó²   — t        j                  |«      rt        j                  | ||«      S t        j                  |dd«      }| j                  d||d¬«      S )Nr{   r�   r  r„   ©r   Ú
new_axis_i)r	   r�   rs   rB   rã   rY   r  s      rb   rB   rB     sO   € ä×&Ñ& {Ô3Ü�|‰|˜A˜{¨CÓ0Ð0ä×(Ñ(¨¨c°5Ó9ˆØ�t‰tÐ(¨+¸cÈaˆtÓPÐPrc   zaten::_unique2c                ó@   — | j                  d||d¬«      \  }}}}|||fS )NÚUniquer°   )Úsorted_iÚoutputsr€   )	r]   r^   ÚsortedÚreturn_inverseÚreturn_countsÚuÚindicesÚinverse_indicesÚcountss	            rb   Ú_unique2r    s8   € ð +,¯$©$Ø�$ °ð +/ó +Ñ'€A€w� ð ˆo˜vÐ%Ð%rc   zaten::unique_dimc                óB   — | j                  d|||d¬«      \  }}}}	|||	fS )Nr  r°   )r   r  r  r€   )
r]   r^   r�   r  r  r  r  r  r  r  s
             rb   rE   rE     s:   € ð
 +,¯$©$Ø�$˜s¨V¸Qð +/ó +Ñ'€A€w� ð ˆo˜vÐ%Ð%rc   z
aten::topkc           	     ó:   — t        j                  | ||||||¬«      S )N)Úlargestr  Úout)r	   Ú_topk_helper)r]   r^   Úkr�   r"  r  r#  s          rb   rC   rC   *  s&   € ô ×'Ñ'Ø	ˆ4��C °¸Sôð rc   z
aten::sortc                ó6   — t        j                  | ||||¬«      S ©N)Ú	decendingr#  ©r	   Ú_sort_helper)r]   r^   r�   r(  r#  s        rb   r>   r>   2  s   € ô ×'Ñ'¨¨4°À	ÈsÔSÐSrc   zaten::argsortc                ó@   — t        j                  | ||||¬«      \  }}|S r'  r)  )r]   r^   r�   r(  r#  Ú_r  s          rb   r   r   8  s*   € ô !×-Ñ-Ø	ˆ4� 	¨sô�J€A€wð €Nrc   zaten::roundc                óŒ  — t        j                  |«      s|S |dk(  r| j                  d|«      S | j                  d|| j                  dt        j                  t        d|«      «      ¬«      «      }| j                  d|«      }| j                  d|| j                  dt        j                  t        dd|z  «      «      ¬«      «      S )Nr   ÚRoundÚMulrM   é
   rP   r‡   )r	   Ú_is_fprY   rZ   r[   Úpow)r]   r^   ÚdecimalsÚmulr:   s        rb   r:   r:   A  s§   € ô ×!Ñ! $Ô'ØˆØ�1‚}Ø�t‰t�G˜TÓ"Ð"Ø
�$‰$ˆu�d˜AŸD™D ´U·\±\Ä#ÀbÈ(ÓBSÓ5T˜DÓUÓ
V€CØ�D‰D�˜#Ó€EØ�4‰4Øˆu�a—d‘d˜:¬u¯|©|¼CÀÀBÈÁMÓ<RÓ/S�dÓTóð rc   zaten::remainderc                ó®   — t        j                  |«      st        j                  |«      rt        j                  | ||«      S | j	                  d||d¬«      S )NÚModr   )Úfmod_i)r	   r1  rs   r8   rY   )r]   rz   r  s      rb   r8   r8   O  sI   € ä×Ñ˜eÔ$¬×(>Ñ(>¸uÔ(EÜ×Ñ  5¨%Ó0Ð0Ø�4‰4��u˜e¨Aˆ4Ó.Ð.rc   zaten::splitc                óÀ  — t        j                  ||«      �s¥| j                  d|||¬«      }|€|S t        j                  |«      �rt	        t        j
                  |«      «      |k(  röt        j
                  |«      D �cg c]  }t        j                  | |dg«      ‘Œ }}| j                  dt        j                  dgt        j                  ¬«      ¬«      }| j                  dt        j                  |gt        j                  ¬«      ¬«      }	g }
t        |«      D ]>  }| j                  d|||   «      }|
j                  | j                  d||||	«      «       |}Œ@ |
S t        |«      D �cg c]J  }| j                  d	|| j                  dt        j                  |gt        j                  ¬«      ¬«      «      ‘ŒL c}S t        j                  | ||||«      S c c}w c c}w )
NÚSplitToSequencer~   r   rM   rN   rP   ÚAddÚSlicerö   )r	   Ú_is_split_staticrY   r�   r’   r�   r•   rZ   r[   Úlongr“   r   rs   r@   )r]   r^   Úsplit_size_or_sizesr�   Ú_outputsÚ	split_outrJ   Úsplit_sizesÚstartÚaxisÚresr{   Úends                rb   r@   r@   V  sº  € ô ×+Ñ+Ð,?ÀÕJØ—D‘DÐ*¨DÐ2EÈc�DÓRˆ	ØÐØÐô ×+Ñ+Ð,?Õ@Ü”O×0Ñ0Ð1DÓEÓFÈ(ÒRô )×5Ñ5Ð6IÓJöàô  ×1Ñ1°!°Q¸¸Õ<ðˆKð ð —D‘D˜¬U¯\©\¸1¸#ÄUÇZÁZÔ-P�DÓQˆEØ—4‘4˜
¬E¯L©L¸#¸ÄeÇjÁjÔ,Q�4ÓRˆDØˆCÜ˜8“_ò �Ø—d‘dØ˜5 +¨a¡.ó�ð —
‘
˜1Ÿ4™4 ¨¨u°c¸4Ó@ÔAØ‘ðð ˆJô ˜8“_ö
ð ð �D‰DØØØ—‘�Z¬¯©°q°cÄÇÁÔ)L�ÓMõò
ð 	
ô �|‰|˜A˜tÐ%8¸#¸xÓHÐHùò/ùò
s   Á?GÅ+AGzaten::split_with_sizesc                ó    — t        | ||||«      S rÅ   )r@   )r]   r^   rA  r�   r?  s        rb   r?   r?   |  s   € ô ��D˜+ s¨HÓ5Ð5rc   zaten::unbindc                óÊ   — |€J| j                  d|| j                  dt        j                  dt        j                  ¬«      ¬«      |d¬«      S t	        j
                  | |||«      S )Nr9  rM   r„   rN   rP   r   )r   Ú
keepdims_i)rY   rZ   r[   r=  rs   rD   )r]   r^   r�   r?  s       rb   rD   rD   ‚  sb   € ð ÐØ�t‰tØØØ�D‰D�¤U§\¡\°!¼5¿:¹:Ô%FˆDÓGØØð ó 
ð 	
ô �}‰}˜Q  c¨8Ó4Ð4rc   c                óF  — t        j                  |«      s?t        j                  |«      r*t        j                  |«      r| j	                  d|dd¬«      }t        j                  | || j	                  dt        j                  dg«      ¬«      «      }t        j                  |«      }|€#| j	                  d| j	                  d|«      «      }n6| j	                  dt        j                  |t        j                  ¬	«      ¬«      }| j	                  d
| j	                  d|| j	                  dt        j                  dt        j                  ¬	«      ¬«      «      |«      }| j	                  d|t        j                  j                  ¬«      }| j	                  d|| j	                  d|t        j                  dgt        j                  ¬	«      ¬«      d¬«      }t        j                  | || j	                  dt        j                  ddg«      ¬«      «      }| j	                  dt        j                   | |dg«      ddg¬«      }t        j                  | || j	                  dt        j                  dg«      ¬«      «      }| j	                  d|t        j                  j                  ¬«      }|S )a!  Generate paddings in ONNX order based on pad in pytorch.

    Args:
        input: the input tensor.
        pad: the paddings in pytorch.
            The order is dim_n_begin, dim_n_end, dim_n-1_begin, dim_n-1_end, ..., dim_m_begin, dim_m_end,
            where m is in range [0, n].
    r  r   r„   r  rM   rP   ÚSizer†   rN   ÚSubr/  é   rf   rg   rˆ   r�   r~   r‡   Ú	Transpose©Úperm_i)r	   r�   Ú_is_listÚ_is_scalar_listrY   rs   r=   rZ   r[   rm   Úint64Ú_C_onnxÚTensorProtoDataTypeÚINT64rœ   Úopset10Úflip)r]   rz   r2   Úpad_lenr¦   Ú	extensionÚpaddingsÚ	padding_cs           rb   Ú_prepare_onnx_paddingsr\  ‘  s  € ô ×+Ñ+¨CÔ0Ü×$Ñ$ SÔ)Ü×+Ñ+¨CÔ0à�d‰dÐ'¨°QÀ1ˆdÓEˆô
 �k‰k˜!˜S !§$¡$ z¼5¿<¹<ÈÈÓ;L $Ó"MÓN€Gä×+Ñ+¨EÓ2€DØ€|Ø�t‰t�F˜AŸD™D ¨%Ó0Ó1‰à�t‰t�J¬¯©°TÄÇÁÔ(MˆtÓNˆØ—‘ØØ	�‰ˆU�D˜!Ÿ$™$˜z´5·<±<ÀÌÏÉÔ3U˜$ÓVÓWØó€Ið �$‰$ˆv�s¤×!<Ñ!<×!BÑ!Bˆ$Ó
C€CØ�t‰tØØØ	�‰Ø˜y´%·,±,À¸sÌ%Ï+É+Ô2Vð 	ó 	
ð ð ó €Hô ×.Ñ.Ø	ˆ8�Q—T‘T˜*¬e¯l©l¸BÀ¸7Ó.C�TÓDó€Hð �t‰t�K¤§¡¨a°¸A¸3Ó!?ÈÈAÈˆtÓO€HÜ×.Ñ.Ø	ˆ8�Q—T‘T˜*¬e¯l©l¸B¸4Ó.@�TÓAó€Hð —‘�V˜X¬G×,GÑ,G×,MÑ,M�ÓN€IØÐrc   zaten::constant_pad_ndc                ó¢   — d}t        j                  |«      }t        j                  ||«      }t        | ||«      }| j	                  d||||¬«      S )NÚconstantÚPad©r´   )r	   rØ   Ú_if_scalar_type_asr\  rY   )r]   rz   ÚpaddingÚvaluerÍ   r2   s         rb   r   r   Ê  sP   € à€DÜ×-Ñ-¨eÓ4€EÜ×.Ñ.¨u°eÓ<€EÜ
   E¨7Ó
3€CØ�4‰4��u˜c 5°ˆ4Ó6Ð6rc   zaten::reflection_pad1dzaten::reflection_pad2dzaten::reflection_pad3dc                óJ   — d}t        | ||«      }| j                  d|||¬«      S )NÚreflectr_  r`  ©r\  rY   ©r]   rz   rb  rÍ   rZ  s        rb   r6   r6   Ó  s.   € ð €DÜ% a¨°Ó8€HØ�4‰4��u˜h¨tˆ4Ó4Ð4rc   zaten::replication_pad1dzaten::replication_pad2dzaten::replication_pad3dc                óJ   — d}t        | ||«      }| j                  d|||¬«      S )NÚedger_  r`  rf  rg  s        rb   r9   r9   Ü  s.   € ð €DÜ% a¨°Ó8€HØ�4‰4��u˜h¨tˆ4Ó4Ð4rc   z	aten::padc                ó  — t        j                  |d«      }|dk(  rt        | ||«      S |dk(  rt        | ||«      S |dk(  rt	        | |||«      S |dk(  rt        j                  | ||«      S t        j                  d|› �|«      ‚)NÚsÚ	replicatere  r^  ÚcircularzUnrecognized padding mode )	r	   r‘   r9   r6   r   rs   Ú_pad_circularr   r�   )r]   rz   r2   rÍ   rc  s        rb   r2   r2   å  s•   € ô ×%Ñ% d¨CÓ0€DØˆ{ÒÜ˜q %¨Ó-Ð-Ø	�Ò	Ü˜a ¨Ó,Ð,Ø	�Ò	Ü˜q %¨¨eÓ4Ð4Ø	�Ò	Ü×#Ñ# A u¨cÓ2Ð2ä×'Ñ'Ð*DÀTÀFÐ(KÈUÓSÐSrc   zaten::linalg_detc                ó&   — | j                  d|«      S )NÚDetr€   )r]   r^   s     rb   r*   r*   ú  s   € à�4‰4��tÓÐrc   zaten::logdetc                óB   — t        j                  | t        | |«      «      S rÅ   )rs   Úlogr*   )r]   rz   s     rb   r,   r,   ÿ  s   € ä�:‰:�aœ A uÓ-Ó.Ð.rc   úaten::arangec                óx  — d„ }t        |«      dk(  r´t        d„ |D «       «      r¢t        j                  }| j	                  dt        j
                  |d   |¬«      ¬«      }| j	                  dt        j
                  |d   |¬«      ¬«      }| j	                  dt        j
                  d|¬«      ¬«      }| j	                  d	|||«      S t        |«      dk(  st        |«      d
k(  r¼t        |«      dk(  rd }n ||d   «      }t        j                  | |d   |¬«      \  }}}}| j	                  dt        j
                  d|j                  «       ¬«      ¬«      }	| j	                  dt        j
                  d|j                  «       ¬«      ¬«      }| j	                  d	|	||«      S t        |«      dk(  st        |«      dk(  rXt        |«      dk(  rd }n ||d   «      }t        j                  | |d   |d   |d   |¬«      \  }
}}}| j	                  d	|||«      S t        |«      dk(  ry ||d   «      }t        j                  | |d   |d   |¬«      \  }}}}| j	                  dt        j
                  d|j                  «       ¬«      ¬«      }| j	                  d	|||«      S t        j                  ddt        |«      › d�«      S )Nc                ó2   — t        j                  | d«      } | S ©Nr{   )r	   rÔ   rN   s    rb   Ú_get_arange_dtypez!arange.<locals>._get_arange_dtype  s   € Ü×0Ñ0°¸Ó<ˆØˆrc   rL  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrÅ   )Ú
isinstancerà   )Ú.0Úvals     rb   ú	<genexpr>zarange.<locals>.<genexpr>
  s   è ø€ ÒC°sœj¨¬c×2ÑCùs   ‚rM   r   rN   rP   r„   ÚRanger½   )rE  rO   r°   é   r¸   )rB  rE  ÚsteprO   ry   )rB  rE  rO   rs  zwith z
 arguments)
r’   ÚallrZ   rR  rY   r[   r	   Ú_arange_cast_helperrO   rµ   )r]   Úargsrw  rO   rB  rE  Údelta_defaultÚtype_r  Ústart_defaultr,  s              rb   r   r     s¨  € òô ˆ4ƒy�A‚~œ#ÑC¸dÔCÔCä—‘ˆà—‘ØÜ—L‘L  a¡°Ô6ð ó 
ˆð
 �d‰dØÜ—L‘L  a¡°Ô6ð ó 
ˆð
 Ÿ™ØÜ—L‘L ¨%Ô0ð ó 
ˆð �t‰t�G˜U C¨Ó7Ð7Ü	ˆT‹�aŠœ3˜t›9¨š>Üˆt‹9˜Š>à‰Eñ & d¨1¡gÓ.ˆEÜ"1×"EÑ"EØ�4˜‘7 %ô#
Ñˆˆs�E˜4ð Ÿ™ØÜ—L‘L ¨%¯+©+«-Ô8ð ó 
ˆð Ÿ™ØÜ—L‘L ¨%¯+©+«-Ô8ð ó 
ˆð �t‰t�G˜]¨C°Ó?Ð?Ü	ˆT‹�aŠœ3˜t›9¨š>Üˆt‹9˜Š>à‰Eñ & d¨1¡gÓ.ˆEÜ-×AÑAØ�T˜!‘W $ q¡'°°Q±¸uô
Ñˆˆ3��tð �t‰t�G˜U C¨Ó.Ð.Ü	ˆT‹�aŠá! $ q¡'Ó*ˆÜ"1×"EÑ"EØ�T˜!‘W $ q¡'°ô#
Ñˆˆs�E˜4ð Ÿ™ØÜ—L‘L ¨%¯+©+«-Ô8ð ó 
ˆð �t‰t�G˜U C¨Ó7Ð7ä×-Ñ-Ø˜e¤C¨£I ;¨jÐ9ó
ð 	
rc   zaten::_dim_arangec           
     ó¸   — | j                  d|«      }| j                  d|| j                  dt        j                  |«      ¬«      d¬«      }t        | |dd d d «      S )Nr†   r}   rM   rP   r   r~   r°   )rY   rZ   r[   r   )r]   Úliker�   Ú
like_shapeÚstops        rb   Ú_dim_arangerŠ  L  s^   € ð —‘�g˜tÓ$€JØ�4‰4Ø�*˜aŸd™d :´u·|±|ÀCÓ7H˜dÓIÐRSð ó €Dô �!�T˜1˜d D¨$Ó/Ð/rc   z
aten::size)Úquantize_outputc                óX   — |€| j                  d|«      S t        j                  | ||«      S )Nr†   )rY   r	   Ú_size_helper©r]   r^   r�   s      rb   r=   r=   V  s/   € ð €{Ø�t‰t�G˜TÓ"Ð"Ü×'Ñ'¨¨4°Ó5Ð5rc   zaten::squeezec                ó  — |€| j                  d|«      S t        j                  |«      st        j                  | ||g«      S t        j                  |dd«      }t        j
                  |«      }|}|�
|dk  r||z  }t        j                  ||«      }|dk  r|�|�€| j                  dt        j                  |g«      ¬«      }t        j                  | ||«      }| j                  dt        j                  dt        j                  ¬«      ¬«      }| j                  d	||«      }	t        j                  | d
|	d¬«      \  }
\  }}}t        j                  |||g«      }t        j                  |j                   |«       |j                  d|«      }t        j                  |j                   |«       |
S |}|dkD  r>t#        j$                  dt'        |«      z   dz   dz   t'        |«      z   dz   dz   dz   «       |S t        j                  | ||g«      S )NÚSqueezer{   r�   r   rM   rP   r„   rN   ÚEqualÚIfrL  )Ún_blocksÚIdentityz5This model contains a squeeze operation on dimension z. The size of z%this dimension in the given input is z. The model will zWbe exported without the squeeze node. If the model is intended to be used with dynamic z7input shapes, please export with dynamic_axes argument.)rY   r	   Ú_is_constantrò   rã   rm   Ú_get_tensor_dim_sizerZ   r[   r�  ÚonesrR  r   Úadd_op_with_blocksr   Ú_add_output_to_blockÚblockÚwarningsÚwarnÚstr)r]   r^   r�   Ú
input_rankÚadjusted_dimÚdim_sizeÚdim_constantr=   Ú	const_oneÚcondÚif_opÚ
if_contextÚelse_contextr,  Úsqueeze_Ú	identity_s                   rb   rA   rA   ^  s  € à
€{Ø�t‰t�I˜tÓ$Ð$ô ×'Ñ'¨Ô,Ü×.Ñ.¨q°$¸¸Ó>Ð>ä
×
$Ñ
$ S¨#¨uÓ
5€Cä ×1Ñ1°$Ó7€JØ€LØÐ #¨¢'Ø˜
Ñ"ˆÜ×3Ñ3°D¸,ÓG€HØˆaŠ�JÐ&¨8Ñ+;ð —t‘t˜J´·±¸c¸UÓ0C�tÓDˆÜ×+Ñ+¨A¨t°\ÓBˆØ—D‘D˜¬U¯Z©Z¸ÄÇÁÔ-M�DÓNˆ	Ø�t‰t�G˜T 9Ó-ˆä/8×/KÑ/KØˆt�T Aô0
Ñ,ˆÑ)�
˜L¨1ô #×2Ñ2°:¸tÀcÀUÓKˆÜ×"Ñ" :×#3Ñ#3°XÔ>Ø —O‘O J°Ó5ˆ	Ü×"Ñ" <×#5Ñ#5°yÔAØˆð €CØ�!‚|Ü�‰ØCÜ�#‹hñàñð 6ñ6ô �(‹mñ	ð
 "ñ"ð hñhð HñHô		
ð ˆÜ×*Ñ*¨1¨d°S°EÓ:Ð:rc   zaten::unsqueezec                óŠ   — t        j                  |«      rt        j                  |dd«      }t        j                  | ||g«      S )Nr{   r�   )r	   r•  rã   r•   rŽ  s      rb   rF   rF   ‘  s;   € ä×#Ñ# CÔ(Ü×(Ñ(¨¨c°5Ó9ˆä×,Ñ,¨Q°°s°eÓ<Ð<rc   zaten::mmc                ó.   — | j                  d||dd¬«      S )NÚGemmg        g      ð?)Úbeta_fÚalpha_fr€   )r]   r^   r  s      rb   r/   r/   ™  s   € à�4‰4�˜˜e¨C¸ˆ4Ó=Ð=rc   zaten::indexc                óÌ  — t        j                  |«      rt        j                  |«      }n|g}t        |«      dk(  r’|d   }t        j                  |«      sxt        j
                  |«      s:t        j                  j                  |«      t        j                  j                  k(  r)t        j                  | |«      }| j                  d||«      S t        j                  | ||«      S )Nr„   r   ré   )r	   r�   r�   r’   ri   r”   r   rV   rW   ÚUINT8rs   rê   rY   r&   )r]   r^   r&   r  s       rb   r&   r&   ž  sº   € ä×&Ñ& uÔ-Ü!×.Ñ.¨uÓ5‰à�'ˆô ˆ7ƒ|�qÒØ˜‘
ˆÜ×'Ñ'¨Ô.Ü×$Ñ$ UÔ+Ü×(Ñ(×3Ñ3°EÓ:Ü×(Ñ(×.Ñ.ò/ô —N‘N 1 eÓ,ˆEØ—4‘4˜
 D¨%Ó0Ð0Ü�<‰<˜˜4 Ó'Ð'rc   zaten::index_fillc                ó  — t        j                  |d«      }t        j                  | |||«      \  }}t        j                  |«      }t        j                  ||«      }t        j                  | ||d «      }t        | ||||«      S rv  )r	   r‘   Ú_index_fill_reshape_helperrØ   ra  rs   r–   r;   )	r]   r^   r�   r&   rc  Ú	dim_valueÚexpanded_index_shapeÚexpanded_indexÚexpanded_values	            rb   r%   r%   ²  s   € ä×*Ñ*¨3°Ó4€IÜ+:×+UÑ+UØ	ˆ4��eó,Ñ(Ð˜.ô ×-Ñ-¨eÓ4€EÜ×.Ñ.¨u°dÓ;€EÜ—]‘] 1 eÐ-AÀ4ÓH€NÜ�1�d˜C °Ó@Ð@rc   zaten::index_copyc                ó‚   — t        j                  |d«      }t        j                  | |||«      \  }}t        | ||||«      S rv  )r	   r‘   r±  r;   )r]   r^   r�   r&   rî   r²  r³  r´  s           rb   r'   r'   ¾  sH   € ä×*Ñ*¨3°Ó4€IÜ+:×+UÑ+UØ	ˆ4��eó,Ñ(Ð˜.ô �1�d˜C °Ó8Ð8rc   zaten::bitwise_right_shiftzaten::__rshift_c                ó¼  — t         j                  j                  |t         j                  j                  «      t         j                  j                  |«      k7  r?| j	                  d|t         j                  j                  |«      j                  «       ¬«      }t         j                  j                  |t         j                  j                  «      t         j                  j                  k(  r| j	                  d||d¬«      S | j	                  dt        j                  dt        j                  ¬«      ¬	«      }t        j                  |«      s,| j	                  d|t        j                  j                  ¬«      }| j	                  d
||«      }| j	                  d|t         j                  j                  |«      j                  «       ¬«      }| j	                  d||«      }|S )Nrf   rg   ÚBitShiftÚRIGHT©Údirection_srM   rL  rN   rP   ÚPowÚDiv©r   rV   rW   rl   rY   rj   r¯  rZ   r[   Úfloat32r	   r1  rS  rT  rX   )r]   r^   r  ÚtwoÚtwo_powÚrshifts         rb   Ú	__rshift_rÃ  Ç  s{  € ô
 × Ñ ×+Ñ+ØŒ{×(Ñ(×2Ñ2óä	×	"Ñ	"×	-Ñ	-¨dÓ	3ò4ð —‘ØØÜ×*Ñ*×5Ñ5°dÓ;×EÑEÓGð ó 
ˆô 	×!Ñ!×,Ñ,¨T´;×3LÑ3L×3VÑ3VÓWÜ×$Ñ$×*Ñ*ò	+ð �t‰t�J  e¸ˆtÓAÐAà
�$‰$ˆz¤5§<¡<°¼¿¹Ô#Gˆ$Ó
H€Cä×!Ñ! $Ô'Ø—‘�V˜U¬×)DÑ)D×)JÑ)J�ÓKˆØ�d‰d�5˜#˜uÓ%€GØ�d‰dØØÜ×&Ñ&×1Ñ1°$Ó7×AÑAÓCð ó €Gð
 �T‰T�%˜˜wÓ'€FØ€Mrc   zaten::bitwise_left_shiftzaten::__lshift_c                ó¼  — t         j                  j                  |t         j                  j                  «      t         j                  j                  |«      k7  r?| j	                  d|t         j                  j                  |«      j                  «       ¬«      }t         j                  j                  |t         j                  j                  «      t         j                  j                  k(  r| j	                  d||d¬«      S | j	                  dt        j                  dt        j                  ¬«      ¬	«      }t        j                  |«      s,| j	                  d|t        j                  j                  ¬«      }| j	                  d
||«      }| j	                  d|t         j                  j                  |«      j                  «       ¬«      }| j	                  d||«      }|S )Nrf   rg   r¸  ÚLEFTrº  rM   rL  rN   rP   r¼  r/  r¾  )r]   r^   r  rÀ  rÁ  Úlshifts         rb   Ú	__lshift_rÇ  é  s{  € ô
 × Ñ ×+Ñ+ØŒ{×(Ñ(×2Ñ2óä	×	"Ñ	"×	-Ñ	-¨dÓ	3ò4ð —‘ØØÜ×*Ñ*×5Ñ5°dÓ;×EÑEÓGð ó 
ˆô 	×!Ñ!×,Ñ,¨T´;×3LÑ3L×3VÑ3VÓWÜ×$Ñ$×*Ñ*ò	+ð �t‰t�J  e¸ˆtÓ@Ð@à
�$‰$ˆz¤5§<¡<°¼¿¹Ô#Gˆ$Ó
H€Cä×!Ñ! $Ô'Ø—‘�V˜U¬×)DÑ)D×)JÑ)J�ÓKˆØ�d‰d�5˜#˜uÓ%€GØ�d‰dØØÜ×&Ñ&×1Ñ1°$Ó7×AÑAÓCð ó €Gð
 �T‰T�%˜˜wÓ'€FØ€Mrc   c                óô  — | j                  d|| j                  dt        j                  |dz  «      ¬«      «      }| j                  d|| j                  dt        j                  ||dz
  z  «      ¬«      «      }| j                  d| j                  dt        j                  d«      ¬«      || j                  dt        j                  |«      ¬«      «      }t        j                  d||z  |«      }| j                  d|j	                  d«      ¬«      }t        j                  | |dg«      }t        j                  | || j                  dt        j                  d	dg«      ¬«      «      }	| j                  d||	«      }
|
S )
Nr:  rM   rL  rP   rK  r„   r}  r   r‡   )rY   rZ   r[   r   rF   r	   r•   rœ   )r]   Úinput_dÚkernel_size_dÚ
dilation_dÚ	padding_dÚstride_dÚblocks_dÚblocks_d_indicesÚkernel_gridÚkernel_maskÚ
block_masks              rb   Ú_get_im2col_indices_along_dimrÓ    sU  € ð �t‰tØˆw˜Ÿ™˜Z´·±¸iÈ!¹mÓ1L˜ÓMó€Hð �t‰tØØØ	�‰ˆZ¤§¡¨j¸MÈAÑ<MÑ.NÓ!OˆÓPó€Hð —t‘tØØ	�‰ˆZ¤§¡¨a£ˆÓ1ØØ	�‰ˆZ¤§¡¨hÓ!7ˆÓ8ó	Ðô —,‘,˜q -°*Ñ"<¸jÓI€KØ—$‘$�z¨;×+@Ñ+@ÀÓ+C�$ÓD€Kô '×8Ñ8Ø	Ð˜a˜SóÐô "×1Ñ1Ø	ˆ;˜Ÿ™˜Z´·±¸rÀ1¸gÓ1F˜ÓGó€Kð —‘�eÐ-¨{Ó;€JàÐrc   c           	     ó‚   — | j                  dt        j                  dd||gdz  «      ¬«      }| j                  d||«      S )NrM   r   rL  rP   r_  )rY   rZ   rí   )r]   rz   Ú	padding_hÚ	padding_wr2   s        rb   Ú_get_im2col_padded_inputr×  6  sC   € ð �$‰$ˆz¤5×#3Ñ#3°Q¸¸9ÀiÐ4PÐSTÑ4TÓ#Uˆ$Ó
V€CØ�4‰4��u˜cÓ"Ð"rc   c                ó  — t        | || j                  dt        j                  d«      ¬«      «      }t        | || j                  dt        j                  d«      ¬«      «      }| j                  d|| j                  dt        j                  ||z  «      ¬«      «      }| j                  dt	        j
                  | |dg«      t	        j
                  | |dg«      | j                  dt        j                  dg«      ¬«      d¬«      S )	NrM   r   rP   r„   r/  rˆ   r‡   r~   )r=   rY   rZ   r[   r	   r•   )r]   rz   Úkernel_hÚkernel_wÚ	batch_dimÚchannel_dimÚchannel_unfoldeds          rb   Ú_get_im2col_output_shaperÞ  >  sÛ   € Ü�Q˜˜qŸt™t J¼¿¹ÀQ»˜tÓHÓI€IÜ�q˜% §¡ j¼%¿,¹,Àq»/ Ó!JÓK€KØ—t‘tØˆ{˜AŸD™D ´U·\±\À(ÈXÑBUÓ5V˜DÓWóÐð �4‰4ØÜ×)Ñ)¨!¨Y¸¸Ó<Ü×)Ñ)¨!Ð-=À¸sÓCØ	�‰ˆZ¤§¡¨r¨dÓ!3ˆÓ4Øð ó ð rc   zaten::im2colÚisc           
     ó<  — t        | || j                  dt        j                  d«      ¬«      «      }t        | || j                  dt        j                  d«      ¬«      «      }|d   |d   }	}|d   |d   }}
|d   |d   }}|d   |d   }}t	        | ||||
|«      }t	        | |||||	«      }t        | |||«      }t        | ||
|«      }| j                  d||d¬«      }| j                  d||d	¬«      }| j                  d
|g d¢¬«      }t        j                  | ||«      S )NrM   rL  rP   r¸   r   r„   r}   r~   r°   rM  )r   r„   rL  r°   r¸   r½   rN  )	r=   rY   rZ   r[   rÓ  rÞ  r×  r	   rœ   )r]   rz   Úkernel_sizeÚdilationrb  ÚstrideÚinput_hÚinput_wÚstride_hÚstride_wrÕ  rÖ  Ú
dilation_hÚ
dilation_wrÙ  rÚ  Úblocks_row_indicesÚblocks_col_indicesÚoutput_shapeÚpadded_inputÚoutputs                        rb   r$   r$   N  s<  € ô �1�e˜QŸT™T *´e·l±lÀ1³o˜TÓFÓG€GÜ�1�e˜QŸT™T *´e·l±lÀ1³o˜TÓFÓG€Gà ™ F¨1¡Iˆh€HØ" 1™: w¨q¡zˆy€IØ% a™[¨(°1©+�
€JØ$ Q™¨°Q©ˆh€Hä6Ø	ˆ7�H˜j¨)°XóÐô 7Ø	ˆ7�H˜j¨)°XóÐô ,¨A¨u°hÀÓI€LÜ+¨A¨u°iÀÓK€Lð2 �T‰T�(˜LÐ*<ÀQˆTÓG€FØ�T‰T�(˜FÐ$6¸qˆTÓA€FØ�T‰T�+˜vÒ.@ˆTÓA€FÜ×*Ñ*¨1¨f°lÓCÐCrc   zaten::narrowc                ó\   — | j                  d||«      }t        j                  | ||||¬«      S )Nr:  r‰   )rY   r	   r™   )r]   rz   r�   rB  ÚlengthrE  s         rb   r0   r0   ƒ  s.   € à
�$‰$ˆu�e˜VÓ
$€CÜ×(Ñ(¨¨E¸ÀEÐPSÔTÐTrc   zaten::flattenc                óV  — t        j                  |«      }|dk(  r|S |dk(  r#|dk(  s
|�G||dz
  k(  r?| j                  d||¬«      S |dk(  r&|dk(  s
|�||dz
  k(  r| j                  d||dz   ¬«      S |€t        j                  dd	«      S |dk  r||z   }t        j                  | ||||«      S )
Nr„   r‡   ÚFlattenr~   r   éþÿÿÿrL  r�   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.)r	   rm   rY   rµ   Ú_flatten_helper)r]   rz   Ú	start_dimÚend_dimr�   s        rb   r    r    ‰  sÓ   € ô ×
*Ñ
*¨5Ó
1€CØ
ˆa‚xØˆà�A‚~Ø�bŠ=˜S˜_°¸CÀ!¹GÒ1CØ—4‘4˜	 5°�4Ó;Ð;Ø	�aŠØ�bŠ=˜S˜_°¸CÀ!¹GÒ1CØ—4‘4˜	 5°¸1±�4Ó=Ð=Ø
€{Ü×-Ñ-Øð7ó
ð 	
ð �‚{Ø˜‘-ˆä×*Ñ*¨1¨e°YÀÈÓMÐMrc   zaten::linalg_vector_normrƒ   c                ó6   — t        j                  | |||||«      S rÅ   )r	   Ú_linalg_vector_norm_helper)r]   r^   Úordr�   ÚkeepdimrO   s         rb   r+   r+   ¤  s    € ô ×5Ñ5°a¸¸sÀCÈÐRWÓXÐXrc   zaten::embedding_bagc
                ó>   — t        j                  | |||||||||	«
      S rÅ   )r	   Ú_embedding_bag_helper)
r]   Úembedding_matrixr  ÚoffsetsÚscale_grad_by_freqrÍ   ÚsparseÚper_sample_weightsÚinclude_last_offsetÚpadding_idxs
             rb   r   r   ±  s5   € ô ×0Ñ0Ø	ØØØØØØØØØóð rc   zaten::embedding_renormc           
     ód  — | j                  d|«      }| j                  d||«      }t        |«      }|dk(  rd}n"|dk(  rd}nt        j                  d|› d�|«      ‚| j                  ||dgd¬	«      }| j                  d
|| j                  dt	        j
                  d«      ¬«      «      }	t	        j
                  |«      }| j                  d||	«      }
| j                  d||
«      }| j                  d| j                  d||«      ||«      }| j                  d|t        j                  | |dg«      |«      S )Nr  r}   r„   ÚReduceL1rL  ÚReduceL2z8Unsupported: ONNX export of embedding_renorm with norm: z. Only 1. and 2. are supported.)Úaxes_irH  r:  rM   gH¯¼šò×z>rP   r½  r/  ÚWhereÚGreaterrŽ   )rY   rà   r   r�   rZ   r[   r	   r•   )r]   Úweightr  Úmax_normÚ	norm_typeÚunique_indicesÚpartial_weightÚnorm_iÚpartial_weight_normÚpartial_weight_norm_ÚscalesÚpartial_weight_renorms               rb   r   r   Í  sI  € ð —T‘T˜( GÓ,€NØ—T‘T˜( F¨NÓ;€NÜ�‹^€FØ�‚{Ø‰	Ø	�1ŠØ‰	ä×'Ñ'ØFÀvÀhð O,ð ,àó
ð 	
ð
 Ÿ$™$˜y¨.À!ÀÐQR˜$ÓSÐð Ÿ4™4ØÐ" A§D¡D¨¼U¿\¹\È$Ó=O DÓ$PóÐô �|‰|˜HÓ%€HØ�T‰T�%˜Ð#7Ó8€FØŸD™D ¨¸Ó?ÐØŸD™DØØ	�‰ˆYÐ+¨XÓ6ØØó	Ðð �4‰4ØØÜ×)Ñ)¨!¨^¸a¸SÓAØó	ð rc   zaten::chunkc                óä  — | j                  d| j                  d|«      |d¬«      }| j                  d|| j                  dt        j                  dgt        j                  ¬«      ¬	«      «      }| j                  d
| j                  d||«      |«      }t	        j
                  | ||d «      | j                  d|| j                  d||«      «      g} | j                   dg|¢­ddiŽ}t        | |||«      S )Nr}   r†   r   r~   rK  rM   r„   rN   rP   r½  r:  r/  rˆ   r   )rY   rZ   r[   r=  rs   r–   r@   )r]   r^   Úchunksr�   r   Úchunk_size_sÚ
chunk_sizeÚ	chunk_vecs           rb   r   r   ô  sÞ   € ð �t‰t�H˜aŸd™d 7¨DÓ1°3¸qˆtÓA€HØ—4‘4Øˆv�q—t‘t˜J´·±¸a¸SÌÏ
É
Ô0S�tÓTó€Lð —‘�e˜QŸT™T %¨°<Ó@À&ÓI€Jô 	�‰�a˜ \°4Ó8Ø	�‰ˆU�H˜aŸd™d 5¨*°lÓCÓDð€Ið �—‘�XÐ4 	Ò4°!Ñ4€IÜ��D˜) SÓ)Ð)rc   zaten::normalc	                óÈ   — |�-t        j                  |«      st        j                  | ||d «      }t        j                  | || j                  d|«      «      }	t        | |	|«      S )NÚRandomNormalLike)r	   ri   rs   r–   r4  rY   r   )
r]   ÚmeanÚstdÚsizesÚ	generatorrO   ÚlayoutÚdeviceÚ
pin_memoryr®   s
             rb   r1   r1     sX   € ð" Ð¤×!9Ñ!9¸%Ô!@Ü�}‰}˜Q  e¨TÓ2ˆÜ�Z‰Z˜˜3 §¡Ð%7¸Ó >Ó?€FÜˆq�&˜$ÓÐrc   zaten::atleast_1dc                ó:  — t        j                  |«      r¯t        j                  |«      ršt        j                  |«      }g }|D ]k  }|}t        j                  |«      }|dk(  r<t        j
                  | || j                  dt        j                  dg«      ¬«      «      }|j                  |«       Œm  | j                  dg|¢­Ž S t        j                  |«      }|dk(  r<t        j
                  | || j                  dt        j                  dg«      ¬«      «      }|S )Nr   rM   r„   rP   ÚSequenceConstruct)
r	   rÙ   r�   r�   rm   rœ   rY   rZ   r[   r   ©r]   r^   rý   Únew_tensor_listr[   Ú
new_tensorÚtensor_ranks          rb   r   r     s  € ô
 × Ñ  Ô&¬?×+JÑ+JÈ4Ô+PÜ%×2Ñ2°4Ó8ˆØˆØ!ò 	/ˆFØˆJÜ)×:Ñ:¸6ÓBˆKØ˜aÒÜ,×<Ñ<Ø�z 1§4¡4¨
¼E¿L¹LÈ!ÈÓ<M 4Ó#Nó�
ð ×"Ñ" :Õ.ð	/ð ˆq�t‰tÐ'Ð:¨/Ò:Ð:ä!×2Ñ2°4Ó8€KØ�aÒÜ×.Ñ.Øˆt�Q—T‘T˜*¬e¯l©l¸A¸3Ó.?�TÓ@ó
ˆð €Krc   zaten::atleast_2dc                ó¼  — t        j                  |«      rÏt        j                  |«      rºt        j                  |«      }g }|D ]‹  }|}t        j                  |«      }|dk(  r>t        j
                  | || j                  dt        j                  ddg«      ¬«      «      }n|dk(  rt        j                  | |dg¬«      }|j                  |«       Œ�  | j                  dg|¢­Ž S t        j                  |«      }|dk(  r?t        j
                  | || j                  dt        j                  ddg«      ¬«      «      }|S |dk(  rt        j                  | |dg¬«      }|S )Nr   rM   r„   rP   ©r  r#  ©r	   rÙ   r�   r�   rm   rœ   rY   rZ   r[   r•   r   r$  s          rb   r   r   6  sR  € ô × Ñ  Ô&¬?×+JÑ+JÈ4Ô+PÜ%×2Ñ2°4Ó8ˆØˆØ!ò 	/ˆFØˆJÜ)×:Ñ:¸6ÓBˆKØ˜aÒÜ,×<Ñ<Ø�z 1§4¡4¨
¼E¿L¹LÈ!ÈQÈÓ<P 4Ó#Qó‘
ð  Ò!Ü,×>Ñ>Ø�z¨1¨#ô�
ð ×"Ñ" :Õ.ð	/ð ˆq�t‰tÐ'Ð:¨/Ò:Ð:ä!×2Ñ2°4Ó8€KØ�aÒÜ×.Ñ.Øˆt�Q—T‘T˜*¬e¯l©l¸A¸q¸6Ó.B�TÓCó
ˆð
 €Kð 
˜Ò	Ü×0Ñ0°°DÀ!ÀÔEˆØ€Krc   zaten::atleast_3dc                ó   — t        j                  |«      �rt        j                  |«      ròt        j                  |«      }g }|D ]Ã  }|}t        j                  |«      }|dk(  r>t        j
                  | || j                  dt        j                  g d¢«      ¬«      «      }nV|dk(  r3t        j                  | |dg¬«      }t        j                  | |dg¬«      }n|dk(  rt        j                  | |dg¬«      }|j                  |«       ŒÅ  | j                  d	g|¢­Ž S t        j                  |«      }|dk(  r?t        j
                  | || j                  dt        j                  g d¢«      ¬«      «      }|S |dk(  r4t        j                  | |dg¬«      }t        j                  | |dg¬«      }|S |dk(  rt        j                  | |dg¬«      }|S )
Nr   rM   )r„   r„   r„   rP   r„   r)  r‡   rL  r#  r*  r$  s          rb   r   r   W  sÅ  € ô × Ñ  Õ&¬?×+JÑ+JÈ4Ô+PÜ%×2Ñ2°4Ó8ˆØˆØ!ò 	/ˆFØˆJÜ)×:Ñ:¸6ÓBˆKØ˜aÒÜ,×<Ñ<Ø�z 1§4¡4¨
¼E¿L¹LÊÓ<S 4Ó#Tó‘
ð  Ò!Ü,×>Ñ>Ø�z¨1¨#ô�
ô -×>Ñ>Ø�z¨2¨$ô‘
ð  Ò!Ü,×>Ñ>Ø�z¨2¨$ô�
ð ×"Ñ" :Õ.ð%	/ð& ˆq�t‰tÐ'Ð:¨/Ò:Ð:ä!×2Ñ2°4Ó8€KØ�aÒÜ×.Ñ.Øˆt�Q—T‘T˜*¬e¯l©lº9Ó.E�TÓFó
ˆð €Kð 
˜Ò	Ü×0Ñ0°°DÀ!ÀÔEˆÜ×0Ñ0°°DÀ"ÀÔFˆð €Kð 
˜Ò	Ü×0Ñ0°°DÀ"ÀÔFˆØ€Krc   zprim::ConstantChunkc           
     óh  — | j                  d|«      }| j                  dt        j                  |gt        j                  ¬«      ¬«      }| j                  d||d¬«      }| j                  dt        j                  dgt        j                  ¬«      ¬«      }| j                  dt        j                  |gt        j                  ¬«      ¬«      }| j                  dt        j                  |dz
  gt        j                  ¬«      ¬«      }	| j                  d	||	«      }
| j                  d
|
|«      }g }t	        |«      D ]u  }| j                  dt        j                  |dz   gt        j                  ¬«      ¬«      }| j                  d||«      }|j                  | j                  d||||«      «       |}Œw |S )Nr†   rM   rN   rP   r}   r   r~   r„   r:  r½  r/  r;  )rY   rZ   r[   r=  r“   r   )r]   r^   r  r�   Úinput_shaperC  Úinput_shape_dimrB  r  Úchunk_size_minus_1Úinput_shape_dim_shiftÚ	chunk_dimrD  r{   r&   rE  s                   rb   r5   r5   ƒ  sb  € à—$‘$�w Ó%€KØ�4‰4�
¤E§L¡L°#°¼e¿j¹jÔ$Iˆ4ÓJ€DØ—d‘d˜8 [°$¸q�dÓA€OØ�D‰D�¤U§\¡\°1°#¼U¿Z¹ZÔ%HˆDÓI€EØ—‘�j¬%¯,©,¸°xÄuÇzÁzÔ*R�ÓS€JØŸ™ØœEŸL™L¨&°1©*¨¼U¿Z¹ZÔHð ó Ðð ŸD™D ¨Ð9KÓLÐØ—‘�UÐ1°:Ó>€IØ
€CÜ�6‹]ò ˆØ—‘�Z¬¯©°q¸1±u°gÄUÇZÁZÔ)P�ÓQˆØ�d‰d�5˜) UÓ+ˆØ�
‰
�1—4‘4˜  u¨c°4Ó8Ô9Ø‰ð	ð
 €Jrc   zaten::hstackc                óØ  — t        | |«      }| j                  d|| j                  dt        j                  dt        j                  ¬«      ¬«      «      }| j                  d|«      }| j                  d|«      }| j                  dt        j                  dt        j                  ¬«      ¬«      }| j                  d	||«      }t        j                  | d
|dd¬«      \  }\  }}	}
|j                  d|dd¬«      }t        j                  |j                  |«       |	j                  d|dd¬«      }t        j                  |	j                  |«       |j                  «       j                  «       }|S )Nrö   rM   r   rN   rP   r†   rJ  r„   r‘  r’  rL  )r“  r  r  r  )r   rY   rZ   r[   r=  r   r˜  r   r™  rš  rá   rî  )r]   rý   Úfirst_tensorÚfirst_tensor_shapeÚfirst_tensor_dimr¢  Úequal_to_oneÚif_op_greaterÚif_context_equalÚelse_context_equalr,  Ú	result_ifÚresult_elser®   s                 rb   r#   r#   ˜  sQ  € ä˜Q Ó,€KØ—4‘4ØØØ	�‰ˆZ¤§¡¨a´u·z±zÔ!BˆÓCó€Lð
 Ÿ™˜g |Ó4ÐØ—t‘t˜FÐ$6Ó7Ðà—‘�Z¬¯©°a¼u¿z¹zÔ)J�ÓK€IØ—4‘4˜Ð!1°9Ó=€Lô 	×$Ñ$ Q¨¨lÀQÐPQÔRñ	ØÙ.Ð	Ð-Ø	à ×#Ñ#Ø˜k°!Àð $ó €Iô 
×ÑÐ/×5Ñ5°yÔAØ$×'Ñ'Ø˜k°!Àð (ó €Kô 
×ÑÐ1×7Ñ7¸ÔEØ×ÑÓ!×(Ñ(Ó*€Fà€Mrc   zaten::vstackc                óD   — t        | |«      }| j                  d|dd¬«      S )Nr  r   r  )r   rY   )r]   rý   s     rb   rG   rG   ¸  s&   € ä˜Q Ó,€KØ�4‰4Ð$ k¸!Èˆ4ÓJÐJrc   )r]   újit_utils.GraphContextr^   ú_C.Valuer_   Úfloatr`   r?  )r]   r=  )F)rÇ   r�  r�   rà   rÈ   r�  rÅ   )r   )r   N)
r]   r=  rz   r>  r2   r>  rÍ   r>  rc  r>  )r]   r=  r�   zSequence[int] | Nonerú  Úbool)NNNNNN)r]   r=  r^   ztorch._C.Value)r]   r=  rý   r>  )fÚ__doc__Ú
__future__r   Ú	functoolsrš   r›  Útypingr   rZ   r   Útorch._Cr   rS  Ú
torch.onnxr   r   r	   r
   rV  r   rs   r   Útorch.onnx._internalr   r   Ú__all__ÚpartialÚonnx_symbolicÚ_onnx_symbolicÚquantized_argsÚ
parse_argsr"   r   r   r   r7   r<   r(   r3   Ú_apply_paramsrÉ   rÑ   r!   r;   r   r.   r-   rô   r÷   rþ   r   r   r)   r4   r   r   rB   r  rE   rC   r>   r   r:   r8   r@   r?   rD   r\  r   r6   r9   r2   r*   r,   r   rŠ  r=   rA   rF   r/   r&   r%   r'   rÃ  rÇ  rÓ  r×  rÞ  r$   r0   r    r+   r   r   r   r1   r   r   r   r5   r#   rG   © rc   rb   ú<module>rP     s  ðñ /å "ã Û 
Û Ý ã Ý Ý %÷÷ ÷ 9ò:€ðx #�×"Ñ" <×#=Ñ#=ÀRÔH€ñ Ð Ó!Ø€×Ñ Ó%Ø€×Ñ˜C  cÓ*òó +ó &ó "ðñ" �Óò>ó ð>ñD Ð!Ó"Ø€×Ñ˜C Ó%ò

ó &ó #ð

ñ Ð!Ó"Ø€×Ñ˜C Ó%ò

ó &ó #ð

ñ �Óò-ó ð-ñ �Óà€×Ñ Ó%Ø€×Ñ˜C  cÓ*ò3ó +ó &ó  ð3ñ Ð!Ó"àLQðxØòxó #ðxñv Ð%Ó&Ø€×Ñ˜C Ó%òPó &ó 'ðPñ ØØ+ˆo×+Ñ+Ð,@À!ÀYÓOÐPôñ ØØ+ˆo×+Ñ+Ð,@À!ÀYÓOÐPôñ ØØ+ˆo×+Ñ+Ð,@À!ÀYÓOÐPôñ ØØ+ˆo×+Ñ+Ð,?ÀÀHÓMÐNôñ ØØ+ˆo×+Ñ+Ð,AÀ1ÀhÓOÐPôñ Ø Ø+ˆo×+Ñ+Ð,BÀAÀxÓPÐQôñ ØØ+ˆo×+Ñ+Ð,@À!ÀWÓMÐNôòLó	ó	ó	ó	ó	ó	ó	ð8Lñ Ð%Ó&Ø€×Ñ  e¨U°E¸5À%ÈÓOðØòó Pó 'ðñ �ÓØ€×Ñ˜C  c¨3Ó/ó;ó 0ó  ð;ñ �Ó Ø€×Ñ˜C  c¨3Ó/ò
ó 0ó !ð
ñ& �ÓØ€×Ñ˜C  fÓ-ó
ó .ó  ð
ñ Ð%Ó&ò)ó 'ð)ñ
 Ð&Ó'ò2ó (ð2ñ  �Óò9ó ð9ñ Ð"Ó#ò#ó $ð#ñ Ð!Ó"ò5ó #ð5ñ
 �Óò0ó  ð0ñ �Óó-ó ð-ñ  �Óò5ó  ð5ñ �Óò3ó ð3ñ �Óò3ó  ð3ñ �ÓØ€×Ñ Ó%òCó &ó ðCñ �ÓòQó ðQñ Ð Ó!Ø€×Ñ˜C  c¨3Ó/ò&ó 0ó "ð&ñ Ð"Ó#Ø€×Ñ˜C  c¨3°Ó4ð&Øò&ó 5ó $ð&ñ �ÓØ€×Ñ˜C  c¨3°°VÓ<óó =ó ðñ �ÓØ€×Ñ˜C  c¨6Ó2óTó 3ó ðTñ �Ó Ø€×Ñ˜C  c¨6Ó2óó 3ó !ðñ �ÓØ€×Ñ˜C Ó%ó	ó &ó ð	ñ Ð!Ó"ò/ó #ð/ñ �ÓØ€×Ñ˜C  c¨3Ó/ó!Ió 0ó ð!IñH Ð(Ó)Ø€×Ñ˜C  c¨3Ó/ó6ó 0ó *ð6ñ �ÓØ€×Ñ˜C  cÓ*ó
5ó +ó  ð
5ó6ñr Ð'Ó(ó7ó )ð7ñ Ð(Ó)ÙÐ(Ó)ÙÐ(Ó)ò5ó *ó *ó *ð5ñ Ð)Ó*ÙÐ)Ó*ÙÐ)Ó*ò5ó +ó +ó +ð5ñ �ÓðTØðTàðTð 
ðTð ð	Tð
 òTó ðTñ( Ð"Ó#òó $ðñ �Óò/ó  ð/ñ �ÓòD
ó  ðD
ñN Ð#Ó$Ø€×Ñ˜C Ó%ò0ó &ó %ð0ñ �ÓØ€×Ñ °eÔ<ó6ó =ó ð6ñ �Ó ó/;ó !ð/;ñd Ð!Ó"ò=ó #ð=ñ �
Óò>ó ð>ñ �Óò(ó ð(ñ& Ð"Ó#òAó $ðAñ Ð"Ó#ò9ó $ð9ñ Ð+Ó,ÙÐ!Ó"òó #ó -ðñ@ Ð*Ó+ÙÐ!Ó"òó #ó ,ðð@(Øó(óV#óñ  �ÓØ€×Ñ˜C  t¨T°4Ó8ò0Dó 9ó  ð0Dñf �ÓòUó  ðUñ
 �Ó Ø€×Ñ  e¨UÓ3Ø€×Ñ˜C  cÓ*òNó +ó 4ó !ðNñ0 Ð*Ó+Ø€×Ñ˜C  d¨C°Ó5ðYØðYð 
ð	Yð
 òYó 6ó ,ðYñ Ð%Ó&Ø€×Ñ˜C  c¨3°°S¸#¸sÀCÓHðØòó Ió 'ðñ4 Ð(Ó)Ø€×Ñ˜C  c¨3Ó/ò"ó 0ó *ð"ñJ �Óò*ó ð*ñ  �Óð
 ØØ
ØØØð Øò ó  ð ñ, Ð"Ó#òó $ðñ2 Ð"Ó#òó $ðñ@ Ð"Ó#ò(ó $ð(ñV Ð%Ó&òó 'ðñ( �Óòó  ðñ> �ÓòKó  ñKrc   