Ë
    N²jßÍ  ã                   ó  — U d dl Z d dlmZ d dlmZmZmZ eeef   Z	d dl
Z
dee   dee   fd„Zdee   dee   dee   fd„Zdee   dedee   fd	„Zd
ee   dee   fd„Zd
ee   fd„Zd
ee   fd„Zdee   dee   fd„Zd
ee   dee   fd„Zd
ee   dee   defd„Zdee   dedee   fd„Zdee   fd„Zd
ee   dee   fd„Zddœd
ee   dee   defd„Zd
ee   deee      ded efd!„Zd
ee   d"edefd#„Zd$ed%efd&„Zd'ed(ed)ed*ed+ed,ed-efd.„Zd'ed(ed)ed+ed,ed-efd/„Zd0ee   d1ed2ed3ed4ed5ed6ed7ed8ed9ed:ed;ed<ed=efd>„Zd0ee   d?ee   d+ee   d@ee   d,ee   d-efdA„Z d0ee   d?ee   d+ee   d@ee   d,ee   d-efdB„Z!d0ee   dCeee      dDeee      fdE„Z"d
ee   dFee   fdG„Z#d
ee   dHee   fdI„Z$d
ee   dJee   fdK„Z%dLee   d"efdM„Z&dLee   fdN„Z'dLee   d"efdO„Z(dLee   dPee   fdQ„Z)d
ee   d"edRee   fdS„Z*	 	 	 �ddTee   dUee   dVedWedXef
dY„Z+dZ„ Z,d
ee   d"ed[ee   d\ee   d]ef
d^„Z-d_eee      fd`„Z.d"edaeee      fdb„Z/dHee   fdc„Z0ddee   deee   dfedRefdg„Z1d_eee      d"efdh„Z2d_eee      d"efdi„Z3d
ee   d"edRefdj„Z4dkee   dlee   fdm„Z5d
ee   fdn„Z6d
ee   doedpefdq„Z7d0ee   dTee   dreee      fds„Z8d
ee   dtee   dFee   duedvef
dw„Z9dxee   defdy„Z:d0ee   dzee   dreee      d+ee   d@ee   d,ee   d{efd|„Z;d}ee   d~ee   dreee      d+ee   d@ee   d,ee   d{efd„Z<d0ee   dTee   dreee      d+ee   d@ee   d,ee   d{efd€„Z=d0ee   dTee   dreee      d+ee   d@ee   d,ee   d{efd�„Z>d‚ee   d0ee   dTee   dƒeee      fd„„Z?	 	 	 	 	 	 �dd0ee   dTee   dreee      d+eee      d@eee      d…eee      d{ed,eee      dee   fd†„Z@d0ee   dTee   dreee      d+ee   d@ee   d,ee   d‡ed…ee   d{edee   fdˆ„ZAd0ee   dTee   dreee      d+ee   d@ee   d,ee   d‡ed…ee   d{ed‰edŠed‹edŒedee   fd�„ZBd0ee   dTeee      dreee      dŽeee      d�eee      d�ed‘ed’ed‹efd“„ZCd0ee   dTee   dreee      d+ee   d@ee   d,ee   d{efd”„ZD�dd"ed•ed–efd—„ZEd0efd˜„ZFdLee   fd™„ZGd\e	dedšed›edœef
d�„ZHd[e	d\e	dedšed›edœefdž„ZId[e	d\e	d]e	dedšed›edœefdŸ„ZJd0ee   dPee   fd „ZKd
ee   d¡ee   d¢ee   dee   fd£„ZLd0ee   d¤ed¥efd¦„ZMd0ee   fd§„ZNd0ee   fd¨„ZOd
ee   d"ed©efdª„ZP	 �dd
ee   d"ee   d©edee   fd«„ZQd
ee   dFee   dee   fd¬„ZRd
ee   dee   fd­„ZS�dd
ee   d®ed"edeTee   ee   f   fd¯„ZUd
ee   d°ee   dTeee      d±edeTee   ee   f   f
d²„ZVd0ee   d³ee   deTee   ee   ee   f   fd´„ZWd0ee   dTeee      dreee      dŽeee      d�eee      d�edeTee   ee   ee   f   fdµ„ZXd0ee   dTeee      dreee      dŽeee      d�eee      deTee   ee   ee   ee   f   fd¶„ZY	 	 	 	 �dd
ee   d°ee   dTeee      d±ed·ed¸edee   fd¹„ZZ	 e
j¶                  j¸                  Z]i a^e_e`e]f   eadº<   i Zbe_e`eTe]e]f   f   ead»<   i Zce_ee]f   ead¼<   d½efd¾„Zdd¿e`d½efdÀ„Zed¿e`dÁedÂefdÃ„Zf eedÄe«        eedÅe«        eedÆe«        eedÇe«        eedÈeF«        eedÉeF«        eedÊe«        eedËe«        eedÌeH«        eedÍeI«        eedÎeJ«        eedÏe'«        eedÐe(«        eedÑe)«        eedÒe&«        eedÓe-«        eedÔe4«        eedÕe*«        eedÖe«        eed×e«        eedØe«        eedÙe«        eedÚe+«        eedÛe#«        eedÜe$«        eedÝe%«        eedÞe5«        eedße8«        eedàe «        eedáe!«        eedâe6«        eedãe7«        eedäe=«        eedåe>«        eedæeC«        eedçeD«        eedèe?«        eedéeA«        eedêeB«        eedëe@«        eedìeM«        eedíe2«        eedîe3«        eedïeK«        eedðeL«        eedñe«        eedòe«        eedóe«        eedôe«        eedõe«        eedöe«        eed÷eF«        eedøeF«        eedùe9«        eedúe"«        eedûe«        eedüe«        eedýe«        eedþe«        eedÿeQ«        ee�d eR«        ee�deS«        ee�deU«        ee�deV«        ee�deW«        ee�deX«        ee�deX«        ee�deX«        ee�deY«        ee�d	eZ«        ee�d
e«        ee�de«        ee�de«        ef�deNeO«       y(  é    N)ÚCallable)ÚAnyÚOptionalÚUnionÚaÚbc           	      óD  — t        | «      }t        |«      }t        ||«      }g }t        |«      D ]m  }|dz
  |z
  }|dz
  |z
  }|dz
  |z
  }	|dk\  r| |   nd}
|	dk\  r||	   nd}|
|k7  r|
dk7  r|dk7  rt        d|
› d|› d|› �«      ‚|j	                  |
dk(  r|n|
«       Œo |S )Né   r   zThe size of tensor a z" must match the size of tensor b (z) at non-singleton dimension )ÚlenÚmaxÚrangeÚAssertionErrorÚappend)r   r   ÚdimsAÚdimsBÚndimÚexpandedSizesÚiÚoffsetÚdimAÚdimBÚsizeAÚsizeBs               úY/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/jit/_shape_functions.pyÚ	broadcastr      sß   € Ü�‹F€EÜ�‹F€EÜˆu�eÓ€DØ!€Mä�4‹[ò =ˆØ˜‘˜A‘ˆØ�q‰y˜6Ñ!ˆØ�q‰y˜6Ñ!ˆØ  AšI��$’¨AˆØ  AšI��$’¨Aˆà�EŠ>˜e qšj¨U°aªZä Ø'¨ wÐ.PÐQVÐPWÐWtÐuvÐtwÐxóð ð 	×Ñ e¨q¢j™U°eÕ<ð=ð Ðó    Úcc                 ó.   — t        t        | |«      |«      S ©N©r   ©r   r   r   s      r   Úbroadcast_threer"   4   s   € Ü”Y˜q !“_ aÓ(Ð(r   c                 ó   — t        | |«      S r   r    r!   s      r   Úbroadcast_one_threer$   8   s   € Ü�Q˜‹?Ðr   ÚselfÚoutc                 ó®  — t        |«      dk7  rt        dt        |«      › �«      ‚t        | «      dk(  s%t        | «      dk(  st        dt        | «      › �«      ‚t        dt        | «      «      D ]  }| |   dk(  sŒt        d|› d	�«      ‚ g }t        dt        | «      dz
  «      D ]  }|j                  | |   «       Œ |D ]  }|j                  |«       Œ |S )
Né   z'Expected out to have length 2, but got é   é   z-Expected self to have length 3 or 4, but got r
   r   zExpected self[z] to be non-zero, but got 0)r   r   r   r   )r%   r&   r   ÚshapeÚelems        r   Úadaptive_avg_pool2dr-   <   sç   € Ü
ˆ3ƒx�1‚}ÜÐFÄsÈ3ÃxÀjÐQÓRÐRÜ�‹I˜ŠNœc $›i¨1šnÜØ;¼CÀ»I¸;ÐGó
ð 	
ô �1”c˜$“iÓ ò RˆØ�‰7�a‹<Ü  >°!°Ð4OÐ!PÓQÐQðRð €EÜ�1”c˜$“i !‘mÓ$ò ˆØ�‰�T˜!‘WÕðàò ˆØ�‰�TÕðà€Lr   c                 ó:   — g }| D ]  }|j                  |«       Œ |S r   ©r   )r%   r&   r,   s      r   Ú_copyr0   O   s'   € Ø€CØò ˆØ�
‰
�4Õðà€Jr   c                 ó   — t        | «      S r   ©r0   ©r%   s    r   Úunaryr4   V   s   € Ü�‹;Ðr   c                 ó  — t        | «      }t        |«      }||kD  rt        d|› d|› d�«      ‚t        |«      D ]B  }||z
  |z   }| |   }|dk\  r||   nd}||k7  sŒ"|dk7  sŒ(t        dj                  |||«      «      ‚ t	        | «      S )NzThe dims of tensor b (z6) must be less than or equal to the dims of tensor a (z) r   r
   zZThe size of tensor a {} must match the size of tensor b ({}) at non-singleton dimension {})r   r   r   Úformatr0   )r   r   r   r   r   r   r   r   s           r   Úbroadcast_inplacer7   Z   s³   € Ü�‹F€EÜ�‹F€EØˆu‚}ÜØ$ U GÐ+aÐbgÐahÐhjÐkó
ð 	
ô �e“ò 	ˆØ�u‰}˜tÑ#ˆØ�$‘ˆØ  AšI��$’¨AˆØ�E‹>˜e q›jä ð4ß4:±F¸5À%ÈÓ4Nóð ð	ô �‹8€Or   Úsizesc                 óÂ  — t        |«      t        | «      k  r$t        dt        |«      › dt        | «      › d�«      ‚t        |«      }t        | «      }|dk(  rt        |«      S g }t        |«      D ]m  }|dz
  |z
  }|dz
  |z
  }|dk\  r| |   nd}||   }	|	dk(  r|dk  rt        d|› d�«      ‚|}	||	k7  r|dk7  rt        d	|› d
|	› d�«      ‚|	}|j	                  |«       Œo |S )NzExpected len(sizes) (z) >= len(self) (ú)r   r
   éÿÿÿÿúExpected dim (z) >= 0 when targetSize is -1zExpected size (z ) == 1 when size != targetSize ()r   r   r0   r   r   )
r%   r8   r   Ú
tensor_dimr&   r   r   ÚdimÚsizeÚ
targetSizes
             r   ÚexpandrA   n   s  € Ü
ˆ5ƒz”C˜“IÒÜØ#¤C¨£J <Ð/?ÄÀDÃ	¸{È!ÐLó
ð 	
ô ˆu‹:€DÜ�T“€JØˆq‚yÜ�U‹|ÐØ€CÜ�4‹[ò ˆØ˜‘˜A‘ˆØ˜1‰n˜vÑ%ˆØ 1šHˆt�CŠy¨!ˆØ˜1‘Xˆ
Ø˜ÒØ�QŠwÜ$ ~°c°UÐ:VÐ%WÓXÐXØˆJØ�:ÒØ�qŠyÜ$Ø% d VÐ+KÈJÈ<ÐWXÐYóð ð ˆDØ�
‰
�4Õðð  €Jr   Úinp0c                 ó   — t        | |«      S r   )rA   )r%   r8   rB   s      r   Úexpand_one_unusedrD   ‹   s   € Ü�$˜ÓÐr   r+   ÚnumelÚreturnc                 ó  — d}d }t        t        | «      «      D ]5  }| |   dk(  r|�t        d«      ‚|}Œ| |   dk\  r	|| |   z  }Œ,t        d«      ‚ ||k(  s|�|dkD  r||z  dk(  st        d«      ‚t        | «      }|�||z  ||<   |S )Nr
   r;   z"only one dimension can be inferredr   zinvalid shape dimensionszinvalid shape)r   r   r   r0   )r+   rE   ÚnewsizeÚ	infer_dimr>   r&   s         r   Úinfer_size_implrJ   �   sº   € Ø€GØ#€IÜ”S˜“ZÓ ò =ˆØ�‰:˜ÒØÐ$Ü$Ð%IÓJÐJØ‰IØ�3‰Z˜1Š_Ø�u˜S‘zÑ!‰Gä Ð!;Ó<Ð<ð=ð 	�ÒØÐ! g°¢k°e¸g±oÈÒ6Jä˜_Ó-Ð-Ü
�‹,€CØÐØ 'Ñ)ˆˆI‰Ø€Jr   c                 ó"   — d}| D ]  }||z  }Œ	 |S ©Nr
   © )r8   rE   r,   s      r   rE   rE   ¦   s$   € Ø€EØò ˆØ�‰‰ðà€Lr   c                 ó,   — t        |t        | «      «      S r   )rJ   rE   )r%   r8   s     r   ÚviewrO   ­   s   € Ü˜5¤%¨£+Ó.Ð.r   F)ÚimplicitrP   c                ó   — t        | |«      S r   )rO   )r%   r8   rP   s      r   Úview_one_unusedrR   ±   s   € Ü��eÓÐr   Úopt_dimsÚkeep_dimÚdtc           	      ó:  — g }|�t        |«      dk(  rt        t        t        | «      «      «      }n|}t        t        | «      «      D ]Q  }d}|D ]  }|t        |t        | «      «      k(  sŒd}Œ |r|sŒ,|j	                  d«       Œ>|j	                  | |   «       ŒS |S )Nr   FTr
   )r   Úlistr   Úmaybe_wrap_dimr   )	r%   rS   rT   rU   r&   ÚdimsÚidxÚis_mean_dimÚ
reduce_dims	            r   Úsum_mean_dimr]   µ   s    € ð €CØÐœ3˜x›=¨AÒ-Üœu¤S¨£YÓ/Ó0‰àˆä”S˜“YÓò 	"ˆØ!ˆØò 	#ˆJØ”n Z´°T³Ó;Ó;Ø"‘ð	#ñ ÚØ—
‘
˜1•à�J‰J�t˜C‘yÕ!ð	"ð €Jr   r>   c                 ó(   — t        | |g|d «      }||fS r   )r]   )r%   r>   rT   r&   s       r   Úmax_dimr_   Ë   s   € Ü
�t˜c˜U H¨dÓ
3€CØ�ˆ8€Or   ÚxÚyc                 ó   — | |z  S r   rM   )r`   ra   s     r   Údiv_rtnrc   Ñ   s   € Ø�‰6€Mr   Ú	inputSizeÚ
kernelSizeÚpad_lÚpad_rÚstrideÚdilationÚ	ceil_modec                 ó†   — t        | |z   |z   ||dz
  z  z
  dz
  |r|dz
  ndz   |«      dz   }|r|dz
  |z  | |z   k\  r|dz
  }|S ©Nr
   r   )rc   )rd   re   rf   rg   rh   ri   rj   Ú
outputSizes           r   Úpooling_output_shape_pad_lrrn   Õ   sŒ   € ô 	ØØñàñð ˜* q™.Ñ)ñ*ð ñ	ñ
 'ˆv˜Šz¨Añ/ð ó	
ð ñ		ð ñ Ø˜‰N˜fÑ$¨	°EÑ(9Ò9Ø# a™ˆJØÐr   c           	      óD   — |dk(  rt        d«      ‚t        | ||||||«      S )Nr   zstride should not be zero)r   rn   )rd   re   rf   rh   ri   rj   s         r   Úpooling_output_shaperp   ð   s3   € ð �‚{ÜÐ8Ó9Ð9Ü&Ø�:˜u e¨V°X¸yóð r   ÚinputÚkHÚkWÚdHÚdWÚpadHÚpadWÚ	dilationHÚ	dilationWÚnInputPlaneÚinputHeightÚ
inputWidthÚoutputHeightÚoutputWidthc                 óØ  — t        | «      }|dkD  r|dkD  st        d|› d|› d�«      ‚|dkD  r|dkD  st        d|› d|› d�«      ‚|dkD  r|dkD  st        d|› d|› d�«      ‚| d	   dk7  xr | d
   dk7  }|dk(  r
| d   dk7  r|s |dk(  r
|r| d   dk7  st        d|› d| › �«      ‚|d
z  |k\  r|d
z  |k\  st        d|d
z  › d|› d|d
z  › d|› d�	«      ‚|d	k\  r|d	k\  st        d|› d|› d�«      ‚y )Nr   zExpected kW (z) > 0 and kH (z) > 0zExpected dW (z) > 0 and dH (zExpected dilationH (z) > 0 and dilationW (r
   r(   r)   r*   zInvalid input dimensions: ndim=z, input=zExpected kW//2 (z) >= padW (z) and kH//2 (z) >= padH (r:   zExpected outputWidth (z) >= 1 and outputHeight (z) >= 1©r   r   )rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   Ú
valid_dimss                   r   Úpool2d_shape_checkr‚   ÿ   sn  € ô  ˆu‹:€Dà�ŠF�r˜A’vÜ˜}¨R¨D°¸r¸dÀ%ÐHÓIÐIØ�ŠF�r˜A’vÜ˜}¨R¨D°¸r¸dÀ%ÐHÓIÐIØ˜ŠM˜i¨!šmÜØ" 9 +Ð-BÀ9À+ÈUÐSó
ð 	
ð �q‘˜Q‘Ò0 5¨¡8¨q¡=€Jà�Š	Ø�!‰H˜ŠMÙØ�AŠI™*¨¨q©°QªäÐ>¸t¸fÀHÈUÈGÐTÓUÐUà�!‰G�tŠO  a¡¨4¢ÜØ˜r Q™w˜i {°4°&ð 9Ø˜A‘g�Y˜k¨$¨¨qð2ó
ð 	
ð ˜1Ò °Ò!2ÜØ$ [ Mð 2Ø)˜N¨&ð2ó
ð 	
ð "3r   Úkernel_sizeÚpaddingc                 óº  — t        |«      dk(  st        |«      dk(  st        d«      ‚|d   }t        |«      dk(  r|n|d   }t        |«      dk(  s't        |«      dk(  st        |«      dk(  st        d«      ‚t        |«      dk(  r|n|d   }t        |«      dk(  r|}	nt        |«      dk(  r|}	n|d   }	t        |«      dk(  st        |«      dk(  st        d«      ‚|d   }
t        |«      dk(  r|
n|d   }t        |«      dk(  st        |«      dk(  st        d«      ‚|d   }t        |«      dk(  r|n|d   }t        | «      dk(  s%t        | «      d	k(  st        d
t        | «      › �«      ‚t        | «      d	k(  r| d   nd}| d   }| d   }| d   }t        |||
|||«      }t        ||||	||«      }t        | ||||	|
||||||||«       t        | «      dk(  r|||gS ||||gS )Nr
   r(   zKmax_pool2d: kernel_size must either be a single int, or a tuple of two intsr   zOmax_pool2d: stride must either be omitted, a single int, or a tuple of two intszGmax_pool2d: padding must either be a single int, or a tuple of two intszHmax_pool2d: dilation must be either a single int, or a tuple of two intsr)   r*   z&Expected input length 3 or 4, but got éüÿÿÿéýÿÿÿéþÿÿÿr;   )r   r   rp   r‚   )rq   rƒ   rh   r„   ri   rj   rr   rs   rt   ru   rv   rw   rx   ry   Únbatchrz   r{   r|   r}   r~   s                       r   Ú
max_pool2drŠ   /  s3  € ô �Ó Ò!¤S¨Ó%5¸Ò%:ÜØYó
ð 	
ð 
�Q‰€BÜ�;Ó 1Ò$‰¨+°a©.€Bä�‹K˜1Ò¤ F£¨qÒ 0´C¸³KÀ1Ò4DÜØ]ó
ð 	
ô �6‹{˜aÒ‰ V¨A¡Y€BÜ
ˆ6ƒ{�aÒØ‰Ü	ˆV‹˜Ò	Ø‰à�A‰Yˆä�‹L˜AÒ¤ W£°Ò!2ÜØUó
ð 	
ð �1‰:€DÜ�w“< 1Ò$‰4¨'°!©*€Dä�‹M˜QÒ¤# h£-°1Ò"4ÜØVó
ð 	
ð ˜‘€IÜ  ›]¨aÒ/‘	°X¸a±[€Iä�‹J˜!ŠOœs 5›z¨QšÜÐEÄcÈ%ÃjÀ\ÐRÓSÐSä˜e›*¨š/ˆU�2ŠY¨q€FØ˜‘)€KØ˜‘)€KØ�r‘€Jä'¨°R¸¸rÀ9ÈiÓX€LÜ& z°2°t¸RÀÈIÓV€KäØØ
Ø
Ø
Ø
ØØØØØØØØØôô" ˆ5ƒz�Q‚Ø˜\¨;Ð7Ð7à˜ \°;Ð?Ð?r   c                 ó*   — t        | |||||«      }||fS r   )rŠ   )rq   rƒ   rh   r„   ri   rj   r&   s          r   Úmax_pool2d_with_indicesrŒ   z  s"   € ô �U˜K¨°¸(ÀIÓ
N€CØ�ˆ:Ðr   Úoutput_sizeÚscale_factorsc                 ó$  — g }|j                  | d   «       |j                  | d   «       |€|€t        d«      ‚|�Z|�t        d«      ‚t        |«      dk7  rt        dt        |«      › �«      ‚|j                  |d   «       |j                  |d   «       |�x|�t        d«      ‚t        |«      dk7  rt        dt        |«      › �«      ‚|j                  t        | d   |d   z  «      «       |j                  t        | d   |d   z  «      «       |S )	Nr   r
   z5Either output_size or scale_factors must be presentedz9Must specify exactly one of output_size and scale_factorsr(   z/Expected output_size to have length 2, but got z1Expected scale_factors to have length 2, but got r)   )r   r   r   Úint)rq   r�   rŽ   r&   s       r   Úupsample_nearest2dr‘   †  s7  € ð
 €CØ‡J�Jˆu�Q‰xÔØ‡J�Jˆu�Q‰xÔàÐ Ð!4ÜÐTÓUÐUàÐØÐ$Ü ØKóð ô ˆ{Ó˜qÒ Ü ØAÄ#ÀkÓBRÐASÐTóð ð 	�
‰
�;˜q‘>Ô"Ø�
‰
�;˜q‘>Ô"àÐ ØÐ"Ü ØKóð ô ˆ}Ó Ò"Ü ØCÄCÈÓDVÐCWÐXóð ð 	�
‰
”3�u˜Q‘x -°Ñ"2Ñ2Ó3Ô4Ø�
‰
”3�u˜Q‘x -°Ñ"2Ñ2Ó3Ô4à€Jr   Úmat2c                 óò   — t        | «      dk7  rt        dt        | «      › d�«      ‚t        |«      dk7  rt        dt        |«      › d�«      ‚| d   |d   k7  rt        d| d   › d|d   › �«      ‚| d   |d   gS )	Nr(   zself must be a matrix (got z dimensions)zmat2 must be a matrix (got r
   r   z.Matrix dimensions don't match for mm: self[1]=ú
, mat2[0]=r€   ©r%   r’   s     r   Úmmr–   ­  s—   € Ü
ˆ4ƒy�A‚~ÜÐ:¼3¸t»9¸+À\ÐRÓSÐSÜ
ˆ4ƒy�A‚~ÜÐ:¼3¸t»9¸+À\ÐRÓSÐSàˆA�w�$�q‘'ÒÜØ<¸TÀ!¹W¸IÀZÐPTÐUVÑPWÈyÐYó
ð 	
ð �‰G�T˜!‘WÐÐr   Útensorc                 óÌ   — t        | «      dk(  rt        |«      dk(  s#t        dt        | «      › dt        |«      › �«      ‚| d   |d   k7  rt        d| d   › d|d   › �«      ‚g }|S )Nr
   z+Expected 1D tensors for dot, got len(self)=z, len(tensor)=r   z(Dot product dimension mismatch: self[0]=z, tensor[0]=r€   )r%   r—   r&   s      r   Údotr™   º  sˆ   € Ü�‹I˜ŠNœs 6›{¨aÒ/ÜØ9¼#¸d»)¸ð EÜ˜v›;˜-ð)ó
ð 	
ð ˆA�w�&˜‘)ÒÜØ6°t¸A±w°i¸|ÈFÐSTÉIÈ;ÐWó
ð 	
ð €CØ€Jr   Úvecc                 óÐ   — t        | «      dk(  rt        |«      dk(  s#t        dt        | «      › dt        |«      › �«      ‚| d   |d   k7  rt        d| d   › d|d   › �«      ‚| d   gS )Nr(   r
   z0Expected 2D matrix and 1D vector, got len(self)=z, len(vec)=r   z*Matrix-vector dimension mismatch: self[1]=z	, vec[0]=r€   )r%   rš   s     r   Úmvrœ   È  sˆ   € Ü�‹I˜ŠNœs 3›x¨1š}ÜØ>¼sÀ4»y¸kð JÜ˜C›�zð#ó
ð 	
ð ˆA�w�#�a‘&ÒÜØ8¸¸a¹¸	ÀÈ3ÈqÉ6È(ÐSó
ð 	
ð �‰Gˆ9Ðr   Úlic                 óp   — t        |t        | «      dz   «      }t        | «      }|j                  |d«       |S rL   )rX   r   r0   Úinsert)r�   r>   r&   s      r   Ú	unsqueezer    Ö  s2   € Ü
˜œc "›g¨™kÓ
*€CÜ
�‹)€CØ‡J�Jˆs�AÔØ€Jr   c                 óv   — g }t        t        | «      «      D ]  }| |   dk7  sŒ|j                  | |   «       Œ! |S rL   )r   r   r   )r�   r&   r   s      r   Úsqueeze_nodimr¢   Ý  s@   € Ø€CÜ”3�r“7‹^ò ˆØˆa‰5�A‹:Ø�J‰J�r˜!‘uÕðð €Jr   c                 óÔ   — g }t        |t        | «      «      }t        t        | «      «      D ]9  }||k(  r| |   dk7  sŒ|j                  | |   «       Œ&|j                  | |   «       Œ; |S rL   )rX   r   r   r   )r�   r>   r&   Úwrapped_dimr   s        r   Úsqueezer¥   å  sh   € Ø€CÜ  ¤c¨"£gÓ.€KÜ”3�r“7‹^ò ˆØ�ÒØ�!‰u˜‹zØ—
‘
˜2˜a™5Õ!à�J‰J�r˜!‘uÕðð €Jr   rY   c                 óF  — t        |«      dk(  r| S t        |«      }t        t        |«      «      D ]  }t        ||   t        | «      «      ||<   Œ g }t        t        | «      «      D ]8  }| |   dk(  r||vsŒ|j	                  | |   «       Œ%|j	                  | |   «       Œ: |S ©Nr   r
   )r   r0   r   rX   r   )r�   rY   Úwrapped_dimsr   Úresults        r   Úsqueeze_dimsrª   ñ  s£   € Ü
ˆ4ƒy�A‚~Øˆ	Ü˜“;€LÜ”3�t“9Óò CˆÜ(¨°a©¼#¸b»'ÓBˆ�QŠðCà€FÜ”3�r“7‹^ò !ˆØˆa‰5�AŠ:Ø˜Ò$Ø—‘˜b ™eÕ$à�M‰M˜"˜Q™%Õ ð!ð €Mr   Úindexc                 óx  — t        |t        | «      «      }t        |«      }t        |«      dkD  rt        dt        |«      › �«      ‚|dk(  s)|t        | «      k  st        d|› dt        | «      › d�«      ‚g }t	        t        | «      «      D ]-  }||k(  r|j                  |«       Œ|j                  | |   «       Œ/ |S )Nr
   z"Expected len(index) <= 1, but got r   r<   z) == 0 or dim < len(self) (r:   )rX   r   Úmultiply_integersr   r   r   )r%   r>   r«   rE   Úresult_sizer   s         r   Úindex_selectr¯     sÁ   € Ü
˜œc $›iÓ
(€CÜ˜eÓ$€EÜ
ˆ5ƒz�A‚~ÜÐAÄ#ÀeÃ*ÀÐNÓOÐOØ�1ŠH˜œc $›išÜØ˜S˜EÐ!<¼SÀ»Y¸KÀqÐIó
ð 	
ð  €KÜ”3�t“9Óò (ˆØ�!Š8Ø×Ñ˜uÕ%à×Ñ˜t A™wÕ'ð	(ð
 Ðr   ÚweightÚindicesÚpadding_idxÚscale_grad_by_freqÚsparsec                 óÆ   — t        | «      dk7  rt        dt        | «      › d�«      ‚t        |«      dk(  rt        | d|«      S t        |«      }|j	                  | d   «       |S )Nr(   z"Expected weight to be 2D, but got ÚDr
   r   )r   r   r¯   r0   r   )r°   r±   r²   r³   r´   r?   s         r   Ú	embeddingr·     sb   € ô ˆ6ƒ{�aÒÜÐAÄ#ÀfÃ+ÀÈaÐPÓQÐQÜ
ˆ7ƒ|�qÒÜ˜F A wÓ/Ð/Ü�‹>€DØ‡K�K��q‘	ÔØ€Kr   c                   ó   — y)Nl   ÿÿÿÿ rM   rM   r   r   Úmax_intr¹   #  s   € Ør   ÚstartÚendÚstepc                 ó„  — t        | «      }|dk(  rt        d«      ‚t        ||«      }|�|nd}|�|n	t        «       }|dk  rt        d|› �«      ‚|t        «       k(  rd}|dk  r|| |   z  }|dk  r|| |   z  }|dk  rd}n|| |   kD  r| |   }||k  r|}n|| |   k\  r| |   }||z
  }t	        | «      }	||z   dz
  |z  |	|<   |	S )Nr   z#Cannot slice a 0-dimensional tensorzExpected step > 0, but got r
   )r   r   rX   r¹   r0   )
r%   r>   rº   r»   r¼   r   Ú	start_valÚend_valÚ	slice_lenr&   s
             r   ÚslicerÁ   '  s  € ô ˆt‹9€DØˆq‚yÜÐBÓCÐCÜ
˜˜dÓ
#€CØÐ*‘°€IØ�_‰c¬'«)€GØˆq‚yÜÐ:¸4¸&ÐAÓBÐBØ”G“IÒØˆ	Ø�1‚}Ø�T˜#‘YÑˆ	Ø�‚{Ø�4˜‘9ÑˆØ�1‚}Ø‰	Ø	�T˜#‘YÒ	Ø˜‘Iˆ	Ø�ÒØ‰Ø	�D˜‘IÒ	Ø�s‘)ˆØ˜)Ñ#€IÜ
�‹+€CØ˜DÑ  1Ñ$¨Ñ-€Cˆ�HØ€Jr   Útensorsc                 óD   — | D ]  }t        |«      dk  sŒt        d«      ‚ y )Nr   z+Cannot concatenate tensor with 0 dimensionsr€   )rÂ   r—   s     r   Úcheck_cat_no_zero_dimrÄ   F  s+   € Øò PˆÜˆv‹;˜!ÓÜ Ð!NÓOÐOñPr   Útensor_sizesc                 ó~   — d }|D ]1  }t        |«      dk(  r	|d   dk(  rŒ|�Œt        | t        |«      «      }Œ3 |€| }|S rl   )r   rX   )r>   rÅ   Úout_dimr?   s       r   Úlegacy_cat_wrap_dimrÈ   L  sQ   € Ø!€GØò 9ˆÜ�D“	˜Q’ 4¨¡7¨a£<Ø‰Ü(¨¬c°$«iÓ8‘ð9ð €ØˆØ€Nr   c                 ó>   — t        | «      dk(  xr t        | «      dk(  S r§   ©rE   r   )r—   s    r   Úshould_skiprË   W  s   € Ü�‹=˜AÑÒ2¤# f£+°Ñ"2Ð2r   ÚfirstÚsecondÚ	dimensionc                 óÚ   — t        | «      }t        |«      }||k7  rt        d|› d|› �«      ‚t        d|«      D ]0  }||k7  sŒ	| |   ||   k7  sŒt        d|› d| |   › d||   › d|› �«      ‚ y )Nz1Tensors must have same number of dimensions, got z and r   z0Sizes of tensors must match except in dimension ú, got z at dimension )r   r   r   )rÌ   rÍ   rÎ   r«   Ú
first_dimsÚsecond_dimsr>   s          r   Úcheck_cat_shape_except_dimrÓ   [  s§   € ô �U“€JÜ�f“+€KØ�[Ò ÜØ?À
¸|È5Øˆmðó
ð 	
ô �Q˜
Ó#ò ˆØ�)ÓØ�S‰z˜V C™[Ó(Ü$ØFÀyÀkð RØ  ™:˜, e¨F°3©K¨=¸ÀsÀeðMóð ñr   c                 óB  — t        | «       t        || «      }t        | «      dk  rt        d«      ‚d }| D ]  }t	        |«      rŒ|}Œ |€dgS d}t        t        | «      «      D ])  }| |   }t	        |«      rŒt        ||||«       |||   z   }Œ+ t        |«      }|||<   |S )Nr   z(Cannot concatenate empty list of tensors)rÄ   rÈ   r   r   rË   r   rÓ   r0   )rÂ   r>   Únot_skipped_tensorr—   Úcat_dim_sizer   r®   s          r   Úcatr×   n  sÈ   € Ü˜'Ô"Ü
˜c 7Ó
+€CÜ
ˆ7ƒ|�qÒÜÐGÓHÐHØ.2ÐØò (ˆÜ˜6Õ"Ø!'Ñð(ð Ð!Øˆsˆ
à€Lä”3�w“<Ó ò 6ˆØ˜‘ˆÜ˜6Õ"Ü&Ð'9¸6À3ÈÔJØ'¨&°©+Ñ5‰Lð	6ô Ð*Ó+€KØ#€K�ÑØÐr   c                 óf   — g }| D ]  }t        ||«      }|j                  |«       Œ! t        ||«      S r   )r    r   r×   )rÂ   r>   Úunsqueezed_tensorsr—   Ú
unsqueezeds        r   ÚstackrÛ   ‡  sA   € Ø*,ÐØò .ˆÜ˜v sÓ+ˆ
Ø×!Ñ! *Õ-ð.ô Ð! 3Ó'Ð'r   c                 ó  — t        | «      }|dk(  rt        d«      ‚t        ||«      }| |   }|| k  s||k\  rt        d|› d|› d|› �«      ‚|dk  r||z  }g }t        |«      D ]  }||k7  sŒ	|j	                  | |   «       Œ |S )Nr   z)Cannot select from a 0-dimensional tensorzIndex z  is out of bounds for dimension z with size )r   r   rX   r   r   )r%   r>   r«   r   r?   r&   r   s          r   ÚselectrÝ   �  s®   € Üˆt‹9€DØˆq‚yÜÐHÓIÐIÜ
˜˜dÓ
#€CØ�‰9€DØ�ˆu‚}˜ šÜØ�U�GÐ;¸C¸5ÀÈDÈ6ÐRó
ð 	
ð ˆq‚yØ�‰ˆØ€CÜ�4‹[ò  ˆØ�‹8Ø�J‰J�t˜A‘wÕð ð €Jr   Útensor1Útensor2c                 ón  — t        | «      }t        |«      }|dk(  r|dk(  rt        | |«      S |dk(  r|dk(  rt        | |«      S |dk(  r%|dk(  r t        t	        t        | d«      |«      d«      S |dk(  r|dk(  rt	        | |«      S |dk\  r¤|dk\  rŸ|dkD  r| d   nd}g }t        |dz
  «      D ]  }|j                  | |   «       Œ |d   }g }t        |dz
  «      D ]  }|j                  ||   «       Œ t        ||«      }	|	}
|dkD  r|
j                  |«       |dkD  r|
j                  |«       |
S t        d«      ‚)Nr
   r(   r   rˆ   r;   z/both arguments to matmul need to be at least 1D)
r   r™   rœ   r¥   r–   r    r   r   r   r   )rÞ   rß   Údim_tensor1Údim_tensor2ÚnÚbatch_tensor1r   ÚpÚbatch_tensor2Úexpand_batch_portionÚoutput_shapes              r   Úmatmulré   ¢  sm  € Ü�g“,€KÜ�g“,€KØ�aÒ˜K¨1Ò,Ü�7˜GÓ$Ð$Ø	˜Ò	˜k¨QÒ.Ü�'˜7Ó#Ð#Ø	˜Ò	˜k¨QÒ.Ü”rœ) G¨QÓ/°Ó9¸1Ó=Ð=Ø	˜Ò	˜k¨QÒ.Ü�'˜7Ó#Ð#Ø	˜Ò	˜k¨QÒ.ð '¨š?ˆG�BŠK°ˆØ#%ˆä�{ Q‘Ó'ò 	-ˆAØ× Ñ  ¨¡Õ,ð	-à�B‰KˆØ#%ˆä�{ Q‘Ó'ò 	-ˆAØ× Ñ  ¨¡Õ,ð	-ô  )¨¸ÓFÐð ,ˆØ˜Š?Ø×Ñ Ô"à˜Š?Ø×Ñ Ô"àÐäÐNÓOÐOr   c                 óž   — t        | «      dkD  rt        dt        | «      › �«      ‚t        | «      }|dk(  rg }|S |dk(  r| d   gS | d   | d   gS )Nr(   z1Expected tensor to have <= 2 dimensions, but got r   r
   r€   )r%   Úself_lenr&   s      r   Útrì   Ë  sj   € Ü
ˆ4ƒy�1‚}ÜØ?ÄÀDÃ	¸{ÐKó
ð 	
ô �4‹y€HØ�1‚}ØˆØˆ
Ø	�QŠØ�Q‘ˆyÐà�Q‘˜˜a™Ð!Ð!r   Údim0Údim1c                 ó   — t        | «      }t        ||«      }t        ||«      }||k(  rt        | «      S g }t        |«      D ]J  }||k(  r|j	                  | |   «       Œ||k(  r|j	                  | |   «       Œ7|j	                  | |   «       ŒL |S r   )r   rX   r0   r   r   )r%   rí   rî   Úndimsr&   r   s         r   Ú	transposerñ   Ú  s‘   € Ü�‹I€EÜ˜$ Ó&€DÜ˜$ Ó&€DØˆt‚|Ü�T‹{ÐØ€CÜ�5‹\ò  ˆØ�Š9Ø�J‰J�t˜D‘zÕ"Ø�$ŠYØ�J‰J�t˜D‘zÕ"à�J‰J�t˜A‘wÕð ð €Jr   Úbiasc                 ót   — t        | t        |«      «      }|� t        ||«      |k7  rt        d|› d|› �«      ‚|S )NzBias shape z& is not broadcastable to output shape )ré   rì   r   r   )rq   r°   rò   r&   s       r   Úlinearrô   ë  sL   € Ü
�œ˜&›	Ó
"€CØÐÜ�T˜3Ó 3Ò&Ü Ø˜d˜VÐ#IÈ#ÈÐOóð ð €Jr   Úmat1ÚbetaÚalphac                 ó.   — t        | t        ||«      «      S r   )r   r–   )r%   rõ   r’   rö   r÷   s        r   Úaddmmrù   õ  s   € Ü�Tœ2˜d D›>Ó*Ð*r   Úarrayc                 ó(   — d}| D ]
  }|dk  sŒ	d}Œ |S )NFr   TrM   )rú   Únon_negativeÚvals      r   Úcheck_non_negativerþ   ù  s*   € à€LØò  ˆØ�‹7Ø‰Lð ð Ðr   Úweight_sizesÚgroupsc           	      óÄ  — t        | «      }t        |«      }t        |«      rt        d|› �«      ‚t        |«      rt        d|› �«      ‚||k7  rt        d|› d|› d�«      ‚|d   |k  rt        d|d   › d|› d�«      ‚|d   |z  dk7  rt        d|d   › d	|› d�«      ‚| d
   |d
   |z  k7  rt        d| d
   › d|d
   |z  › d�«      ‚|�-t        |«      d
k(  r|d   |d   k(  st        d|d   › d|› �«      ‚t        d|«      D ]]  }	| |	   d||	dz
     z  z   ||	dz
     ||	   d
z
  z  d
z   k  sŒ*t        d| |	   d||	dz
     z  z   › d||	dz
     ||	   d
z
  z  d
z   › d|	› �«      ‚ y )Nz"Padding must be non-negative, got z!Stride must be non-negative, got zExpected weight_dim (z) == k (r:   r   zExpected weight_sizes[0] (z) >= groups (z) to be divisible by groups (r
   zExpected input[1] (z) == weight_sizes[1] * groups (zFExpected bias to be None or have shape [1] with value weight_sizes[0]=rÐ   r(   zCalculated padded input size (z)) is smaller than effective kernel size (z) at dimension )r   rþ   r   r   )
rq   rÿ   rò   rh   r„   ri   r   ÚkÚ
weight_dimr   s
             r   Úcheck_shape_forwardr    s$  € ô 	ˆE‹
€AÜ�\Ó"€Jô ˜'Ô"ÜÐAÀ'ÀÐKÓLÐLÜ˜&Ô!ÜÐ@ÀÀÐIÓJÐJà�Q‚ÜÐ4°Z°LÀÈÈÈ1ÐMÓNÐNØ�A�˜ÒÜØ(¨°a©Ð(9¸ÀvÀhÈaÐPó
ð 	
ð 	�Q‰˜&Ñ  QÒ&ÜØ(¨°a©Ð(9ð :Ø�h˜að!ó
ð 	
ð
 ˆQ�x�< ‘? VÑ+Ò+ÜØ! %¨¡( ð ,Ø˜Q‘ &Ñ(Ð)¨ð,ó
ð 	
ð Ð¤ T£¨a¢°D¸±G¸|ÈA¹Ò4NÜðØ+¨A™Ð/¨v°d°Vð=ó
ð 	
ô
 �1�a‹[ò ˆØ�!‰H�q˜7 1 q¡5™>Ñ)Ñ)Ø�Q˜‘U‰O˜|¨A™°Ñ2Ñ3°aÑ7ó
ô !Ø0°°q±¸AÀÈÈAÉÁÑ<NÑ1NÐ0Oð Pà˜Q ™U‘O |°A¡¸Ñ':Ñ;¸aÑ?Ð@ÀÐPQÈsðTóð ñ	r   Ú
input_sizeÚweight_sizec           	      ój  — t        | ||||||«       t        |«      dkD  }t        | «      }g }	d}
d}|	j                  | |
   «       |	j                  ||   «       t        d|«      D ]K  }|r||dz
     nd}|||   dz
  z  dz   }|	j                  | |   d||dz
     z  z   |z
  ||dz
     z  dz   «       ŒM |	S )Nr   r(   r
   )r  r   r   r   )r  r  rò   rh   r„   ri   r   Úhas_dilationr>   r�   Úinput_batch_size_dimÚweight_output_channels_dimÚdÚ	dilation_Úkernels                  r   Úconv_output_sizer  8  sñ   € ô Ø�K  v¨w¸À&ôô �x“= 1Ñ$€LÜ
ˆj‹/€CØ€KØÐØ!"ÐØ×Ñ�zÐ"6Ñ7Ô8Ø×Ñ�{Ð#=Ñ>Ô?ä�1�c‹]ò 
ˆÙ'3�H˜Q ™U’O¸ˆ	Ø˜k¨!™n¨qÑ0Ñ1°AÑ5ˆØ×ÑØ˜‰]˜a '¨!¨a©%¡.Ñ0Ñ1°FÑ:¸vÀaÈ!Áe¹}ÑLÈqÑPõ	
ð
ð Ðr   c           	      ó¼   — t        |«      dk7  rt        dt        |«      › d�«      ‚t        | «      dk7  rt        dt        | «      › d�«      ‚t        | ||||||«      S )Nr)   z#Expected 3D weight for conv1d, got r¶   z"Expected 3D input for conv1d, got ©r   r   r  ©rq   r°   rò   rh   r„   ri   r   s          r   Úconv1dr  V  ód   € ô ˆ6ƒ{�aÒÜÐBÄ3ÀvÃ;À-ÈqÐQÓRÐRÜ
ˆ5ƒz�Q‚ÜÐAÄ#ÀeÃ*ÀÈQÐOÓPÐPÜ˜E 6¨4°¸À(ÈFÓSÐSr   c           	      ó¼   — t        |«      dk7  rt        dt        |«      › d�«      ‚t        | «      dk7  rt        dt        | «      › d�«      ‚t        | ||||||«      S )Nr*   z#Expected 4D weight for conv2d, got r¶   z"Expected 4D input for conv2d, got r  r  s          r   Úconv2dr  f  r  r   Úgrad_outputÚbiasesc                 ó8   — t        |«      t        |«      | d   gfS rL   r2   )r  rq   r°   r  s       r   Úconv_backwardsr  v  s    € ô �‹<œ˜v›¨°Q©Ð(8Ð8Ð8r   Úoutput_paddingc                 ó�  — |€ddg}|€ddg}|€ddg}|€ddg}t        |«      dkD  }t        | «      }	g }
d}d}|
j                  | |   «       |
j                  ||   |z  «       t        d|	«      D ]T  }|r||dz
     nd}|||   dz
  z  }|
j                  | |   dz
  ||dz
     z  d||dz
     z  z
  |z   ||dz
     z   dz   «       ŒV |
S )Nr
   r   r(   ©r   r   r   )rq   r°   rò   rh   r„   r  r   ri   r  r>   r�   r	  r
  r  r  r  s                   r   Úconv_transpose2d_inputr  €  s3  € ð €~Ø�Q�ˆØ€Ø�a�&ˆØÐØ˜Q˜ˆØÐØ�q�6ˆÜ�x“= 1Ñ$€LÜ
ˆe‹*€CØ€KØÐØ!"ÐØ×Ñ�uÐ1Ñ2Ô3Ø×Ñ�vÐ8Ñ9¸FÑBÔCä�1�c‹]ò 	
ˆÙ'3�H˜Q ™U’O¸ˆ	Ø˜f Q™i¨!™mÑ,ˆØ×ÑØ�1‰X˜‰\˜V A¨¡E™]Ñ*Ø�'˜!˜a™%‘.Ñ ñ!àñð ˜Q ™UÑ#ñ$ð ñ	õ	
ð	
ð Ðr   Ú
transposedc	                 ó>  — t        |«      dkD  }	t        |«      dkD  }
t        | «      }g }d}|rdnd}|j                  | |   «       |r|j                  ||   |z  «       n|j                  ||   «       t        d|«      D ]š  }|	r||dz
     nd}|
r||dz
     nd}|rA|||   dz
  z  }|j                  | |   dz
  ||dz
     z  d||dz
     z  z
  |z   |z   dz   «       Œ^|||   dz
  z  dz   }|j                  | |   d||dz
     z  z   |z
  ||dz
     z  dz   «       Œœ |S )Nr   r
   r(   r  )rq   r°   rò   rh   r„   ri   r  r  r   r  Úhas_output_paddingr>   r�   r	  r
  r  r  Úoutput_padding_r  s                      r   Úconv_forwardsr"  §  s‡  € ô �x“= 1Ñ$€LÜ˜^Ó,¨qÑ0ÐÜ
ˆe‹*€CØ€KØÐÙ&0¡°aÐØ×Ñ�uÐ1Ñ2Ô3ÙØ×Ñ˜6Ð"<Ñ=ÀÑFÕGà×Ñ˜6Ð"<Ñ=Ô>ä�1�c‹]ò ˆÙ'3�H˜Q ™U’O¸ˆ	Ù3E˜.¨¨Q©Ò/È1ˆÙØ &¨¡)¨a¡-Ñ0ˆFØ×ÑØ�q‘˜A‘ ¨¨A©¡Ñ.Ø�g˜a !™e‘nÑ$ñ%àñð "ñ"ð ñ	õð  &¨¡)¨a¡-Ñ0°1Ñ4ˆFØ×ÑØ�q‘˜Q ¨¨Q©¡Ñ/Ñ0°6Ñ9¸fÀQÈÁU¹mÑKÈaÑOõðð" Ðr   Ú	benchmarkÚdeterministicÚcudnn_enabledÚ
allow_tf32c                 ó(   — t        | ||||||||«	      S r   )r"  )rq   r°   rò   rh   r„   ri   r  r  r   r#  r$  r%  r&  s                r   Ú_conv_forwardsr(  Ò  s,   € ô ØØØØØØØØØó
ð 
r   Úrunning_meanÚrunning_varÚtrainingÚmomentumÚepsc	                 ó:   — g }	| D ]  }
|	j                  |
«       Œ |	S r   r/   )rq   r°   rò   r)  r*  r+  r,  r-  r%  r&   r,   s              r   Ú
batch_normr/  î  s)   € ð €CØò ˆØ�
‰
�4Õðà€Jr   c           	      ó¼   — t        |«      dk7  rt        dt        |«      › d�«      ‚t        | «      dk7  rt        dt        | «      › d�«      ‚t        | ||||||«      S )Né   z#Expected 5D weight for conv3d, got r¶   z"Expected 5D input for conv3d, got r  r  s          r   Úconv3dr2  ÿ  r  r   Údim_post_exprÚwrap_scalarc           	      ó�   — |dk  r|st        d«      ‚d}| }|dz
  }| |k  s| |kD  rt        d| › d|› d|› d�«      ‚| dk  r| |z  } | S )Nr   z7Expected wrap_scalar to be True when dim_post_expr <= 0r
   z
Dimension z( out of range (expected to be in range [z, z]))r   )r>   r3  r4  Úminr   s        r   rX   rX     s�   € Ø˜ÒÙÜ ØIóð ð ˆØˆ.€CØ
˜!Ñ
€CØ
ˆS‚y�C˜#’IÜØ˜˜ÐEÀcÀUÈ"ÈSÈEÐQSÐTó
ð 	
ð ˆQ‚wØˆ}ÑˆØ€Jr   c                 ó
   — g }|S r   rM   )rq   r&   s     r   Úzero_dim_tensorr8  !  s   € Ø€CØ€Jr   c                 ó"   — d}| D ]  }||z  }Œ	 |S rL   rM   )r�   r&   r,   s      r   r­   r­   &  s$   € Ø
€CØò ˆØ�D‰j‰ðà€Jr   Úinp1Úinp2Úinp3c                 óh   — | dk  rt        d| › d�«      ‚t        t        j                  | «      «      gS )Nr   úExpected end (ú) >= 0©r   r�   ÚmathÚceil)r»   rB   r:  r;  r<  s        r   Ú
arange_endrC  -  s3   € Ø
ˆQ‚wÜ˜~¨c¨U°&Ð9Ó:Ð:Ü”—	‘	˜#“ÓÐ Ð r   c                 óœ   — |dk  rt        d|› d�«      ‚|| k  rt        d|› d| › d�«      ‚t        t        j                  || z
  «      «      gS )Nr   r>  r?  ú) >= start (r:   r@  )rº   r»   rB   r:  r;  r<  s         r   Úarange_startrF  3  s[   € ð ˆQ‚wÜ˜~¨c¨U°&Ð9Ó:Ð:Ø
ˆU‚{Ü˜~¨c¨U°,¸u¸gÀQÐGÓHÐHÜ”—	‘	˜# ™+Ó&Ó'Ð(Ð(r   c                 óÒ   — |dk(  rt        d«      ‚|dk  r| |k  r)t        d| › d|› d�«      ‚|| k  rt        d|› d| › d�«      ‚t        t        j                  || z
  |z  «      «      gS )	Nr   zstep must not be zerozExpected start (z
) >= end (z) when step < 0r>  rE  z) when step > 0r@  )rº   r»   r¼   rB   r:  r;  r<  s          r   Úarange_start_steprH  =  sŽ   € ð ˆq‚yÜÐ4Ó5Ð5Øˆa‚xØ�3Š;Ü Ø" 5 '¨°C°5¸ÐHóð ð �Š;Ü Ø    \°%°¸ÐHóð ô ”—	‘	˜3 ™;¨$Ñ.Ó/Ó0Ð1Ð1r   c                 óž  — t        | «      t        |«      k7  r$t        dt        | «      › dt        |«      › d�«      ‚t        |«      }g }g }t        |«      D ]6  }t        ||   |«      }|j	                  |«       |j	                  | |   «       Œ8 t        d|«      D ]/  }t        |«      D ]  }||   ||   k(  sŒt        d||   › d�«      ‚ Œ1 |S )NúExpected len(input) (z) == len(dims) (r:   r
   zRepeated dimension z in permute dimensions)r   r   r   rX   r   )rq   rY   r   Ú	seen_dimsÚnewSizesr   r>   Újs           r   ÚpermuterN  O  sï   € Ü
ˆ5ƒz”S˜“YÒÜØ#¤C¨£J <Ð/?ÄÀDÃ	¸{È!ÐLó
ð 	
ô ˆt‹9€DØ€IØ€HÜ�4‹[ò $ˆÜ˜T !™W dÓ+ˆØ×Ñ˜ÔØ�‰˜˜c™
Õ#ð$ô �1�d‹^ò ˆÜ�q“ò 	ˆAØ˜‰|˜y¨™|Ó+Ü$Ø)¨)°A©,¨Ð7MÐNóð ñ	ðð €Or   ÚsourceÚdestinationc                 óØ  — t        | «      }|dk  r| S g }g }t        t        |«      «      D ]>  }|j                  t        ||   |«      «       |j                  t        ||   |«      «       Œ@ t        |«      D �cg c]  }d‘Œ }}t        |«      D �cg c]  }|‘Œ }}t        |«      D �cg c]  }|‘Œ }	}t        t        |«      «      D ]  }||   |||   <   d|||   <   d|	||   <   Œ g }
g }|D ]  }|dk7  sŒ	|
j                  |«       Œ |	D ]  }|dk7  sŒ	|j                  |«       Œ |t        |«      z
  }t        |«      D ]  }|
|   |||   <   Œ t	        | |«      S c c}w c c}w c c}w )Nr
   r;   )r   r   r   rX   rN  )r%   rO  rP  Úself_dimÚnormalized_srcÚnormalized_dstr   ÚorderÚsrc_dimsÚdst_dimsÚsource_dimsÚdestination_dimsÚeleÚrest_dims                 r   Úmovedimr\  d  s¤  € Ü�4‹y€HØ�1‚}ØˆØ "€NØ "€NÜ”3�v“;Óò HˆØ×Ñœn¨V°A©Y¸ÓAÔBØ×Ñœn¨[¸©^¸XÓFÕGðHô ˜x›Ö)�AŠRÐ)€EÐ)Ü  ›?Ö+�a’Ð+€HÐ+Ü  ›?Ö+�a’Ð+€HÐ+ä”3�v“;Óò )ˆØ#1°!Ñ#4ˆˆn˜QÑÑ Ø&(ˆ� Ñ"Ñ#Ø&(ˆ� Ñ"Ò#ð)ð
  €KØ"$ÐØò $ˆØ�"‹9Ø×Ñ˜sÕ#ð$ð ò )ˆØ�"‹9Ø×#Ñ# CÕ(ð)ð œ#˜f›+Ñ%€HÜ�8‹_ò 4ˆØ%0°¡^ˆÐ˜qÑ!Ò"ð4ä�4˜ÓÐùò+ *ùÚ+ùÚ+s   Á9	EÂ	E"Â)	E'Ú	start_dimÚend_dimc                 óø  — t        |t        | «      «      }t        |t        | «      «      }||kD  rt        d|› d|› d�«      ‚t        | «      dk(  rdgS ||k(  rg }| D ]  }|j                  |«       Œ |S d}t	        ||dz   «      D ]
  }|| |   z  }Œ g }t	        |«      D ]  }|j                  | |   «       Œ |j                  |«       t	        |dz   t        | «      «      D ]  }|j                  | |   «       Œ |S )NzExpected start_dim (z) <= end_dim (r:   r   r
   )rX   r   r   r   r   )rq   r]  r^  r&   r,   Úslice_numelr   r+   s           r   Úflattenra  …  s  € Ü˜y¬#¨e«*Ó5€IÜ˜W¤c¨%£jÓ1€GØ�7ÒÜÐ3°I°;¸nÈWÈIÐUVÐWÓXÐXÜ
ˆ5ƒz�Q‚Øˆsˆ
Ø�GÒàˆØò 	ˆDØ�J‰J�tÕð	àˆ
Ø€KÜ�9˜g¨™kÓ*ò  ˆØ�u˜Q‘xÑ‰ð ð €EÜ�9Óò ˆØ�‰�U˜1‘XÕðà	‡L�L�ÔÜ�7˜Q‘;¤ E£
Ó+ò ˆØ�‰�U˜1‘XÕðà€Lr   c                 ó   — dt        | «      gS ©Nr   ©r   ©rq   s    r   Únonzero_lower_boundrf     s   € ØŒs�5‹zˆ?Ðr   c                 ó.   — t        | «      t        | «      gS r   rÊ   re  s    r   Únonzero_upper_boundrh  ¤  s   € Ü�%‹Lœ#˜e›*Ð%Ð%r   Úkeepdimc                 ó°   — t        |t        | «      «      }g }t        | «      D ]0  \  }}||k(  r|sŒ|j                  d«       Œ |j                  |«       Œ2 |S rL   )rX   r   Ú	enumerater   )r%   r>   ri  r&   r   rR  s         r   Ú_reduce_along_dimrl  ¨  sV   € Ü
˜œc $›iÓ
(€CØ€CÜ  “ò !‰ˆˆ8Ø�Š8ÚØ—
‘
˜1•à�J‰J�xÕ ð!ð €Jr   c                 ó$   — |€g S t        | ||«      S r   )rl  )r%   r>   ri  s      r   Úargmaxrn  ´  s   € ð €{Øˆ	Ü˜T 3¨Ó0Ð0r   c                 ó>  — t        | «      dk7  rt        dt        | «      › d�«      ‚t        |«      dk7  rt        dt        |«      › d�«      ‚| d   |d   k7  rt        d| d   › d|d   › �«      ‚| d   |d   k7  rt        d	| d   › d
|d   › �«      ‚| d   | d   |d   gS )Nr)   z"bmm only supports 3D tensors, got r¶   r   z%mismatching batch dimension: self[0]=r”   r(   r
   z+mismatching contracting dimension: self[2]=z
, mat2[1]=r€   r•   s     r   Úbmmrp  ¼  sÒ   € Ü
ˆ4ƒy�A‚~ÜÐAÄ#ÀdÃ)ÀÈAÐNÓOÐOÜ
ˆ4ƒy�A‚~ÜÐAÄ#ÀdÃ)ÀÈAÐNÓOÐOØˆA�w�$�q‘'ÒÜØ3°D¸±G°9¸JÀtÈAÁwÀiÐPó
ð 	
ð ˆA�w�$�q‘'ÒÜØ9¸$¸q¹'¸À*ÈTÐRSÉWÈIÐVó
ð 	
ð �‰G�T˜!‘W˜d 1™gÐ&Ð&r   c                 ó   — t        | «      gS r   rd  r3   s    r   Ú_shape_as_tensorrr  Ì  s   € Ü�‹Iˆ;Ðr   r  c           	      ó�   — t        | «      dk(  rg }||fS || |   kD  rt        d|› d|› d| |   › �«      ‚t        | «      }|||<   ||fS )Nr   zk (z) is too big for dimension z	 of size )r   r   r0   )r%   r  r>   r©   s       r   Útopkrt  Ð  sq   € Ü
ˆ4ƒy�A‚~Øˆð �6ˆ>Ðð ˆt�C‰yŠ=Ü Ø�a�SÐ3°C°5¸	À$ÀsÁ)ÀÐMóð ô �t“ˆØˆˆs‰Ø�6ˆ>Ðr   ÚtargetÚ	reductionc                 ó~  — t        | «      }t        |«      }d|cxk  rdk  sn t        d|› �«      ‚|dkD  rt        d|› �«      ‚|dk(  xr |dk(  }|s"| d   |d   k(  st        d| d   › d|d   › �«      ‚| d   }g }|�'t        |«      dk(  r|d   |k(  st        d	|› d
|› �«      ‚|dk(  r|dk(  r
| d   g}	|	|fS |}	|	|fS )Nr   r(   z-Expected 0 < self_dim <= 2, but got self_dim=r
   z"Expected target_dim <= 1, but got zBatch size mismatch: self[0]=z, target[0]=r;   z:Expected weight to be None or have shape [n_classes], got z with n_classes=r€   )
r%   ru  r°   rv  rR  Ú
target_dimÚno_batch_dimÚ	n_classesÚscalar_shapeÚreduction_shapes
             r   Únll_loss_forwardr}  Ý  s!  € ô �4‹y€HÜ�V“€JØ�Ô˜AÔÜÐLÈXÈJÐWÓXÐXØ�A‚~ÜÐAÀ*ÀÐNÓOÐOØ˜q‘=Ò4 Z°1¡_€LÙ˜T !™W¨¨q©	Ò1ÜØ+¨D°©G¨9°LÀÈÁÀÐLó
ð 	
ð �R‘€IØ €LØÐ¤3 v£;°!Ò#3¸¸q¹	ÀYÒ8NÜðØ�(Ð*¨9¨+ð7ó
ð 	
ð �A‚~˜( aš-Ø ™7˜)ˆð ˜LÐ(Ð(ð 'ˆØ˜LÐ(Ð(r   Únormalized_shapec                 ó@  — g }t        | «      t        |«      z
  }|dk  r$t        dt        | «      › dt        |«      › d�«      ‚t        |«      D ]  }|j                  | |   «       Œ t        |t        | «      «      D ]  }|j                  d«       Œ t	        | «      ||fS )Nr   rJ  z) >= len(normalized_shape) (r:   r
   )r   r   r   r   r0   )rq   r~  r|  Únum_unreduced_dimensionsr   s        r   Únative_layer_normr�  ú  s¹   € ð "$€OÜ" 5›z¬CÐ0@Ó,AÑAÐØ !Ò#ÜØ#¤C¨£J <ð 0ÜÐ$Ó%Ð& að)ó
ð 	
ô Ð+Ó,ò )ˆØ×Ñ˜u Q™xÕ(ð)äÐ+¬S°«ZÓ8ò "ˆØ×Ñ˜qÕ!ð"ä�‹<˜¨/Ð9Ð9r   c                 ó6   — |r| d   g}ndg}t        | «      ||fS rl   r2   )rq   r°   rò   r)  r*  r+  Ú_sizes          r   Únative_batch_normr„    s*   € ñ Ø�q‘�
‰à�ˆÜ�‹<˜ Ð%Ð%r   c                 ó.   — | d   g}t        | «      ||dgfS rl   r2   )rq   r°   rò   r)  r*  rƒ  s         r   Ú_batch_norm_with_updater†    s$   € ð �1‰XˆJ€EÜ�‹<˜ ¨ sÐ*Ð*r   Úignore_indexÚlabel_smoothingc                 ó(   — t        | |||«      d   }|S rc  )r}  )r%   ru  r°   rv  r‡  rˆ  Úresult_shapes          r   Úcross_entropy_lossr‹  %  s   € ô $ D¨&°&¸)ÓDÀQÑG€LØÐr   Úshape_compute_graph_mappingÚbounded_compute_graph_mappingÚscript_func_mapÚfuncc                 óŠ  — | t         vr³t        j                  j                  | «      }t        j                  j                  |j                  «       t        d«      D ]T  }t        j                  j                  |j                  «       t        j                  j                  |j                  «       ŒV |t         | <   t         |    S )Nr(   )
rŽ  ÚtorchÚjitÚscriptÚ_CÚ_jit_pass_inlineÚgraphr   Ú_jit_pass_peepholeÚ_jit_pass_constant_propagation)r�  Úscripted_funcÚ_s      r   Úprocess_funcr›  J  s’   € Ø”?Ñ"ÜŸ	™	×(Ñ(¨Ó.ˆä�‰×!Ñ! -×"5Ñ"5Ô6ä�q“ò 	IˆAÜ�H‰H×'Ñ'¨×(;Ñ(;Ô<Ü�H‰H×3Ñ3°M×4GÑ4GÕHð	Ið !.Œ˜ÑÜ˜4Ñ Ð r   Úoperator_schemac                 ó(   — t        |«      t        | <   y r   )r›  rŒ  )rœ  r�  s     r   Úadd_shape_compute_mappingrž  X  s   € ô 4@ÀÓ3EÔ Ò0r   Úlower_bound_funcÚupper_bound_funcc                 óB   — t        |«      t        |«      f}|t        | <   y r   )r›  r�  )rœ  rŸ  r   Úfnss       r   Úadd_bounded_compute_mappingr£  ^  s%   € ô Ð(Ó)¬<Ð8HÓ+IÐ
J€CØ58Ô! /Ò2r   z^aten::contiguous(Tensor(a) self, *, MemoryFormat memory_format=contiguous_format) -> Tensor(a)zFaten::rsub.Tensor(Tensor self, Scalar other, Scalar alpha=1) -> Tensorz:aten::dropout(Tensor input, float p, bool train) -> TensorzDaten::adaptive_avg_pool2d(Tensor self, int[2] output_size) -> Tensorz,prim::NumToTensor.Scalar(Scalar a) -> Tensorz(prim::NumToTensor.bool(bool a) -> Tensorzuaten::zeros(int[] size, *, int? dtype=None, int? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor)z{aten::to.dtype(Tensor(a) self, int dtype, bool non_blocking=False, bool copy=False, int? memory_format=None) -> (Tensor(a))zvaten::arange(Scalar end, *, int? dtype=None, int? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor)z’aten::arange.start(Scalar start, Scalar end, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensorz¤aten::arange.start_step(Scalar start, Scalar end, Scalar step, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensorz*aten::squeeze(Tensor(a) self) -> Tensor(a)z7aten::squeeze.dim(Tensor(a) self, int dim) -> Tensor(a)z:aten::squeeze.dims(Tensor(a) self, int[] dim) -> Tensor(a)z5aten::unsqueeze(Tensor(a) self, int dim) -> Tensor(a)zfaten::slice.Tensor(Tensor(a) self, int dim=0, int? start=None, int? end=None, int step=1) -> Tensor(a)zAaten::select.int(Tensor(a) self, int dim, int index) -> Tensor(a)z@aten::index_select(Tensor self, int dim, Tensor index) -> Tensorz‘aten::layer_norm(Tensor input, int[] normalized_shape, Tensor? weight=None, Tensor? bias=None, float eps=1e-05, bool cudnn_enable=True) -> TensorzIaten::softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensorzhaten::_no_grad_embedding_renorm_(Tensor weight, Tensor input, float max_norm, float norm_type) -> Tensorzgaten::embedding_renorm_(Tensor(a!) self, Tensor indices, float max_norm, float norm_type) -> Tensor(a!)z~aten::embedding(Tensor weight, Tensor indices, int padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> Tensorz,aten::mm(Tensor self, Tensor mat2) -> Tensorz/aten::dot(Tensor self, Tensor tensor) -> Tensorz+aten::mv(Tensor self, Tensor vec) -> Tensorz1aten::matmul(Tensor self, Tensor other) -> TensorzFaten::linear(Tensor input, Tensor weight, Tensor? bias=None) -> Tensorzˆaten::max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> TensorzŸaten::max_pool2d_with_indices(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)z$aten::t(Tensor(a) self) -> Tensor(a)zDaten::transpose.int(Tensor(a) self, int dim0, int dim1) -> Tensor(a)zŠaten::conv1d(Tensor input, Tensor weight, Tensor? bias=None, int[1] stride=1, int[1] padding=0, int[1] dilation=1, int groups=1) -> TensorzŠaten::conv2d(Tensor input, Tensor weight, Tensor? bias=None, int[2] stride=1, int[2] padding=0, int[2] dilation=1, int groups=1) -> Tensorz¯aten::batch_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, bool cudnn_enabled) -> TensorzŠaten::conv3d(Tensor input, Tensor weight, Tensor? bias=None, int[3] stride=1, int[3] padding=0, int[3] dilation=1, int groups=1) -> Tensorzïaten::convolution_backward(Tensor grad_output, Tensor input, Tensor weight, int[]? bias_sizes, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool[3] output_mask) -> (Tensor, Tensor, Tensor)z¦aten::convolution(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups) -> Tensorzðaten::_convolution(Tensor input, Tensor weight, Tensor? bias, int[] stride, int[] padding, int[] dilation, bool transposed, int[] output_padding, int groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32) -> Tensorz³aten::conv_transpose2d.input(Tensor input, Tensor weight, Tensor? bias=None, int[2] stride=1, int[2] padding=0, int[2] output_padding=0, int groups=1, int[2] dilation=1) -> TensorzVaten::flatten.using_ints(Tensor(a) self, int start_dim=0, int end_dim=-1) -> Tensor(a)z0aten::cat(Tensor[] tensors, int dim=0) -> Tensorz2aten::stack(Tensor[] tensors, int dim=0) -> Tensorz6aten::permute(Tensor(a) self, int[] dims) -> Tensor(a)zSaten::movedim.intlist(Tensor(a) self, int[] source, int[] destination) -> Tensor(a)z3aten::view(Tensor(a) self, int[] size) -> Tensor(a)z:aten::expand_as(Tensor(a) self, Tensor other) -> Tensor(a)zMaten::expand(Tensor(a) self, int[] size, *, bool implicit=False) -> Tensor(a)zaaten::mean.dim(Tensor self, int[1]? dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensorzhaten::sum.dim_IntList(Tensor self, int[1]? dim, bool keepdim=False, *, ScalarType? dtype=None) -> TensorzZaten::max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)z<aten::mean(Tensor self, *, ScalarType? dtype=None) -> Tensorz;aten::sum(Tensor self, *, ScalarType? dtype=None) -> Tensorz^aten::addmm(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensorzbaten::upsample_nearest2d.vec(Tensor input, int[]? output_size, float[]? scale_factors) -> (Tensor)z_aten::quantize_per_tensor(Tensor self, float scale, int zero_point, ScalarType dtype) -> Tensorzraten::quantize_per_tensor.tensor_qparams(Tensor self, Tensor scale, Tensor zero_point, ScalarType dtype) -> Tensorz'aten::dequantize(Tensor self) -> TensorzNquantized::add(Tensor qa, Tensor qb, float scale, int zero_point) -> Tensor qczFaten::argmax(Tensor self, int? dim=None, bool keepdim=False) -> Tensorz-aten::bmm(Tensor self, Tensor mat2) -> Tensorz-aten::_shape_as_tensor(Tensor self) -> Tensorzraten::topk(Tensor self, int k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices)z‹aten::nll_loss_forward(Tensor self, Tensor target, Tensor? weight, int reduction, int ignore_index) -> (Tensor output, Tensor total_weight)z‚aten::native_layer_norm(Tensor input, int[] normalized_shape, Tensor? weight, Tensor? bias, float eps) -> (Tensor, Tensor, Tensor)z´aten::native_batch_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor)z¹aten::_native_batch_norm_legit(Tensor input, Tensor? weight, Tensor? bias, Tensor running_mean, Tensor running_var, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor)zÂaten::_native_batch_norm_legit.no_stats(Tensor input, Tensor? weight, Tensor? bias, Tensor running_mean, Tensor running_var, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor)z³_batch_norm_with_update(Tensor input, Tensor? weight, Tensor? bias, Tensor(a!) running_mean, Tensor(b!) running_var, float momentum, float eps) -> (Tensor, Tensor, Tensor, Tensor)zœaten::cross_entropy_loss(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100, float label_smoothing=0.0) -> TensorzCaten::lerp.Tensor(Tensor self, Tensor end, Tensor weight) -> TensorzMaten::where.ScalarSelf(Tensor condition, Scalar self, Tensor other) -> TensorzQaten::add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)z&aten::nonzero(Tensor self) -> (Tensor))r;   FF)NNNNr
   N)T)NF)r;   )Nr
   iœÿÿÿg        )grA  Úcollections.abcr   Útypingr   r   r   r�   ÚfloatÚnumberr‘  rW   r   r"   r$   r-   r0   r4   r7   rA   rD   rJ   rE   rO   ÚboolrR   r]   r_   rc   rn   rp   r‚   rŠ   rŒ   r‘   r–   r™   rœ   r    r¢   r¥   rª   r¯   r·   r¹   rÁ   rÄ   rÈ   rË   rÓ   r×   rÛ   rÝ   ré   rì   rñ   rô   rù   rþ   r  r  r  r  r  r  r"  r(  r/  r2  rX   r8  r­   rC  rF  rH  rN  r\  ra  rf  rh  rl  rn  rp  rr  Útuplert  r}  r�  r„  r†  r‹  r”  ÚScriptFunctionÚScriptFnrŒ  ÚdictÚstrÚ__annotations__r�  rŽ  r›  rž  r£  rM   r   r   ú<module>r¯     sÝ  ðä Ý $ß 'Ñ 'ð 
ˆs�EˆzÑ	€ó$ ð��c‘ð ˜t C™yó ð0)�t˜C‘yð ) T¨#¡Yð )°4¸±9ó )ð˜4 ™9ð ¨ð °°c±ó ð˜d 3™ið ¨d°3©ió ð&��S‘	ó ð��S‘	ó ð˜˜c™ð  t¨C¡yó ð(��c‘ð  4¨¡9ó ð:˜D ™Ið ¨d°3©ið ¸só ð˜4 ™9ð ¨Sð °T¸#±Yó ð.��c‘ó ð/ˆt�C‰yð /  c¡ó /ð LQò ˜$˜s™)ð ¨D°©Ið ÀDó ðØ
ˆs‰)ðØ'¨¨S©	Ñ2ðØ>BðØHKóð,�$�s‘)ð  #ð °ó ðˆsð �só ðØðàðð ðð ð	ð
 ðð ðð óð6Øðàðð ðð ð	ð
 ðð óð-
Ø�‰9ð-
àð-
ð 	ð-
ð 	ð	-
ð
 	ð-
ð ð-
ð ð-
ð ð-
ð ð-
ð ð-
ð ð-
ð ð-
ð ð-
ð ó-
ð`H@Ø�‰9ðH@à�c‘ðH@ð �‰IðH@ð �#‰Yð	H@ð
 �3‰iðH@ð óH@ðV	Ø�‰9ð	à�c‘ð	ð �‰Ið	ð �#‰Yð		ð
 �3‰ið	ð ó	ð$Ø�‰9ð$à˜$˜s™)Ñ$ð$ð ˜D ™KÑ(ó$ðN
ˆT�#‰Yð 
˜d 3™ió 
ðˆd�3‰ið   c¡ó ðˆT�#‰Yð ˜T #™Yó ð�$�s‘)ð  #ó ð�d˜3‘ió ð	��S‘	ð 	 ó 	ð�T˜#‘Yð  d¨3¡ió ð �t˜C‘yð  sð °4¸±9ó ð* Ø$ØòØ�‰Iðà�#‰Yðð ðð ð	ð
 óò ðØ
ˆs‰)ðØðØ&.¨s¡mðØ:BÀ3¹-ðØORóð>P 4¨¨S©	¡?ó Pð˜Sð °°T¸#±Y±ó ð3˜˜S™	ó 3ðØ�‰9ðØ" 3™iðØ47ðØ@Cóð&��d˜3‘i‘ð  só ð2(�4˜˜S™	‘?ð (¨ó (ð��c‘ð  ð ¨Só ð&&P�D˜‘Ið &P¨¨S©	ó &PðR"ˆD�‰Ió "ð�D˜‘Ið  Sð °ó ð"�$�s‘)ð  T¨#¡Yð °h¸tÀC¹yÑ6Ió ð+��S‘	ð +  c¡ð +°$°s±)ð +À3ð +Èsó +ð˜d 3™ið ¨Dó ð1Ø�‰9ð1à�s‘)ð1ð �4˜‘9Ñ
ð1ð �‰Ið	1ð
 �#‰Yð1ð �3‰ið1ð ó1ðlØ�S‘	ðà�c‘ðð �4˜‘9Ñ
ðð �‰Ið	ð
 �#‰Yðð �3‰iðð óð<TØ�‰9ðTà�‰IðTð �4˜‘9Ñ
ðTð �‰Ið	Tð
 �#‰YðTð �3‰iðTð óTð TØ�‰9ðTà�‰IðTð �4˜‘9Ñ
ðTð �‰Ið	Tð
 �#‰YðTð �3‰iðTð óTð 9Ø�c‘ð9à�‰9ð9ð �‰Ið9ð �T˜#‘YÑó	9ð !%Ø"&Ø#'Ø*.ØØ$(ò$Ø�‰9ð$à�‰Ið$ð �4˜‘9Ñ
ð$ð �T˜#‘YÑð	$ð
 �d˜3‘iÑ ð$ð ˜T #™YÑ'ð$ð ð$ð �t˜C‘yÑ!ð$ð 
ˆ#�Yó$ðN(Ø�‰9ð(à�‰Ið(ð �4˜‘9Ñ
ð(ð �‰Ið	(ð
 �#‰Yð(ð �3‰ið(ð ð(ð ˜‘Ið(ð ð(ð 
ˆ#�Yó(ðVØ�‰9ðà�‰Iðð �4˜‘9Ñ
ðð �‰Ið	ð
 �#‰Yðð �3‰iðð ðð ˜‘Iðð ðð ðð ðð ðð ðð 
ˆ#�Yóð8Ø�‰9ðà�T˜#‘YÑðð �4˜‘9Ñ
ðð ˜4 ™9Ñ%ð	ð
 ˜$˜s™)Ñ$ðð ðð ðð 
ðð óð"TØ�‰9ðTà�‰IðTð �4˜‘9Ñ
ðTð �‰Ið	Tð
 �#‰YðTð �3‰iðTð óTò ˜ð ¨Cð ¸dó ð$˜3ó ð
˜$˜s™)ó ð!�Fð ! #ð !¨Sð !¸ð !À3ó !ð)Øð)Øð)Ø&)ð)Ø14ð)Ø<?ð)ØGJó)ð2Øð2Øð2Ø&,ð2Ø47ð2Ø?Bð2ØJMð2ØUXó2ð$�4˜‘9ð  D¨¡Ió ð* �$�s‘)ð   T¨#¡Yð  ¸TÀ#¹Yð  È4ÐPSÉ9ó  ðB�4˜‘9ð ¨ð °só ð6˜t C™yó ð&˜t C™yó &ð	˜D ™Ið 	¨Cð 	¸$ó 	ð AFò1Ø
ˆs‰)ð1Ø" 3™-ð1Ø9=ð1à	ˆ#�Yó1ð'ˆd�3‰ið '˜t C™yð '¨T°#©Yó 'ð ˜4 ™9ð ¨¨c©ó ò
ˆt�C‰yð 
˜Sð 
 sð 
°E¸$¸s¹)ÀTÈ#ÁYÐ:NÑ4Oó 
ð)Ø
ˆs‰)ð)Ø! #™Yð)Ø08¸¸c¹Ñ0Cð)ØPSð)à
ˆ4�‰9�d˜3‘iÐÑ ó)ð::Ø�‰9ð:Ø(,¨S©	ð:à
ˆ4�‰9�d˜3‘i  c¡Ð*Ñ+ó:ð"&Ø�‰9ð&à�T˜#‘YÑð&ð �4˜‘9Ñ
ð&ð ˜4 ™9Ñ%ð	&ð
 ˜$˜s™)Ñ$ð&ð ð&ð ˆ4�‰9�d˜3‘i  c¡Ð*Ñ+ó&ð+Ø�‰9ð+à�T˜#‘YÑð+ð �4˜‘9Ñ
ð+ð ˜4 ™9Ñ%ð	+ð
 ˜$˜s™)Ñ$ð+ð ˆ4�‰9�d˜3‘i  c¡¨D°©IÐ5Ñ6ó+ð #'ØØØ ò	Ø
ˆs‰)ð	à�‰Ið	ð �T˜#‘YÑð	ð ð		ð
 ð	ð ð	ð 
ˆ#�Yó	ðð& �8‰8×"Ñ"€Ø35Ð ˜T # x -Ñ0Ó 5ØFHÐ ˜t C¨¨x¸Ð/AÑ)BÐ$BÑCÓ HØ,.€��h Ð(Ñ)Ó .ð!�xó !ðF¨sð F¸(ó Fð9Øð9Ø,4ð9ØHPó9ñ ØdØ	ôñ ØLÈeôñ Ø@À%ôñ ØJØôñ Ø2°Oôñ ÐDÀoÔ VÙ Ø{Ø	ôñ ð BØ	ôñ Ø|Øôñ ð YØôñ ð kØôñ ÐFÈÔ VÙ Ø=¸wôñ Ø@À,ôñ Ø;¸Yôñ ØlØ	ôñ ØGÈôñ ØFÈôñ ð9à	ôñ
 ØOÐQVôñ ØnØ	ôñ ØmØ	ôñ ð EØôñ ÐHÈ"Ô MÙ ÐKÈSÔ QÙ ÐGÈÔ LÙ ÐMÈvÔ VÙ ØLÈfôñ ð OØôñ ð fØôñ Ð@À!Ô DÙ ØJÈIôñ ð QØ
ôñ ð QØ
ôñ ð vØôñ ð QØ
ôñ ð vØôñ ð mØôñ ð wØôñ ð zØôñ Ø\Øôñ ÐLÈcÔ RÙ ÐNÐPUÔ VÙ Ø<¸gôñ ØYØôñ ÐOÐQUÔ VÙ Ø@À&ôñ ØSØôñ ØgØôñ ØnØôñ Ø`Øôñ ØBÀOôñ ØAÀ?ôñ ØdØ	ôñ ØhØôñ ØeØ	ôñ ØxØ	ôñ ÐCÀUÔ KÙ ØTØôñ ØLÈfôñ ÑIÈ3Ô OÙ Ù3Ð5Eôñ ÙxØôñ ñ RØôñ ñ IØôñ ñ {Øôñ ñ @Øôñ ñ IØôñ ñ zØôñ
 ñ cØôñ ÙIØôñ ÙSØôñ ÙWØôñ Ù,Ð.AÐCVõr   