Ë
    [^(hR} ã            &       óð2  — U d dl Z d dlZd dlZd dl­ d dlmZ d dlZd dlmc mZ	 d dl
mZ d dlmZ ddlmZ g Zee   ed<   i Zeeef   ed	<   dÆd
„Z	 	 	 dÇd„ZdÈd„Zdeddfd„Zdededededdf
d„Zd„ Zd„ Zd„ Z e j>                  ee«      Z dee!   fd„Z"d„ Z#d„ Z$d„ Z%d„ Z& e ejN                  jP                  jR                  jT                  ejN                  jP                  jV                  jT                  ejN                  jP                  jX                  jT                  ejN                  jP                  jZ                  jT                  ejN                  jP                  j\                  jT                  ejN                  jP                  j^                  jT                  ejN                  jP                  j`                  jT                  gd«      d„ «       Z1 e ejN                  jd                  jf                  jT                  d«      d„ «       Z4 e ejN                  jP                  jj                  jT                  gd«      d „ «       Z6 e ejN                  jP                  jn                  jT                  d«      d!„ «       Z8  e ejN                  jP                  jn                  jr                  d"«      e8«        e ejN                  jP                  jt                  jT                  d#«      d$„ «       Z; e ejN                  jP                  jx                  jT                  d%«      d&„ «       Z= e ejN                  jP                  j|                  jT                  d'«      d(„ «       Z? e ejN                  jP                  j€                  j‚                  d)«      d*„ «       ZB e ejN                  jP                  j†                  jT                  d«      d+„ «       ZD e ejN                  jP                  jŠ                  jT                  d,«      d-„ «       ZF  e ejN                  jP                  jŽ                  jT                  d«      e$«        e ejN                  jP                  j�                  jT                  ejN                  jP                  j’                  jT                  ejN                  jP                  j”                  jT                  ejN                  jP                  j–                  jT                  ejN                  jP                  j˜                  jT                  gd«      d.„ «       ZM  e ejN                  jP                  jœ                  jT                  d/«      eM«         e ejN                  jP                  jž                  jT                  d0«      eM«         e ejN                  jP                  jž                  j                   d1«      eM«        e ejN                  jP                  j¢                  jT                  d«      d2„ «       ZR e ejN                  jP                  j¦                  jT                  d3«      d4„ «       ZT e ejN                  jP                  jª                  jT                  d5«      d6„ «       ZV e ejN                  jP                  j®                  jT                  d7«      d8„ «       ZX e ejN                  jP                  j²                  jT                  d9«      d:„ «       ZZ e ejN                  jP                  j¶                  j¸                  d;«      d<„ «       Z] e ejN                  jP                  j¶                  jT                  d=«      d>„ «       Z^ e ejN                  jP                  j¾                  jÀ                  d?«      d@„ «       Za e ejN                  jP                  jÄ                  jT                  dA«      dB„ «       Zc e ejN                  jP                  jÈ                  jT                  dC«      dD„ «       Zd e ejN                  jP                  jÊ                  jT                  dE«      dF„ «       Zf e ejN                  jP                  jÎ                  jÐ                  dG«      dH„ «       Zi e ejN                  jP                  jÔ                  jX                  dI«      dJ„ «       Zk e ejN                  jP                  jØ                  jT                  dK«      dL„ «       Zm e ejN                  jP                  jÜ                  jT                  dM«      dN„ «       Zo e ejN                  jP                  jà                  jT                  dO«      dP„ «       Zq e ejN                  jP                  jä                  jT                  dQ«      dR„ «       Zs e ejN                  jP                  jè                  jT                  dS«      dT„ «       Zu e ejN                  jP                  jì                  jT                  dU«      dV„ «       Zw e ejN                  jP                  jð                  jT                  dW«      dX„ «       Zx e ejN                  jP                  jò                  jT                  dY«      dZ„ «       Zy e ejN                  jP                  jô                  jö                  d[«      d\„ «       Z| e ejN                  jP                  jú                  jT                  d]«      d^„ «       Z~ e ejN                  jP                  jþ                  jT                  d]«      d_„ «       Z€ e ejN                  jP                  �j                  jT                  d`«      da„ «       Z‚db„ Zƒ e ejN                  jP                  �j                  jT                  d=«      dc„ «       Z… e ejN                  jP                  �j                  �j                  dd«      de„ «       Z‡ e ejN                  jP                  �j                  jÐ                  df«      dg„ «       Z‰ e ejN                  jP                  �j                  jT                  dh«      di„ «       Z‹ e ejN                  jP                  �j                  jT                  ejN                  jP                  �j                  jT                  gdW«      dj„ «       ZŽ e ejN                  jP                  �j                  jT                  dk«      dl„ «       Z� e ejN                  jP                  �j"                  jT                  dm«      dn„ «       Z’ e ejN                  jP                  �j&                  jÐ                  do«      dp„ «       Z” e ejN                  jP                  �j*                  jÀ                  dq«      dr„ «       Z– e ejN                  jP                  �j.                  jT                  ds«       e ejN                  jP                  �j0                  jT                  ds«      dt„ «       «       Z˜ e ejN                  jP                  �j2                  jT                  du«      dv„ «       Zš e ejN                  jP                  �j6                  jX                  dd«      dw„ «       Zœ e ejN                  jP                  �j6                  jT                  d=«      dx„ «       Z� e ejN                  jP                  �j<                  �j>                  dy«      dz„ «       Z  e ejN                  jP                  �j<                  jX                  d{«      d|„ «       Z¡ e ejN                  jP                  �jD                  �j>                  dy«      d}„ «       Z£ e ejN                  jP                  �jD                  jX                  d{«      d~„ «       Z¤ e ejN                  jP                  �jD                  jT                  ejN                  jP                  �j<                  jT                  ejN                  jP                  �jJ                  jT                  ejN                  jP                  �jL                  jT                  gd«      d„ «       Z§ e ejN                  jP                  �jL                  jX                  d{«      d€„ «       Z¨ e ejN                  jP                  �jJ                  jX                  d{«      d�„ «       Z© e ejN                  jP                  �jT                  jT                  dy«      d‚„ «       Z« e ejN                  jP                  �jX                  jT                  dy«      dƒ„ «       Z­ e ejN                  jP                  �j\                  jT                  dy«      d„„ «       Z¯ e ejN                  jP                  �j`                  jT                  dy«      d…„ «       Z± e ejN                  jP                  �jd                  jT                  d†«      d‡„ «       Z³ e ejN                  jP                  �jh                  jT                  dM«      dˆ„ «       Zµ e ejN                  jP                  �jl                  jT                  d‰«      dŠ„ «       Z· e ejN                  jP                  �jp                  jT                  d‹«      dŒ„ «       Z¹ e ejN                  jP                  �jt                  jT                  ejN                  jP                  �jv                  jT                  gd«      d�„ «       Z¼ e ejN                  jP                  �jD                  jT                  d«      dŽ„ «       Z½ e ejN                  jP                  �j|                  jT                  d�«      d�„ «       Z¿ e ejN                  jP                  �j€                  jT                  d‘«      d’„ «       ZÁ e ejN                  jP                  �j„                  jT                  d“«      d”„ «       ZÃ e ejN                  jP                  �jˆ                  jT                  d«      d•„ «       ZÄ e ejN                  jP                  �jŠ                  jT                  d«      d–„ «       ZÅ e ejN                  jP                  �jŒ                  jT                  d«      d—„ «       ZÆ e ejN                  jP                  �jŽ                  jT                  d«      d˜„ «       ZÇ e ejN                  jP                  �j�                  jT                  d«      d™„ «       ZÈ e ejN                  jP                  �j’                  jT                  dš«      d›„ «       ZÊ e ejN                  jP                  �j–                  jT                  dœ«      d�„ «       ZÌ e ejN                  jP                  �jš                  jT                  dž«      dŸ„ «       ZÎ e ejN                  jP                  �jž                  jT                  ejN                  jP                  �j                   jT                  ejN                  jP                  �j¢                  jT                  gd «      d¡„ «       ZÒ e ejN                  jP                  �j¦                  jT                  ejN                  jP                  �j¨                  jT                  ejN                  jP                  �jª                  jT                  ejN                  jP                  �j¬                  jT                  ejN                  jP                  �j®                  jT                  ejN                  jP                  �j°                  jT                  gd¢«      d£„ «       ZÙ e ejN                  jP                  �j´                  �j¶                  d¤«      d¥„ «       ZÜ e ejN                  jP                  �jº                  �j¶                  d¤«      d¦„ «       ZÞ e ejN                  jP                  �j¾                  jÀ                  d«      d§„ «       Zà e ejN                  jP                  �jÂ                  jT                  d¨«      d©„ «       Zâd dªlãmäZåmæZç d d«lèméZé  eå�jÔ                  e«      	 	 dÉd¬ejÀ                  d­ejÀ                  d®ejÀ                  d¯e!d°eëd±eìd²eeef   d³eëd´eëdeëejÀ                  ejÀ                  f   fdµ„«       Zí eç�jÔ                  e«      	 	 dÉd¬ejÀ                  d­ejÀ                  d®ejÀ                  d¶ejÀ                  d·ejÀ                  d¸ejÀ                  d¹ejÀ                  dºeîe!eéf   d»eéd°eëd±eìd²eeef   d³eëd´eëdeëejÀ                  ejÀ                  ejÀ                  eëeejÀ                     d¼f   f   fd½„«       Zï e ejN                  jP                  �jà                  jT                  d¾«      d¿„ «       Zðe�jâ                  �jå                  dÀdÁ«      5 Z(e(�jç                  dÂeðdÃ«       e(�jç                  dÂeðdÄ«       e(�jç                  dÂeðdÅ«       ddd«       y# 1 sw Y   yxY w)Êé    N)Ú*)ÚOptional)Únormalize_function)Ú#jagged_scaled_dot_product_attentioné   ©ÚNestedTensorÚ__all__ÚJAGGED_OPS_TABLEc                 ó  ‡ ‡— ddl m} t        |t        t        f«      r? t        |«      ˆ ˆfd„|D «       «      } t        |«      t        j                  |«      «      S |r	 |‰ |«      }|dk\  r|‰ k  sJ ‚|dk(  r‰dz
  S |dz
  S )Nr   ©Úcanonicalize_dimsc              3   ó8   •K  — | ]  }t        ‰|‰«      –— Œ y ­w©N©Ú_outer_to_inner_dim)Ú.0ÚdÚndimÚ
ragged_dims     €€úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/nested/_internal/ops.pyú	<genexpr>z&_outer_to_inner_dim.<locals>.<genexpr>   s   øè ø€ ÒQÈÔ.¨t°Q¸
×CÑQùó   ƒr   )Útorch._prims_commonr   Ú
isinstanceÚtupleÚlistÚtypeÚdictÚfromkeys)r   Údimr   Úcanonicalizer   Úoutputs   ` `   r   r   r      s�   ù€ Ý5ä�#œœt�}Ô%Ø”�c“ÔQÈSÔQÓQˆàŒt�F‹|œDŸM™M¨&Ó1Ó2Ð2áÙ  cÓ*ˆà�!Š8˜˜dš
Ð"Ð"ð ! AšXˆ:˜‰>Ð2¨3°©7Ð2ó    c                 ó°   — ddl m}  || |«      }||k(  r|st        |› d�«      ‚|dk(  r|st        |› d�«      ‚|rt        | ||«      n|}	|r	|dk(  }
|	|
fS |	S )Nr   r   z0(): not supported for NestedTensor on ragged dimz+(): not supported for NestedTensor on dim=0)r   r   ÚRuntimeErrorr   )r   r!   r   Úop_nameÚconvert_to_inner_dimÚallow_ragged_dimÚallow_batch_dimr   ÚwrappedÚretÚoperating_on_batchs              r   Ú_wrap_jagged_dimr.   '   sŠ   € õ 6á  cÓ*€GØ�*ÒÑ%5Ü˜g˜YÐ&VÐWÓXÐXØ	�AŠ™oÜ˜g˜YÐ&QÐRÓSÐSñ  ô 	˜D '¨:Ô6àð ñ
 ð %¨™\ÐØÐ'Ð(Ð(Ø€Jr$   c                 ó.  ‡ ‡— ddl m} t        |t        t        f«      sJ dt        |«      › �«       ‚|D �cg c]  } |‰ |«      ‘Œ }}d|v }‰|v }t        ˆfd„|D «       «      }	t        t        j                  ˆ ˆfd„|D «       «      «      }
|
|||	fS c c}w )zŽ
    For NestedTensor operators,
    wraps dimensions to non-negative values,
    and returns metadata related to reduction dimension(s).
    r   r   z<_wrap_jagged_dims(): cannot iterate over dimensions of type c              3   ó6   •K  — | ]  }|d k7  xr |‰k7  –— Œ y­w)r   N© )r   r   Ú
ragged_idxs     €r   r   z$_wrap_jagged_dims.<locals>.<genexpr>V   s!   øè ø€ ÒP¸a˜q A™vÒ9¨!¨z©/Ó9ÑPùs   ƒc              3   ó8   •K  — | ]  }t        ‰|‰«      –— Œ y ­wr   r   )r   r   r   r2   s     €€r   r   z$_wrap_jagged_dims.<locals>.<genexpr>Z   s   øè ø€ ÒUÀ1Ô)¨$°°:×>ÑUùr   )	r   r   r   r   r   r   Úanyr   r    )r   Údimsr'   r2   r   r   Úwrapped_dimsÚoperate_on_batchÚoperate_on_raggedÚoperate_on_non_batchÚouter_to_inner_dims   `  `       r   Ú_wrap_jagged_dimsr;   D   s½   ù€ õ 6äØŒu”dˆmôð Sà	EÄdÈ4ÃjÀ\ÐRóSð ð
 -1öØ'(Ñ˜$ Õ"ð€Lð ð ˜LÐ(ÐØ" lÐ2ÐÜÓPÀ<ÔPÓPÐô Ü�‰ÔUÈÔUÓUóÐð Ð/Ð1BÐDXÐXÐXùòs   ¶BÚ
schema_strÚreturnc                 ó:  ‡— | j                  d«      }|D �cg c]  }|j                  d«      ‘Œ c}j                  d«      }t        |«      |z
  }|d   dk(  r|d d }n\t        |«      |k\  rt        |«      t        |«      k  s7t	        d|j
                  › d| › d|› d	t        |«      › d
t        |«      › d�«      ‚d„ d„ d„ d„ dœ}t        |«      D ]Å  \  }	}
|
j                  d«      \  }}|j                  d«      }|r|d d n|}||j                  «       vrt        d|› �«      ‚|	t        |«      k\  r!|st	        d|j
                  › d| › d|› �«      ‚Œƒ||   Š|fˆfd„	} |||	   «      rŒ›ddddddœ}t	        d|j
                  › d| › d|› d||   › �«      ‚ y c c}w )Nú, ú?Téÿÿÿÿú...úNestedTensor ú(z): expected at least z arguments and at most z arguments, but got: z
 argumentsc                 ó\   — t        | t        j                  «      xr t        | t        «       S r   )r   ÚtorchÚTensorr	   ©Úxs    r   ú<lambda>zcheck_schema.<locals>.<lambda>q   s    € ”z !¤U§\¡\Ó2ÒV¼:ÀaÌÓ;VÐ7V€ r$   c                 ód   — t        | t        «      xr | j                  d u xr | j                  dk(  S ©Nr   )r   r	   Ú_lengthsÚ_ragged_idxrH   s    r   rJ   zcheck_schema.<locals>.<lambda>r   s2   € œ
 1¤lÓ3ò Ø�J‰J˜$Ðòà�M‰M˜QÑð r$   c                 ó"   — t        | t        «      S r   ©r   r	   rH   s    r   rJ   zcheck_schema.<locals>.<lambda>u   s   € œJØŒ|ó
€ r$   c                  ó   — y)NTr1   rH   s    r   rJ   zcheck_schema.<locals>.<lambda>x   ó   � r$   )ÚtÚjtÚjt_allr4   z: zUnknown arg type: z) missing required argument: c                 ó4   •— |r| d u xs  ‰| «      S  ‰| «      S r   r1   )rI   Úis_optionalÚ	_check_fns     €r   Úcheck_fnzcheck_schema.<locals>.check_fn‹   s#   ø€ ÙØ˜D�yÒ0¡I¨a£LÐ0á  “|Ð#r$   Útensorzoptional tensorz%contiguous jagged layout NestedTensorzjagged layout NestedTensorz
<any type>)rS   zt?rT   rU   r4   z): expected z	 to be a )	ÚsplitÚendswithÚcountÚlenÚ
ValueErrorÚ__name__Ú	enumerateÚkeysÚAssertionError)r<   ÚfuncÚargsÚkwargsÚnamed_arg_typesrI   Únum_optional_argsÚmin_argsÚarg_type_check_fnsÚiÚnamed_arg_typeÚnameÚarg_typerW   Únormalized_arg_typerY   Útype_to_descrX   s                    @r   Úcheck_schemarq   `   s  ø€ Ø ×&Ñ& tÓ,€OØ2AÖB¨Q˜Ÿ™ C�ÒB×HÑHÈÓNÐÜ�?Ó#Ð&7Ñ7€Hð �rÑ˜eÒ#Ø)¨#¨2Ð.‰ä�D“	˜XÒ%¬#¨d«)´s¸?Ó7KÒ*KÜØ §¡˜¨a°
¨|Ð;PÐQYÐPZð [)Ü),¨_Ó)=Ð(>Ð>SÜ�t“9�+˜Zð)óð ñ Wññ
ñ ñ	Ðô ' Ó7ò #Ñˆˆ>Ø'×-Ñ-¨dÓ3‰ˆˆhØ×'Ñ'¨Ó,ˆÙ/:˜h s¨™mÀÐØÐ&8×&=Ñ&=Ó&?Ñ?Ü Ð#5Ð6IÐ5JÐ!KÓLÐLà”�D“	Š>ÙÜ Ø# D§M¡M ?°!°J°<ð @2Ø26°ð9óð ð à&Ð':Ñ;ˆ	à$/õ 	$ñ ˜˜Q™Õ àØ'Ø=Ø6Ø#ñˆLô Ø §¡˜¨a°
¨|¸<ÈÀvÈYØ Ñ)Ð*ð,óð ñA#ùò1 Cs   —FÚaÚa_nameÚbÚb_namec           	      ó¨   — |j                   |j                     |j                   |j                     k7  rt        d| j                  › d|› d|› d�«      ‚y )NrC   z: expected ú and z' to have the same exact offsets tensor.)Ú_sizerN   r&   r`   )rd   rr   rs   rt   ru   s        r   Úcheck_ragged_dim_samery       sZ   € ð 	‡w�wˆq�}‰}Ñ §¡¨¯©Ñ!7Ò7ÜØ˜DŸM™M˜?¨+°f°X¸UÀ6À(ð K)ð )ó
ð 	
ð 8r$   c                 ó²   — | j                   dz   }| j                  d | }|d | }t        |«      t        |«      k(  xr t        d„ t	        ||«      D «       «      S )Nr   c              3   ó:   K  — | ]  \  }}||k(  xs |d k(  –— Œ y­w)rA   Nr1   )r   ÚnsÚss      r   r   z%raggedness_matches.<locals>.<genexpr>²   s$   è ø€ ÒH¡5 2 qˆB�!‰GÒ�q˜B‘wÓÑHùs   ‚)rN   rx   r^   ÚallÚzip)ÚntÚsizeÚendÚ	nt_raggedÚsize_raggeds        r   Úraggedness_matchesr…   ­   sZ   € Ø
�.‰.˜1Ñ
€CØ—‘˜˜#�€IØ�t˜�*€KÜˆy‹>œS Ó-Ñ-ò ÜÑH¬C°	¸;Ó,GÔHÓHðr$   c                 ó¾   — | j                  «       dkD  rI| j                  d   dk(  r7| j                  d«      } | j                  «       dkD  r| j                  d   dk(  rŒ7| S ©Nr   r   )r!   ÚshapeÚsqueeze)rS   s    r   Úsqueeze_leading_onesrŠ   ¶   sN   € ð& �%‰%‹'�AŠ+˜!Ÿ'™' !™*¨š/Ø�I‰I�a‹Lˆð �%‰%‹'�AŠ+˜!Ÿ'™' !™*¨›/à€Hr$   c                 óf   ‡ ‡‡— t        ‰t        «      s‰gŠt        ‰ t        «      s‰ gŠ ˆˆˆ fd„}|S )Nc                 óH   •‡ — ‰D ]  }ˆ ˆfd„}‰D ]  } ||«      ||<   Œ Œ ‰ S )Nc                 ó   •‡ — ˆ ˆˆfd„}|S )Nc                  ó<   •— t        ‰‰g| ¢­i |¤Ž  ‰‰g| ¢­i |¤ŽS r   )rq   )re   rf   Úaten_oprd   r<   s     €€€r   Úinnerz@register_func.<locals>.wrapper.<locals>.get_inner.<locals>.innerØ   s,   ø€ Ü  ¨TÐC°DÒC¸FÒCÙ Ð9¨$Ò9°&Ñ9Ð9r$   r1   )r�   r�   rd   r<   s   ` €€r   Ú	get_innerz1register_func.<locals>.wrapper.<locals>.get_inner×   s   ù€ ö:ð �r$   r1   )rd   r�   r‘   ÚtableÚaten_opsr<   Útabless   `   €€€r   Úwrapperzregister_func.<locals>.wrapperÔ   s=   ù€ Øò 
	4ˆGõð  ò 4�Ù!*¨7Ó!3��g’ñ4ð
	4ð ˆr$   )r   r   )r”   r“   r<   r•   s   ``` r   Úregister_funcr–   Î   s1   ú€ Ü�h¤Ô%Ø�:ˆÜ�fœdÔ#Ø�ˆöð €Nr$   c                 ó  — t         j                  | d «      }|�|S t        j                  j                  | j
                  v �rAddlm} |D ]%  } ||«      sŒt        d| j                  › d|› �«      ‚ t        d„ |D «       «      }|dk(  rËg }| j                  j                  D ]d  }t        |j                  t        j                  «      r |j!                  |j"                  › d�«        n |j!                  |j"                  › d�«       Œf |j!                  d	«       d
j%                  |«      }t'        || g|¢­i |¤Ž t)        j*                  t,        | «      S |dk(  r*t'        d| g|¢­i |¤Ž t)        j*                  t.        | «      S y )Nr   ©Úis_nested_intrC   z: invalid argument c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr   )r   rF   rG   )r   rI   s     r   r   z lookup_jagged.<locals>.<genexpr>û   s   è ø€ ÒH¸aœj¨¬E¯L©L×9ÑHùs   ‚$&r   z: jt_allz: anyrB   r?   é   zlhs: any, rhs: any, ...)r   ÚgetrF   ÚTagÚ	pointwiseÚtagsÚ%torch.fx.experimental.symbolic_shapesr™   r&   r`   ÚsumÚ_schemaÚ	argumentsr   r   Ú
TensorTypeÚappendrm   Újoinrq   Ú	functoolsÚpartialÚjagged_unary_pointwiseÚjagged_binary_pointwise)	rd   re   rf   Údispatch_funcr™   ÚargÚnum_tensor_argsÚschema_partsÚcheck_schema_strs	            r   Úlookup_jaggedr°   è   su  € Ü$×(Ñ(¨¨tÓ4€MØÐ ØÐô ‡y�y×Ñ˜dŸi™iÒ'ÝGð
 ò 	ˆCÙ˜SÕ!Ü"Ø# D§M¡M ?Ð2EÀcÀUÐKóð ð	ô ÑHÀ4ÔHÓHˆØ˜aÒð ˆLØ—|‘|×-Ñ-ò <�Ü˜cŸh™h¬×(8Ñ(8Ô9Ø ×'Ñ'¨3¯8©8¨*°HÐ(=Ô>Ùà ×'Ñ'¨3¯8©8¨*°EÐ(:Õ;ð<ð ×Ñ Ô&Ø#Ÿy™y¨Ó6ÐÜÐ)¨4ÐA°$ÒA¸&ÒAÜ×$Ñ$Ô%;¸TÓBÐBØ Ò!ÜÐ2°DÐJ¸4ÒJÀ6ÒJÜ×$Ñ$Ô%<¸dÓCÐCàr$   c                 ót   — | j                  «       | j                  «       | j                  | j                  dœ}|S )N©ÚoffsetsÚlengthsÚ_metadata_cacherN   r²   )r¬   rf   s     r   Úextract_kwargsr¶     s2   € à—;‘;“=Ø—;‘;“=Ø×.Ñ.Ø—‘ñ	€Fð €Mr$   c                 óp   ‡— t        d„ |D «       «      Št         | ˆfd„|D «       i |¤Žfi t        ‰«      ¤ŽS )Nc              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   rP   ©r   r¬   s     r   r   z)jagged_unary_pointwise.<locals>.<genexpr>  s   è ø€ ÒD�s¤j°´lÕ&CŒsÑDùó   ‚˜c              3   óB   •K  — | ]  }|‰u r|j                   n|–— Œ y ­wr   )Ú_values)r   r¬   Únjts     €r   r   z)jagged_unary_pointwise.<locals>.<genexpr>  s    øè ø€ ÒB°c˜c S™jˆs�{Š{¨cÓ1ÑBùs   ƒ©Únextr	   r¶   )rd   re   rf   r½   s      @r   r©   r©     s@   ø€ ä
ÑD˜dÔDÓ
D€CÜÙÓB¸TÔBÐMÀfÑMñä
˜Ó
ñð r$   c                 óZ  — |d   |d   }}t        |t        «      st        |t        «      sJ ‚d}t        |t        «      r—t        |t        «      r‡t        ||j                  «      r7t         | |j                  |j                  g|dd  ¢­i |¤Žfi t        |«      ¤ŽS t        |j                  | j                  |j                  |j                  «      «      ‚t        |t        «      }|rt        |«      n
t        |«      }|r||fn||f\  }}	|	j                  «       |j                  «       kD  rt        d«      ‚t        |	«      }
|j                  «       |
j                  «       dz   k\  r;|r|j                  |
fn|
|j                  f\  }}t         | ||g|dd  ¢­i |¤Žfi |¤ŽS |j                  «       |j                  «       k(  �r*|j                  d   |j                  d   k7  r:t        |j                  | j                  |j                  |j                  «      «      ‚ddlm} |j                  }|j                   }|}|j                  j                  |j"                  dz
     }|€|}|	j%                  t'        |	j                  «      D ��cg c]  \  }}||j"                  k7  r|n|‘Œ c}}«      }	 ||	|j(                  |j"                  |||¬«      }|r||fn||f\  }} | ||g|dd  ¢­i |¤ŽS t        |j                  | j                  |j                  |j                  «      «      ‚c c}}w )Nr   r   zHcannot call binary pointwise function {} with inputs of shapes {} and {}r›   z+NYI: broadcasting NT with T with larger dim©Únested_from_padded©r³   r2   Úsum_SÚ
min_seqlenÚ
max_seqlen)r   r	   r…   rx   r¼   r¶   r&   Úformatr`   r!   ÚNotImplementedErrorrŠ   rˆ   Únested_tensorrÂ   Ú_maybe_min_seqlenÚ_maybe_max_seqlenrN   Úexpandra   Ú_offsets)rd   re   rf   rr   rt   Úmismatch_error_msgÚa_is_ntÚextracted_kwargsr€   rS   Ú
t_squeezedÚlhsÚrhsrÂ   rÅ   rÆ   Úpadded_max_SÚtotal_Lrk   rI   Út_as_nts                        r   rª   rª   $  sí  € Ø�‰7�D˜‘G€q€AÜ�aœÔ&¬*°Q¼Ô*EÐEÐEð 	Sð ô �!”\Ô"¤z°!´\Ô'Bô ˜a §¡Ô)ÜÙ�Q—Y‘Y §	¡	Ð?¨D°°¨HÒ?¸Ñ?ñÜCQÐRSÓCTñð ô Ð-×4Ñ4°T·]±]ÀAÇGÁGÈQÏWÉWÓUÓVÐVä˜œLÓ)€GÙ,3”~ aÔ(¼ÈÓ9JÐñ ˆQ�‰F A q 6�E€Bˆà‡u�uƒw�—‘“ÒÜ!Ð"OÓPÐPÜ% aÓ(€JØ	‡v�vƒx�:—>‘>Ó# aÑ'Ò'Ù/6�B—J‘J 
Ñ+¸ZÈÏÉÐ<T‰ˆˆSÜ™D  cÐ?¨D°°¨HÒ?¸Ñ?ÑTÐCSÑTÐTð 	‡u�uƒw�!—%‘%“'Óð �7‰7�1‰:˜Ÿ™ ™Ò#ÜØ"×)Ñ)¨$¯-©-¸¿¹À!Ç'Á'ÓJóð õ 	6ð ×)Ñ)ˆ
Ø×)Ñ)ˆ
Ø!ˆØ—*‘*×"Ñ" 2§>¡>°AÑ#5Ñ6ˆØÐà"ˆLð �H‰HÜDMÈaÏgÉgÓDV×W¹D¸A¸q�!�r—~‘~Ò%‰Q¨<Ñ7ÓWó
ˆñ %ØØ—K‘KØ—~‘~ØØ!Ø!ô
ˆñ %,�B˜‘=°'¸2°‰ˆˆSÙ�C˜Ð2˜t A B˜xÒ2¨6Ñ2Ð2ô Ð)×0Ñ0°·±ÀÇÁÈÏÉÓQÓ
RÐRùó# Xs   Ê	L'
c                 ó^  — | t         j                  j                  j                  u rt	        |i |¤ŽS | j
                  dk(  r! | |d   j                  g|dd  ¢­i |¤Ž |d   S | j
                  dk(  rídd„}t        |||d¬«      \  }}|j                  d«      }t        |j                  «       |d	   |j                  dd
¬«      }t        |j                  «       |d   |j                  dd
¬«      }||k(  r|S t        j                  t        j                  |j                   ||dz    «      }	g |j                   d | ¢|	‘|j                   |dz   d  ¢­}
 |j"                  |
Ž S | j
                  dk(  r¡dd„}t        |||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  «       |j                  z
  dz
  }t%        |«      |kD  rt'        d«      ‚t         j                  j)                  «       5   | |i |¤Žcd d d «       S t+        | «      ‚# 1 sw Y   t+        | «      ‚xY w)NÚapply_r   r   Úflattenc                  ó   — y r   r1   )ÚinputÚ	start_dimÚend_dims      r   Ú_flatten_sigz+jagged_torch_function.<locals>._flatten_sig  ó   € Ør$   T©re   rf   Únormalize_to_only_use_kwargsrÛ   rÜ   F)r(   rÝ   Úrms_normc                  ó   — y r   r1   )rÛ   Únormalized_shapeÚweightÚepss       r   Ú_rms_norm_sigz,jagged_torch_function.<locals>._rms_norm_sig£  rß   r$   rä   zNrms_norm(): Normalization over the ragged dim not supported for nested tensors)r   rA   ©NN)rF   Ú_CÚ_nnÚscaled_dot_product_attentionr   r`   r¼   r   Úpopr.   r!   rN   r§   ÚreduceÚoperatorÚmulrˆ   Úreshaper^   r_   ÚDisableTorchFunctionSubclassrÈ   )rd   re   rf   rÞ   Ú_Ú
new_kwargsÚinprÜ   rÝ   ÚproductÚ	new_shaperç   rä   Úmax_normalizables                 r   Újagged_torch_functionrø   r  s:  € ð Œu�x‰x�|‰|×8Ñ8Ñ8Ü2°DÐC¸FÑCÐCà‡}�}˜Ò ÙˆT�!‰W�_‰_Ð2˜t A B˜xÒ2¨6Ò2Ø�A‰wˆð ‡}�}˜	Ò!ó	ô +Ø˜t¨FÐQUô
‰ˆˆ:ð �n‰n˜WÓ%ˆô %Ø�G‰G‹IØ�{Ñ#Ø�O‰OØØ!&ô
ˆ	ô #Ø�G‰G‹IØ�yÑ!Ø�O‰OØØ!&ô
ˆð ˜ÒØˆJä×"Ñ"¤8§<¡<°·±¸9ÀwÐQRÁ{Ð1SÓTˆØP�c—i‘i 
 Ð+ÐP¨WÐP°s·y±yÀÈ1ÁÀÐ7OÑPˆ	àˆs�{‰{˜IÐ&Ð&ð ‡}�}˜
Ò"ó	ô +Ø ¨VÐRVô
‰ˆˆ:ð �n‰n˜WÓ%ˆØ%Ÿ>™>Ð*<Ó=Ðð Ÿ7™7›9 s§¡Ñ6¸Ñ:ÐÜÐÓ Ð#3Ò3ÜØ`óð ô �X‰X×2Ñ2Ó4ñ 	)Ù˜Ð( Ñ(÷	)ñ 	)ô ˜dÓ
#Ð#÷	)ô ˜dÓ
#Ð#ús   Ç<HÈH,zself: jt_allc                 ó8  — | t         j                  j                  j                  j                  k(  ry| t         j                  j                  j
                  j                  k(  r|d   j                  S | t         j                  j                  j                  j                  k(  rt        |d   j                  «      S | t         j                  j                  j                  j                  t         j                  j                  j                  j                  fv rs|d   j                  �Gt        t        |d   j                  «      t        j                  |d   j                  dd  «      z  «      S |d   j                   j                  «       S | t         j                  j                  j"                  j                  k(  r|d   j$                  S | t         j                  j                  j&                  j                  k(  r|d   j                   j)                  «       S y )NFr   r›   )rF   ÚopsÚatenÚis_non_overlapping_and_denseÚdefaultÚsym_sizerx   r!   r^   Ú	sym_numelÚnumelrM   Úintr¡   ÚmathÚprodr¼   Ú
sym_strideÚ_stridesÚsym_storage_offsetÚstorage_offset©rd   re   rf   s      r   Útensor_attr_supported_getterr	  º  ss  € ð Œu�y‰y�~‰~×:Ñ:×BÑBÒBØàŒu�y‰y�~‰~×&Ñ&×.Ñ.Ò.Ø�A‰w�}‰}ÐàŒu�y‰y�~‰~×!Ñ!×)Ñ)Ò)Ü�4˜‘7—=‘=Ó!Ð!à”—	‘	—‘×(Ñ(×0Ñ0´%·)±)·.±.×2FÑ2F×2NÑ2NÐOÑOØ�‰7×ÑÐ'Ü”s˜4 ™7×+Ñ+Ó,¬t¯y©y¸¸a¹¿¹ÀqÀrÐ9JÓ/KÑKÓLÐLØ�A‰w�‰×$Ñ$Ó&Ð&àŒu�y‰y�~‰~×(Ñ(×0Ñ0Ò0Ø�A‰w×ÑÐàŒu�y‰y�~‰~×0Ñ0×8Ñ8Ò8Ø�A‰w�‰×-Ñ-Ó/Ð/ð 9r$   c                 ó"   — t         j                  S r   )rF   Újaggedr  s      r   Úprim_layout_defaultr  Ü  s   € ä�<‰<Ðr$   c                 ó|   — | t         j                  j                  j                  j                  k(  rt        d«      ‚y )NznNestedTensor does not support directly calling torch.ops.aten.size; please use `nested_tensor.size()` instead.)rF   rú   rû   r�   rý   r&   r  s      r   Útensor_attr_unsupported_getterr  á  s7   € ð
 Œu�y‰y�~‰~×"Ñ"×*Ñ*Ò*Üð9ó
ð 	
ð +r$   c                 ó  — ddl m} t        | ||d¬«      \  }}|j                  d«      }|j	                  «       �y|j                  dt        j                  «      |d<   |d   t        j                  k(  ry ||j                  fi |¤ŽS )Nr   )Úis_contiguous_for_memory_formatTrà   rÛ   FÚmemory_format)
r   r  r   rì   r´   rœ   rF   Úcontiguous_formatÚpreserve_formatr¼   )rd   re   rf   r  rò   ró   rô   s          r   Úis_contiguous_generalr  í  s‡   € åCä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð ‡{�{ƒ}Ð Øà",§.¡.Øœ×0Ñ0ó#€JˆÑð �/Ñ"¤e×&;Ñ&;Ò;ØÙ*¨3¯;©;ÑE¸*ÑEÐEr$   z!self: jt_all, memory_format: any?z"input: jt_all, memory_format: any?c                 óN  — t        | ||d¬«      \  }}|j                  d«      }t        |«      }|j                  �O|d   t        j
                  k(  r9ddlm} |j                  dk(  sJ d«       ‚ ||j                  «       d ¬«      \  }}|S t         | |j                  fi |¤Žfi |¤ŽS )	NTrà   rÛ   r  r   )Újagged_from_listz;NJT with ragged_idx != 1 not supported for contiguous clone)r³   )r   rì   r¶   rM   rF   r  rÉ   r  rN   Úunbindr	   r¼   )	rd   re   rf   rò   ró   rô   Únew_metar  Úcontigs	            r   Úclone_defaultr    s°   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä˜cÓ"€Hà
‡|�|ÐØ�oÑ&¬%×*AÑ*AÒAõ 8ð —‘ 1Ò$ðMàLóMØ$á(¨¯©«¸tÔD‰IˆF�AØˆMä™˜SŸ[™[Ñ7¨JÑ7ÑD¸8ÑDÐDr$   zinput: jt, weight: t, bias: t?c                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS ©NTrà   rÛ   ©r   rì   r	   r¼   r¶   ©rd   re   rf   rò   ró   rô   s         r   Úlinear_defaultr  #  óL   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr$   z6self: jt, grad_output: jt, weight: t, output_mask: anyc                 ó4  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }d\  }	}
}t        | |d|d«       |d	   r3t        t	        j
                  |j                  |«      fi t        |«      ¤Ž}	|d
   rz|j                  j                  d|j                  d	«      «      }|j                  j                  d|j                  d
«      «      }t	        j
                  |j                  «       |«      }
|d   rmt        t        |j                  j                  d
z
  «      «      }|dk(  r|j                  j                  «       }n"t	        j                  |j                  |d¬«      }|	|
|fS )NTrà   rÛ   Úgrad_outputrå   Úoutput_mask)NNNÚselfr   r   rA   r›   r1   F)Úkeepdim)r   rì   ry   r	   rF   Úmatmulr¼   r¶   rð   r�   rS   r   Úranger   Úcloner¡   )rd   re   rf   rò   ró   rô   r"  rå   r#  ÚdsÚdwÚdbÚgrad_2dÚinput_2dÚreduce_dimss                  r   Úlinear_backward_defaultr/  .  sj  € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ—.‘. Ó/€KØ�^‰^˜HÓ%€FØ—.‘. Ó/€Kà!�J€BˆˆBÜ˜$  V¨[¸-ÔHØ�1‚~ÜÜ�L‰L˜×,Ñ,¨fÓ5ñ
Ü9GÈÓ9Tñ
ˆð �1‚~ð ×%Ñ%×-Ñ-¨b°&·+±+¸a³.ÓAˆØ—;‘;×&Ñ& r¨6¯;©;°q«>Ó:ˆÜ�\‰\˜'Ÿ)™)›+ xÓ0ˆØ�1‚~ô œE +×"5Ñ"5×":Ñ":¸QÑ">Ó?Ó@ˆØ˜"ÒØ×$Ñ$×*Ñ*Ó,‰Bä—‘˜;×.Ñ.°ÀUÔKˆBØ��Bˆ<Ðr$   zinput: jt_all, dtype: anyc                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r  r  r  s         r   Úto_dtyper1  W  r   r$   c                 óv  — ddl m} t        | ||d¬«      \  }}|j                  d«      }|j                  d«        | |j                  fi |¤Ž}|j
                  j                  |j                  ¬«      }d }	|j                  �&|j                  j                  |j                  ¬«      }	dd	l	m
}
 dd
lm}m} |j                  €|j
                  n|j                  }|	€|n|	}t        ||
|f«      r" ||«      } ||«      }|j                  |_        n||   ||<   t!        |«      }||d<   |	|d<   t#        |fi |¤Ž}|S )Nr   ©Ú_tensor_symint_registryTrà   rÛ   Úlayout©Údevicer   ©Ú
FakeTensor©ÚFunctionalTensorÚmb_unwrap_functional_tensorr³   r´   )rÉ   r4  r   rì   r¼   rÍ   Útor7  rM   Útorch._subclasses.fake_tensorr9  Ú#torch._subclasses.functional_tensorr;  r<  r   Únested_int_memor¶   r	   )rd   re   rf   r4  rò   ró   rô   Ú
new_valuesÚnew_offsetsÚnew_lengthsr9  r;  r<  Úragged_sourceÚ	new_thingÚtgtÚsrcÚ
inp_kwargsr#   s                      r   Úto_copy_defaultrI  b  s0  € å6ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cà‡N�N�8Ôá�c—k‘kÑ0 ZÑ0€JØ—,‘,—/‘/¨×):Ñ):�/Ó;€KØ€KØ
‡|�|ÐØ—l‘l—o‘o¨Z×->Ñ->�oÓ?ˆå8÷ð
 %(§L¡LÐ$8�C—L’L¸c¿l¹l€MØ*Ð2‘¸€IÜ�)˜jÐ*:Ð;Ô<á)¨)Ó4ˆÙ)¨-Ó8ˆØ!×1Ñ1ˆÕà-DÀ]Ñ-SÐ 	Ñ*Ü Ó$€JØ'€JˆyÑØ'€JˆyÑä˜*Ñ3¨
Ñ3€FØ€Mr$   z-self: jt_all, src: jt_all, non_blocking: any?c                 ó@  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  |j                  k7  r¡|j                  «       }|D �cg c]  }|j                  ‘Œ }	}|j                  «       }
|
D �cg c]  }|j                  ‘Œ }}|	|k7  r%t        d|j                  › d|j                  › �«      ‚t        ||
«      D ]  \  }}|j                  |«       Œ |j                  j                  |j                  «       |S c c}w c c}w )NTrà   rÛ   rG  z<copy_(): expected compatible input and src shapes, but got: rw   )	r   rì   rx   r  rˆ   r&   r   Úcopy_r¼   )rd   re   rf   rò   ró   rô   rG  Ú	inp_compsÚcÚinp_comp_shapesÚ	src_compsÚsrc_comp_shapesÚinp_compÚsrc_comps                 r   Úcopy_defaultrS  ‹  s  € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ
�.‰.˜Ó
€CØ
‡y�y�C—I‘IÒð —J‘J“Lˆ	Ø,5Ö6 q˜1Ÿ7›7Ð6ˆÐ6Ø—J‘J“Lˆ	Ø,5Ö6 q˜1Ÿ7›7Ð6ˆÐ6Ø˜oÒ-ÜØNØ—9‘9�+˜U 3§9¡9 +ð/óð ô #& i°Ó";ò 	%ÑˆH�hØ�N‰N˜8Õ$ð	%ð ‡K�K×Ñ�c—k‘kÔ"Ø€Jùò! 7ùâ6s   Á"DÂDc                 ó¸  — t        | ||d¬«      \  }}|j                  d«      }t        j                  |d<    | |j                  fi |¤Ž}|j
                  j                  |j                  ¬«      }d }|j                  �&|j                  j                  |j                  ¬«      }t        |«      }	d|	v r||	d<   d|	v r||	d<   |j                  |j                  k7  rvdd	l
m}
 dd
lm}m} ddlm} |j                  €|j
                  n|j                  }|€|n|}t#        ||
|f«      r" ||«      } ||«      }|j$                  |_        n||   ||<   t'        |fi |	¤ŽS )NTrà   rÛ   r5  r6  r³   r´   r   r8  r:  r   r3  )r   rì   rF   Ústridedr¼   rÍ   r=  r7  rM   r¶   r>  r9  r?  r;  r<  rÉ   r4  r   r@  r	   )rd   re   rf   rò   ró   rô   rA  rB  rC  Úoutput_kwargsr9  r;  r<  r4  rD  rE  rF  rG  s                     r   Úlike_factory_defaultrW  °  sV  € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cô
 !Ÿ=™=€JˆxÑá�c—k‘kÑ0 ZÑ0€JØ—,‘,—/‘/¨×):Ñ):�/Ó;€KØ€KØ
‡|�|ÐØ—l‘l—o‘o¨Z×->Ñ->�oÓ?ˆÜ" 3Ó'€MØ�MÑ!Ø#.ˆ�iÑ Ø�MÑ!Ø#.ˆ�iÑ à
‡z�z�Z×&Ñ&Ò&õ 	=÷	
õ
 	;à(+¯©Ð(<˜ŸšÀ#Ç,Á,ˆØ#.Ð#6‘K¸Kˆ	Ü�i *Ð.>Ð!?Ô@á-¨iÓ8ˆCÙ-¨mÓ<ˆCØ"%×"5Ñ"5ˆCÕà1HÈÑ1WÐ# IÑ.ä˜
Ñ4 mÑ4Ð4r$   zself: jt_all, fill_value: anyzself: jt_all, high: anyz!self: jt_all, low: any, high: anyc                 óp   — t        | ||d¬«      \  }}|j                  d«      } | |j                  «       |S r  ©r   rì   r¼   r  s         r   Úzero__defaultrZ  ö  s:   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÙˆ�‰ÔØ€Jr$   z*self: jt_all, dim: any, half_to_float: anyc           
      óH  — t        | ||d¬«      \  }}t        |d   t        «      rt        d«      ‚|j	                  d«      }t        |j                  «       |d   fd|j                  «      \  |d<   }}}|rt        d«      ‚|r|j                  dkD  rt        d	«      ‚|r|j                  �t        d
«      ‚|d   d   |d<   |�r:t        j                  j                  j                  t        j                  j                  j                  |j                   j#                  |j                   j$                  d   d«      |j&                  g|j(                  gt+        d«      ¬«      |j                  ¬«      }	t        j                  j                  j-                  |	|j&                  g|j                   j$                  d   ¬«      j"                  dg|j                   j$                  dd  ¢­Ž }
t/        |
fi t1        |«      ¤ŽS t/         | |j                   fi |¤Žfi t1        |«      ¤ŽS )NTrà   r!   zHsoftmax(): not supported for dimensions of type 'tuple' for NestedTensorrÛ   ÚsoftmaxzRsoftmax(): not supported when reducing across the batch dimension for NestedTensorr   zesoftmax(): not supported when reducing along the ragged dimension for ragged_idx > 1 for NestedTensorzksoftmax(): not supported where lengths is not None if reducing across the ragged dimension for NestedTensorr   rA   z-inf)Úmax_lengthsÚpadding_value©r!   ©rÕ   )r   r   r   r&   rì   r;   r!   rN   rM   rF   ÚnnÚ
functionalr\  rú   rû   Ú_jagged_to_padded_dense_forwardr¼   rð   rˆ   rÍ   Ú_max_seqlenÚfloatÚ_padded_dense_to_jagged_forwardr	   r¶   )rd   re   rf   rò   ró   rô   Úreduce_on_batchÚreduce_on_raggedÚ_reduce_on_non_batchÚpadded_softmax_valuesÚsoftmax_valuess              r   Ú_softmax_defaultrl    s)  € ô 'Ø�4 ÀTô�M€A€zô �*˜UÑ#¤UÔ+ÜØVó
ð 	
ð �.‰.˜Ó
!€Cô 	Ø�‰‹	Ø	�EÑ	ÐØØ�‰ó		ñØ�5ÑØØØñ ÜØ`ó
ð 	
ñ ˜CŸO™O¨aÒ/ÜØsó
ð 	
ñ ˜CŸL™LÐ4ÜðIó
ð 	
ð
 # 5Ñ)Ø	ñ€JˆuÑò Ü %§¡× 3Ñ 3× ;Ñ ;Ü�I‰I�N‰N×:Ñ:Ø—‘×#Ñ#Ø—K‘K×%Ñ% aÑ(¨"óð —‘�Ø Ÿ_™_Ð-Ü# F›mð ;ó ð —‘ð !<ó 
!
Ðô Ÿ™Ÿ™×GÑGØ!Ø�\‰\ˆNØ—K‘K×%Ñ%Øñð Hó 
÷ ‰'Øð
ð —‘×"Ñ" 1 2Ð&ò
ˆô ˜NÑB¬n¸SÓ.AÑBÐBä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr$   z7grad_output: jt, output: jt, dim: any, input_dtype: anyc                 óÌ   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | |j                  |j                  fi |¤Žfi t	        |«      ¤ŽS )NTrà   r"  r#   r  )rd   re   rf   rò   ró   Úgrad_outr#   s          r   Ú_softmax_backwardro  L  sl   € ô
 'Ø�4 ÀTô�M€A€zð �~‰~˜mÓ,€HØ�^‰^˜HÓ%€FÜÙˆX×Ñ˜vŸ~™~Ñ<°Ñ<ñÜ@NÈxÓ@Xñð r$   z!self: jt, float: any, train: any?c                 óÈ   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤Ž\  }}t        |fi t	        |«      ¤Žt        |fi t	        |«      ¤ŽfS r  ©r   rì   r¼   r	   r¶   )rd   re   rf   rò   ró   rô   Úout1Úout2s           r   Únative_dropout_defaultrt  [  sp   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÙ�c—k‘kÑ0 ZÑ0�J€Dˆ$ä�TÑ1œ^¨CÓ0Ñ1Ü�TÑ1œ^¨CÓ0Ñ1ðð r$   z%grad_output: jt, mask: jt, scale: anyc                 óÌ   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | |j                  |j                  fi |¤Žfi t	        |«      ¤ŽS )NTrà   r"  Úmaskr  )rd   re   rf   rò   ró   r"  rv  s          r   Únative_dropout_backward_defaultrw  k  sl   € ô
 'Ø�4 ÀTô�M€A€zð —.‘. Ó/€KØ�>‰>˜&Ó!€DÜÙˆ[× Ñ  $§,¡,Ñ=°*Ñ=ñä
˜Ó
%ñð r$   z2self: jt_all, dim: any, keepdim: any?, dtype: any?c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr  r   ©Ú_apply_reductionr  s      r   Úprod_dim_intr{  {  s   € ô
 ˜D &¨!Ð=¨dÒ=°fÑ=Ð=r$   zself: jt_all, dtype: any?c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r  rY  r  s         r   Úprod_defaultr}  ƒ  ó=   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cá�—‘Ñ*˜zÑ*Ð*r$   z$self: jt, split_size: any, dim: any?c                 óì   ‡— t        | ||d¬«      \  }}|j                  d«      Št        ‰j                  «       |d   ‰j                  d«      |d<   t        ˆfd„ | ‰j                  fi |¤ŽD «       «      S )NTrà   rÛ   r!   r[   c              3   óJ   •K  — | ]  }t        dd |it        ‰«      ¤Ž–— Œ y­w)ÚvaluesNr1   )r	   r¶   )r   rI   rô   s     €r   r   zsplit_tensor.<locals>.<genexpr>œ  s+   øè ø€ ò àô 	Ñ5˜AÐ5¤°Ó!4Õ5ñùs   ƒ #)r   rì   r.   r!   rN   r   r¼   r  s        @r   Úsplit_tensorr‚  Ž  s}   ø€ ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä(Ø�‰‹	�:˜eÑ$ c§o¡o°wó€JˆuÑô ó á�c—k‘kÑ0 ZÑ0ôó ð r$   z%self: jt, split_sizes: any, dim: any?c           
      ó  — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  d«      |d<    | |j
                  fi |¤ŽD �cg c]  }t        dd|it        |«      ¤Ž‘Œ c}S c c}w )NTrà   rÛ   r!   Úsplit_with_sizesr�  r1   ©r   rì   r.   r!   rN   r¼   r	   r¶   )rd   re   rf   rò   ró   rô   rI   s          r   Úsplit_with_sizes_defaultr†  ¢  s•   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä(Ø�‰‹	�:˜eÑ$ c§o¡oÐ7Ió€JˆuÑñ �c—k‘kÑ0 ZÑ0öàô 	Ñ5˜AÐ5¤°Ó!4Ó5òð ùò s   Á%Bz+self: jt, dim: any, start: any, length: anyc                 óü   — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  d«      } | |j
                  ||d   |d   ¬«      }t        |fi t        |«      ¤ŽS )	NTrà   rÛ   r!   ÚnarrowÚstartÚlength©r!   r‰  rŠ  r…  )rd   re   rf   rò   ró   rô   r!   r�  s           r   rˆ  rˆ  ¶  s…   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä
˜3Ÿ7™7›9 j°Ñ&7¸¿¹È(Ó
S€CÙØ�‰ØØ˜Ñ!Ø˜(Ñ#ô	€Fô ˜Ñ6¤.°Ó"5Ñ6Ð6r$   z self: jt, chunks: any, dim: any?c           
      ót  — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  dd¬«      \  |d<   }|�r|d   }|j
                  j                  «       }|j                  |«      }	|	D �
cg c]  }
t        j                  |
d¬	«      ‘Œ }}
|D �
cg c]  }
t        j                  |
d
d¬«      ‘Œ }}
|D �cg c]  }||j                  dœ‘Œ }}|	D �
cg c]   }
|
j                  «       j                  «       ‘Œ" }}
|j                  j                  |«      }t!        dt#        |«      «      D �cg c]  }t%        dd||   i||   ¤Ž‘Œ c}S  | |j                  fi |¤ŽD �
cg c]  }
t%        dd|
it'        |«      ¤Ž‘Œ c}
S c c}
w c c}
w c c}w c c}
w c c}w c c}
w )NTrà   rÛ   r!   Úchunk©r*   Úchunksr   r_  ©r   r   )Úvalue)r³   rN   r�  r1   )r   rì   r.   r!   rN   rÍ   Údiffr�  rF   ÚcumsumÚFÚpadr¡   Úitemr¼   r[   r'  r^   r	   r¶   )rd   re   rf   rò   ró   rô   r-   r�  r´   Úchunked_lengthsrI   Úchunked_offsetsÚper_offsetsÚnested_kwargsÚsplit_sizesÚchunk_valuesrk   s                    r   Úchunk_defaultr�  É  s¿  € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä,<Ø�‰‹	�:˜eÑ$ c§o¡o°wÐPTô-Ñ)€JˆuÑÐ)ò Ø˜HÑ%ˆð —,‘,×#Ñ#Ó%ˆØ!Ÿ-™-¨Ó/ˆØ;JÖK°aœ5Ÿ<™<¨¨qÖ1ÐKˆÐKØ>MÖN¸œ1Ÿ5™5  F°!Ö4ÐNˆÐNð  /ö
àð $°C·O±OÓDð
ˆð 
ð 0?Ö?¨!�q—u‘u“w—|‘|•~Ð?ˆÐ?Ø—{‘{×(Ñ(¨Ó5ˆô ˜1œc ,Ó/Ó0ö
àô ÑF ¨Q¡ÐF°MÀ!Ñ4DÓFò
ð 	
ñ ˜#Ÿ+™+Ñ4¨Ñ4ö
àô Ñ9 Ð9¤^°CÓ%8Ó9ò
ð 	
ùò% LùÚNùò
ùò @ùò

ùò

s$   ÂFÂ0F!ÃF&Ã1%F+Å
F0Å<F5zself: jt_all, dim: any?c           
      óÎ  ‡‡— t        | ||d¬«      \  }}|d   }|dk7  rt        d«      ‚|j                  d«      }|j                  «       Š|j	                  «       }|j                  «       }|j                  Šddt        t           dt        t        t              fˆˆfd	„}	|€A|j                  «       j                  «       }
 |	|
«       t        j                  ‰|
‰d
z
  ¬«      S ‰dk  rt        d«      ‚|j                  «       }
|j                  «       } |	|
|«       t        |j                  d   «      D �cg c]$  }t        j                   ‰‰d
z
  ||   |
|   ¬«      ‘Œ& c}S c c}w )NTrà   r!   r   z2unbind(): only supported for NestedTensor on dim=0rÛ   rM   rÍ   c                 óð  •— d}‰j                   ‰dz
     }t        t        | «      «      D ]c  }t        j                  | |   «       t        j
                  | |   |k  «       || |   z  }|€ŒAt        j
                  ||   | |   z   |k  d„ «       Œe t        j
                  ||k  «       |�Mt        t        |«      «      D ]5  }t        j                  ||   «       t        j
                  ||   |k  «       Œ7 y y )Nr   r   c                   ó   — y)NzMunbind(): nested tensor offsets and lengths do not match ragged_idx dimensionr1   r1   r$   r   rJ   z2unbind_int.<locals>._torch_check.<locals>.<lambda>  rR   r$   )rˆ   r'  r^   rF   Ú_check_is_sizeÚ_check)rM   rÍ   Úlengths_sumÚragged_dim_sizerk   r2   r�  s        €€r   Ú_torch_checkz unbind_int.<locals>._torch_check  sð   ø€ ð ˆØ Ÿ,™, z°A¡~Ñ6ˆÜ”s˜8“}Ó%ò 		ˆAÜ× Ñ  ¨!¡Ô-Ü�L‰L˜ !™¨Ñ7Ô8à˜8 A™;Ñ&ˆKØÑ#Ü—‘Ø˜Q‘K (¨1¡+Ñ-°Ñ@Ùkõð		ô 	�‰�[ OÑ3Ô4àÐÜœ3˜x›=Ó)ò =�Ü×$Ñ$ X¨a¡[Ô1Ü—‘˜X a™[¨OÑ;Õ<ñ=ð  r$   r   r_  zAunbind(): nested tensor ragged_idx out of bounds (should be >= 1)r‹  r   )r   r&   rì   r�  r³   r´   rN   r   r  r   r’  ÚtolistrF   r[   r'  rˆ   rˆ  )rd   re   rf   rò   ró   r!   rô   r³   r´   r¥  Úlengths_scalarsÚoffsets_scalarsrk   r2   r�  s                @@r   Ú
unbind_intr©  ó  s]  ù€ ô 'Ø�4 ÀTô�M€A€zð �UÑ
€CØ
ˆa‚xÜÐOÓPÐPà
�.‰.˜Ó
!€CØ�Z‰Z‹\€FØ�k‰k‹m€GØ�k‰k‹m€GØ—‘€Jñ=œt¤C™yð =´H¼TÄ#¹YÑ4Gö =ð: €Ø!Ÿ,™,›.×/Ñ/Ó1ˆÙ�_Ô%ä�{‰{˜6 ?¸Àa¹ÔIÐIà�Q‚ÜØOó
ð 	
ð —n‘nÓ&€OØ—n‘nÓ&€Oá� /Ô2ô �w—}‘} QÑ'Ó(öð ô 	�‰ØØ˜a‘Ø! !Ñ$Ø" 1Ñ%ö		
òð ùò s   Ä6)E"zself: jt, dim: anyc                 óú   — t        | ||d¬«      \  }}|j                  d«      }|j                  }t        t	        |j
                  «      |d   |j                  d«      |d<   t         | |fi |¤Žfi t        |«      ¤ŽS )NTrà   rÛ   r!   r‰   )	r   rì   r¼   r.   r^   rx   rN   r	   r¶   )rd   re   rf   rò   ró   rô   r�  s          r   Úsqueeze_dimr«  <  s|   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�[‰[€Fä(ÜˆC�I‰I‹˜
 5Ñ)¨3¯?©?¸Ió€JˆuÑô ™˜VÑ2 zÑ2ÑJ´nÀSÓ6IÑJÐJr$   zself: jt_all, dim: anyc                 óP  — t        | ||d¬«      \  }}|j                  d«      }|j                  }|d   }t        t	        |j
                  «      dz   ||j                  dd¬«      |d<   t        |«      }|d   |j                  dz
  k  r|dxx   dz  cc<   t         | |fi |¤Žfi |¤ŽS )	NTrà   rÛ   r!   r   Ú	unsqueeze)r)   rN   )	r   rì   r¼   r.   r^   rx   rN   r¶   r	   )	rd   re   rf   rò   ró   rô   r�  r!   rV  s	            r   Úunsqueeze_defaultr®  K  s¶   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�[‰[€Fð �UÑ
€CÜ(ÜˆC�I‰I‹˜Ñ˜C §¡°+ÐPTô€JˆuÑô
 # 3Ó'€MØ�%Ñ˜CŸO™O¨aÑ/Ò/Ø�mÓ$¨Ñ)Ó$ä™˜VÑ2 zÑ2ÑD°mÑDÐDr$   ztensors: any, dim: anyc                 óô  — t        | ||d¬«      \  }}|j                  d«      }|D �cg c]  }|j                  sŒ|‘Œ }}t        |«      dkD  sJ ‚|d   }|D �cg c]!  }|j                  r|n|j	                  |«      ‘Œ# }}|d   }	t        t        |j                  «      |	|j                  d«      |d<   t         | |D �cg c]  }|j                  ‘Œ c}fi |¤Žfi t        |d   «      ¤ŽS c c}w c c}w c c}w )NTrà   Útensorsr   r!   Úcat)r   rì   Ú	is_nestedr^   Ú	expand_asr.   rˆ   rN   r	   r¼   r¶   )
rd   re   rf   rò   ró   r°  rS   ÚnestedÚfirstr!   s
             r   Úcat_defaultr¶  b  s  € ä&Ø�4 ÀTô�M€A€zð �n‰n˜YÓ'€Gð !Ö0�A A§K£KŠaÐ0€FÐ0Üˆv‹;˜Š?Ðˆ?Ø�1‰I€EØAHÖI¸A�A—K’K‰q Q§[¡[°Ó%7Ñ7ÐI€GÐIð �UÑ
€CÜ(ÜˆE�K‰KÓ˜#˜u×0Ñ0°%ó€JˆuÑô Ù Ö)˜Aˆa�i‹iÒ)Ñ8¨ZÑ8ñÜ<JÈ7ÐSTÉ:Ó<Vñð ùò 1ùò Jùò *s   ¨C+ºC+Á&C0Â?C5zself: any, other: anyc                 óŒ  ‡ — t        ‰ ||d¬«      \  }}|j                  d«      }|j                  d«      }ˆ fd„}ˆ fd„}|j                  rç|j                  sÛ|j                  «       dk\  rJ|j                  «       |j                  «       k(  r)|j                  |j                  «       dz
  k  r	 |||«      S |j                  «       d	k(  �rX|j                  «       |j                  «       kD  �r6|j                  |j                  «       dz
  k  �rt         ‰ |j                  |fi |¤Žfi t        |«      ¤ŽS |j                  sÅ|j                  r¹|j                  «       dk\  r9|j                  «       |j                  «       k(  r|j                  d	k\  r	 |||«      S |j                  «       d	k(  �rv|j                  «       |j                  «       kD  �rT|j                  d	k\  �rDt         ‰ ||j                  fi |¤Žfi t        |«      ¤ŽS |j                  �r|j                  �r|j                  «       dkD  rY|j                  «       dkD  rFt        ||j                  «      r0t         ‰ |j                  |j                  «      fi t        |«      ¤ŽS |j                  «       dk(  r„|j                  «       dk(  rq|j                  d	k(  rb|j                  dk(  rS|j                  |j                  «      |j                  |j                  «      k(  rt        j                   |||«      «      S t        d
|j                  › d|j                  › �«      ‚)NTrà   rÛ   Úotherc                 ó”   •— t        | j                  «       |j                  «       «      D ��cg c]  \  }} ‰||«      ‘Œ c}}S c c}}w r   )r   r  )rr   rt   Úa_compÚb_comprd   s       €r   Ú_unbind_implz$matmul_default.<locals>._unbind_impl„  s>   ø€ ä9<¸Q¿X¹X»ZÈÏÉËÓ9T÷
Ù%5 f¨f‰D�˜Õ ó
ð 	
ùó 
s   ­Ac                 óÖ  •— | j                   r| }n|}ddlm} |j                  }|j                  }|}|j
                  j                  |j                  dz
     }|€|}g |j                  d |j                   ¢|‘|j                  |j                  dz   d  ¢­}|j                  d|¬«      }	| j                   r
 ‰|	|«      }
n	 ‰| |	«      }
 ||
|j                  |j                  |||¬«      S )Nr   rÁ   ç        ©Úoutput_sizerÃ   )
r²  rÉ   rÂ   rÊ   rË   r¼   rˆ   rN   Úto_padded_tensorrÍ   )rr   rt   r€   rÂ   rÅ   rÆ   rÔ   rÕ   Úpadded_shapeÚ	padded_ntÚpadded_trd   s              €r   Ú_padded_implz$matmul_default.<locals>._padded_impl‰  sý   ø€ Ø�;Š;Ø‰BàˆBå5à×)Ñ)ˆ
Ø×)Ñ)ˆ
Ø!ˆØ—*‘*×"Ñ" 2§>¡>°AÑ#5Ñ6ˆØÐà"ˆLð
Ø�X‰XÐ&˜Ÿ™Ð'ð
àð
ð �X‰X�b—n‘n qÑ(Ð*Ð+ñ
ˆð
 ×'Ñ'¨¸Ð'ÓFˆ	Ø�;Š;Ù˜I qÓ)‰Há˜A˜yÓ)ˆHÙ!ØØ—K‘KØ—~‘~ØØ!Ø!ô
ð 	
r$   é   r   r›   z1matmul(): not supported between inputs of shapes rw   )r   rì   r²  r!   rN   r	   r¼   r¶   r…   rx   r�   rF   Ústackr&   rˆ   )	rd   re   rf   rò   ró   rô   r¸  r¼  rÅ  s	   `        r   Úmatmul_defaultrÈ  {  sž  ø€ ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�N‰N˜7Ó#€Eô
ô
!
ðJ ‡}‚}˜UŸ_š_ð �G‰G‹I˜ŠNØ—‘“	˜UŸY™Y›[Ò(Ø—‘ #§'¡'£)¨a¡-Ò/ñ    UÓ+Ð+ð �I‰I‹K˜1ÓØ—‘“	˜EŸI™I›KÓ'Ø—‘ #§'¡'£)¨a¡-Ó/äÙ�S—[‘[ %Ñ6¨:Ñ6ñÜ:HÈÓ:Mñð ð �]Š]˜uŸšà�9‰9‹;˜!Ò §	¡	£¨s¯w©w«yÒ 8¸U×=NÑ=NÐRSÒ=Sá  UÓ+Ð+ð
 �W‰W‹Y˜!‹^ §	¡	£¨c¯g©g«iÓ 7¸E×<MÑ<MÐQRÓ<RÜÙ�S˜%Ÿ-™-Ñ6¨:Ñ6ñÜ:HÈÓ:Oñð ð
 
�‹˜5Ÿ?›?ð �7‰7‹9�qŠ=˜UŸY™Y›[¨1š_Ô1CÀCÈÏÉÔ1UÜ¡ S§[¡[°%·-±-Ó @ÑXÄNÐSVÓDWÑXÐXð �G‰G‹I˜ŠNØ—	‘	“˜qÒ Ø—‘ 1Ò$Ø×!Ñ! QÒ&Ø—‘˜Ÿ™Ó)¨U¯Z©Z¸×8IÑ8IÓ-JÒJô —;‘;™|¨C°Ó7Ó8Ð8ä
Ø
;¸C¿I¹I¸;ÀeÈEÏKÉKÈ=ÐYóð r$   zself: jt_all, mat2: anyc                 óT  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  «       dk7  rt        d«      ‚|j                  «       dk7  rt        d«      ‚t	        t
        j                  j                  j                  j                  ||«      S )NTrà   rÛ   Úmat2rÆ  zbmm(): input must be 3Dzbmm(): mat2 must be 3D)
r   rì   r!   r_   rÈ  rF   rú   rû   r&  rý   ©rd   re   rf   rò   ró   rô   r¸  s          r   Úbmm_defaultrÌ  é  s�   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�N‰N˜6Ó"€Eà
‡w�wƒy�A‚~ÜÐ2Ó3Ð3Ø‡y�yƒ{�aÒÜÐ1Ó2Ð2äœ%Ÿ)™)Ÿ.™.×/Ñ/×7Ñ7¸¸eÓDÐDr$   z'self: jt_all, size: any, implicit: any?c                 óš  — t        | ||d¬«      \  }}|j                  d«      }|d   }d|vs|j                  d«      rJ ‚t        ||«      st        d|j                  › d|› �«      ‚t        d|j                  «       «      D �cg c]  }||j                  k(  rd	n||   ‘Œ }}t         | |j                  |«      fi t        |«      ¤ŽS c c}w )
NTrà   rÛ   r�   Úimplicitzexpand(): cannot expand shape z -> r   rA   )r   rì   r…   r&   rx   r'  r!   rN   r	   r¼   r¶   )	rd   re   rf   rò   ró   rô   r�   r   Ú
expand_args	            r   Úexpand_defaultrÐ  ú  sÏ   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�fÑ€Dà˜jÑ(°*·.±.ÀÔ2LÐMÐMÜ˜c 4Ô(ÜÐ;¸C¿I¹I¸;ÀdÈ4È&ÐQÓRÐRäCHÈÈCÏGÉGËIÓCVÖW¸a˜˜SŸ_™_Ò,‘"°$°q±'Ñ9ÐW€JÐWÜ™˜SŸ[™[¨*Ó5ÑM¼ÈÓ9LÑMÐMùò Xs   ÂCzself: t, other: jtc                 ó¶   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | ||j                  «      fi t	        |«      ¤ŽS )NTrà   rÛ   r¸  r  rË  s          r   Úexpand_as_defaultrÒ    sW   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�N‰N˜7Ó#€Eä™˜S %§-¡-Ó0ÑJ´NÀ5Ó4IÑJÐJr$   zself: jt_all, size: anyc           
      ó6  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        |«      |j                  «       k  r?|j	                  g d„ t        |j                  «       t        |«      z
  «      D «       ¢|¢«      S t        d«      ‚)NTrà   rÛ   r�   c              3   ó    K  — | ]  }d –— Œ y­w)r   Nr1   )r   rò   s     r   r   zbroadcast_to.<locals>.<genexpr>#  s   è ø€ ÒE 1œQÑEùs   ‚zwbroadcast_to(): broadcasting to a higher-dim shape is currently not supported for nested tensors with the jagged layout)r   rì   r^   r!   rÌ   r'  r_   )rd   re   rf   rò   ró   rô   r�   s          r   Úbroadcast_torÕ    s�   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€Dä
ˆ4ƒy�C—G‘G“IÒØ�z‰zÐMÑE¬¨c¯g©g«i¼#¸d»)Ñ.CÓ(DÔEÐMÈÐMÓNÐNä
ð	4óð r$   ztensors: anyc           
      óT  — t        | ||d¬«      \  }}|j                  d«      }t        |«      dk(  rt        d«      ‚t        |«      dk(  r|d   S g }t	        j
                  d„ |D «       Ž }t        d„ |D «       «      }|D ]�  }	|	j                  r!|j                  |	j                  |«      «       Œ0|	j                  «       t        |«      k  rH|j                  t        |	j                  |j                  j                  «      fi t        |«      ¤Ž«       Œ”t        d	«      ‚ t        |«      S )
NTrà   r°  r   z7broadcast_tensors(): expected at least one tensor inputr   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )rˆ   ©r   rS   s     r   r   z$broadcast_tensors.<locals>.<genexpr>8  s   è ø€ Ò.H¸1¨q¯w­wÑ.Hùs   ‚c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   rP   rØ  s     r   r   z$broadcast_tensors.<locals>.<genexpr>:  s   è ø€ ÒA�Q¤Z°´<Õ%@ŒqÑAùrº   zubroadcast_tensors(): broadcasting nested tensors with dense tensors of equal or higher dim is not currently supported)r   rì   r^   r_   rF   Úbroadcast_shapesr¿   r²  r¥   rÕ  r!   r	   r¼   rˆ   r¶   r   )
rd   re   rf   rò   ró   r°  ÚoutsÚbroadcast_shaper½   rS   s
             r   Úbroadcast_tensorsrÝ  +  s  € ä&Ø�4 ÀTô�M€A€zð �n‰n˜YÓ'€GÜ
ˆ7ƒ|�qÒÜÐRÓSÐSÜ
ˆ7ƒ|�qÒØ�q‰zÐà€DÜ×,Ñ,Ñ.HÀÔ.HÐI€Oä
ÑA˜'ÔAÓ
A€CØò ˆØ�;Š;Ø�K‰K˜Ÿ™ Ó7Õ8Ø�U‰U‹W”s˜?Ó+Ò+Ø�K‰KÜ˜QŸ^™^¨C¯K©K×,=Ñ,=Ó>ÑVÄ.ÐQTÓBUÑVõô ð;óð ðô �‹;Ðr$   z(condition: jt_all, self: any, other: anyc                 ó:  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  d«      }t        j                  |||«      \  }}}t	         | |j
                  |j
                  |j
                  fi |¤Žfi t        |«      ¤ŽS )NTrà   Ú	conditionrÛ   r¸  )r   rì   rF   rÝ  r	   r¼   r¶   )rd   re   rf   rò   ró   rß  rô   r¸  s           r   Ú
where_selfrà  K  s�   € ô 'Ø�4 ÀTô�M€A€zð —‘˜{Ó+€IØ
�.‰.˜Ó
!€CØ�N‰N˜7Ó#€Eô "×3Ñ3°I¸sÀEÓJÑ€Iˆs�EäÙˆY×Ñ §¡¨U¯]©]ÑI¸jÑIñä
˜Ó
#ñð r$   zself: jt, device: any?c                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r  r  r  s         r   Ú_pin_memory_defaultrâ  `  r   r$   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r  rY  r  s         r   Úis_pinned_defaulträ  k  r~  r$   zself: jt_all, other: jt_allc                 ó@   — |d   j                   |d   j                   k(  S r‡   )rx   r  s      r   Úis_same_size_defaultræ  v  s   € ð �‰7�=‰=˜D ™GŸM™MÑ)Ð)r$   c                 óà  ‡‡— t        | ||d¬«      \  }}|j                  d«      Š|d   d u xs, t        |d   t        t        f«      xr t        |d   «      dk(  }|rt | ‰j                  fi |¤Ž}|j                  dd«      rMt        |t        t        f«      r t        |«      ˆfd„|D «       «      }|S |j                  ‰j                  «      }|S |d   }	t        |d   t        t        f«      }
|
s|	g}	t        ‰j                  «       |	|› ‰j                  «      \  }}}}|
s|d   }||d<   |r‰j                  �t        |› d	�«      ‚dd
lm} |r‰|r1 | ‰j                  fi |¤Ž}|j                  dd«      r
 |d„ |«      }|S |rt        |› d�«      ‚|j                  d«       |
r‰j                  gn‰j                  } | ‰j#                  |«      fd|i|¤ŽS |rt        |› d�«      ‚ | ‰j                  fi |¤Ž}t%        ‰«      Š|j                  dd«      sKt        |d   t        t        f«      r|d   n|d   g}|D ]"  }|‰j                  dz
  k  sŒ‰dxx   dz  cc<   Œ$  |ˆfd„|«      S )NTrà   rÛ   r!   r   r%  Fc              3   óT   •K  — | ]  }|j                  ‰j                  «      –— Œ! y ­wr   )r­  rN   )r   Úorô   s     €r   r   z#_apply_reduction.<locals>.<genexpr>�  s   øè ø€ ÒJÀ §¡¨C¯O©O× <ÑJùs   ƒ%(zf(): reducing across the ragged dimension is not supported for non-contiguous nested tensors with holes)Útree_mapc                 ó$   — | j                  d«      S )Nr   )r­  )ré  s    r   rJ   z"_apply_reduction.<locals>.<lambda>¹  s   € ¨¯©°Q«€ r$   zW(): reducing along a ragged and non-batch dimension is not supported for nested tensorszg(): reducing along the batch dimension but not the ragged dimension is not supported for nested tensorsr   rN   c                 ó   •— t        | fi ‰¤ŽS r   r   )ré  Ú
out_kwargss    €r   rJ   z"_apply_reduction.<locals>.<lambda>ä  s   ø€ ¤,¨qÑ"?°JÑ"?€ r$   )r   rì   r   r   r   r^   r¼   rœ   r   r­  rN   r;   r!   rM   r&   Útorch.utils._pytreerê  rÁ  r¶   )rd   Ú	func_nameÚidentity_elementre   rf   rò   ró   Úfull_reductionÚoutÚdim_to_convertÚ
is_dimlistÚconverted_dimrg  rh  Úreduce_on_non_batchrê  Údim_to_passÚdimlistr   rô   rí  s                      @@r   rz  rz  }  så  ù€ Ü&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð   Ñ&¨$Ð.ò Ü�:˜eÑ$¤u¬d mÓ4ÒT¼¸ZÈÑ=NÓ9OÐSTÑ9Tð ñ Ù�3—;‘;Ñ- *Ñ-ˆØ�>‰>˜) UÔ+Ü˜#¤¤t˜}Ô-à”d˜3“iÓJÀcÔJÓJ�ð ˆ
ð —m‘m C§O¡OÓ4�Øˆ
ð   Ñ&€NÜ˜J uÑ-´´t¨}Ó=€JÙØ(Ð)ˆô 	Ø�‰‹	ØØˆ+Ø�‰ó		ñØØØØñ à% aÑ(ˆØ%€JˆuÑá˜CŸL™LÐ4ÜØˆkð ;ð ;ó
ð 	
õ
 -ñ áá�s—{‘{Ñ1 jÑ1ˆCØ�~‰~˜i¨Ô/áÑ7¸Ó=�ØˆJñ #Ü"Ø �kð ":ð :óð ð �N‰N˜5Ô!Ù/9˜3Ÿ?™?Ñ+¸s¿¹ˆKÙØ×$Ñ$Ð%5Ó6ñØ<GðØKUñð ñ ÜØ�+ð Kð Kóð ñ �3—;‘;Ñ- *Ñ-ˆÜ# CÓ(ˆ
Ø�~‰~˜i¨Ô/ô ˜j¨Ñ/´%¼°Ô?ð ˜5Ò!à  Ñ'Ð(ð ð
 ò 3�à�s—‘¨Ñ*Ó*Ø˜}Ó-°Ñ2Ô-ð3ñ Ó?ÀÓEÐEr$   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r  rY  r  s         r   Úsum_defaultrú  ç  r~  r$   z3self: jt_all, dim: any?, keepdim: any?, dtype: any?c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr¡   r   ry  r  s      r   Úsum_dim_IntListrü  ò  s   € ô
 ˜D %¨Ð<¨TÒ<°VÑ<Ð<r$   z"self: jt_all, dim0: any, dim1: anyc           
      ó6  — t        | ||d¬«      \  }}ddlm} |j                  d«      } ||j	                  «       |d   |d   f«      \  }}||j
                  k(  s||j
                  k(  r³|dk(  s|dk(  rt        d«      ‚||j
                  k(  r|}	n|}	t        |«      }
|	|
d	<   t        |j                  «       j                  t        t        |j                  «      ||j
                  «      t        t        |j                  «      ||j
                  «      «      fi |
¤ŽS t        |j	                  «       |d   |j
                  d
«      |d<   t        |j	                  «       |d   |j
                  d
«      |d<   t         | |j                  fi |¤Žfi t        |«      ¤ŽS )NTrà   r   r   rÛ   Údim0Údim1z?Transpose is not supported on the batch dimension for jagged NTrN   Ú	transpose)r   r   r   rì   r!   rN   r_   r¶   r	   r�  r   r   r^   rx   r.   r¼   )rd   re   rf   rò   ró   r   rô   rþ  rÿ  Úto_dimrH  s              r   Útranspose_intr  ú  s‡  € ô 'Ø�4 ÀTô�M€A€zõ 6à
�.‰.˜Ó
!€CÙ" 3§7¡7£9¨z¸&Ñ/AÀ:ÈfÑCUÐ.VÓW�J€Dˆ$ð
 ˆs�‰Ò $¨#¯/©/Ò"9Ø�1Š9˜ š	ÜØQóð ð �3—?‘?Ò"Ø‰FàˆFÜ# CÓ(ˆ
Ø$*ˆ
�=Ñ!ÜØ�J‰J‹L×"Ñ"Ü#¤C¨¯	©	£N°D¸#¿/¹/ÓJÜ#¤C¨¯	©	£N°D¸#¿/¹/ÓJóñ
ð
 ñ
ð 	
ô *Ø�‰‹	�:˜fÑ% s§¡¸ó€JˆvÑô *Ø�‰‹	�:˜fÑ% s§¡¸ó€JˆvÑô ™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr$   zself: jt_all, dims: anyc                 ó¤  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        |«      }t        |j                  «      }|t        |«      k7  rt        d|› d�dt        |«      › d�z   «      ‚d	d
lm}	  |	||«      }
t        |
«      t        t        |
«      «      k7  rt        d«      ‚|j                  �t        d«      ‚|
d	   d	k7  rt        d«      ‚|
j                  |j                  «      |d<   |
dd  D �cg c]  }t        |||j                  «      ‘Œ }}||d<   t         | |j                  fi |¤Žfi |¤ŽS c c}w )NTrà   rÛ   r5   z5permute(): number of dimensions in the tensor input (z) zAdoes not match the length of the desired ordering of dimensions (ú).r   r   z*permute(): duplicate dims are not allowed.zBpermute(): not supported on jagged layout nested tensor with holesz=Permute is not supported on the batch dimension for jagged NTrN   r   )r   rì   r¶   r^   rx   r_   r   r   ÚsetrM   ÚindexrN   r   r	   r¼   )rd   re   rf   rò   ró   rô   r5   rH  Úinp_dimr   Úcanonicalized_dimsr!   Ú
inner_dimss                r   Úpermute_defaultr
  '  s}  € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€DÜ Ó$€JÜ�#—)‘)‹n€Gð ”#�d“)ÒÜØCÀGÀ9ÈBÐOØQÔRUÐVZÓR[ÐQ\Ð\^Ð_ñ`ó
ð 	
õ
 6á*¨7°DÓ9Ðä
ÐÓ¤#¤cÐ*<Ó&=Ó">Ò>ÜÐEÓFÐFà
‡|�|ÐÜØPó
ð 	
ð ˜!Ñ Ò!ÜØKó
ð 	
ð !3× 8Ñ 8¸¿¹Ó I€Jˆ}Ñð & a bÐ)öàô 	˜G S¨#¯/©/Õ:ð€Jð ð $€JˆvÑÜ™˜SŸ[™[Ñ7¨JÑ7ÑF¸:ÑFÐFùòs   ÄEc                 ó˜  ‡‡	— t        | ||d¬«      \  }}|j                  d«      Š|j                  d«      Š	‰j                  dk7  r=t        ‰j                  «      t        ‰	«      k7  rt        d‰j                  › d‰	› d�«      ‚t        ‰	«      d	k  st        ‰‰	«      st        d
‰j                  › d‰	› �«      ‚ˆˆ	fd„}t        t        ‰	«      dz
  «      D �cg c]
  } ||«      ‘Œ }}t        j                  ‰j                  «       «      5  t         | ‰j                  |«      fi t        ‰«      ¤Žcd d d «       S c c}w # 1 sw Y   y xY w)NTrà   rÛ   r�   r   zVview(): does not support ragged_idx != 1 except when inp._size == size. inp._size is (z) and size is (r  rÆ  zview(): cannot view shape z as c                 ón   •— | ‰j                   dz
  k(  r‰j                  j                  | «      S ‰| dz      S rL   )rN   r¼   r�   )Ú	inner_idxrô   r�   s    €€r   Úget_inner_sizez$view_default.<locals>.get_inner_sizet  s8   ø€ à˜Ÿ™¨!Ñ+Ò+Ø—;‘;×#Ñ# IÓ.Ð.à˜	 A™Ñ&Ð&r$   )r   rì   rN   r   rx   r&   r^   r…   r'  rF   Úinference_modeÚis_inferencer	   r¼   r¶   )
rd   re   rf   rò   ró   r  rk   Ú
inner_sizerô   r�   s
           @@r   Úview_defaultr  P  s>  ù€ ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€Dà
‡�˜!Ò¤ c§i¡iÓ 0´E¸$³KÒ ?ÜðØ ŸY™Y˜K °t°f¸Bð@ó
ð 	
ô ˆ4ƒy�1‚}Ô.¨s°DÔ9ÜÐ7¸¿	¹	°{À$ÀtÀfÐMÓNÐNõ 'ô .3´3°t³9¸q±=Ó-AÖB¨‘. Õ#ÐB€JÐBô 
×	Ñ	˜c×.Ñ.Ó0Ó	1ñ RÜ™D §¡¨jÓ9ÑQ¼^ÈCÓ=PÑQ÷Rñ Rùò	 C÷Rð Rús   ÃD;Ä&E Å E	zHinput: jt_all, normalized_shape: any, weight: any?, bias: any?, eps: anyc                 óP  — t        | ||d¬«      \  }}|j                  d«      }|j                  «       dk  rt        d«      ‚|d   }|j                  |j
                     }|j                  «       t        |«      z
  }|dk(  rt        d«      ‚||v r|j                  �t        d	«      ‚||v �rMt        j                  j                  j                  |j                  j                  |j
                  ¬
«      |j                  g|j                  g¬«      }	t        j                  j                  j                  t        j                   |j                  j                  d   df|j"                  |j$                  ¬«      |j                  g|j                  g¬«      j'                  |	j                  «      }
|j                  j)                  «       j+                  d«      j+                  d«      |	j                  d   z  }t        j,                  |	dd¬«      |z  }|	|z
  |
z  }t        j,                  t        j.                  |«      dd¬«      |z  }t        j0                  ||d   z   «      }||z  }t        j                  j                  j3                  ||j                  g|j                  j                  d   ¬«      j5                  d|j                  |j
                  dz   d  «      }t7        |fi t9        |«      ¤Ž||fS  | |j                  fi |¤Ž\  }}}t7        |fi t9        |«      ¤Ž||fS )NTrà   rÛ   r›   zOlayer_norm(): not supported for NestedTensor objects with 2 or fewer dimensionsrä   r   zVlayer_norm(): not supported when normalizing over the batch dimension for NestedTensorzklayer_norm(): not supported where lengths is not None if operating on the ragged dimension for NestedTensor©rÜ   )r]  r   )r7  Údtype)r   r›   )r!   r%  ræ   r`  rA   )r   rì   r!   r&   rˆ   rN   r^   rM   rF   rú   rû   rc  r¼   rÙ   rÍ   rd  Úonesr7  r  rÌ   r’  r­  r¡   ÚsquareÚsqrtrf  Ú	unflattenr	   r¶   )rd   re   rf   rò   ró   rô   rä   Úragged_sizeÚnum_dims_not_normalizedÚpadded_inputÚpadded_maskÚragged_lengthsÚmeanÚpadded_normalizedÚvarianceÚstdÚpadded_layer_normÚjagged_layer_norm_valuesr#   s                      r   Únative_layer_norm_defaultr%  ƒ  s"  € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cà
‡w�wƒy�A‚~ÜØ]ó
ð 	
ð "Ð"4Ñ5ÐØ—)‘)˜CŸO™OÑ,€Kà!Ÿg™g›i¬#Ð.>Ó*?Ñ?Ðð 	  1Ò$äØdó
ð 	
ð Ð&Ñ&¨3¯<©<Ð+CÜØyó
ð 	
ð
 	Ð'Ò'ä—y‘y—~‘~×EÑEØ�K‰K×ÑØŸ/™/ð  ó ð �\‰\ˆNØŸ™Ð)ð Fó 
ˆô —i‘i—n‘n×DÑDÜ�J‰J˜Ÿ™×)Ñ)¨!Ñ,¨aÐ0¸¿¹È3Ï9É9ÔUØ�\‰\ˆNØŸ™Ð)ð Eó 
÷ ‰&Ø×Ñó
ð	 	ð �L‰L×ÑÓ×)Ñ)¨!Ó,×6Ñ6°qÓ9¸L×<NÑ<NÈqÑ<QÑQð 	ô
 �I‰IØØØôð
 ñð 	ð ˜4ÑØñÐô
 �I‰IÜ—‘Ð.Ó/ØØôð
 ñð 	ô �j‰j˜ J¨uÑ$5Ñ5Ó6ˆØ-°Ñ3Ðä#(§9¡9§>¡>×#QÑ#QØØ�\‰\ˆNØ—K‘K×%Ñ%Øñð $Ró $
÷ ‰)Ø�—	‘	˜#Ÿ/™/¨AÑ-Ð/Ð0ó
ð 	!ô Ð1ÑI´^ÀCÓ5HÑIØØð
ð 	
ñ ˜SŸ[™[Ñ7¨JÑ7Ñ€FˆD�#Ü˜Ñ7¤>°#Ó#6Ñ7¸¸sÐCÐCr$   zpgrad_out: jt, input: jt, normalized_shape: any, mean: any, rstd: any, weight: any?, bias: any?, output_mask: anyc                 óì   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      } | |j                  |j                  fi |¤Ž\  }}}	|€d ||	fS t        |fi t	        |«      ¤Ž||	fS )NTrà   rn  rÛ   rq  )
rd   re   rf   rò   ró   rn  rô   Úd_inputÚd_gammaÚd_betas
             r   Ú"native_layer_norm_backward_defaultr*  è  s‰   € ô
 'Ø�4 ÀTô�M€A€zð �~‰~˜jÓ)€HØ
�.‰.˜Ó
!€CÙ# H×$4Ñ$4°c·k±kÑPÀZÑPÑ€GˆW�fØ€Ø�g˜vÐ&Ð&ä˜Ñ8¤N°3Ó$7Ñ8¸'À6ÐJÐJr$   z"self: jt_all, dim: any, index: anyc                 óœ  — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  dd¬«      \  |d<   }|r|j                  «       |d      S |j                  �t        d«      ‚t        |«      }|d   |j                  d	z
  k  r|d
xx   d	z  cc<   t         | |j                  fi |¤Žfi |¤ŽS )NTrà   rÛ   r!   ÚselectrŽ  r  zSselect(): not yet supported on dim != 0 for non-contiguous nested tensor with holesr   rN   )r   rì   r.   r!   rN   r  rM   r_   r¶   r	   r¼   )rd   re   rf   rò   ró   rô   r-   rí  s           r   Ú
select_intr-  ù  sÞ   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÜ,<Ø�‰‹	�:˜eÑ$ c§o¡o°xÐQUô-Ñ)€JˆuÑÐ)ñ Ø�z‰z‹|˜J wÑ/Ñ0Ð0à
‡|�|ÐÜØaó
ð 	
ô
   Ó$€JØ�%Ñ˜3Ÿ?™?¨QÑ.Ò.Ø�=Ó! QÑ&Ó!ä™˜SŸ[™[Ñ7¨JÑ7ÑF¸:ÑFÐFr$   z7self: jt, dim: any?, start: any?, end: any?, step: any?c                 óì   — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  d«      |d<   t         | |j                  fi |¤Žfi t        |«      ¤ŽS )NTrà   rÛ   r!   Úslice)r   rì   r.   r!   rN   r	   r¼   r¶   r  s         r   Úslice_tensorr0    sw   € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÜ(Ø�‰‹	�:˜eÑ$ c§o¡o°wó€JˆuÑô ™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr$   z8input: jt_all, indices: any, values: t, accumulate: any?c                 óÀ  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        |«      |j                  «       k  sJ ‚t        |«      |j                  dz   k  �r:|j                  «       st        d«      ‚ddlm} |j                  }|j                  }	|	}
|j                  j                  |j                  dz
     }|
€|}
g |j                  d |j                   ¢|
‘|j                  |j                  dz   d  ¢­}|j                  d|¬	«      } | | ||fi |¤Ž|j                  |j                  |||	¬
«      }| t        j                   j"                  j$                  j&                  k(  r+|j                  j)                  |j+                  «       «       |S |S |j-                  «       €|j/                  «       j1                  «       }n|j-                  «       }t        j2                  t        j4                  ||j                     |k  «      d«       |j/                  «       |d      ||j                     z   }|d|j                   |gz   ||j                  dz   d  z   }| t        j                   j"                  j$                  j&                  k(  r | |j                  |fi |¤Ž|_        |S t7         | |j                  |fi |¤Žfi t9        |«      ¤ŽS )NTrà   rÛ   Úindicesr   z[index_put(): If ragged dimension is not part of indices, this only works on contiguous NJTsrÁ   r¾  r¿  rÃ   z7Some indices in the ragged dimension are out of bounds!r   )r   rì   r^   r!   rN   Úis_contiguousr&   rÉ   rÂ   rÊ   rË   r¼   rˆ   rÁ  rÍ   rF   rú   rû   Ú
index_put_rý   rK  r�  r´   r³   r’  Ú_assert_asyncr~   r	   r¶   )rd   re   rf   rò   ró   rô   r2  rÂ   rÅ   rÆ   rÔ   rÕ   rÂ  Ú
padded_inpÚnew_njtr´   Úragged_indicesÚfunc_indicess                     r   r4  r4  '  s¸  € ô 'Ø�4 ÀTô�M€A€zð #Ÿ™ wÓ/€Cð �n‰n˜YÓ'€Gäˆw‹<˜3Ÿ7™7›9Ò$Ð$Ð$ä
ˆ7ƒ|�c—o‘o¨Ñ)Ó)Ø× Ñ Ô"ÜØmóð õ 	6à×*Ñ*ˆ
Ø×*Ñ*ˆ
Ø!ˆØ—+‘+×#Ñ# C§O¡O°aÑ$7Ñ8ˆØÐà"ˆLð
Ø�Y‰YÐ(˜Ÿ™Ð)ð
àð
ð �Y‰Y�s—‘¨Ñ*Ð,Ð-ñ
ˆð
 ×)Ñ)¨#¸<Ð)ÓHˆ
Ù$Ù�˜WÑ3¨
Ñ3Ø—L‘LØ—‘ØØ!Ø!ô
ˆð ”5—9‘9—>‘>×,Ñ,×4Ñ4Ò4Ø�K‰K×Ñ˜gŸn™nÓ.Ô/ØˆJØˆð
 ‡{�{ƒ}ÐØ—+‘+“-×$Ñ$Ó&‰à—+‘+“-ˆÜ	×ÑÜ�	‰	�'˜#Ÿ/™/Ñ*¨WÑ4Ó5ØAôð —[‘[“] 7¨1¡:Ñ.°¸¿¹Ñ1IÑI€Nð 	��C—O‘OÐ$àÐ
ñ	ð �#—/‘/ AÑ%Ð'Ð
(ñ		)ð ð Œu�y‰y�~‰~×(Ñ(×0Ñ0Ò0Ù˜3Ÿ;™;¨ÑC¸
ÑCˆŒØˆ
äÙˆS�[‰[˜,Ñ5¨*Ñ5ñä
˜Ó
ñð r$   z{input: jt, weight: t, bias: t?, stride: any, padding: any, dilation: any, transposed: any, output_padding: any, groups: anyc                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r  r  r  s         r   Úconvolution_defaultr;  ƒ  sN   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr$   c                 óT  — t        | ||d¬«      \  }}|d   }t        |j                  «       |d   d|j                  «      \  }}}}|rÒ|sÐ|rJ ‚|d   }	d|d<   t	        t
        j                  j                  j                  j                  ddfi |¤Ž}
|j                  �|j                  n|j                  j                  «       }t        |
j                  «       dz
  «      D ]  }|j                  d	«      }Œ |
|z  }|	s|j                  |j                  «      }|S d
}t	        | d|fi |¤ŽS )NTrà   rÛ   r!   r  r%  r   r   rA   gáz®GáÚ?)r   r;   r!   rN   rz  rF   rú   rû   r¡   Údim_IntListrM   rÍ   r’  r'  r­  r‰   )rd   re   rf   rò   ró   rô   rg  rh  rö  r%  Úintermediate_sumr´   rò  Úintermediate_values                 r   Úmean_dimr@  ’  sA  € ô 'Ø�4 ÀTô�M€A€zð �WÑ
€CÜBSØ�‰‹	Ø�5ÑØØ�‰ó	CÑ?€QˆÐ)Ð+>ñ ¡Ù&Ð&Ð&à˜YÑ'ˆØ $ˆ
�9ÑÜ+Ü�I‰I�N‰N×Ñ×*Ñ*¨F°Añ
Ø9Cñ
Ðð
 #&§,¡,Ð":�#—,’,ÀÇÁ×@QÑ@QÓ@SˆÜÐ'×+Ñ+Ó-°Ñ1Ó2ò 	,ˆAØ×'Ñ'¨Ó+‰Gð	,à Ñ(ˆÙØ—+‘+˜cŸo™oÓ.ˆCØˆ
ð
 ÐÜ˜D &Ð*<ÑKÀ
ÑKÐKr$   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r  rY  r  s         r   Úmean_defaultrB  »  r~  r$   z&self: jt_all, dim: any?, keepdim: any?c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr4   Fry  r  s      r   Úany_dimsrD  Æ  s   € ä˜D %¨Ð@°Ò@¸Ñ@Ð@r$   z%self: jt_all, dim: any, keepdim: any?c                 ó¨   — t        | ||d¬«      \  }}|d   g|d<   t        t        j                  j                  j
                  j                  fi |¤ŽS ©NTrà   r!   )r   rD  rF   rú   rû   r4   r5   ©rd   re   rf   rò   ró   s        r   Úany_dimrH  Ë  óQ   € ä&Ø�4 ÀTô�M€A€zð
 $ EÑ*Ð+€JˆuÑÜ”E—I‘I—N‘N×&Ñ&×+Ñ+Ñ:¨zÑ:Ð:r$   c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr~   Try  r  s      r   Úall_dimsrK  Ö  s   € ä˜D %¨Ð?°Ò?¸Ñ?Ð?r$   c                 ó¨   — t        | ||d¬«      \  }}|d   g|d<   t        t        j                  j                  j
                  j                  fi |¤ŽS rF  )r   rK  rF   rú   rû   r~   r5   rG  s        r   Úall_dimrM  Û  rI  r$   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r  rY  r  s         r   Úall_any_max_min_defaultrO  æ  s?   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cá�—‘Ñ*˜zÑ*Ð*r$   c                 ó    — t        | ||d¬«      \  }}t        j                  |d   j                  «      j                  }t        | d|g|¢­i |¤ŽS )NTrà   rÛ   Úmin©r   rF   Úfinfor  Úmaxrz  ©rd   re   rf   rò   ró   Ú	dtype_maxs         r   Úmin_dimrW  ù  óS   € ä&Ø�4 ÀTô�M€A€zô —‘˜J wÑ/×5Ñ5Ó6×:Ñ:€IÜ˜D %¨ÐD°TÒD¸VÑDÐDr$   c                 ó    — t        | ||d¬«      \  }}t        j                  |d   j                  «      j                  }t        | d|g|¢­i |¤ŽS )NTrà   rÛ   rT  ©r   rF   rS  r  rQ  rz  ©rd   re   rf   rò   ró   Ú	dtype_mins         r   Úmax_dimr]    rX  r$   c                 ó    — t        | ||d¬«      \  }}t        j                  |d   j                  «      j                  }t        | d|g|¢­i |¤ŽS )NTrà   rÛ   ÚaminrR  rU  s         r   Úamin_defaultr`    óU   € ô 'Ø�4 ÀTô�M€A€zô —‘˜J wÑ/×5Ñ5Ó6×:Ñ:€IÜ˜D &¨)ÐE°dÒE¸fÑEÐEr$   c                 ó    — t        | ||d¬«      \  }}t        j                  |d   j                  «      j                  }t        | d|g|¢­i |¤ŽS )NTrà   rÛ   ÚamaxrZ  r[  s         r   Úamax_defaultrd    ra  r$   c                 ó    — t        | ||d¬«      \  }}t        j                  |d   j                  «      j                  }t        | d|g|¢­i |¤ŽS )NTrà   rÛ   ÚargminrR  rU  s         r   Úargmin_defaultrg  %  óU   € ô 'Ø�4 ÀTô�M€A€zô —‘˜J wÑ/×5Ñ5Ó6×:Ñ:€IÜ˜D (¨IÐG¸ÒGÀÑGÐGr$   c                 ó    — t        | ||d¬«      \  }}t        j                  |d   j                  «      j                  }t        | d|g|¢­i |¤ŽS )NTrà   rÛ   ÚargmaxrZ  r[  s         r   Úargmax_defaultrk  1  rh  r$   zAgrad: jt_all, dim: any, indices: jt_all, sizes: any, keepdim: anyc                 ó  ‡
— ddl mŠ
 t        | ||d¬«      \  }}|j                  d«      }|j                  |d<   |j                  d«      }|j                  |d<   t        ˆ
fd„t        |d   «      D «       «      }t        t        |d   «      |d	   |d
«      |d	<   |j                  d«      }|j                  j                  |j                  dz
  «      ||<   |dd  }||d<   t        |«      }	||	d<   t         | di |¤Žfi |	¤ŽS )Nr   r˜   Trà   Úgradr2  c              3   ó:   •K  — | ]  \  }} ‰|«      sŒ|–— Œ y ­wr   r1   )r   rk   r}   r™   s      €r   r   z=value_selecting_reduction_backward_default.<locals>.<genexpr>M  s   øè ø€ ÒW™D˜A˜qÁmÐTUÕFV”aÑWùs   ƒ”Úsizesr!   Ú"value_selecting_reduction_backwardr   rN   r1   )r    r™   r   rì   r¼   r¿   ra   r.   r^   r�   rN   r¶   r	   )rd   re   rf   rò   ró   rm  r2  r2   ro  rV  r™   s             @r   Ú*value_selecting_reduction_backward_defaultrq  =  s  ø€ õ
 Dä&Ø�4 ÀTô�M€A€zð �>‰>˜&Ó!€DØŸ™€JˆvÑØ�n‰n˜YÓ'€GØ#ŸO™O€JˆyÑäÓW¤I¨j¸Ñ.AÓ$BÔWÓW€Jä(ÜˆJ�wÑÓ Ø�5ÑØØ,ó	€JˆuÑð �N‰N˜7Ó#€EØŸ™×,Ñ,¨W×-@Ñ-@À1Ñ-DÓE€Eˆ*ÑØ�!�"ˆI€EØ€JˆwÑä" 7Ó+€MØ#-€M�-Ñ ä™Ñ*˜zÑ*Ñ<¨mÑ<Ð<r$   c                 ó  — t        | ||d¬«      \  }}|j                  d«      }|D ]p  }t        |t        «      st	        d«      ‚|j                  «       |d   j                  «       k7  rt	        d«      ‚t        ||d   j                  «      rŒgt	        d«      ‚ t        |d   j                  «       dz   |d	   |d   j                  d
«      |d	<   t         | |D �cg c]  }|j                  ‘Œ c}fi |¤Žfi t        |d   «      ¤ŽS c c}w )NTrà   r°  z+stack(): expected all nested tensors inputsr   z9stack(): expected all nested tensors to have the same dimzFstack(): expected all nested tensors to have the same nested structurer   r!   rÇ  )r   rì   r   r	   r&   r!   r…   rˆ   r.   rN   r¼   r¶   )rd   re   rf   rò   ró   r°  rS   s          r   Ústack_defaultrs  a  s  € ä&Ø�4 ÀTô�M€A€zð
 �n‰n˜YÓ'€GØò ˆÜ˜!œ\Ô*ÜÐLÓMÐMà�5‰5‹7�g˜a‘j—n‘nÓ&Ò&ÜØKóð ô " ! W¨Q¡Z×%5Ñ%5Õ6ÜØXóð ðô )Ø�‰
�‰Ó˜1Ñ˜j¨Ñ/°¸±×1GÑ1GÈó€JˆuÑô Ù Ö)˜Aˆa�i‹iÒ)Ñ8¨ZÑ8ñÜ<JÈ7ÐSTÉ:Ó<Vñð ùÚ)s   ÃDzQweight: t, indices: jt, padding_idx: any?, scale_grad_by_freq: any?, sparse: any?c                 ó¸   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | ||j                  fi |¤Žfi t	        |«      ¤ŽS )NTrà   r2  rå   r  )rd   re   rf   rò   ró   r2  rå   s          r   Úembedding_defaultru  €  sf   € ô
 'Ø�4 ÀTô�M€A€zð
 �n‰n˜YÓ'€GØ�^‰^˜HÓ%€FäÙˆV�W—_‘_Ñ3¨
Ñ3ñÜ7EÀgÓ7Nñð r$   zYgrad_output: jt, indices: jt, num_weights: any, padding_idx: any, scale_grad_by_freq: anyc                 ó¦   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      } | |j                  |j                  fi |¤ŽS )NTrà   r2  r"  rY  )rd   re   rf   rò   ró   r2  r"  s          r   Ú embedding_dense_backward_defaultrw  ’  sU   € ô
 'Ø�4 ÀTô�M€A€zð �n‰n˜YÓ'€GØ—.‘. Ó/€KÙ�×#Ñ# W§_¡_ÑC¸
ÑCÐCr$   c                 ó|   — t        | ||d¬«      \  }}|j                  d«      }|j                  j                  «       S r  )r   rì   r¼   Údetachr  s         r   Úvalues_defaultrz     s@   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð �;‰;×ÑÓÐr$   c                 ól   — t        | ||d¬«      \  }}|j                  d«      } | |j                  «      S r  rY  r  s         r   Úall_defaultr|  ³  s8   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cá�—‘ÓÐr$   z-self: jt_all, padding: any, output_size: any?c                 ót  — t        | ||d¬«      \  }}|j                  d«      }|j                  �t        d«      ‚|d   }|�||j                     }n3|j
                  �|j                  n|j                  j                  d«      }|j                  «       }|j                  dkD  r|j                  |j                  dz
  d«      }|j                  }	|j                  «       dkD  r|j                  d¬	«      }n$|j                  «       dk(  r|j                  d
«      }|j                  t         j"                  u }
|
r+|j$                  r|j'                  t         j(                  «      }t         j*                  j,                  j/                  ||j0                  g|g|d   «      }|
r+|j$                  r|j'                  t         j"                  «      }t3        |	«      dkD  r|j5                  d
|	dd  «      }nt3        |	«      dk(  r|j7                  d
«      }|j                  dkD  r|j                  |j                  d«      }|S )NTrà   rÛ   z?to_padded_tensor(): not supported for nested tensors with holesrÀ  r   r   r›   r  rA   Úpadding)r   rì   rM   r&   rN   Ú_max_seqlen_tensorrd  r¼   r�   r�  r   rˆ   r!   rÙ   r­  r  rF   ÚboolÚis_cudar=  Úhalfrú   rû   rc  rÍ   r^   r  r‰   )rd   re   rf   rò   ró   rô   rÀ  Úmax_seq_lenr�  Úvalues_shapeÚis_boolÚ
padded_outs               r   Úto_padded_tensor_defaultr‡  ¾  sø  € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cà
‡|�|ÐÜØMó
ð 	
ð
 ˜]Ñ+€KØÐØ! #§/¡/Ñ2‰ð ×%Ñ%Ð1ð �OŠOà—‘×!Ñ! !Ó$ð 	ð �Z‰Z‹\€FØ
‡�˜ÒØ×!Ñ! #§/¡/°AÑ"5°qÓ9ˆØ—<‘<€LØ‡z�zƒ|�aÒØ—‘¨!�Ó,‰Ø	�‰‹˜Ò	Ø×!Ñ! "Ó%ˆð �l‰lœeŸj™jÐ(€GÙ�6—>’>Ø—‘œ5Ÿ:™:Ó&ˆÜ—‘—‘×?Ñ?ØØ	�‰ˆØ	ˆØ�9Ñó	€Jñ �:×%Ò%Ø—]‘]¤5§:¡:Ó.ˆ
ô ˆ<Ó˜1ÒØ×)Ñ)¨"¨l¸1¸2Ð.>Ó?‰
Ü	ˆ\Ó	˜aÒ	Ø×'Ñ'¨Ó+ˆ
Ø
‡�˜ÒØ×)Ñ)¨#¯/©/¸1Ó=ˆ
àÐr$   zcpadded: t, offsets: t, dummy: jt, ragged_idx: any?, min_seqlen: any?, max_seqlen: any?, sum_S: any?c                 óŽ  — t        | ||d¬«      \  }}|d   |d   }}|j                  dd«      }|dkD  r|j                  |d«      }|j                  }|j	                  «       dkD  r|j                  d¬	«      }n$|j	                  «       dk  r|j                  d
«      }|j                  t        j                  u }	|	r+|j                  r|j                  t        j                  «      }t        j                  j                  j                  ||g|d   «      }
|	r+|
j                  r|
j                  t        j                  «      }
t!        |«      dkD  r|
j#                  d
|dd  «      }
nt!        |«      dk  r|
j%                  d
«      }
|dkD  r|
j                  |dz
  d«      }
|d   }|d   }i }|�||d<   |�||d<   t'        |
|||¬«      S )NTrà   Úpaddedr³   r2   r   rÆ  r›   r  rA   rÄ   r   rÅ   rÆ   )rN   rµ   )r   rœ   r   rˆ   r!   rÙ   r­  r  rF   r€  r�  r=  r‚  rú   rû   rf  r^   r  r‰   r	   )rd   re   rf   rò   ró   r‰  r³   r2   Úpadded_ragged_dim1_shaper…  r�  rÅ   rÆ   Úmetadata_caches                 r   Ú"_nested_from_padded_tensor_defaultrŒ  ý  sÈ  € ô
 'Ø�4 ÀTô�M€A€zð ! Ñ*¨J°yÑ,AˆG€FØ—‘ ¨aÓ0€Jð �A‚~Ø×!Ñ! *¨aÓ0ˆØ%Ÿ|™|ÐØ‡z�zƒ|�aÒØ—‘¨!�Ó,‰Ø	�‰‹˜Ò	Ø×!Ñ! "Ó%ˆð �l‰lœeŸj™jÐ(€GÙ�6—>’>Ø—‘œ5Ÿ:™:Ó&ˆÜ�Y‰Y�^‰^×;Ñ;Ø��	˜: gÑ.ó€Fñ �6—>’>Ø—‘œ5Ÿ:™:Ó&ˆô Ð#Ó$ qÒ(Ø×!Ñ! "Ð&>¸q¸rÐ&BÓC‰Ü	Ð%Ó	&¨Ò	*Ø—‘ Ó#ˆØ�A‚~Ø×!Ñ! *¨q¡.°!Ó4ˆà˜LÑ)€JØ˜LÑ)€JØ€NØÐØ'1ˆ�|Ñ$ØÐØ'1ˆ�|Ñ$äØØØØ&ô	ð r$   zcvalues: t, offsets: t, dummy: jt_all, lengths: t?, ragged_idx: any?, min_seqlen: t?, max_seqlen: t?c                 ó¢   — t        | ||d¬«      \  }}|d   |d   |d   }}}|d   }|d   }	|d   }
i }|	�|	|d<   |
�|
|d<   t        |||||¬	«      S )
NTrà   rÛ   r³   r´   r2   rÅ   rÆ   )r´   rN   rµ   )r   r	   )rd   re   rf   rò   ró   r�  r³   r´   r2   rÅ   rÆ   r‹  s               r   Ú _nested_view_from_jagged_defaultrŽ  6	  sŸ   € ô
 'Ø�4 ÀTô�M€A€zð
 	�7ÑØ�9ÑØ�9Ñð ˆG€Fð
 ˜LÑ)€JØ˜LÑ)€JØ˜LÑ)€JØ€NØÐØ'1ˆ�|Ñ$ØÐØ'1ˆ�|Ñ$äØØØØØ&ôð r$   c                 ó`   — t        | ||d¬«      \  }}|j                  d«      }|j                  S r  )r   rì   rÍ   r  s         r   Ú_nested_get_offsetsr�  V	  ó3   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�<‰<Ðr$   c                 ó`   — t        | ||d¬«      \  }}|j                  d«      }|j                  S r  )r   rì   rM   r  s         r   Ú_nested_get_lengthsr“  `	  r‘  r$   c                 ó`   — t        | ||d¬«      \  }}|j                  d«      }|j                  S r  )r   rì   rN   r  s         r   Ú_nested_get_ragged_idxr•  j	  s3   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�?‰?Ðr$   c                 ó€   — t        | ||d¬«      \  }}|j                  d«      }|j                  j                  dd «      S )NTrà   rÛ   rÅ   ©r   rì   rµ   rœ   r  s         r   Ú_nested_get_min_seqlenr˜  t	  óB   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ×Ñ×"Ñ" <°Ó6Ð6r$   c                 ó€   — t        | ||d¬«      \  }}|j                  d«      }|j                  j                  dd «      S )NTrà   rÛ   rÆ   r—  r  s         r   Ú_nested_get_max_seqlenr›  ~	  r™  r$   zself: jt, mask: anyc                 ó(  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  dkD  rt        d«      ‚|j                  |j                  k7  r%t        d|j                  › d|j                  › �«      ‚|j
                  j                  |j                  «       «      }t        j                  |j                  «       j                  d	¬
«      d«      }t        |«      }||j                     |d<   t        dd|i|¤ŽS )NTrà   rÛ   rv  r›   z3masked_select only support 2-D selections currentlyzMask with shape z& is not compatible with input's shape r   r_  r�  r³   r�  r1   )r   rì   r   r&   rˆ   r¼   Úmasked_selectr�  r”  r•  r“  r¶   rÍ   r	   )	rd   re   rf   rò   ró   rô   rv  Ú
res_valuesÚmask_cumsums	            r   Úmasked_select_defaultr   ‰	  s  € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€Dà
‡x�x�!‚|ÜÐPÓQÐQØ	�‰�d—j‘jÒ	 ÜØ˜tŸz™z˜lÐ*PÐQT×QZÑQZÐP[Ð\ó
ð 	
ð —‘×*Ñ*¨4¯;©;«=Ó9€JÜ—%‘%˜Ÿ™›×,Ñ,°Ð,Ó3°VÓ<€Kä˜#Ó€DØ! #§,¡,Ñ/€Dˆ�OÜñ Øðà
ñð r$   z2grad_output: t, self: jt_all, dim: any, index: anyc                 óþ   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        j                  ||j                  ¬«      }|j                  |d   |d   «      j                  |«       |S )NTrà   rÛ   r"  )r  r!   r  )r   rì   rF   Ú
zeros_liker  r,  rK  )rd   re   rf   rò   ró   rô   r"  Ú
grad_inputs           r   Ú_nested_select_backward_defaultr¤  ¢	  s|   € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ—.‘. Ó/€Kä×!Ñ! #¨[×->Ñ->Ô?€JØ×Ñ�j Ñ'¨°GÑ)<Ó=×CÑCÀKÔPàÐr$   zself: jt_all, s: anyc                 ó¤   — |d   }|d   } | |j                   |«        | |j                  |«       |j                  � | |j                  |«       y y r‡   )r¼   rÍ   rM   )rd   re   rf   rô   Ústreams        r   Úrecord_stream_defaultr§  ´	  sM   € à
ˆq‰'€CØ�!‰W€Fáˆ�‰�fÔÙˆ�‰�vÔØ
‡|�|ÐÙˆS�\‰\˜6Õ"ð  r$   zRself: jt_all, size: any, dtype: any?, layout: any?, device: any?, pin_memory: any?c                 ó¦   — t        | ||d¬«      \  }}|j                  d«      }t        |d   «      dk(  r | |j                  fi |¤ŽS t	        d«      ‚)NTrà   rÛ   r�   r   z2new_empty() not supported for NJT with shape != ())r   rì   r^   r¼   r&   r  s         r   Únew_empty_defaultr©  ¿	  s]   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä
ˆ:�fÑÓ !Ò#Ù�C—K‘KÑ. :Ñ.Ð.ä
ÐKÓ
LÐLr$   zself: jt_all, ...c                 ój   — t        d„ |D «       «      }t         | d„ |D «       i |¤Žfi t        |«      ¤ŽS )Nc              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   rP   r¹   s     r   r   z&activation_backward.<locals>.<genexpr>á	  s   è ø€ ÒL˜s¬j¸¼lÕ.K”sÑLùrº   c              3   óX   K  — | ]"  }t        |t        «      r|j                  n|–— Œ$ y ­wr   )r   r	   r¼   r¹   s     r   r   z&activation_backward.<locals>.<genexpr>ä	  s"   è ø€ ÒTÈœZ¨¬\Ô:ˆc�kŠkÀÓCÑTùs   ‚(*r¾   )rd   re   rf   r"  s       r   Úactivation_backwardr­  Ô	  sH   € ô ÑL dÔLÓL€KÜÙÙTÈtÔTð	
àñ	
ñô
 ˜Ó
%ñð r$   zself: jt_all, value: anyc                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r  r  r  s         r   Úfill_Scalarr¯  ë	  r   r$   c                 ór   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤Ž |S r  rY  r  s         r   Úfill__Scalarr±  ö	  s?   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cáˆ�‰Ñ#˜
Ò#Ø€Jr$   c                 ó¸   — t        | ||d¬«      \  }}|j                  d«      }t        |«      } | |j                  «      \  }}t	        |fi |¤Žt	        |fi |¤ŽfS r  )r   rì   r¶   r¼   r	   )	rd   re   rf   rò   ró   rô   rV  ÚmantissaÚexponents	            r   Úfrexp_Tensorrµ  
  so   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÜ" 3Ó'€Má˜cŸk™kÓ*Ñ€HˆhÜ˜Ñ2 MÑ2´LØñ5Ø!ñ5ð ð r$   z+grad: any, self: any, other: any, mask: anyc                 óp  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|€yd }	|d   r&t        j                  ||j	                  d	d
«      «      }	d }
|d   r&t        j                  |j	                  d	d
«      |«      }
|	|
fS )NTrà   rm  rÛ   r¸  rv  rè   r   rA   éþÿÿÿr   )r   rì   rF   r&  r   )rd   re   rf   rò   ró   rm  rô   r¸  Úgrad_input_maskÚ	grad_selfÚ
grad_others              r   Úmatmul_backward_defaultr»  
  s¸   € ô
 'Ø�4 ÀTô�M€A€zð �>‰>˜&Ó!€DØ
�.‰.˜Ó
!€CØ�N‰N˜7Ó#€EØ —n‘n VÓ,€Oà€|Øà€IØ�qÒÜ—L‘L  u§¡°r¸2Ó'>Ó?ˆ	à€JØ�qÒÜ—\‘\ #§-¡-°°BÓ"7¸Ó>ˆ
à�zÐ"Ð"r$   )Úflex_attentionÚflex_attention_backward)ÚGraphModuleÚqueryÚkeyr‘  Ú	score_modÚ
block_maskÚscaleÚkernel_optionsÚscore_mod_other_buffersÚmask_mod_other_buffersc	                 óŽ  — | j                  «       dk(  r&|j                  «       dk(  r|j                  «       dk(  sJ ‚t        d„ ||z   D «       «      rt        d«      ‚t        | j	                  «       j                  d«      |j	                  «       j                  d«      |j	                  «       j                  d«      ||||||¬«	      }	t        j                  j                  |	d   j                  dd«      j                  d«      | j                  | j                  | j                  | j                  ¬«      j                  dd«      }
t        j                  j                  |	d   j                  dd«      j                  d«      | j                  | j                  | j                  | j                  ¬«      j                  dd«      }|
|fS )	Né   c              3   ól   K  — | ],  }t        |t        j                  «      xr |j                  –— Œ. y ­wr   )r   rF   rG   r²  )r   Úbufs     r   r   zflex_njt.<locals>.<genexpr>C
  s/   è ø€ ò àô 	�3œŸ™Ó%Ò7¨#¯-©-Ó7ñùs   ‚24z‹flex_attention(): Nested tensor score_mod / mask_mod buffers are not currently supported. Please file an issue if this is important to you.r   )rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  r   r›   ©rÅ   rÆ   )r!   r4   r&   Úflex_attention_hopr�  r­  rF   r´  Únested_tensor_from_jaggedr   r‰   rÍ   rM   rÊ   rË   )r¿  rÀ  r‘  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  r#   Ú
output_njtÚlogsumexp_njts               r   Úflex_njtrÐ  4
  sž  € ð �9‰9‹;˜!Ò §¡£	¨Q¢°5·9±9³;À!Ò3CÐCÐCô ñ à*Ð-CÑCôô ô ðUó
ð 	
ô  Ø�‰‹× Ñ  Ó#Ø�
‰
‹×Ñ˜qÓ!Ø�‰‹× Ñ  Ó#ØØØØ%Ø 7Ø5ô
€Fô —‘×7Ñ7Øˆq‰	×Ñ˜A˜qÓ!×)Ñ)¨!Ó,Ø�‰Ø�‰Ø×*Ñ*Ø×*Ñ*ð 8ó ÷ �i��1ƒoð ô —L‘L×:Ñ:Øˆq‰	×Ñ˜A˜qÓ!×)Ñ)¨!Ó,Ø�‰Ø�‰Ø×*Ñ*Ø×*Ñ*ð ;ó ÷ �i��1ƒoð ð ˜Ð&Ð&r$   rò  Ú	logsumexprn  Úgrad_logsumexpÚfw_graphÚjoint_graph.c                 óÆ  — t        | j                  «       j                  d«      |j                  «       j                  d«      |j                  «       j                  d«      |j                  «       j                  d«      |j                  «       j                  d«      |j                  «       j                  d«      |j                  «       j                  d«      |||	|
|||¬«      }|\  }}}}t        j                  j                  |j                  dd«      j                  d«      | j                  | j                  | j                  | j                  ¬«      j                  dd«      }t        j                  j                  |j                  dd«      j                  d«      |j                  |j                  |j                  |j                  ¬«      j                  dd«      }t        j                  j                  |j                  dd«      j                  d«      |j                  |j                  |j                  |j                  ¬«      j                  dd«      }||||fS )Nr   )rò  rÑ  rn  rÒ  rÓ  rÔ  rÂ  rÃ  rÄ  rÅ  rÆ  r   r›   rË  )Úflex_attention_backward_hopr�  r­  rF   r´  rÍ  r   r‰   rÍ   rM   rÊ   rË   )r¿  rÀ  r‘  rò  rÑ  rn  rÒ  rÓ  rÔ  rÂ  rÃ  rÄ  rÅ  rÆ  r#   Údense_q_gradÚdense_k_gradÚdense_v_gradÚscore_mod_other_buffer_gradsÚ
njt_q_gradÚ
njt_k_gradÚ
njt_v_grads                         r   Úflex_njt_backwardrÞ  m
  s  € ô& )Ø�‰‹× Ñ  Ó#Ø�
‰
‹×Ñ˜qÓ!Ø�‰‹× Ñ  Ó#Ø�J‰J‹L×"Ñ" 1Ó%Ø×"Ñ"Ó$×.Ñ.¨qÓ1Ø—‘Ó"×,Ñ,¨QÓ/Ø%×,Ñ,Ó.×8Ñ8¸Ó;ØØØØØ%Ø 7Ø5ô€Fð$ NTÑJ€L�, Ð.JÜ—‘×7Ñ7Ø×Ñ˜q !Ó$×,Ñ,¨QÓ/Ø�‰Ø�‰Ø×*Ñ*Ø×*Ñ*ð 8ó ÷ �i��1ƒoð ô —‘×7Ñ7Ø×Ñ˜q !Ó$×,Ñ,¨QÓ/Ø�‰Ø�‰Ø×(Ñ(Ø×(Ñ(ð 8ó ÷ �i��1ƒoð ô —‘×7Ñ7Ø×Ñ˜q !Ó$×,Ñ,¨QÓ/Ø�‰Ø�‰Ø×*Ñ*Ø×*Ñ*ð 8ó ÷ �i��1ƒoð ð ˜
 JÐ0LÐMÐMr$   z	self: anyc                 ó   — ddl m}  |«       S )Nr   )Ú_nt_view_dummy)Ú$torch.nested._internal.nested_tensorrà  )rd   re   rf   rà  s       r   Ú_nested_get_jagged_dummyrâ  ­
  s   € åCáÓÐr$   rû   ÚIMPLrâ  ÚCPUÚCUDAÚMeta)F)TFF)r   )r1   r1   )ôr§   r  rî   Útypingr   rF   Útorch.nn.functionalra  rb  r”  Útorch.fx.operator_schemasr   Útorch.nested._internal.sdpar   rÉ   r	   r
   r   ÚAnyÚ__annotations__r   ÚDictr   r.   r;   Ústrrq   ry   r…   rŠ   r–   r¨   Úregister_jagged_funcÚCallabler°   r¶   r©   rª   rø   rú   rû   rü   rý   rþ   r!   r   rÿ   r  r  r	  Úprimr5  r  r�   r  r3  r  r  r(  r  Úlinearr  Úlinear_backwardr/  r=  r  r1  Ú_to_copyrI  rK  rS  ry  Ú
empty_likeÚ	ones_liker¢  Ú	rand_likeÚ
randn_likerW  Ú	full_likeÚrandint_likeÚ	low_dtypeÚzero_rZ  Ú_softmaxrl  Ú_softmax_backward_dataro  Únative_dropoutrt  Únative_dropout_backwardrw  r  Údim_intr{  r}  r[   rG   r‚  r„  r†  rˆ  r�  r�  r  r  r©  r‰   r«  r­  r®  r±  r¶  r&  rÈ  ÚbmmrÌ  rÌ   rÐ  r³  rÒ  rÕ  rÝ  Úwherer$  rà  Ú_pin_memoryrâ  Ú	is_pinnedrä  Úis_same_sizeræ  rz  r¡   rú  r=  rü  r   r  Úpermuter
  ÚviewÚ_unsafe_viewr  Únative_layer_normr%  Únative_layer_norm_backwardr*  r,  r-  r/  r0  Ú	index_putr4  Úconvolutionr;  r  r@  rB  r4   r5   rD  rH  r~   rK  rM  rT  rQ  rO  rW  r]  r_  r`  rc  rd  rf  rg  rj  rk  rp  rq  rÇ  rs  Ú	embeddingru  Úembedding_dense_backwardrw  r�  Ú_nested_get_valuesrz  r|  rÁ  r‡  Ú_nested_from_padded_tensorrŒ  Ú_nested_view_from_jaggedrŽ  r�  r“  r•  r˜  r›  r�  r   Ú_nested_select_backwardr¤  Úrecord_streamr§  Ú	new_emptyÚ	new_zerosÚnew_onesr©  Úelu_backwardÚhardshrink_backwardÚhardsigmoid_backwardÚhardtanh_backwardÚsoftplus_backwardÚsoftshrink_backwardr­  ÚfillÚScalarr¯  Úfill_r±  Úfrexprµ  Úmatmul_backwardr»  Ú&torch._higher_order_ops.flex_attentionr¼  rÌ  r½  rÖ  Útorch.fx.graph_moduler¾  Úpy_implÚTuplere  rÐ  ÚUnionrÞ  râ  ÚlibraryÚ_scoped_libraryÚimplr1   r$   r   ú<module>r+     s:  ðä Û Û Ü Ý ã ß Ð Ý 8Ý Kå 'ð €ˆˆc‰Ó à#%Ð �$�s˜C�x‘.Ó %ó3ð. ØØóó:Yð8=˜Sð =¸Dó =ð@
Øð
Ø#&ð
Ø+7ð
ØADð
à	ó
òòò0ð. )�y×(Ñ(¨Ð8HÓIÐ ð&¨H°XÑ,>ó &òRòòKSò\E$ñP à�	‰	�‰×3Ñ3×;Ñ;Ø�	‰	�‰×Ñ×'Ñ'Ø�	‰	�‰×Ñ×"Ñ"Ø�	‰	�‰×Ñ×$Ñ$Ø�	‰	�‰× Ñ ×(Ñ(Ø�	‰	�‰×!Ñ!×)Ñ)Ø�	‰	�‰×)Ñ)×1Ñ1ðð óñ0óð0ñ, �e—i‘i—n‘n×+Ñ+×3Ñ3°^ÓDñó Eðñ Ø
‡Y�Y‡^�^×Ñ× Ñ Ð!Øóñ
ó	ð
ñ �e—i‘i—n‘n×2Ñ2×:Ñ:¸NÓKñFó LðFð(Ñ Ø	‡I�I‡N�N× Ñ ×.Ñ.Ð0Sóàôñ
 Ø	‡I�I‡N�N×Ñ× Ñ Ð"FóñEóðEñ2 �e—i‘i—n‘n×+Ñ+×3Ñ3Ð5UÓVñPó WðPñ Ø	‡I�I‡N�N×"Ñ"×*Ñ*Ø<óñ"ó	ð"ñJ �e—i‘i—n‘n×'Ñ'×-Ñ-Ð/JÓKñPó LðPñ �e—i‘i—n‘n×-Ñ-×5Ñ5°~ÓFñ%ó Gð%ñP Ø	‡I�I‡N�N×Ñ× Ñ Ð"Qóñóðð: DÑ �U—Y‘Y—^‘^×*Ñ*×2Ñ2°NÓ CØôñ
 à�	‰	�‰×!Ñ!×)Ñ)Ø�	‰	�‰× Ñ ×(Ñ(Ø�	‰	�‰×!Ñ!×)Ñ)Ø�	‰	�‰× Ñ ×(Ñ(Ø�	‰	�‰×!Ñ!×)Ñ)ðð ó	ñ,5ó	ð,5ð^ XÑ �U—Y‘Y—^‘^×-Ñ-×5Ñ5Ð7VÓ WØôð UÑ �U—Y‘Y—^‘^×0Ñ0×8Ñ8Ð:SÓ TØôðÑ Ø	‡I�I‡N�N×Ñ×)Ñ)Ð+Nóàôñ
 �e—i‘i—n‘n×*Ñ*×2Ñ2°NÓCñó Dðñ Ø	‡I�I‡N�N×Ñ×#Ñ#Ð%QóñEPóðEPñP Ø	‡I�I‡N�N×)Ñ)×1Ñ1Ø=óñó	ðñ Ø	‡I�I‡N�N×!Ñ!×)Ñ)Ð+Nóñ
óð
ñ Ø	‡I�I‡N�N×*Ñ*×2Ñ2Ø+óñ	ó	ð	ñ Ø	‡I�I‡N�N×Ñ×ÑØ8óñ>ó	ð>ñ �e—i‘i—n‘n×)Ñ)×1Ñ1Ð3NÓOñ+ó Pð+ñ Ø	‡I�I‡N�N×Ñ×ÑÐ!Góñóðñ" Ø	‡I�I‡N�N×#Ñ#×+Ñ+Ð-Tóñóðñ" Ø	‡I�I‡N�N×Ñ×!Ñ!Ð#Póñ7óð7ñ  �e—i‘i—n‘n×*Ñ*×2Ñ2Ð4VÓWñ&
ó Xð&
ñR �e—i‘i—n‘n×+Ñ+×/Ñ/Ð1JÓKñEó LðEñP �e—i‘i—n‘n×,Ñ,×0Ñ0Ð2FÓGñKó HðKñ �e—i‘i—n‘n×.Ñ.×6Ñ6Ð8PÓQñEó RðEñ, �e—i‘i—n‘n×(Ñ(×0Ñ0Ð2JÓKñó Lðñ0 �e—i‘i—n‘n×+Ñ+×3Ñ3Ð5LÓMñjó NðjñZ �e—i‘i—n‘n×(Ñ(×0Ñ0Ð2KÓLñEó MðEñ  Ø	‡I�I‡N�N×Ñ×!Ñ!Ð#LóñNóðNñ  �e—i‘i—n‘n×.Ñ.×6Ñ6Ð8LÓMñKó NðKñ �e—i‘i—n‘n×1Ñ1×9Ñ9Ð;TÓUñó Vðñ" �e—i‘i—n‘n×6Ñ6×>Ñ>ÀÓOñó Pðñ> Ø	‡I�I‡N�N×Ñ×ÑÐIóñóðñ$ �e—i‘i—n‘n×0Ñ0×8Ñ8Ð:RÓSñPó TðPñ �e—i‘i—n‘n×.Ñ.×6Ñ6Ð8PÓQñ+ó Rð+ñ Ø	‡I�I‡N�N×Ò×'Ñ'Ð)Fóñ*óð*ògFñT �e—i‘i—n‘n×(Ò(×0Ñ0Ð2MÓNñ+ó Oð+ñ Ø	‡I�I‡N�N×Ò×"Ò"Ø9óñ=ó	ð=ñ Ø	‡I�I‡N�N×Ò× Ñ Ð"Fóñ'Póð'PñT �e—i‘i—n‘n×,Ò,×4Ñ4Ð6OÓPñ%Gó Qð%GñP Ø
‡Y�Y‡^�^×Ò× Ñ  %§)¡)§.¡.×"=Ò"=×"EÑ"EÐFØóñ,Ró	ð,Rñ^ Ø	‡I�I‡N�N×$Ò$×,Ñ,ØNóñ^Dó	ð^DñB Ø	‡I�I‡N�N×-Ò-×5Ñ5Øvóñ
Kó	ð
Kñ �e—i‘i—n‘n×+Ò+×/Ñ/Ð1UÓVñGó WðGñ8 Ø	‡I�I‡N�N×Ò×ÑØ=óñ
Pó	ð
Pñ Ø	‡I�I‡N�N×Ò×$Ñ$Ø>óñ Ø	‡I�I‡N�N×Ò×%Ñ%Ø>óñQó	ó	ðQñh Ø	‡I�I‡N�N×Ò×&Ñ&ðGóñ
Póð
Pñ Ø	‡I�I‡N�N×Ò×ÑÐRóñ#Lóð#LñL �e—i‘i—n‘n×)Ò)×1Ñ1Ð3NÓOñ+ó Pð+ñ �e—i‘i—n‘n×(Ò(×-Ò-Ð/WÓXñAó YðAñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñ;ó Wð;ñ �e—i‘i—n‘n×(Ò(×-Ò-Ð/WÓXñ@ó Yð@ñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñ;ó Wð;ñ à�	‰	�‰×Ò×"Ñ"Ø�	‰	�‰×Ò×"Ñ"Ø�	‰	�‰×Ò×"Ñ"Ø�	‰	�‰×Ò×"Ñ"ð	ð óñ+óð+ñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñEó WðEñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñEó WðEñ Ø	‡I�I‡N�N×Ò×ÑÐ!IóñFóðFñ Ø	‡I�I‡N�N×Ò×ÑÐ!IóñFóðFñ Ø	‡I�I‡N�N×Ò×!Ñ!Ð#KóñHóðHñ Ø	‡I�I‡N�N×Ò×!Ñ!Ð#KóñHóðHñ Ø	‡I�I‡N�N×5Ò5×=Ñ=ØGóñ=ó	ð=ñ@ �e—i‘i—n‘n×*Ò*×2Ñ2Ð4LÓMñó Nðñ< Ø	‡I�I‡N�N×Ò×$Ñ$ØWóñó	ðñ Ø	‡I�I‡N�N×+Ò+×3Ñ3Ø_óñDó	ðDñ à�	‰	�‰×Ò×%Ñ%Ø�	‰	�‰×)Ò)×1Ñ1ðð óñ	 óð	 ñ �e—i‘i—n‘n×(Ò(×0Ñ0°.ÓAñó Bðñ Ø	‡I�I‡N�N×#Ò#×+Ñ+Ø3óñ8ó	ð8ñv Ø	‡I�I‡N�N×-Ò-×5Ñ5Øióñ2ó	ð2ñj Ø	‡I�I‡N�N×+Ò+×3Ñ3Øióñó	ðñ8 �e—i‘i—n‘n×8Ò8×@Ñ@À.ÓQñó Rðñ �e—i‘i—n‘n×8Ò8×@Ñ@À.ÓQñó Rðñ �e—i‘i—n‘n×;Ò;×CÑCÀ^ÓTñó Uðñ �e—i‘i—n‘n×;Ò;×CÑCÀ^ÓTñ7ó Uð7ñ �e—i‘i—n‘n×;Ò;×CÑCÀ^ÓTñ7ó Uð7ñ �e—i‘i—n‘n×2Ò2×:Ñ:Ð<QÓRñó Sðñ0 Ø	‡I�I‡N�N×*Ò*×2Ñ2Ø8óñó	ðñ �e—i‘i—n‘n×2Ò2×:Ñ:Ð<RÓSñ#ó Tð#ñ à�	‰	�‰× Ò ×(Ñ(Ø�	‰	�‰× Ò ×(Ñ(Ø�	‰	�‰×Ò×'Ñ'ðð
 Yóñ
Móð
Mñ à�	‰	�‰×#Ò#×+Ñ+Ø�	‰	�‰×*Ò*×2Ñ2Ø�	‰	�‰×+Ò+×3Ñ3Ø�	‰	�‰×(Ò(×0Ñ0Ø�	‰	�‰×(Ò(×0Ñ0Ø�	‰	�‰×*Ò*×2Ñ2ðð ó
ñ	ó
ð	ñ �e—i‘i—n‘n×)Ò)×0Ò0Ð2LÓMñPó NðPñ �e—i‘i—n‘n×*Ò*×1Ò1Ð3MÓNñó Oðñ �e—i‘i—n‘n×*Ò*×1Ñ1°>ÓBñó Cðñ Ø	‡I�I‡N�N×"Ò"×*Ñ*Ø1óñ#ó	ð#÷0õ .ð Ð×Ò˜LÓ)ð &(Ø$&ñ5'Ø�<‰<ð5'à	�‰ð5'ð �<‰<ð5'ð ð	5'ð
 ð5'ð ð5'ð ˜˜c˜‘Nð5'ð #ð5'ð "ð5'ð ˆ5�<‰<˜Ÿ™Ð%Ñ&ò5'ó *ð5'ðp %Ð×$Ò$ \Ó2ð &(Ø$&ñ;NØ�<‰<ð;Nà	�‰ð;Nð �<‰<ð;Nð 
�‰ð	;Nð
 �|‰|ð;Nð �l‰lð;Nð —L‘Lð;Nð �H˜kÐ)Ñ*ð;Nð ð;Nð ð;Nð ð;Nð ˜˜c˜‘Nð;Nð #ð;Nð "ð;Nð Ø	‡L�L�%—,‘, §¡¨e°H¸U¿\¹\Ñ4JÈCÐ4OÑ.PÐPñò;Nó 3ð;Nñ~ �e—i‘i—n‘n×=Ò=×EÑEÀ{ÓSñó Tðð ‡]‚]×"Ò" 6¨6Ó2ð L°dØ‡I‚IÐ(Ð*BÀEÔJØ‡I‚IÐ(Ð*BÀFÔKØ‡I‚IÐ(Ð*BÀFÔK÷L÷ Lñ Lús   Ád&=Ae,Áe,Ae5