Ë
    Q/æjÙ¸ ã                  ó>
  — U d dl mZ d dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZmZ d dlmZmZmZ  ed¬«       G d	„ d
«      «       Z G d„ de«      ZdZdj)                  «       Zg d¢ZdgeD � cg c]  } d| z   ‘Œ	 c} z   ZddhZ G d„ de«      Z G d„ de«      Zdcd„ZeD ]4  ZeD ]-  Z eeeez   «      rŒ e«       Z e e«        e!de› e› de› �«      ‚ Œ6 ejD                  ejF                  ejH                  ejJ                  hZ&ejF                  ejH                  hZ'ejH                  ejP                  ejR                  ejT                  ejF                  ejD                  ejJ                  ejV                  ejX                  ejZ                  ej\                  ej^                  ej`                  ejb                  ejd                  ejf                  ejh                  ejj                  ejl                  ejn                  ejp                  ejr                  ejt                  gZ;ddd„Z<ddd„Z=ddd„Z>ddd„Z?ddd„Z@ G d „ d!e«      ZAi ZBd"eCd#<    eeAjˆ                  eAjŠ                  eAjŒ                  eAjŽ                  eAj�                  g«      eBd$<    eeAj’                  eAj”                  g«      eBd%<    eeAj–                  eAj˜                  g«      eBd&<   eBd$   eBd%   z  eBd'<   eBd'   eBd&   z  eBd(<   eBd%   eBd&   z  eBd)<    G d*„ d+e«      ZM G d,„ d-e«      ZN G d.„ d/e«      ZO ed¬«       G d0„ d1«      «       ZP G d2„ d3e«      ZQ ed¬«       G d4„ d5«      «       ZR ed¬«       G d6„ d7«      «       ZS ed¬«       G d8„ d9«      «       ZT ed¬«       G d:„ d;«      «       ZU ed¬«       G d<„ d=«      «       ZV ed¬«       G d>„ d?«      «       ZW ed¬«       G d@„ dA«      «       ZX G dB„ dCe«      ZY ed¬«       G dD„ dEeX«      «       ZZ ed¬«       G dF„ dGeX«      «       Z[ ed¬«       G dH„ dIeX«      «       Z\ ed¬«       G dJ„ dKeX«      «       Z] ed¬«       G dL„ dM«      «       Z^ ed¬«       G dN„ dO«      «       Z_ ed¬«       G dP„ dQ«      «       Z` ed¬«       G dR„ dS«      «       Za ed¬«       G dT„ dU«      «       Zbg dV¢Zc ed¬«       G dW„ dX«      «       Zd ed¬«       G dY„ dZ«      «       Ze	 	 	 	 	 	 	 	 ded[„Zf ed¬«       G d\„ d]«      «       Zgdfd^„Zhdgd_„Zidhd`„Zj ed¬«       G da„ db«      «       Zkyc c} w )ié    )ÚannotationsN)Ú	dataclass)ÚautoÚEnum)ÚCallableÚIteratorÚSequence)Úassert_neverÚNamespaceHelperÚ
OrderedSetT)Úfrozenc                  ó*   — e Zd ZU ded<   ded<   dd„Zy)ÚLocationÚstrÚfileÚintÚlinec                ó8   — | j                   › d| j                  › �S )Nú:)r   r   ©Úselfs    úQ/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torchgen/model.pyÚ__str__zLocation.__str__,   s   € Ø—)‘)�˜A˜dŸi™i˜[Ð)Ð)ó    N©Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   © r   r   r   r   '   s   … à
ƒIØ
ƒIô*r   r   c                  ó(   — e Zd Z e«       Z e«       Zy)ÚVariantN)r   r   r   r   ÚfunctionÚmethodr!   r   r   r#   r#   1   s   „ Ù‹v€HÙ‹V�Fr   r#   z
at::nativezVCPU CUDA HIP XLA MTIA MPS IPU XPU HPU VE Lazy Meta PrivateUse1 PrivateUse2 PrivateUse3)Ú Ú	QuantizedÚSparseÚ	SparseCsrÚNestedTensorÚAutogradÚAutogradNestedTensorr+   Ú	quantizedÚquantized_decomposedc                  óÂ  — e Zd ZdZeZ e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z  e«       Z! e«       Z" e«       Z# e«       Z$ e«       Z% e«       Z& e«       Z' e«       Z( e«       Z) e«       Z* e«       Z+ e«       Z, e«       Z- e«       Z. e«       Z/ e«       Z0 e«       Z1 e«       Z2 e«       Z3 e«       Z4 e«       Z5 e«       Z6 e«       Z7 e«       Z8 e«       Z9 e«       Z: e«       Z; e«       Z< e«       Z= e«       Z> e«       Z? e«       Z@ e«       ZA e«       ZB e«       ZC e«       ZD e«       ZE e«       ZF e«       ZG e«       ZH e«       ZI e«       ZJ e«       ZK e«       ZL e«       ZM e«       ZN e«       ZO e«       ZP e«       ZQ e«       ZR e«       ZS e«       ZT e«       ZU e«       ZV e«       ZW e«       ZX e«       ZY e«       ZZ e«       Z[ e«       Z\ e«       Z] e«       Z^ e«       Z_ e«       Z` e«       Za e«       Zb e«       Zc e«       Zd e«       Ze e«       Zf e«       Zg e«       Zh e«       Zi e«       Zj e«       Zk e«       Zl e«       Zm e«       Zn e«       Zo e«       Zp e«       Zq e«       Zr e«       Zs e«       Zt e«       Zu e«       Zv e«       Zw e«       Zx e«       Zy e«       Zz e«       Z{ e«       Z| e«       Z} e«       Z~ e«       Z e«       Z€ e«       Z� e«       Z‚ e«       Zƒ e«       Z„ e«       Z… e«       Z† e«       Z‡ e«       Zˆ e«       Z‰ e«       ZŠ e«       Z‹ e«       ZŒ e«       Z� e«       ZŽ e«       Z�dd„Z�dd„Z‘e’dd„«       Z“y)ÚDispatchKeyr   c                ó   — | j                   S ©N©Únamer   s    r   r   zDispatchKey.__str__ã   ó   € Ø�y‰yÐr   c                ó4   — t        | «      j                  «       S r2   )r   Úlowerr   s    r   r7   zDispatchKey.loweræ   s   € Ü�4‹y�‰Ó Ð r   c                ó|   — t         j                  j                  «       D ]  \  }}|| k(  sŒ|c S  t        d| › �«      ‚)Nzunknown dispatch key )r0   Ú__members__ÚitemsÚAssertionError©ÚvalueÚkÚvs      r   ÚparsezDispatchKey.parseé   sE   € ä×+Ñ+×1Ñ1Ó3ò 	‰DˆAˆqØ�E‹zØ’ð	ô Ð4°U°GÐ<Ó=Ð=r   Nr   )r=   r   r   r0   )”r   r   r   Ú	UndefinedÚCatchAllr   ÚFPGAÚMAIAÚVulkanÚMetalÚMKLDNNÚOpenGLÚOpenCLÚIDEEPÚCustomRNGKeyIdÚ	MkldnnCPUr(   r)   r*   ÚDenseÚPythonTLSSnapshotÚPreDispatchÚPythonDispatcherÚPythonÚFuncTorchDynamicLayerBackModeÚ
ZeroTensorÚ	ConjugateÚNegativeÚBackendSelectÚNamedÚAutogradOtherÚAutogradFunctionalityr,   ÚTracerÚAutocastÚAutocastCPUÚAutocastCUDAÚBatchedÚVmapModeÚFuncTorchGradWrapperÚFuncTorchBatchedÚBatchedNestedTensorÚFuncTorchVmapModeÚFuncTorchDynamicLayerFrontModeÚFunctionalizeÚTESTING_ONLY_GenericWrapperÚTESTING_ONLY_GenericModeÚADInplaceOrViewr+   ÚCompositeImplicitAutogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeExplicitAutogradÚ&CompositeExplicitAutogradNonFunctionalÚFuncTorchBatchedDecompositionÚCPUÚCUDAÚHIPÚXLAÚMTIAÚMPSÚIPUÚXPUÚHPUÚVEÚLazyÚMetaÚPrivateUse1ÚPrivateUse2ÚPrivateUse3ÚQuantizedCPUÚQuantizedCUDAÚQuantizedHIPÚQuantizedXLAÚQuantizedMTIAÚQuantizedMPSÚQuantizedIPUÚQuantizedXPUÚQuantizedHPUÚQuantizedVEÚQuantizedLazyÚQuantizedMetaÚQuantizedPrivateUse1ÚQuantizedPrivateUse2ÚQuantizedPrivateUse3Ú	SparseCPUÚ
SparseCUDAÚ	SparseHIPÚ	SparseXLAÚ
SparseMTIAÚ	SparseMPSÚ	SparseIPUÚ	SparseXPUÚ	SparseHPUÚSparseVEÚ
SparseLazyÚ
SparseMetaÚSparsePrivateUse1ÚSparsePrivateUse2ÚSparsePrivateUse3ÚSparseCsrCPUÚSparseCsrCUDAÚSparseCsrHIPÚSparseCsrXLAÚSparseCsrMTIAÚSparseCsrMPSÚSparseCsrIPUÚSparseCsrXPUÚSparseCsrHPUÚSparseCsrVEÚSparseCsrLazyÚSparseCsrMetaÚSparseCsrPrivateUse1ÚSparseCsrPrivateUse2ÚSparseCsrPrivateUse3ÚNestedTensorCPUÚNestedTensorCUDAÚNestedTensorHIPÚNestedTensorXLAÚNestedTensorMTIAÚNestedTensorMPSÚNestedTensorIPUÚNestedTensorXPUÚNestedTensorHPUÚNestedTensorVEÚNestedTensorLazyÚNestedTensorMetaÚNestedTensorPrivateUse1ÚNestedTensorPrivateUse2ÚNestedTensorPrivateUse3ÚAutogradCPUÚAutogradCUDAÚAutogradHIPÚAutogradXLAÚAutogradMTIAÚAutogradMPSÚAutogradIPUÚAutogradXPUÚAutogradHPUÚ
AutogradVEÚAutogradLazyÚAutogradMetaÚAutogradPrivateUse1ÚAutogradPrivateUse2ÚAutogradPrivateUse3r   r7   Ústaticmethodr@   r!   r   r   r0   r0   O   s  „ Ø€IØ€Há‹6€DÙ‹6€DÙ‹V€FÙ‹F€EÙ‹V€FÙ‹V€FÙ‹V€FÙ‹F€EÙ“V€NÙ“€IÙ‹V€FÙ“€IÙ“6€LÙ‹F€Eá›ÐÙ“&€KÙ“vÐÙ‹V€FÙ$(£FÐ!Ù“€JÙ“€IÙ‹v€HÙ“F€MÙ‹F€EÙ“F€MÙ ›FÐÙ›6ÐÙ‹V€FÙ‹v€HÙ“&€KÙ“6€LÙ‹f€GÙ‹v€HÙ›6ÐÙ“vÐÙ›&ÐÙ›ÐÙ%)£VÐ"Ù“F€MÙ"&£&ÐÙ#›vÐá“f€OÙ‹v€HÙ $£ÐÙ,0«FÐ)Ù $£ÐÙ-1«VÐ*Ù$(£FÐ!ñ ‹&€CÙ‹6€DÙ
‹&€CÙ
‹&€CÙ‹6€DÙ
‹&€CÙ
‹&€CÙ
‹&€CÙ
‹&€CÙ	‹€BÙ‹6€DÙ‹6€DÙ“&€KÙ“&€KÙ“&€KÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“6€LÙ“6€LÙ“&€KÙ“F€MÙ“F€MÙ›6ÐÙ›6ÐÙ›6ÐÙ“€IÙ“€JÙ“€IÙ“€IÙ“€JÙ“€IÙ“€IÙ“€IÙ“€IÙ‹v€HÙ“€JÙ“€JÙ›ÐÙ›ÐÙ›ÐÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“6€LÙ“6€LÙ“&€KÙ“F€MÙ“F€MÙ›6ÐÙ›6ÐÙ›6ÐÙ“f€OÙ“vÐÙ“f€OÙ“f€OÙ“vÐÙ“f€OÙ“f€OÙ“f€OÙ“f€OÙ“V€NÙ“vÐÙ“vÐÙ"›fÐÙ"›fÐÙ"›fÐÙ“&€KÙ“6€LÙ“&€KÙ“&€KÙ“6€LÙ“&€KÙ“&€KÙ“&€KÙ“&€KÙ“€JÙ“6€LÙ“6€LÙ›&ÐÙ›&ÐÙ›&Ðóó!ð ò>ó ñ>r   r0   c                  ó6   — e Zd Z e«       Z e«       Z e«       Zy)Ú_TorchDispatchModeKeyN)r   r   r   r   ÚFAKEÚPROXYÚ
FUNCTIONALr!   r   r   rÊ   rÊ   ñ   s   „ Ù‹6€DÙ‹F€EÙ“�Jr   rÊ   c                 ó‚   — g } t         D ]$  }t        D ]  }| j                  d|› |› d�«       Œ Œ& dj                  | «      S )Nz    z	 = auto()ú
)ÚFUNCTIONALITY_KEYSÚBACKEND_COMPONENTSÚappendÚjoin)ÚrÚfkÚbcs      r   Úcodegen_per_backend_entriesr×   ÷   sN   € Ø
€AÜ ò /ˆÜ$ò 	/ˆBØ�H‰H�t˜B˜4 ˜t 9Ð-Õ.ñ	/ð/ð �9‰9�Q‹<Ðr   zMissing zL from DispatchKey enum.  Here is the autogenerated list we expect to have:

c                ó‚   — | t         j                  t         j                  t         j                  t         j                  hv S r2   )r0   rk   rl   ri   rj   ©Údks    r   Úis_generic_dispatch_keyrÛ   1  s8   € ØÜ×-Ñ-Ü×:Ñ:Ü×-Ñ-Ü×9Ñ9ð	ð ð r   c                ó¾   — | t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  hv S r2   )r0   ro   r~   r�   rœ   r«   rº   rÙ   s    r   Úis_cuda_dispatch_keyrÝ   ;  sJ   € ØÜ×ÑÜ×!Ñ!Ü×ÑÜ×!Ñ!Ü×$Ñ$Ü× Ñ ðð ð r   c                ó¾   — | t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  hv S r2   )r0   ru   r„   r“   r¢   r±   rÀ   rÙ   s    r   Úis_xpu_dispatch_keyrß   G  sH   € ØÜ�‰Ü× Ñ Ü×ÑÜ× Ñ Ü×#Ñ#Ü×Ñðð ð r   c                ó   — | t         v S r2   )ÚSTRUCTURED_DISPATCH_KEYSrÙ   s    r   Úis_structured_dispatch_keyrâ   T  s   € ØÔ)Ð)Ð)r   c                ó   — | t         v S r2   )ÚUFUNC_DISPATCH_KEYSrÙ   s    r   Úis_ufunc_dispatch_keyrå   X  s   € àÔ$Ð$Ð$r   c                  ó8  — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Zdd„Zedd„«       Zedd„«       Zed	d„«       Zy)
Ú
ScalarTypec                ó   — | j                   S r2   r3   r   s    r   r   zScalarType.__str__q  r5   r   c                ób   — t         j                  j                  «       D ]  \  }}|| k(  sŒ|c S  y r2   )rç   r9   r:   r<   s      r   Úmaybe_parsezScalarType.maybe_parset  s5   € ä×*Ñ*×0Ñ0Ó2ò 	‰DˆAˆqØ�E‹zØ’ð	ð r   c                óH   — t         j                  | «      }|€
J d| › �«       ‚|S )Nzunknown dtype )rç   rê   )r=   Úmb_rs     r   r@   zScalarType.parse{  s/   € ä×%Ñ% eÓ,ˆØÐÐ9 >°%°Ð!9Ó9ÐØˆr   c                óÐ   — t        «       }| j                  d«      D ]G  }|t        v r|j                  t        |   «       Œ$|j	                  t
        j                  |«      «       ŒI |S )Nú, )r   ÚsplitÚDTYPE_CLASSESÚupdateÚaddrç   r@   )ÚvaluesÚdtypesr=   s      r   Ú	parse_setzScalarType.parse_set�  sX   € ä)3«ˆØ—\‘\ $Ó'ò 	4ˆEØœÑ%Ø—‘œm¨EÑ2Õ3à—
‘
œ:×+Ñ+¨EÓ2Õ3ð		4ð
 ˆr   Nr   )r=   r   r   zScalarType | None)r=   r   r   rç   )ró   r   r   úOrderedSet[ScalarType])r   r   r   r   ÚByteÚCharÚShortÚIntÚLongÚHalfÚFloatÚDoubleÚComplexHalfÚComplexFloatÚComplexDoubleÚBoolÚBFloat16ÚFloat8_e5m2ÚFloat8_e5m2fnuzÚFloat8_e4m3fnÚFloat8_e4m3fnuzr   rÈ   rê   r@   rõ   r!   r   r   rç   rç   ^  sº   „ Ù‹6€DÙ‹6€DÙ‹F€EÙ
‹&€CÙ‹6€DÙ‹6€DÙ‹F€EÙ‹V€FÙ“&€KÙ“6€LÙ“F€MÙ‹6€DÙ‹v€HÙ“&€KÙ“f€OÙ“F€MÙ“f€Oóð òó ðð òó ðð
 òó ñr   rç   z!dict[str, OrderedSet[ScalarType]]rð   ÚIntegralÚFloatingÚComplexÚAllÚAllAndComplexÚFloatingAndComplexc                  óˆ   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
dd„Zedd„«       Zy)ÚUfuncKeyc                ó   — | j                   S r2   r3   r   s    r   r   zUfuncKey.__str__¶  r5   r   c                ó|   — t         j                  j                  «       D ]  \  }}|| k(  sŒ|c S  t        d| › �«      ‚)Nzunknown ufunc key )r  r9   r:   r;   r<   s      r   r@   zUfuncKey.parse¹  sE   € ä×(Ñ(×.Ñ.Ó0ò 	‰DˆAˆqØ�E‹zØ’ð	ô Ð1°%°Ð9Ó:Ð:r   Nr   )r=   r   r   r  )r   r   r   r   ÚCUDAFunctorÚCUDAFunctorOnOtherÚCUDAFunctorOnSelfÚ	CPUScalarÚ	CPUVectorÚ
ScalarOnlyÚGenericr   rÈ   r@   r!   r   r   r  r  §  sR   „ ñ “&€KÙ›ÐÙ›Ðá“€IÙ“€Iñ “€JÙ‹f€Góð ò;ó ñ;r   r  c                  ó   — e Zd ZdZdZy)ÚDeviceCheckTyper   é   N)r   r   r   ÚNoCheckÚ	ExactSamer!   r   r   r  r  Á  s   „ Ø€GØ�Ir   r  c                  ó6   — e Zd Z e«       Z e«       Z e«       Zy)ÚViewSchemaKindN)r   r   r   r   ÚaliasingÚaliasing_inplaceÚnon_aliasingr!   r   r   r  r  Æ  s   „ Ù‹v€HÙ“vÐÙ“6�Lr   r  c                  ó�  — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d
ed<   ded<   ded<   ded<   ded <   ded!<   ded"<   ded#<   ded$<   e	 d.	 	 	 	 	 	 	 	 	 d/d&„«       Zd0d'„Zd0d(„Zed1d)„«       Z	ed1d*„«       Z
ed2d+„«       Zed3d,„«       Zed1d-„«       Zy%)4ÚNativeFunctionr   Ú	namespaceÚFunctionSchemaÚfuncÚboolÚ!use_const_ref_for_mutable_tensorsÚdevice_guardr  Údevice_checkú
str | NoneÚpython_moduleÚcategory_overridezset[Variant]ÚvariantsÚmanual_kernel_registrationÚmanual_cpp_bindingr   Úloczlist[OperatorName]Úautogenzdict[UfuncKey, UfuncInnerLoop]Úufunc_inner_loopÚ
structuredzOperatorName | NoneÚstructured_delegateÚstructured_inheritszPrecompute | NoneÚprecomputedúset[str]Úcpp_no_default_argsÚis_abstractÚ&has_composite_implicit_autograd_kernelÚ4has_composite_implicit_autograd_nested_tensor_kernelÚ&has_composite_explicit_autograd_kernelÚ5has_composite_explicit_autograd_non_functional_kernelÚtagsNc                óÈ  — | j                  «       }|j                  d«      }t        |t        «      s
J d|› �«       ‚t	        j
                  |d¬«      }|j                  d¬«      }t        j                  |j                  «      }|j                  dg «      }	t        |	t        «      sJ ‚t        |	«      }
|j                  dd	«      }t        |t        «      sJ ‚|j                  d
d«      }t        |t        «      sJ ‚t        «       }|j                  d«      D ]Y  }|dk(  r |j                  t        j                   «       Œ(|dk(  r |j                  t        j"                  «       ŒMt%        d|› �«      ‚ |j                  dd	«      }t        |t        «      s
J d|› �«       ‚|j                  dd	«      }t        |t        «      s
J d|› �«       ‚|j                  dd«      }t        |t        «      s
J d|› �«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�|t&        j(                  v s
J d|› �«       ‚|€t&        j*                  }n	t&        |   }|j                  dd	«      }t        |t        «      s
J d|› �«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�d|vsJ d«       ‚d}|�t,        j                  |«      }|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�d|vsJ d«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�t        j"                  |vsJ d«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|j                  d d«      }|�|du sJ ‚|rt.        j                  |«      nd}|j                  d!g «      }t        |t        «      r|g}t        |t        «      sJ ‚|dk(  rd"|v r|j1                  d"«       t        «       }|D ]5  }t3        |«      d#kD  sJ ‚||v r|j                  |«       Œ)t%        d$|› �«      ‚ d#d%lm} |j                  d&d«      } | �t        | t8        «      sJ |«       ‚i }!d#}"| ��Æ|rJ d'«       ‚d	}#| j;                  «       D �]  \  }$}|$d(k(  rŒt        |$t        «      sJ d)|$› d*| › �«       ‚t        |t        «      sJ d+|› d*| › �«       ‚|$j                  d,«      D ]Å  }%t<        j                  |%j?                  «       «      }&|"dz  }"|r|&|v rŒ2|&t@        v sJ d-|&› d.|› d/�«       ‚t	        j
                  |d0¬1«      }|j                  d2¬«      }'tC        |j                  |xr tE        |&«      |'d3z   ¬4«      |!|&<   |&t<        jF                  u sŒ¯||jI                  |«      k(  sŒÄd}#ŒÇ �Œ" |"dk(  r	|#rJ d5«       ‚|�s)|!jK                  «       t<        jF                  hk7  �s|!t<        jF                     jM                  «       så|"dk7  sàJ d6|jI                  |«      › d7|!t<        jF                     › d8�«       ‚|s°|€®t        |jH                  jH                  «      }(|(jO                  d9«      sA|(jQ                  d:«      s0|jR                  jT                  r%|jR                  jW                  «       sJ d;|(› d<�«       ‚tC        |jI                  |«      d	tX        ¬=«      |!t<        jF                  <   |!D �)cg c]P  })|)t<        jZ                  k(  s9|)t<        j\                  k(  s&|)t<        jF                  k(  s|)t<        j^                  k(  r|)‘ŒR }*})t3        |*«      dk  s9t3        |*«      d>k(  r$t<        j\                  |*vrt<        j^                  |*v sJ d?«       ‚|j                  d@dA«      }+t        |+t        «      sJ ‚|+dAk(  rg n1|+j                  d«      D �,cg c]  },t,        j                  |,«      ‘Œ c},}-|j                  dBi «      }.i }/t        |.t        «      r6t`        j                  |.tb        jd                  «      |/tb        jd                  <   nŸt        |.t8        «      r�|.j;                  «       D ]m  \  }%}0|%d(k(  rŒt        |%t        «      s
J dC|%› �«       ‚t        |0t        «      s
J dD› �«       ‚tb        j                  |%«      }1t`        j                  |0|1«      |/|1<   Œo nt%        dE|.› �«      ‚|/rP|sJ dF«       ‚d#dl3m4c m5}2 tl        D ]5  }&|&|!vs
J dG|&› �«       ‚tC        |2jo                  ||&«      dtX        ¬4«      |!|&<   Œ7 |rd}3ny|!jK                  «       t<        jF                  hk7  xrU |!jK                  «       t<        j^                  hk7  xr1 |!jK                  «       t<        jF                  t<        j^                  hk7  }3t<        jF                  |!v }4t<        j^                  |!v }5t<        jZ                  |!v }6t<        j\                  |!v }7|!j;                  «       D �%�ci c]  \  }%}|%|jH                  |i“Œ }8}%}|j                  d(d«       |r
J dH|› �«       ‚|�tp        D ]  }9|9|!vrŒJ dI|9› dJ�«       ‚ ts        dRi d|“d|“d
|“d|“d|“d|“d |“d@|-“dB|/“d|“d|“d|“d|“d|“d|“dK|“d|
“dL|3“dM|4“dN|5“dO|6“dP|7“d!|“dQ|“Ž|8fS c c})w c c},w c c}}%w )Szp
        Parse a NativeFunction from a dictionary as directly parsed
        from native_functions.yaml
        r'  znot a str: r  )Únamespaced_entityÚ	max_levelÚaten)Údefaultr:  r)  Fr/  r$   rî   r%   zillegal variant r0  znot a bool: r1  r*  Tr+  Nzillegal device_check: r5  r6  z::zbnamespace is not supported in structured delegate, using the same namespace as the native functionr7  zbnamespace is not supported in structured inherits, using the same namespace as the native functionr-  z&functions in modules cannot be methodsr.  r8  r@  Úpt2_compliant_tagr   zillegal tag )ÚcppÚdispatchzncannot specify both manual_kernel_registration and dispatch; with manual registration, dispatch has no effect!Ú__line__zillegal dispatch key 'z' in zillegal dispatch value 'ú,zDispatch key z of kernel z! is not a supported dispatch key.é   )rC  Úatz::native)Úkernelr5  Úcpp_namespacezSunnecessary dispatch table for this function; just delete the dispatch key entirelyzQunexpected name for singleton CompositeImplicitAutograd dispatch entry: expected z	 but got zR.  Rename your implementation to the expected name, then delete the dispatch tableÚnew_Ú_likez	expected zÂ to have a CompositeExplicitAutograd dispatch entry, but there was no dispatch table.  Factory functions should not have implicit dispatch as they should not be decomposed for __torch_dispatch__)r5  rN  é   aH  cannot specify more than one of CompositeExplicitAutograd, CompositeExplicitAutogradNonFunctional, or CompositeImplicitAutograd on a single kernel; each strictly subsumes the other.  If you wanted to provide an explicit autograd implementation, specify CompositeExplicitAutograd; otherwise specify CompositeImplicitAutograd onlyr3  r&   r4  z#ufunc_inner_loop key is not a str: z%ufunc_inner_loop value is not a str: z"ufunc_inner_loop not str or dict: zufunc must be structuredz2ufunc should not have explicit dispatch entry for zleftover entries: z+if structured_delegate, then must not have z* in dispatch dictionary (it is delegated!)r2  r;  r<  r=  r>  r?  r%  r!   ):ÚcopyÚpopÚ
isinstancer   r   Úfrom_namespaced_entityÚget_cpp_namespacer&  r@   Úentity_nameÚlistÚsetr(  rï   rò   r#   r$   r%   r;   r  r9   r  ÚOperatorNameÚ
PrecomputerÒ   ÚlenÚtorchgen.apirG  Údictr:   r0   ÚstripÚdispatch_keysÚBackendMetadatarâ   ri   r4   ÚkeysÚsupports_symintÚ
startswithÚendswithÚ	argumentsÚtensor_optionsÚhas_tensor_argÚDEFAULT_KERNEL_NAMESPACErk   rl   rj   ÚUfuncInnerLoopr  r  Útorchgen.api.ufuncÚapiÚufuncrä   Úschema_kernel_namerá   r$  ):Úeir2  Ú
valid_tagsÚignore_keysÚeÚfuncsÚnamespace_helperr%  r'  Úcpp_no_default_args_listr:  r)  Ú
variants_sr/  r?   r0  r1  r*  Údevice_check_sr+  r5  Ústructured_delegate_sr6  r7  r-  r.  Úprecomputed_dictr8  Útags_inpr@  ÚtrG  Úraw_dispatchrH  Únum_dispatch_keysÚ%redundant_composite_implicit_autogradÚksr>   Údispatch_keyÚkernel_namespacer4   ÚdÚcomposites_in_dispatchÚautogen_strÚxr3  Úraw_ufunc_inner_loopr4  ÚvoÚ	ufunc_keyrm  r;  r<  r=  r>  r?  Úbackend_metadataÚkeys:                                                             r   Ú	from_yamlzNativeFunction.from_yamlN  s  € ð �G‰G‹Iˆà—‘�f“ˆÜ˜%¤Ô%Ð<¨°U°GÐ'<Ó<Ð%ä*×AÑAØ#¨qô
Ðð %×6Ñ6¸vÐ6ÓFˆ	Ü×#Ñ#Ð$4×$@Ñ$@ÓAˆà#$§5¡5Ð)>ÀÓ#CÐ ÜÐ2´DÔ9Ð9Ð9Ü!Ð":Ó;Ðà,-¯E©EØ/°ó-
Ð)ô Ð;¼TÔBÐBÐBà—U‘U˜: zÓ2ˆ
Ü˜*¤cÔ*Ð*Ð*Ü!$£ˆØ×!Ñ! $Ó'ò 	=ˆAØ�JŠØ—‘œW×-Ñ-Õ.Ø�h’Ø—‘œWŸ^™^Õ,ä$Ð'7¸°sÐ%;Ó<Ð<ð	=ð &'§U¡UÐ+GÈÓ%OÐ"ÜØ&¬ô
ð 	7àÐ4Ð5Ð6ó	7ð 
ð ŸU™UÐ#7¸Ó?ÐÜÐ,¬dÔ3ÐX°|ÐDVÐCWÐ5XÓXÐ3à—u‘u˜^¨TÓ2ˆÜ˜,¬Ô-ÐL°¸l¸^Ð/LÓLÐ-àŸ™˜~¨tÓ4ˆØÐ%¬ØœCô*
ð 	*à˜Ð(Ð)ó	*ð 
ð Ð" n¼×8SÑ8SÑ&Sð	5à# NÐ#3Ð4ó	5ØSð Ð!Ü*×4Ñ4‰Lä*¨>Ñ:ˆLà—U‘U˜<¨Ó/ˆ
Ü˜*¤dÔ+ÐH¨|¸J¸<Ð-HÓHÐ+à !§¡Ð&;¸TÓ BÐØ$Ð,´
Ø!¤3ô1
ð 	1àÐ.Ð/Ð0ó	1ð 
ð %Ð,°Ð<QÑ0Qð 	
ð?ó	
ÐQð 48ÐØ Ð,Ü".×"4Ñ"4Ð5JÓ"KÐàŸe™eÐ$9¸4Ó@ÐØ"Ð*¬jØ¤ô/
ð 	/àÐ,Ð-Ð.ó	/ð 
ð #Ð*¨dÐ:MÑ.Mð 	
ð?ó	
ÐMð
 Ÿ™˜o¨tÓ4ˆØÐ$¬
Øœ3ô)
ð 	)à˜˜Ð(ó	)ð 
ð Ð!¤W§^¡^¸8Ñ%Cð	4à3ó	4ØCð ŸE™EÐ"5°tÓ<ÐØ Ð(¬JØœsô-
ð 	-àÐ*Ð+Ð,ó	-ð 
ð Ÿ5™5 °Ó5ÐØÐ'¨:¸Ñ+=Ð=Ð=Ù<L”j×&Ñ&Ð'7Ô8ÐRVˆà—5‘5˜ Ó$ˆÜ�h¤Ô$Ø �zˆHÜ˜(¤DÔ)Ð)Ð)ð ˜ÒÐ#6¸*Ñ#DØ�O‰OÐ/Ô0ä›ˆØò 	9ˆAÜ�z“? QÒ&Ð&Ð&à�J‰Ø—‘˜•ä$ |°A°3Ð%7Ó8Ð8ð	9õ 	%à—u‘u˜Z¨Ó.ˆØÐ#¤z°,ÄÔ'EÐHÀqÓHÐEØ79ˆØ!"ÐØÑ#Ù1ð ð?óÐ1ð 5:Ð1Ø%×+Ñ+Ó-ó &E‘��AØ˜Ò#ØÜ!Øœôð Dà+¨B¨4¨u°\°NÐCóDð ô "Ø”sôð Eà-¨a¨S°°l°^ÐDóEð ð Ÿ™ #›ò E�AÜ#.×#4Ñ#4°Q·W±W³YÓ#?�LØ%¨Ñ*Ð%á" |°{Ñ'BØ Ø'¬=Ñ8ð Ø'¨ ~°[ÀÀð D;ð ;óÐ8ô (7×'MÑ'MØ Qô(Ð$ð (8×'IÑ'IÐRVÐ'IÓ'WÐ$ô .=Ø/×;Ñ;Ø#-ò $EÜ6°|ÓDØ'7¸*Ñ'Dô	.�H˜\Ñ*ð %¬×(MÑ(MÒMØ §¡¨$£Ó/à@DÑ=ò;Eð&EðX " QÒ&Ñ+Pððóð ò $Ø—=‘=“?¤{×'LÑ'LÐ&MÓMØœK×AÑAÑB×RÑRÔTØ$¨Ò)ð		ð dÐdg×dlÑdlÐmqÓdrÐcsð tØ#¤K×$IÑ$IÑJÐKð L7ð7ó	ð*ñ Ð 3Ð ;Ü�t—y‘y—~‘~Ó&ˆDà—‘ Ô'Ø—=‘= Ô)ð —N‘N×1Ò1Ø ŸN™N×9Ñ9Ô;ðð ˜D˜6ð ")ð )óð ô ?NØ—‘˜“¨5Ô@Xô?ˆH”[×:Ñ:Ñ;ð ö"
àØ”K×9Ñ9Ò9Ø”K×FÑFÒFØ”K×9Ñ9Ò9Ø”K×EÑEÒEò ð"
Ðð "
ô Ð)Ó*¨aÒ/ÜÐ&Ó'¨1Ò,ä×BÑBØ-ñ.ô ×AÑAØ)ñ*ð	
ðró	
ð 

ð" —e‘e˜I rÓ*ˆÜ˜+¤sÔ+Ð+Ð+ð ˜bÒ ñ à1<×1BÑ1BÀ4Ó1HÖI¨A”,×$Ñ$ QÕ'ÒIð 	ð  !Ÿu™uÐ%7¸Ó<ÐØÐÜÐ*¬CÔ0Ü1?×1EÑ1EØ$¤h×&6Ñ&6ó2ÐœX×-Ñ-Ò.ô Ð,¬dÔ3Ø-×3Ñ3Ó5ò R‘��2Ø˜
’?ØÜ! !¤SÔ)ÐTÐ-PÐQRÐPSÐ+TÓTÐ)Ü! "¤cÔ*ÐWÐ.SÐTUÐSVÐ,WÓWÐ*Ü$ŸN™N¨1Ó-�	Ü.<×.BÑ.BÀ2ÀyÓ.QÐ  Ò+ñRô !Ø4Ð5IÐ4JÐKóð ñ ÙÐ9Ð9Ó9�:÷ /Ð.ä 3ò �à ¨Ñ0ðWàGÈÀ~ÐVóWØ0ä)8Ø ×3Ñ3°D¸,ÓGØ#Ü":ô*�˜Ò&ð	ñ à‰Kð —‘“¤K×$IÑ$IÐ#JÑJò Ø—M‘M“OÜ×EÑEÐFñGòð —M‘M“Oä×9Ñ9Ü×EÑEðñð	 ô ×1Ñ1°XÐ=ð 	/ô ×=Ñ=ÀÐIð 	=ô ×1Ñ1°XÐ=ð 	/ô ×>Ñ>À(ÐJð 	>ð ;C¿.¹.Ó:J×K±$°!°Q˜A §	¡	¨1˜~Ñ-ÐKÐÑKð 	
�‰ˆj˜$ÔÙÐ.Ð*¨1¨#Ð.Ó.ˆuð Ð*Ü/ò �Ø (Ò*ð ØAÀ#Àð G)ð )óÐ*ðô ò Ùðá2Sðñ "ðñ &ð	ñ
 %8ðñ %8ðñ (ðñ  ðñ "2ðñ ,Fðñ $6ðñ ,ðñ #4ðñ *ðñ *ðñ  ð!ñ" %8ð#ñ$ (ð%ñ& 8^ð'ñ( Fzð)ñ* 8^ð+ñ, G|ð-ñ. ð/ñ0 $ð1ð4 ð7
ð 	
ùòk"
ùò> JùóN Ls   ÜAkß(kè+kc                óP   — | j                   rJ d«       ‚| j                  sJ d«       ‚y )NzMThis function is structured, but there was no valid functional variant of it.z’This function delegates to another structured out function, but no valid function was found (the delegate may not exist, or it has the wrong type)©r5  r6  r   s    r   Úvalidate_unstructuredz$NativeFunction.validate_unstructured»  s;   € ð —?’?ð 	
ð1ó	
Ð"ð ×'Ò'ð 	
ðeó	
Ñ'r   c                ó  — | j                   j                  j                  r%| j                  t        j
                  hk(  sJ d«       ‚| j                  rE| j                   j                  «       t        j                  k(  sJ d«       ‚| j                  sJ d«       ‚| j                  rE| j                   j                  «       t        j                  k7  sJ d«       ‚| j                  sJ d«       ‚| j                  r| j                  rJ d«       ‚| j                   j                  «       D �ch c]  }|j                  €Œ|j                  ’Œ }}t        j                  | j                   |«      }t#        |«      dk(  s
J d|› �«       ‚| j$                  �| j                  sJ d«       ‚t'        | j                   j                  «      j)                  d	«      r$| j*                  t,        j.                  k(  sJ d
«       ‚dt'        | j                   j                  «      v sÁdt'        | j                   j                  «      v s0t1        d„ | j                   j                  j2                  D «       «      rLdt'        | j                   j                  «      vr+t'        | j                   j                  j                  «      dvs$| j                   j                  j5                  «       r3d| j6                  v s$J t'        | j                   j                  «      «       ‚y y c c}w )NzëNative functions with out arguments MUST be declared with only function variant; e.g., variants: function; otherwise you will tickle a Python argument binding bug (which usually manifests itself as the result variable being undefined.)zYPut structured field on the out= variant of a function; did you mean structured_delegate?z:device_guard: False is not respected by structured kernelszQstructured_delegate field not allowed on out= functions; did you mean structured?z?Cannot have both structured and structured_delegate on functionr   zInvalid cpp_no_default_args: z4structured_inherits must also imply structured: TrueÚ_foreachzsforeach kernels fall back to slow path when tensor are on different devices, device_check not allowed to be enabledÚrandÚdropoutc              3  ó8   K  — | ]  }d |j                   v –— Œ y­w)r’  Nr3   ©Ú.0Úargs     r   ú	<genexpr>z/NativeFunction.__post_init__.<locals>.<genexpr>  s   è ø€ ò Ø25˜	 S§X¡XÔ-ñùs   ‚Úbackward)Ú_cudnn_init_dropout_stateÚnondeterministic_seeded)r'  rf  Úoutr/  r#   r$   r5  ÚkindÚ
SchemaKindr*  r6  Úschema_order_argumentsrE  r4   rY  Ú
differencer:  r\  r7  r   rd  r+  r  r  ÚanyÚflat_allÚhas_generator_argr@  )r   ÚaÚdefaulted_argumentsÚinvalid_argss       r   Ú__post_init__zNativeFunction.__post_init__Î  s¡  € Ø�9‰9×Ñ×"Ò"Ø—=‘=¤W×%5Ñ%5Ð$6Ò6ð ð[óÐ6ð �?Š?Ø—9‘9—>‘>Ó#¤z§~¡~Ò5ð ðKóÐ5ð
 ×!Ò!ðLàKóLØ!à×#Ò#Ø—9‘9—>‘>Ó#¤z§~¡~Ò5ð ð>óÐ5ð
 ×!Ò!ðLàKóLØ!ð
 �OŠO × 8Ò 8ð	MàLó	Mð 
ð !ŸI™I×<Ñ<Ó>ö
ØÀ!Ç)Á)ÑBWˆA�F‹Fð
Ðð 
ô —~‘~ d×&>Ñ&>Ð@SÓTˆÜ�<Ó  AÒ%ÐUÐ)FÀ|ÀnÐ'UÓUÐ%Ø×#Ñ#Ð/à—’ðFàEóFØäˆt�y‰y�~‰~Ó×)Ñ)¨*Ô5Ø×$Ñ$¬×(?Ñ(?Ò?ð ð9óÐ?ð ”c˜$Ÿ)™)Ÿ.™.Ó)Ñ)ð ¤ T§Y¡Y§^¡^Ó!4Ñ4Üñ Ø9=¿¹×9LÑ9L×9UÑ9Uôô ð
 ¤c¨$¯)©)¯.©.Ó&9Ñ9Ü˜Ÿ	™	Ÿ™×+Ñ+Ó,Ð4QÑQà�y‰y×"Ñ"×4Ñ4Ô6à,°·	±	Ñ9ÐN¼3¸t¿y¹y¿~¹~Ó;NÓNÑ9ð 7ùò=
s   Ä#LÄ5Lc                óŠ   — | j                   xs | j                  xs | j                  xs | j                   xr | j                  S r2   )r<  r>  r?  r=  r   s    r   Úhas_composite_kernelz#NativeFunction.has_composite_kernel  sO   € ð ×7Ñ7ò JØ×:Ñ:òJà×IÑIò
ð
 ×7Ñ7ò JØ×IÑIð	
r   c                ó†  — | j                   j                  }t        |«      dkD  xr t        d„ |D «       «      }d| j                  v xrF t        | j                   j                  «      dk7  xr" t        | j                   j                  «      dk7  }t        d„ | j                   j                  «       D «       «      }|xs |xs |S )Nr   c              3  ój   K  — | ]+  }|j                   d uxr |j                   j                   –— Œ- y ­wr2   ©Ú
annotationÚis_write©r•  rÔ   s     r   r—  z,NativeFunction.is_view_op.<locals>.<genexpr>  s3   è ø€ ò 5
ØGHˆA�L‰L Ð$ÒB¨Q¯\©\×-BÑ-BÐ)BÓBñ5
ùs   ‚13Úinplace_viewÚresize_Ú
resize_as_c              3  ól   K  — | ],  }|j                   d uxr d|j                   j                  v –— Œ. y ­w)NÚ*)r¬  Úalias_set_after)r•  Úinps     r   r—  z,NativeFunction.is_view_op.<locals>.<genexpr>$  s8   è ø€ ò 
àð �N‰N $Ð&ÒP¨3°#·.±.×2PÑ2PÐ+PÓPñ
ùs   ‚24)r'  Úreturnsr\  r   r@  r   r4   rž  )r   ÚretsÚis_non_mutating_viewÚis_inplace_viewÚis_wildcard_views        r   Ú
is_view_opzNativeFunction.is_view_op  s¹   € à�y‰y× Ñ ˆÜ" 4›y¨1™}ò  
´ñ 5
ØLPô5
ó 2
Ðð
 ˜dŸi™iÐ'ò 4Ü�D—I‘I—N‘NÓ# yÑ0ò4ä�D—I‘I—N‘NÓ# |Ñ3ð 	ô
 ñ 
à—y‘y×7Ñ7Ó9ô
ó 
Ðð $ÒJ ÒJÐ:JÐJr   c                ó  — | j                   rJ| j                  j                  j                  j                  r d| j                  v sJ ‚t
        j                  S | j                   rt
        j                  S t
        j                  S )Nr¯  )	r»  r'  r4   Úinplacer@  r  r!  r   r"  r   s    r   Úview_schema_kindzNativeFunction.view_schema_kind*  s\   € à�?Š?˜tŸy™yŸ~™~×2Ñ2×:Ò:Ø! T§Y¡YÑ.Ð.Ð.Ü!×2Ñ2Ð2Ø�?Š?Ü!×*Ñ*Ð*ä!×.Ñ.Ð.r   c                óV   — | j                   j                  j                  j                  S r2   )r'  r4   Úbaser   s    r   Ú	root_namezNativeFunction.root_name4  s   € à�y‰y�~‰~×"Ñ"×'Ñ'Ð'r   c                ó:   — | j                   xs | j                  d uS r2   r�  r   s    r   Úpart_of_structured_groupz'NativeFunction.part_of_structured_group8  s   € à�‰ÒF $×":Ñ":À$Ð"FÐFr   r2   )
ro  zdict[str, object]r2  r   rp  r9  rq  zset[DispatchKey] | Noner   zMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]©r   ÚNone©r   r(  )r   r  r   )r   r   r   r    rÈ   r‹  rŽ  r¦  Úpropertyr¨  r»  r¾  rÁ  rÃ  r!   r   r   r$  r$  Ø  s}  … ð ƒNð Óð (,Ó+ð Óð "Ó!ð Óð "Ó!ð Óð
 !%Ó$ð Óð 
ƒMð  Óð 5Ó4ð Óð -Ó,ð $Ó#ð #Ó"ð "Ó!ð Óð -1Ó0Ø:>Ó>Ø,0Ó0Ø;?Ó?ð ƒNð ð
 04ð	j
Øðj
àðj
ð ðj
ð -ð	j
ð
 
Wòj
ó ðj
óX

ó&=Oð~ ò
ó ð
ð òKó ðKð" ò/ó ð/ð ò(ó ð(ð òGó ñGr   r$  c                  óR   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Zy)r�  N)	r   r   r   r   Ú
functionalr½  r›  ÚmutableÚscratchr!   r   r   r�  r�  =  s%   „ Ù“€JÙ‹f€GÙ
‹&€CÙ‹f€GÙ‹f�Gr   r�  c                  ó„   — e Zd ZU ded<   ded<   ded<   ded<   edd„«       Zdd„Zdd	„Zdd
„Zedd„«       Z	e
dd„«       Zy)ÚNativeFunctionsGroupr$  rÉ  úNativeFunction | Noner½  rÊ  r›  c                ó.   — | j                   j                  S r2   )r›  r5  r   s    r   r5  zNativeFunctionsGroup.structuredR  s   € ð �x‰x×"Ñ"Ð"r   c           
     óÆ	  — | j                   j                  j                  «       }| j                  «       D ]¤  }||j                  j                  «       k7  r)t	        d|› d|j                  j                  «       › �«      ‚| j
                  |j                  k7  sŒct	        d| j                  j                  j                  › d|j                  j                  › �«      ‚ | j                   j                  j                  «       t        j                   k(  sJ ‚| j                  j                  j                  «       t        j                  k(  sJ ‚| j                   j                  | j                  j                  k(  sJ ‚| j                  �f| j                  j                  j                  «       t        j                  k(  sJ ‚| j                  j                  | j                   j                  k(  sJ ‚| j                  �œ| j                  j                  j                  «       t        j                  k(  sJ ‚| j                  j                  | j                   j                  k(  sJ ‚| j                   j                  j                  j                  j                  sJ ‚| j
                  �r	| j                  j                  s| j                  j                   rJ ‚| j                   j"                  | j                  j                  j                  k(  s_J | j                   j                  j                  › d| j                   j"                  › d| j                  j                  j                  › �«       ‚| j                  �9| j                  j"                  | j                  j                  j                  k(  sJ ‚t%        | j                  «       D �cg c]0  }d|j&                  v sŒt)        |j                  j                  «      ‘Œ2 c}«      }dj+                  d	„ |D «       «      }t-        «       }| j                  «       D ]$  }|j/                  d
„ |j0                  D «       «       Œ& dj+                  d„ t%        |«      D «       «      }t3        |«      dk(  r?t3        |«      dkD  r1t5        d|› d|› dt)        j                  j                  «      › �«      ‚||k7  rt5        d|› d|› d|› d�«      ‚y c c}w )Nz_NativeFunctionsGroup constructed from two NativeFunctions that don't have matching signatures: ú != zMNativeFunctionsGroup constructed from structured and unstructured functions: ú and z delegates to z but its actual delegate is Ú	generatedrî   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr2   ©r   ©r•  r…  s     r   r—  z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>„  s   è ø€ Ò%D°¤c¨!§fÑ%Dùó   ‚c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr2   rÕ  )r•  Úops     r   r—  z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>‡  s   è ø€ Ò)F°b¬#¨b¯'Ñ)Fùr×  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr2   rÕ  rÖ  s     r   r—  z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>ˆ  s   è ø€ ò /
ØŒC��Fñ/
ùr×  r   z,The codegen expects to be able to generate 'zv'. In order to generate them however, we expect them to be called out explicitly in the yaml. Please add an 'autogen: z' line to the entry for z*'. To do so, it expects a line: 'autogen: z'. Instead, it found 'autogen: ú')rÉ  r'  Ú	signatureÚ	functionsr;   r5  rÃ  r›  r4   rœ  r�  r%  r½  rÊ  Úfunctional_overloadr<  r=  r6  Úsortedr@  r   rÓ   rY  rñ   r3  r\  ÚRuntimeError)r   Útest_sigÚfÚgenerated_fnsÚgenerated_fns_strÚexpected_generated_fnsÚexpected_generated_fns_strs          r   r¦  z"NativeFunctionsGroup.__post_init__W  s&  € Ø#'§?¡?×#7Ñ#7×#AÑ#AÓ#CˆØ—‘Ó!ò 	ˆAØ˜1Ÿ6™6×+Ñ+Ó-Ò-Ü$ð<Ø<D¸:ÀTÈ!Ï&É&×JZÑJZÓJ\ÐI]ð_óð ð
 �‰ !×"<Ñ"<Ó<Ü$ð"Ø"&§(¡(§-¡-×"4Ñ"4Ð!5°U¸1¿6¹6¿;¹;¸-ðIóð ð	ð �‰×#Ñ#×(Ñ(Ó*¬j×.CÑ.CÒCÐCÐCØ�x‰x�}‰}×!Ñ!Ó#¤z§~¡~Ò5Ð5Ð5Ø�‰×(Ñ(¨D¯H©H×,>Ñ,>Ò>Ð>Ð>Ø�<‰<Ð#Ø—<‘<×$Ñ$×)Ñ)Ó+¬z×/AÑ/AÒAÐAÐAØ—<‘<×)Ñ)¨T¯_©_×-FÑ-FÒFÐFÐFà�<‰<Ð#Ø—<‘<×$Ñ$×)Ñ)Ó+¬z×/AÑ/AÒAÐAÐAØ—<‘<×)Ñ)¨T¯_©_×-FÑ-FÒFÐFÐFà—?‘?×'Ñ'×,Ñ,×1Ñ1×EÒEÐEÐEà�?‹?ð —H‘H×CÒCØŸ™×UÒUððVð —?‘?×6Ñ6¸$¿(¹(¿-¹-×:LÑ:LÒLð Ø—?‘?×'Ñ'×,Ñ,Ð-¨^¸D¿O¹O×<_Ñ<_Ð;`ð a.Ø.2¯h©h¯m©m×.@Ñ.@Ð-AðCóÐLð �|‰|Ð'Ø—|‘|×7Ñ7¸4¿8¹8¿=¹=×;MÑ;MÒMÐMÐMäØ'+§~¡~Ó'7ÖQ !¸;È!Ï&É&Ò;PŒS�—‘—‘ÕÒQó
ˆð !ŸI™IÑ%D°mÔ%DÓDÐÜ+.«5ÐØ—‘Ó!ò 	GˆAØ"×)Ñ)Ñ)F¸A¿I¹IÔ)FÕFð	Gà%)§Y¡Yñ /
Ü"Ð#9Ó:ô/
ó &
Ð"ô Ð%Ó&¨!Ò+´°MÓ0BÀQÒ0FÜØ>Ð?PÐ>Qð R,à,=Ð+>Ð>VÔWZÐ[\×[aÑ[a×[fÑ[fÓWgÐVhðjóð ð
 &Ð):Ò:ÜØ>Ð?PÐ>Qð R;Ø;LÐ:Mð N0Ø0JÐ/KÈ1ðNóð ð ;ùò Rs   Ï SÏ!Sc                óJ   — | j                   j                  j                  «       S r2   )r›  r'  rÜ  r   s    r   rÜ  zNativeFunctionsGroup.signature˜  s   € Ø�x‰x�}‰}×&Ñ&Ó(Ð(r   c              #  ó®   K  — | j                   –— | j                  –— | j                  �| j                  –— | j                  �| j                  –— y y ­wr2   )rÉ  r›  r½  rÊ  r   s    r   rÝ  zNativeFunctionsGroup.functions›  sF   è ø€ Ø�o‰oÒØ�h‰hŠØ�<‰<Ð#Ø—,‘,ÒØ�<‰<Ð#Ø—,‘,Óð $ùs   ‚AAc                ó.   — | j                   j                  S r2   )rÉ  rÁ  r   s    r   rÁ  zNativeFunctionsGroup.root_name£  s   € à�‰×(Ñ(Ð(r   c                ór  — | sJ ‚t        | «      dk(  ry t        | «      } | j                  t        j                  d «      }| j                  t        j
                  d «      }| j                  t        j                  d «      }| j                  t        j                  d «      }| rJ ‚|€J ‚|€y t        ||||¬«      S )Nr  )rÉ  r½  rÊ  r›  )	r\  r^  rS  r�  rÉ  r½  rÊ  r›  rÍ  )r‚  rÉ  r½  rÊ  r›  s        r   Ú	from_dictzNativeFunctionsGroup.from_dict§  s¬   € áˆˆqÜˆq‹6�QŠ;ØÜ�‹GˆØ—U‘Uœ:×0Ñ0°$Ó7ˆ
Ø—%‘%œ
×*Ñ*¨DÓ1ˆØ—%‘%œ
×*Ñ*¨DÓ1ˆØ�e‰e”J—N‘N DÓ)ˆÙˆˆuØÐ%Ð%Ð%ð ˆ;Øä#Ø!ØØØô	
ð 	
r   NrÆ  rÄ  ©r   r&  )r   úIterator[NativeFunction]r   )r‚  z dict[SchemaKind, NativeFunction]r   zNativeFunctionsGroup | None)r   r   r   r    rÇ  r5  r¦  rÜ  rÝ  rÁ  rÈ   rë  r!   r   r   rÍ  rÍ  K  sd   … àÓØ"Ó"Ø"Ó"Ø	Óàò#ó ð#ó?óB)óð ò)ó ð)ð ò
ó ñ
r   rÍ  c                  ó4   — e Zd ZU ded<   ded<   ded<   dd„Zy)	ra  r   rM  r(  r5  rN  c                ó   — d| j                   v S )NÚ_symint)rM  r   s    r   rc  zBackendMetadata.supports_symintÓ  s   € Ø˜DŸK™KÐ'Ð'r   NrÆ  )r   r   r   r    rc  r!   r   r   ra  ra  À  s   … ð ƒKð
 Óð Óô(r   ra  c                  ó>   — e Zd ZU ded<   ded<   ded<   ed	d„«       Zy)
rj  r   r4   rö   Úsupported_dtypesr  rˆ  c                óæ   — | j                  dd«      \  }}|d   dk(  sJ ‚|d   dk(  sJ ‚t        «       }|dd j                  d«      D ]  }|t        j                  |«      z  }Œ t	        |||¬«      S )	Nú r  r   ú(éÿÿÿÿú)rî   )r4   rò  rˆ  )rï   r   rç   rõ   rj  )r=   rˆ  r4   Úsupported_dtypes_strrò  r>   s         r   r@   zUfuncInnerLoop.parseß  s’   € à%*§[¡[°°aÓ%8Ñ"ˆÐ"Ø# AÑ&¨#Ò-Ð-Ð-Ø# BÑ'¨3Ò.Ð.Ð.Ü3=³<ÐØ% a¨Ð+×1Ñ1°$Ó7ò 	8ˆAØ¤
× 4Ñ 4°QÓ 7Ñ7Ñð	8äØÐ(8ÀIô
ð 	
r   N)r=   r   rˆ  r  r   rj  )r   r   r   r    rÈ   r@   r!   r   r   rj  rj  ×  s'   … à
ƒIØ,Ó,ð Óàò	
ó ñ	
r   rj  c                  ó†   — e Zd ZU ded<   ded<   ded<   ded<   ded<   e	 	 	 	 	 	 dd	„«       Zdd
„Zdd„Z	 	 	 	 dd„Zdd„Z	y)ÚBackendIndexr0   r€  r(  Úuse_out_as_primaryr*  Úexternalz#dict[OperatorName, BackendMetadata]Úindexc                óœ   — |j                  «       D ]9  \  }}|j                  «       D ]!  \  }}|| |   vsJ d|› d|› �«       ‚|| |   |<   Œ# Œ; y )Nzduplicate operator z for dispatch key )r:   )Úparent_indexÚchild_indexr>   r?   Úop_nameÚmetadatas         r   Ú
grow_indexzBackendIndex.grow_index  st   € ð
  ×%Ñ%Ó'ò 	4‰DˆAˆqØ%&§W¡W£Yò 4Ñ!�˜à <°¡?Ñ2ðHà(¨¨	Ð1CÀAÀ3ÐGóHØ2à+3�˜Q‘ Ò(ñ	4ñ	4r   c                óJ   — | j                   r|j                  S |j                  S r2   )rû  r›  rÉ  )r   Úgs     r   ÚprimaryzBackendIndex.primary  s   € Ø×"Ò"Ø—5‘5ˆLà—<‘<Ðr   c                ó,   — | j                  |«      }|d uS r2   )Ú
get_kernel)r   r  Úms      r   Ú
has_kernelzBackendIndex.has_kernel  s   € Ø�O‰O˜AÓˆØ˜ˆ}Ðr   c                ó  — t        |t        «      r|}n-t        |t        «      r| j                  |«      }nt	        |«       j
                  j                  | j                  vry | j                  |j
                  j                     S r2   )rT  r$  rÍ  r  r
   r'  r4   rý  )r   r  râ  s      r   r  zBackendIndex.get_kernel  s`   € ô �aœÔ(Ø‰AÜ˜Ô/Ô0Ø—‘˜Q“‰Aä˜ŒOØ�6‰6�;‰;˜dŸj™jÑ(ØØ�z‰z˜!Ÿ&™&Ÿ+™+Ñ&Ð&r   c                óL   — | j                   rt        | j                  «      › d�S y )NÚNativeFunctions)rü  r   r€  r   s    r   Únative_function_class_namez'BackendIndex.native_function_class_name%  s'   € Ø�=Š=Ü˜$×+Ñ+Ó,Ð-¨_Ð=Ð=ð
 r   N)rÿ  ú6dict[DispatchKey, dict[OperatorName, BackendMetadata]]r   r  r   rÅ  )r  rÍ  r   r$  )r  ú%NativeFunction | NativeFunctionsGroupr   r(  )r  r  r   zBackendMetadata | None)r   r,  )
r   r   r   r    rÈ   r  r  r
  r  r  r!   r   r   rú  rú  ó  ss   … àÓð Óð ÓàƒNà.Ó.àð	4ØLð	4àKð	4ð 
ò	4ó ð	4ó óð'Ø6ð'à	ó'ôr   rú  c                  óþ   — e Zd ZU ded<   ded<   ded<   edd„«       Zdd„Z ej                  d	«      Z	e
dd
„«       Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zddddœ	 	 	 	 	 	 	 d d„Zd!d„Zd"d„Zedd„«       Zdd„Zd#d„Zy)$r&  rZ  r4   Ú	Argumentsrf  útuple[Return, ...]r¶  c                ó\   ‡— dd„Št        ˆfd„| j                  j                  D «       «      S )Nc                óH   — | j                   €y| j                   j                  S ©NFr«  )r–  s    r   r­  z+FunctionSchema.is_mutable.<locals>.is_writep  s   € Ø�~‰~Ð%ØØ—>‘>×*Ñ*Ð*r   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr2   r!   )r•  r£  r­  s     €r   r—  z,FunctionSchema.is_mutable.<locals>.<genexpr>w  s   øè ø€ Ò@ 1‘8˜A—;Ñ@ùó   ƒ)r–  ÚArgumentr   r(  )r   rf  r¡  )r   r­  s    @r   Ú
is_mutablezFunctionSchema.is_mutablen  s%   ø€ ó	+ô Ó@¨¯©×(?Ñ(?Ô@Ó@Ð@r   c                ó¨   — t        j                  | j                  j                  | j                  j                  | j                  j
                  «      S r2   )Ú	itertoolsÚchainrf  Úflat_positionalÚflat_kwarg_onlyr›  r   s    r   rž  z%FunctionSchema.schema_order_argumentsy  s:   € Ü�‰Ø�N‰N×*Ñ*Ø�N‰N×*Ñ*Ø�N‰N×Ñó
ð 	
r   z3(?P<name>[^\(]+)\((?P<args>.*)\) -> (?P<returns>.*)c                óR  — t         j                  j                  | «      }t        |«      dk(  s
J d| › �«       ‚|d   \  }}}t        j                  |«      }t        j                  |«      }t        |«      }t        |||¬«      }t        |«      | k(  sJ t        |«      › d| › �«       ‚|S )Nr  zInvalid function schema: r   ©r4   rf  r¶  rÑ  )	r&  Údecl_reÚfindallr\  rZ  r@   r  Úparse_returnsr   )	r'  ÚdeclsÚopsÚargsÚreturn_declr4   rf  r¶  rÔ   s	            r   r@   zFunctionSchema.parse‚  s¦   € ô ×&Ñ&×.Ñ.¨tÓ4ˆÜ�5‹z˜QŠÐBÐ";¸D¸6Ð BÓBˆØ!& q¡ÑˆˆT�;Ü×!Ñ! #Ó&ˆÜ—O‘O DÓ)ˆ	Ü Ó,ˆÜ °	À7ÔKˆÜ�1‹v˜Š~Ð4¤# a£& ¨¨d¨VÐ4Ó4ˆ~Øˆr   c                ó:   — t        d„ | j                  D «       «      S )Nc              3  ód   K  — | ](  }|j                   �|j                   j                  r|–— Œ* y ­wr2   r«  r®  s     r   r—  z5FunctionSchema.returns_are_aliased.<locals>.<genexpr>‘  s.   è ø€ ò 
àØ�|‰|Ð'¨A¯L©L×,AÒ,Aô ñ
ùs   ‚.0)r   r¶  r   s    r   Úreturns_are_aliasedz"FunctionSchema.returns_are_aliased�  s    € äñ 
à—\‘\ô
ó 
ð 	
r   c                óJ  ‡‡— t        | j                  j                  | j                  «      D ]%  \  }Š|j                  ‰j                  k(  rŒ J d«       ‚ | j                  j
                  D ]3  Št        ˆfd„| j                  D «       «      sŒ"J dt        | «      › �«       ‚ t        | j                  j                  «      | j                  j                  D �cg c]  }|j                  dk(  sŒ|‘Œ c}z   }| j                  D �cg c]&  }|j                  �|j                  j                  r|‘Œ( }}| j                  D �cg c]&  }|j                  �|j                  j                  s|‘Œ( }}t        |«      dk(  s!t        |«      dk(  sJ dt        | «      › �«       ‚|D ]  Št        ˆfd„|D «       «      rŒJ d«       ‚ | j                  j                  r«t        d	„ | j                  j                  D «       «      r t        | j                  «      dk(  sJ d
«       ‚net        | j                  j                  D �cg c]  }|j                  j                  d«      s|‘Œ! c}«      t        | j                  «      k(  sJ d«       ‚| j                  j                  j                  rä| j                  j                  }|r6|j                   j                  r |j                   j                  j                  sJ ‚|j                   j"                  t%        t&        j(                  «      k(  rJt        | j                  «      dk(  r0| j                  d   j                  |j                   j                  k(  sJ ‚t        | j                  «      dk(  sJ ‚| j                  j*                  �4| j-                  «       t.        j0                  k(  sJ dt        | «      › �«       ‚| j3                  «       r5| j-                  «       t.        j0                  k(  sJ dt        | «      › �«       ‚y y c c}w c c}w c c}w c c}w )NzsOut arguments must have matching return Tensor; furthermore, the ith-argument needs to correspond to the ith returnc              3  óP   •K  — | ]  }‰j                   |j                   k(  –— Œ y ­wr2   ©r¬  ©r•  rÔ   r£  s     €r   r—  z/FunctionSchema.__post_init__.<locals>.<genexpr>   s#   øè ø€ ò Ø12�—‘ §¡Õ,ñùó   ƒ#&z^If you have a schema with mutable positional args, we expect them to not be returned. schema: r   r   zYNativeFunctions must have either only mutable returns, or only immutable returns. Found: c              3  óP   •K  — | ]  }‰j                   |j                   k(  –— Œ y ­wr2   r.  )r•  r–  Úrets     €r   r—  z/FunctionSchema.__post_init__.<locals>.<genexpr>½  s   øè ø€ ÒP¸C�s—~‘~¨¯©Õ7ÑPùr0  z‡All mutable returns must be aliased either to a keyword argument, or to "self". Did you forget to mark an out argument as keyword-only?c              3  óh   K  — | ]*  }|j                   t        t        j                  «      k7  –— Œ, y ­wr2   )ÚtypeÚBaseTypeÚBaseTyÚTensor©r•  r£  s     r   r—  z/FunctionSchema.__post_init__.<locals>.<genexpr>Ç  s"   è ø€ ÒQ¸�1—6‘6œX¤f§m¡mÓ4Õ4ÑQùó   ‚02z3out= ops that accept tensor lists as out arguments Ú	_scratch_zMMust return as many arguments as there are out arguments, or no return at allr  z·Found an operator that is not functional or out variant, but has tensor options arguments.This is not allowed- tensor options arguments are only allowed for factory functions.schema: z³Found an operator that is not functional, but its overload contains the string 'functional'.This is a special keyword in the codegen, please use a different overload name.schema: )Úziprf  r›  r¶  r¬  Úpost_self_positional_mutabler   r   rX  r  r4   r­  r\  rd  r½  Úself_argÚargumentr4  r5  r6  r7  rg  rœ  r�  rÉ  Úis_functional_fn)r   r–  Úout_and_selfr2  Úmutable_returnsÚimmutable_returnsÚself_ar£  s      `   @r   r¦  zFunctionSchema.__post_init__—  sè  ù€ Ü˜DŸN™N×.Ñ.°·±Ó=ò 	‰HˆC�Ø—>‘> S§^¡^Ó3ð ðIóÐ3ð	ð —‘×<Ñ<ò 	|ˆAÜó Ø6:·l±lôõ ð |àoÔpsÐtxÓpyÐozÐ{ó|ð ð	|ô ˜DŸN™N×.Ñ.Ó/ØŸ>™>×9Ñ9ö3
Ø¸S¿X¹XÈÓ=OŠCò3
ñ 
ˆð
 —|‘|ö
àØ�~‰~Ð)¨c¯n©n×.EÒ.Eò ð
ˆð 
ð —|‘|ö
àØ�~‰~Ð%¨S¯^©^×-DÒ-Dò ð
Ðð 
ô �Ó  AÒ%¬Ð->Ó)?À1Ò)Dð	sàfÔgjÐkoÓgpÐfqÐró	sØDà"ò 	ˆCÜÓPÀ<ÔPÕPð ðJóÐPð	ð
 �>‰>×Òô ÑQ¸d¿n¹n×>PÑ>PÔQÔQä˜Ÿ™Ó%¨Ò*ðIàHóIØ*àbô ð $(§>¡>×#5Ñ#5öàØ"Ÿx™x×2Ñ2°;Ô?ò òóô Ø—L‘Lóòð cð cócð ð �9‰9�>‰>×!Ò!Ø—^‘^×,Ñ,ˆFáØ—O‘O×.Ò.Ø—O‘O×.Ñ.×7Ò7ðð8ð �‰×#Ñ#¤x´·±Ó'>Ò>ô ˜Ÿ™Ó%¨Ò*ØŸ™ Q™×2Ñ2°f·o±o×6PÑ6PÒPððQô ˜4Ÿ<™<Ó(¨AÒ-Ð-Ð-à�>‰>×(Ñ(Ð4Ø—9‘9“;¤*×"7Ñ"7Ò7ð ðä˜t›9˜+ð'óÐ7ð
 × Ñ Ô"Ø—9‘9“;¤*×"7Ñ"7Ò7ð ðä˜t›9˜+ð'óÑ7ð #ùòW3
ùò
ùò

ùòBs   ÃPÃ,PÄ+PÄ>+PÈ5$P c                ó2   — d| j                   j                  v S )NrÉ  ©r4   Úoverload_namer   s    r   r?  zFunctionSchema.is_functional_fnù  s   € Ø˜tŸy™y×6Ñ6Ð6Ð6r   c                ó@   — t        | j                  j                  «      S r2   )r(  rf  r›  r   s    r   Ú	is_out_fnzFunctionSchema.is_out_fnü  s   € ô6 �D—N‘N×&Ñ&Ó'Ð'r   c                óH  — t        | j                  j                  «      }t        | j                  j                  D �cg c]   }|j                  j	                  d«      sŒ|‘Œ" c}«      }| j                  j                  j
                  }t        d„ | j                  j                  D «       «      }|r|rJ ‚|rt        j
                  S |r|sJ d«       ‚t        j                  S |r|rJ d«       ‚t        j                  S |rt        j                  S t        j                  S c c}w )a	  
        What kind of schema is this?  A functional schema is one
        that returns a newly allocated output; an inplace schema
        modifies the self argument inplace; an out schema writes
        the result into an explicitly provided out argument.
        r:  c              3  óh   K  — | ]*  }|j                   d uxr |j                   j                  –— Œ, y ­wr2   r«  r8  s     r   r—  z&FunctionSchema.kind.<locals>.<genexpr>%  s3   è ø€ ò 
àð �L‰L Ð$Ò>¨¯©×)>Ñ)>Ó>ñ
ùr9  zFinvariant: all scratch operators are expected to be out= operators toozjWe should not categorize a scratch op as an out variant. Check if the order of if statements are expected!)r(  rf  r›  r4   rd  r½  r   Úpost_self_positionalr�  rË  rÊ  rÉ  )r   Úis_outr–  Ú
is_scratchÚ
is_inplacer  s         r   rœ  zFunctionSchema.kind  s  € ô �d—n‘n×(Ñ(Ó)ˆÜØ ŸN™N×.Ñ.ÖS�S°#·(±(×2EÑ2EÀkÕ2RŠSÒSó
ˆ
ð —Y‘Y—^‘^×+Ñ+ˆ
Üñ 
à—^‘^×8Ñ8ô
ó 
ˆ
ñ ™zÐ*Ð*ñ Ü×%Ñ%Ð%ÙáðXàWóXØä×%Ñ%Ð%Ùáð|à{ó|Øä—>‘>Ð!ÙÜ×%Ñ%Ð%ä×(Ñ(Ð(ùò= Ts   ½ DÁDc                óÆ  — g }| j                   D ]Ê  }| j                  j                  D �cg c])  }|j                  �|j                  |j                  k(  r|‘Œ+ }}t	        |«      dk(  r|j                  d «       Œkt	        |«      dk(  r|j                  |d   j                  «       Œ˜dj                  d„ |D «       «      }t        d|j                  › d|› d�«      ‚ |S c c}w )Nr   r  rî   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr2   r3   r8  s     r   r—  z6FunctionSchema.aliased_return_names.<locals>.<genexpr>S  s   è ø€ Ò)G°Q¨!¯&­&Ñ)Gùs   ‚zFound a return (z)that aliases multiple inputs (r÷  )	r¶  rf  r¡  r¬  r\  rÒ   r4   rÓ   r;   )r   ÚoutsrÔ   r£  Úaliased_argsÚaliased_namess         r   Úaliased_return_namesz#FunctionSchema.aliased_return_namesF  sß   € Ø!#ˆØ—‘ò 	ˆAð Ÿ™×0Ñ0öàØ—<‘<Ð+°·±ÀÇÁÒ0Lò ðˆLð ô
 �<Ó  AÒ%Ø—‘˜DÕ!Ü�\Ó" aÒ'Ø—‘˜L¨™O×0Ñ0Õ1à $§	¡	Ñ)G¸,Ô)GÓ G�Ü$Ø& q§v¡v hÐ.MÈmÈ_Ð\]Ð^óð ð	ð ˆùòs   ª.CF)Ústrip_defaultÚstrip_view_copy_nameÚkeep_return_namesc          	     óˆ  ‡ ‡— dˆfd„}‰ j                   j                   j                  }|rG|j                  d«      r|j                  dd«      }n#|j                  d«      r|j                  dd«      }t	        ˆˆ fd„t        j                  ‰ j                  j                  �!‰ j                  j                  j                  gng ‰ j                  j                  ‰ j                  j                  «      D «       «      }t	        t        |‰ j                  «      «      }||z   }‰ j                  j                  |¬«      }	t        ‰ j                   «      d	k(  r.t         j#                  t        |	«      j                  d
d«      «      }	t%        t'        t)        |d‰ j                   j                   j*                  ¬«      d¬«      |	|¬«      S )aö
  
                Certain schemas are 'related', in that they are simply
                inplace/out/functional versions of the same function.  This method
                factors these schemas into the "core" functional signature which
                is equal across all versions.

                Here is what normalization happens to the schema to convert
                it to a signature:
                - The overload name is stripped (name is retained, since
                  it expresses semantic content about what the function does)
                - Inplace is set False
                - Out arguments are stripped
                - Mutable post_self_positional args are converted to returns
                - Mutability annotations are stripped  (this is sound
                  because you cannot overload on mutability annotation)
                - Return names are stripped since they are not overloadable and
                  some variants have return names but some not
                - TensorOptions are dropped
                  because out= variants of factory functions don't include them
                  (and we want to be able to pair up factory functions with their out variants)

                Finally, we want to be able to pair up related "view" and their
                corresponding "view_copy" operators. We do this by optionally
                stripping the trailing "_copy" from the base name.

                Example of a mutable op before and after:

                f.func (Mutable operator):
        _fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor(a!) running_min, Tensor(b!) running_max, Tensor(c!) scale, Tensor(d!) zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask)  # noqa: B950

                f.func (Corresponding functional operator):
        _fused_moving_avg_obs_fq_helper.functional(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask, Tensor running_min_out, Tensor running_max_out, Tensor scale_out, Tensor zero_point_out)  # noqa: B950

                f.func.signature() output:
        _fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor)  # noqa: B950
        c                óP   •— t        ‰r| j                  nd | j                  d ¬«      S )N©r4   r4  r¬  )ÚReturnr4   r4  )rÔ   rW  s    €r   Ústrip_ret_annotationz6FunctionSchema.signature.<locals>.strip_ret_annotation…  s%   ø€ ÜÙ0�Q—V’V°dØ—V‘VØôð r   Ú_copyr&   Ú_scatterÚscatterÚinversec              3  óò   •‡K  — | ]m  Š‰j                   �_‰j                   j                  rIt        ˆfd„‰j                  D «       «      s+t	        ‰r‰j
                  › d�nd ‰j                  d ¬«      –— Œo y ­w)Nc              3  óP   •K  — | ]  }‰j                   |j                   k(  –— Œ y ­wr2   r.  r/  s     €r   r—  z5FunctionSchema.signature.<locals>.<genexpr>.<genexpr>¨  s   øè ø€ ÒK¸˜Ÿ™¨¯©Õ4ÑKùr0  Ú_outrZ  )r¬  r­  r   r¶  r[  r4   r4  )r•  r£  rW  r   s    @€€r   r—  z+FunctionSchema.signature.<locals>.<genexpr>”  sk   ùè ø€ ò ,
ð ð �|‰|Ð'Ø—‘×%Ò%ÜÓK¸d¿l¹lÔKÔKô! Ù(9˜Ÿ™�x˜t‘_¸tØ—V‘VØ÷ð ñ	,
ùs   „A3A7©rU  zbernoulli.pzfloat pzfloat p=0.5F©rÀ  r½  Údunder_methodrE  r!  )rÔ   r[  r   r[  )r4   rÀ  re  ÚreplaceÚtupler  r  rf  r=  r>  r›  rK  Úmapr¶  rÜ  r   r  r@   r&  rZ  ÚBaseOperatorNamerf  )
r   rU  rV  rW  r\  Ú	base_nameÚreturns_from_mutable_inputsÚoriginal_returnsr¶  Úargs_sigs
   `  `      r   rÜ  zFunctionSchema.signatureY  sx  ù€ õX	ð —I‘I—N‘N×'Ñ'ˆ	ÙØ×!Ñ! 'Ô*Ø%×-Ñ-¨g°rÓ:‘	Ø×#Ñ# JÔ/Ø%×-Ñ-¨i¸ÓC�	ô ',ô ,
ô —_‘_ð —>‘>×*Ñ*Ð6ð —‘×(Ñ(×1Ñ1Ñ2àØ—‘×"Ñ"Ø—‘×3Ñ3óô,
ó '
Ð#ô, !¤Ð%9¸4¿<¹<Ó!HÓIÐà"Ð%@Ñ@ˆà—>‘>×+Ñ+¸-Ð+ÓHˆäˆt�y‰y‹>˜]Ò*Ü —‘¤s¨8£}×'<Ñ'<¸YÈÓ'VÓWˆHäÜÜ%Ø"Ø!Ø"&§)¡)§.¡.×">Ñ">ôð
 !ôð Øô
ð 	
r   c                ó&   — | j                  d¬«      S )NT©rV  )rÜ  r   s    r   Úview_signaturezFunctionSchema.view_signatureÀ  s   € Ø�~‰~°4ˆ~Ó8Ð8r   c                óF   — t        || j                  | j                  ¬«      S )Nr!  )r&  rf  r¶  )r   r4   s     r   Ú	with_namezFunctionSchema.with_nameÃ  s    € ÜØØ—n‘nØ—L‘Lô
ð 	
r   c                ó€   — | j                  «       t        j                  t        j                  t        j                  fv S r2   )rœ  r�  r½  r›  rÊ  r   s    r   Úmodifies_argumentsz!FunctionSchema.modifies_argumentsÊ  s*   € à�y‰y‹{œz×1Ñ1´:·>±>Ä:×CUÑCUÐVÐVÐVr   c                ó6   — | j                   j                  «       S r2   )rf  Úhas_symint_argr   s    r   Ú
has_symintzFunctionSchema.has_symintÎ  s   € Ø�~‰~×,Ñ,Ó.Ð.r   c                ó  — t        | j                  «      }t        | j                  «      dk(  rt        | j                  d   «      }n/ddj	                  t        t         | j                  «      «      z   dz   }| j                  › d|› d|› �S )Nr  r   rõ  rî   r÷  z) -> )r   rf  r\  r¶  rÓ   ri  r4   )r   Úall_arguments_strr¶  s      r   r   zFunctionSchema.__str__Ñ  st   € Ü §¡Ó/ÐÜˆt�|‰|Ó Ò!Ü˜$Ÿ,™, q™/Ó*‰Gà˜DŸI™I¤c¬#¨t¯|©|Ó&<Ó=Ñ=ÀÑCˆGØ—)‘)�˜AÐ/Ð0°°g°YÐ?Ð?r   NrÆ  )r   zIterator[Argument])r'  r   r   r&  rÄ  )r   r�  )r   zlist[str | None])rU  r(  rV  r(  rW  r(  r   r&  rì  )r4   rZ  r   r&  r   )r   r   r   r    rÇ  r  rž  ÚreÚcompiler"  rÈ   r@   r+  r¦  r?  rH  rœ  rT  rÜ  rq  rs  ru  rx  r   r!   r   r   r&  r&  d  sà   … ð ÓàÓð  ÓàòAó ðAó
ð ˆb�j‰jÐOÓP€Gàò
ó ð
ó
ó`óD7ó(ó:')óZð, $Ø%*Ø"'ñe
ð ðe
ð #ð	e
ð
  ðe
ð 
óe
óN9ó
ð òWó ðWó/ô@r   r&  c                  óF   — e Zd ZU ded<   ded<   ded<   ed	d„«       Zd
d„Zy)Ú
Annotationztuple[str, ...]Ú	alias_setr(  r­  r´  c                ó^  — t        j                  d| «      }|€
J d| › �«       ‚|j                  d«      |j                  d«      r|j                  d«      ndz   }t        |j	                  d«      «      }|j                  d«      dk(  }|rt        |«      dkD  rJ d	| › d
�«       ‚|j                  d«      r)t        |j                  d«      j	                  d«      «      nd}t        |«      dkD  rt        |«      dkD  rJ d| › d
�«       ‚t        |||¬«      }t        |«      | k(  sJ |› d| › �«       ‚|S )Nz2^([a-z])(\|[a-z])*(!?)( -> (\*|[a-z](\|[a-z])*))?$zunrecognized alias annotation r  rQ  r&   ú|rK  ú!z,alias set larger than 1 is not mutable, got z	 instead.é   r!   zSbefore alias set and after alias set cannot be larger than 1 at the same time, got )r  r­  r´  rÑ  )r{  ÚmatchÚgrouprh  rï   r\  r~  r   )Úannr	  Úbefore_aliasr  r­  Ú	after_setrÔ   s          r   r@   zAnnotation.parseê  s@  € ô  �H‰HÐJÈCÓPˆàˆ}ÐDÐ >¸s¸eÐDÓDˆ}Ø—w‘w˜q“z°1·7±7¸1´: Q§W¡W¨Q¤ZÀ2ÑFˆÜ˜,×,Ñ,¨SÓ1Ó2ˆ	Ø—7‘7˜1“: Ñ$ˆáœ˜Y›¨!Ò+ð	Ià9¸#¸¸iÐHó	Ið 
ð 56·G±G¸A´J”E˜!Ÿ'™' !›*×*Ñ*¨3Ó/Ô0ÀBˆ	ä�Ó Ò!¤c¨)£n°qÒ&8ð	pà`ÐadÐ`eÐenÐoó	pð 
ô Ø¨(ÀIô
ˆô �1‹v˜Š}Ð-   4¨ u˜oÓ-ˆ}Øˆr   c                ó¨   — dj                  | j                  «      }| j                  r|› d�}dj                  | j                  «      }|r|› d› |› �}|S )Nr�  r‚  ú -> )rÓ   r  r­  r´  )r   r  r´  s      r   r   zAnnotation.__str__  sV   € Ø—H‘H˜TŸ^™^Ó,ˆ	Ø�=Š=Ø$˜+ Q˜ˆIØŸ(™( 4×#7Ñ#7Ó8ˆÙØ$˜+ f X¨oÐ->Ð?ˆIØÐr   N)r†  r   r   r~  r   )r   r   r   r    rÈ   r@   r   r!   r   r   r~  r~  â  s-   … ð ÓØƒNØ$Ó$àò ó ð ôDr   r~  c                  óh   — e Zd Zedd„«       Zedd„«       Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd„Zdd	„Zy
)ÚTypec                ód   — t         j                  | «      }t        |«      | k(  sJ |› d| › �«       ‚|S )NrÑ  )rŒ  Ú_parser   )r{  rÔ   s     r   r@   z
Type.parse  s3   € ä�K‰K˜‹NˆÜ�1‹v˜Š{Ð)˜q˜c  a S˜MÓ)ˆ{Øˆr   c                ó>  — t        j                  d| «      }|�-t        t        j	                  |j                  d«      «      «      S t        j                  d| «      }|�\|j                  d«      �t        |j                  d«      «      nd }t        t        j	                  |j                  d«      «      |¬«      S t        j                  d| «      }|�t        |j                  d«      «      S 	 t        t        |    «      S # t        $ r}t        d| › �«      |‚d }~ww xY w)Nz^(.+)\?$r  z^(.+)\[([0-9]+)?\]$rQ  )ÚelemÚsizez-^__torch__\.torch\.classes\.([a-zA-Z0-9_.]+)$zunrecognized type )r{  r„  ÚOptionalTyperŒ  r@   r…  r   ÚListTypeÚCustomClassTyper5  r6  ÚKeyErrorrà  )r{  r	  r‘  rr  s       r   rŽ  zType._parse%  sî   € ä�H‰H�[ !Ó$ˆØˆ=Ü¤§
¡
¨1¯7©7°1«:Ó 6Ó7Ð7Ü�H‰HÐ+¨QÓ/ˆØˆ=Ø&'§g¡g¨a£jÐ&<”3�q—w‘w˜q“z”?À$ˆDÜ¤§¡¨A¯G©G°A«JÓ!7¸dÔCÐCô �H‰HÐEÀqÓIˆØˆ=Ü" 1§7¡7¨1£:Ó.Ð.ð	@ÜœF 1™IÓ&Ð&øÜò 	@ÜÐ!3°A°3Ð7Ó8¸aÐ?ûð	@ús   Ã-C? Ã?	DÄDÄDc                ó   — t         ‚r2   ©ÚNotImplementedErrorr   s    r   r   zType.__str__8  ó   € Ü!Ð!r   c                ó   — t         ‚r2   r—  ©r   Úbase_tys     r   Úis_base_ty_likezType.is_base_ty_like@  r™  r   c                ó@   — | j                  t        j                  «      S r2   )r�  r6  r7  r   s    r   Úis_tensor_likezType.is_tensor_likeC  ó   € Ø×#Ñ#¤F§M¡MÓ2Ð2r   c                ó@   — | j                  t        j                  «      S r2   )r�  r6  Ú	Generatorr   s    r   Úis_generator_likezType.is_generator_likeF  s   € Ø×#Ñ#¤F×$4Ñ$4Ó5Ð5r   c                ó@   — | j                  t        j                  «      S r2   )r�  r6  ÚSymIntr   s    r   Úis_symint_likezType.is_symint_likeI  r   r   c                ó   — t         ‚r2   r—  r   s    r   Úis_nullablezType.is_nullableL  r™  r   c                ó   — t         ‚r2   r—  r   s    r   Úis_list_likezType.is_list_likeO  r™  r   N)r{  r   r   rŒ  r   ©rœ  r6  r   r(  rÆ  ©r   zListType | None)r   r   r   rÈ   r@   rŽ  r   r�  rŸ  r£  r¦  r¨  rª  r!   r   r   rŒ  rŒ    sM   „ àòó ðð
 ò@ó ð@ó$"ó"ó3ó6ó3ó"ô"r   rŒ  c                  ó2  — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Zy)r6  N)r   r   r   r   r¢  rç   r7  r   ÚDimnameÚ	DimVectorÚfloatr   r(  ÚLayoutÚDeviceÚDeviceIndexÚScalarÚMemoryFormatÚQSchemeÚStorageÚStreamr¥  ÚSymBoolÚConstQuantizerPtrÚGraphModuler!   r   r   r6  r6  T  s–   „ Ù“€IÙ“€JÙ‹V€FÙ
‹&€CÙ‹f€GÙ“€IÙ‹F€EÙ
‹&€CÙ‹6€DÙ‹V€FÙ‹V€FÙ“&€KÙ‹V€FÙ“6€LÙ‹f€GÙ‹f€GÙ‹V€FÙ‹V€FÙ‹f€GÙ›ÐÙ“&�Kr   r6  c                  ó@   — e Zd ZU ded<   d	d„Zd
d„Zdd„Zdd„Zdd„Zy)r5  r6  r4   c                ó0   — | j                   j                   › S r2   r3   r   s    r   r   zBaseType.__str__p  s   € Ø—)‘)—.‘.Ð!Ð"r   c                ó    — | j                   |k(  S r2   r3   r›  s     r   r�  zBaseType.is_base_ty_likes  s   € Ø�y‰y˜GÑ#Ð#r   c                 ó   — yr  r!   r   s    r   r¨  zBaseType.is_nullablev  ó   € Ør   c                 ó   — y r2   r!   r   s    r   rª  zBaseType.is_list_likey  ó   € Ør   c                ó<   — | j                   t        j                  k(  S r2   )r4   r6  r¥  r   s    r   r¦  zBaseType.is_symint_like|  s   € Ø�y‰yœFŸM™MÑ)Ð)r   Nr   r«  rÆ  r¬  )	r   r   r   r    r   r�  r¨  rª  r¦  r!   r   r   r5  r5  l  s    … à
ƒLó#ó$óóô*r   r5  c                  ó@   — e Zd ZU ded<   d	d„Zd
d„Zdd„Zdd„Zdd„Zy)r’  rŒ  r�  c                ó    — | j                   › d�S )NÚ?)r�  r   s    r   r   zOptionalType.__str__…  s   € Ø—)‘)�˜AˆÐr   c                ó8   — | j                   j                  |«      S r2   ©r�  r�  r›  s     r   r�  zOptionalType.is_base_ty_likeˆ  ó   € Ø�y‰y×(Ñ(¨Ó1Ð1r   c                ó6   — | j                   j                  «       S r2   ©r�  r¦  r   s    r   r¦  zOptionalType.is_symint_like‹  ó   € Ø�y‰y×'Ñ'Ó)Ð)r   c                 ó   — y)NTr!   r   s    r   r¨  zOptionalType.is_nullableŽ  rÂ  r   c                ó6   — | j                   j                  «       S r2   )r�  rª  r   s    r   rª  zOptionalType.is_list_like‘  s   € Ø�y‰y×%Ñ%Ó'Ð'r   Nr   r«  rÆ  r¬  ©	r   r   r   r    r   r�  r¦  r¨  rª  r!   r   r   r’  r’  �  s    … à
ƒJóó2ó*óô(r   r’  c                  ó@   — e Zd ZU ded<   d	d„Zd
d„Zdd„Zdd„Zdd„Zy)r”  r   Ú
class_namec                ó    — d| j                   › �S )zK
        Return the class name will prefix __torch__.torch.classes
        z__torch__.torch.classes.)rÑ  r   s    r   r   zCustomClassType.__str__š  s   € ð *¨$¯/©/Ð):Ð;Ð;r   c                 ó   — yr  r!   r›  s     r   r�  zCustomClassType.is_base_ty_like   rÀ  r   c                 ó   — yr  r!   r   s    r   r¦  zCustomClassType.is_symint_like£  rÀ  r   c                 ó   — y)z8
        Assume a custom class is not nullable.
        Fr!   r   s    r   r¨  zCustomClassType.is_nullable¦  s   € ð r   c                 ó   — y r2   r!   r   s    r   rª  zCustomClassType.is_list_like¬  rÂ  r   Nr   r«  rÆ  r¬  rÏ  r!   r   r   r”  r”  –  s    … àƒOó<óóóôr   r”  c                  óJ   — e Zd ZU ded<   ded<   dd„Zdd„Zdd„Zdd„Zdd	„Zy
)r“  rŒ  r�  z
int | Noner‘  c                ó\   — | j                   r| j                   › nd}| j                  › d|› d�S )Nr&   ú[ú])r‘  r�  )r   r‘  s     r   r   zListType.__str__¼  s,   € Ø!%§¢�$—)‘)‘°ˆØ—)‘)�˜A˜d˜V 1Ð%Ð%r   c                ó8   — | j                   j                  |«      S r2   rÈ  r›  s     r   r�  zListType.is_base_ty_likeÀ  rÉ  r   c                ó6   — | j                   j                  «       S r2   rË  r   s    r   r¦  zListType.is_symint_likeÃ  rÌ  r   c                ó6   — | j                   j                  «       S r2   )r�  r¨  r   s    r   r¨  zListType.is_nullableÆ  s   € Ø�y‰y×$Ñ$Ó&Ð&r   c                ó   — | S r2   r!   r   s    r   rª  zListType.is_list_likeÉ  s   € Øˆr   Nr   r«  rÆ  r¬  rÏ  r!   r   r   r“  r“  ·  s&   … à
ƒJØ
Óó&ó2ó*ó'ôr   r“  c                  ót   — e Zd ZU ded<   ded<   ded<   ded<   edd	„«       Zedd
„«       Zedd„«       Zdd„Z	y)r  r   r4   rŒ  r4  r,  rE  úAnnotation | Noner¬  c                ó   — | j                   S r2   r.  r   s    r   Ú
alias_infozArgument.alias_infoë  ó   € à�‰Ðr   c                ój  — d| v sJ d| › d�«       ‚d| v rP| j                  d«      dk(  sJ d| › d�«       ‚| j                  d«      \  }}|j                  dd«      \  }}|› d|› �}n| j                  dd«      \  }}|}d }t        j                  d|«      }|rS|j                  d«      d	v sJ d
«       ‚d|j                  d«      z   }t        j                  |j                  d«      «      }n|}d }t        j                  |«      }	t        ||	||¬«      }
t        |
«      | k(  sJ t        |
«      › d| › �«       ‚|
S )Nrô  zillegal argument 'rÛ  ú=r  z&illegal argument with default value: 'úTensor\((.+)\)(.*)rQ  ©r&   rÆ  z[]ú,unrecognized alias analysis form with Tensorr7  ©r4   r4  rE  r¬  rÑ  )Úcountrï   Úrsplitr{  r„  r…  r~  r@   rŒ  r  r   )r–  Útype_and_annot_and_namerE  Útype_and_annotr4   Úname_and_defaultr„  Útype_sr¬  r4  rÔ   s              r   r@   zArgument.parseï  sk  € ð �c‰zÐ6Ð/°¨u°AÐ6Ó6ˆzØ�#‰:Ø—9‘9˜S“> QÒ&ÐWÐ*PÐQTÐPUÐUVÐ(WÓWÐ&Ø/2¯y©y¸«~Ñ,Ð# WØ#:×#AÑ#AÀ#ÀqÓ#IÑ ˆN˜DØ"&  q¨¨	Ð2Ñà/2¯z©z¸#¸qÓ/AÑ,ˆNÐ,Ø#ˆDØˆGä—‘Ð.°Ó?ˆáà—;‘;˜q“>ð &ñ ð >ð >ó	>ð ð
  §¡¨A£Ñ.ˆFÜ#×)Ñ)¨%¯+©+°a«.Ó9‰Jà#ˆFØˆJÜ�z‰z˜&Ó!ˆÜØØØØ!ô	
ˆô �1‹v˜Š}Ð2¤ Q£ ¨¨S¨EÐ2Ó2ˆ}Øˆr   c                óN   — | j                   d uxr | j                   j                  S r2   r«  r   s    r   r­  zArgument.is_write  ó    € à�‰ dÐ*ÒG¨t¯©×/GÑ/GÐGr   c                óü   — | j                   › }| j                  r&|dv sJ ‚|j                  dd| j                  › d�«      }| j                  €|S d}| j                  rd| j                  › �}|› d| j                  › |› �S )N©r7  zTensor?zTensor[]r7  úTensor(r÷  r&   rå  rô  )r4  r¬  rg  r4   rE  )r   r4  Ú
mb_defaults      r   r   zArgument.__str__  s…   € Ø—)‘)�ˆØ�?Š?ØÐ<Ñ<Ð<Ð<Ø—<‘< ¨G°D·O±OÐ3DÀAÐ*FÓGˆDØ�9‰9ÐØˆKàˆJØ�|Š|Ø  §¡ Ð/�
Ø�V˜1˜TŸY™Y˜K¨
 |Ð4Ð4r   N©r   rà  )r–  r   r   r  rÆ  r   ©
r   r   r   r    rÇ  râ  rÈ   r@   r­  r   r!   r   r   r  r  Í  s^   … ð
 ƒIØ
ƒJØÓð* "Ó!àòó ðð ò$ó ð$ðL òHó ðHô5r   r  c                  ój   — e Zd ZU ded<   ded<   ded<   edd„«       Zedd„«       Zedd	„«       Zdd
„Z	y)r[  r,  r4   rŒ  r4  rà  r¬  c                ó   — | j                   S r2   r.  r   s    r   râ  zReturn.alias_info.  rã  r   c                ó¬  — d| v r| j                  dd«      \  }}n| }d }t        j                  d|«      }|rS|j                  d«      dv sJ d«       ‚d|j                  d«      z   }t        j                  |j                  d«      «      }n|}d }t        j                  |«      }t        |||¬«      }t        |«      | k(  sJ t        |«      › d	| › �«       ‚|S )
Nrô  r  ræ  rQ  rç  rè  r7  rZ  rÑ  )	rë  r{  r„  r…  r~  r@   rŒ  r[  r   )r–  rí  r4   r„  rï  r¬  r4  rÔ   s           r   r@   zReturn.parse2  sé   € ð �#‰:Ø#&§:¡:¨c°1Ó#5Ñ ˆN™Dà ˆNØˆDÜ—‘Ð.°Ó?ˆáà—;‘;˜q“>ð &ñ ð >ð >ó	>ð ð
  §¡¨A£Ñ.ˆFÜ#×)Ñ)¨%¯+©+°a«.Ó9‰Jà#ˆFØˆJÜ�z‰z˜&Ó!ˆÜØØØ!ô
ˆô
 �1‹v˜Š}Ð2¤ Q£ ¨¨S¨EÐ2Ó2ˆ}Øˆr   c                óN   — | j                   d uxr | j                   j                  S r2   r«  r   s    r   r­  zReturn.is_writeQ  rñ  r   c                ó¾   — | j                   › }| j                  r&|dv sJ ‚|j                  dd| j                  › d�«      }| j                  €|S |› d| j                  › �S )Nró  r7  rô  r÷  rô  )r4  r¬  rg  r4   )r   r4  s     r   r   zReturn.__str__U  se   € Ø—)‘)�ˆØ�?Š?ØÐ<Ñ<Ð<Ð<Ø—<‘< ¨G°D·O±OÐ3DÀAÐ*FÓGˆDØ�9‰9ÐØˆKà�V˜1˜TŸY™Y˜KÐ(Ð(r   Nrö  )r–  r   r   r[  rÆ  r   r÷  r!   r   r   r[  r[  (  sT   … à
ÓØ
ƒJØ!Ó!àòó ðð òó ðð< òHó ðHô)r   r[  c                  ó   — e Zd ZU ded<   y)ÚSelfArgumentr  r>  N)r   r   r   r    r!   r   r   rþ  rþ  a  s   … àÔr   rþ  c                  ó>   — e Zd ZU ded<   ded<   ded<   ded<   dd„Zy)	ÚTensorOptionsArgumentsr  ÚdtypeÚlayoutÚdeviceÚ
pin_memoryc                ó^   — | j                   | j                  | j                  | j                  gS r2   ©r  r  r  r  r   s    r   ÚallzTensorOptionsArguments.allp  s!   € Ø—
‘
˜DŸK™K¨¯©°d·o±oÐFÐFr   N©r   zSequence[Argument])r   r   r   r    r  r!   r   r   r   r   i  s   … àƒOØÓØÓØÓôGr   r   c                  ól  — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ed"d„«       Zed"d„«       Zed"d„«       Zed"d„«       Zed"d„«       Z	e	 	 d#d„«       Z
ed$d„«       Zed%d„«       Zed#d„«       Zd&d„Zd'd„Zd'd„Zd'd„Zddœd(d„Zd)d„Zd*d„Zed+d„«       Zed,d„«       Zd-d„Zd.d „Zy!)/r  ztuple[Argument, ...]Úpre_self_positionalzSelfArgument | Noner=  rK  Úpre_tensor_options_kwarg_onlyzTensorOptionsArguments | Nonerg  Úpost_tensor_options_kwarg_onlyr›  c                óv   — g }|j                  | j                  «       |j                  | j                  «       |S r2   )Úextendr  r  ©r   r2  s     r   Úflat_non_outzArguments.flat_non_out‹  s0   € à ˆØ�
‰
�4×'Ñ'Ô(Ø�
‰
�4×'Ñ'Ô(Øˆ
r   c                óØ   — g }|j                  | j                  «       | j                  �%|j                  | j                  j                  «       |j                  | j
                  «       |S r2   )r  r
  r=  rÒ   r>  rK  r  s     r   r  zArguments.flat_positional’  sP   € à ˆØ�
‰
�4×+Ñ+Ô,Ø�=‰=Ð$Ø�J‰J�t—}‘}×-Ñ-Ô.Ø�
‰
�4×,Ñ,Ô-Øˆ
r   c                óZ   — | j                   D �cg c]  }|j                  sŒ|‘Œ c}S c c}w r2   )rK  r­  ©r   r£  s     r   r<  z&Arguments.post_self_positional_mutable›  s"   € à×4Ñ4ÖC�a¸¿
»
’ÒCÐCùÒCs   �(¡(c                óà   — g }|j                  | j                  «       | j                  �)|j                  | j                  j                  «       «       |j                  | j                  «       |S r2   )r  r  rg  r  r  r  s     r   r  zArguments.flat_kwarg_only   sW   € à ˆØ�
‰
�4×5Ñ5Ô6Ø×ÑÐ*Ø�J‰J�t×*Ñ*×.Ñ.Ó0Ô1Ø�
‰
�4×6Ñ6Ô7Øˆ
r   c                ó¬   — g }|j                  | j                  «       |j                  | j                  «       |j                  | j                  «       |S r2   )r  r  r  r›  r  s     r   r¡  zArguments.flat_all©  s@   € à ˆØ�
‰
�4×'Ñ'Ô(Ø�
‰
�4×'Ñ'Ô(Ø�
‰
�4—8‘8ÔØˆ
r   c                óv   — g }|j                  | j                  «       |j                  | j                  «       |S r2   )r  Ú
positionalÚ
kwarg_onlyr  s     r   Únon_outzArguments.non_out±  s0   € ð GIˆØ�
‰
�4—?‘?Ô#Ø�
‰
�4—?‘?Ô#Øˆ
r   c                óÄ   — g }|j                  | j                  «       | j                  �|j                  | j                  «       |j                  | j                  «       |S r2   )r  r
  r=  rÒ   rK  r  s     r   r  zArguments.positionalº  sJ   € à-/ˆØ�
‰
�4×+Ñ+Ô,Ø�=‰=Ð$Ø�J‰J�t—}‘}Ô%Ø�
‰
�4×,Ñ,Ô-Øˆ
r   c                óÄ   — g }|j                  | j                  «       | j                  �|j                  | j                  «       |j                  | j                  «       |S r2   )r  r  rg  rÒ   r  r  s     r   r  zArguments.kwarg_onlyÃ  sN   € à79ˆØ�
‰
�4×5Ñ5Ô6Ø×ÑÐ*Ø�J‰J�t×*Ñ*Ô+Ø�
‰
�4×6Ñ6Ô7Øˆ
r   c                ó¬   — g }|j                  | j                  «       |j                  | j                  «       |j                  | j                  «       |S r2   )r  r  r  r›  r  s     r   r  zArguments.allÌ  s<   € àFHˆØ�
‰
�4—?‘?Ô#Ø�
‰
�4—?‘?Ô#Ø�
‰
�4—8‘8ÔØˆ
r   c                ó˜   — | j                   D �cg c]0  }|j                  �"|j                  j                  r|j                  ‘Œ2 c}S c c}w r2   )r¡  r¬  r­  r4   r  s     r   Úmutable_arg_nameszArguments.mutable_arg_namesÔ  sB   € ð —]‘]ö
àØ�|‰|Ð'¨A¯L©L×,AÒ,Að �F‹Fò
ð 	
ùò 
s   �5Ac                ó:   — t        d„ | j                  D «       «      S )Nc              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr2   )r4  rŸ  r8  s     r   r—  z+Arguments.has_tensor_arg.<locals>.<genexpr>Ü  ó   è ø€ ÒF¨q�1—6‘6×(Ñ(×*ÑFùó   ‚$&©r   r  r   s    r   rh  zArguments.has_tensor_argÛ  ó   € ÜÑF°D×4EÑ4EÔFÓFÐFr   c                ó:   — t        d„ | j                  D «       «      S )Nc              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr2   )r4  r¦  r8  s     r   r—  z+Arguments.has_symint_arg.<locals>.<genexpr>ß  r!  r"  r#  r   s    r   rw  zArguments.has_symint_argÞ  r$  r   c                ó:   — t        d„ | j                  D «       «      S )Nc              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr2   )r4  r£  r8  s     r   r—  z.Arguments.has_generator_arg.<locals>.<genexpr>â  s   è ø€ ÒI°!�1—6‘6×+Ñ+×-ÑIùr"  r#  r   s    r   r¢  zArguments.has_generator_argá  s   € ÜÑI°t×7HÑ7HÔIÓIÐIr   Frd  c               ó„  ‡— dˆfd„}t        t        t        || j                  «      «      | j                  �%t         || j                  j                  «      «      nd t        t        || j                  «      «      t        t        || j                  «      «      t        t        || j                  «      «      z   d dd¬«      S )Nc                ór   •— t        | j                  | j                  ‰s| j                  d ¬«      S d d ¬«      S )Nré  )r  r4   r4  rE  )r£  rU  s    €r   Ústrip_arg_annotationz1Arguments.signature.<locals>.strip_arg_annotationç  s=   ø€ ÜØ—V‘VØ—V‘VÙ)6˜Ÿ	™	Øô	ð ð =AØô	ð r   r!   ©r
  r=  rK  r  rg  r  r›  )r£  r  r   r  )
r  rh  ri  r
  r=  rþ  r>  rK  r  r  )r   rU  r+  s    ` r   rÜ  zArguments.signatureä  s¶   ø€ õ	ô Ü %ÜÐ(¨$×*BÑ*BÓCó!ð �}‰}Ð(ô "Ñ"6°t·}±}×7MÑ7MÓ"NÔOàÜ!&ÜÐ(¨$×*CÑ*CÓDó"ô
 +0ÜÐ(¨$×*LÑ*LÓMó+ô ”CÐ,¨d×.QÑ.QÓRÓSñ+Tð  Ø+-àô+
ð 	
r   c           	     ó°   — | j                   €J ‚t        j                  | t        t        j                  | j                   j                  d ¬«      «      ¬«      S )Nr.  )r=  )r=  Údataclassesrg  rþ  r>  r   s    r   Úremove_self_annotationz Arguments.remove_self_annotation	  sJ   € Ø�}‰}Ð(Ð(Ð(Ü×"Ñ"ØÜ!Ü×#Ñ# D§M¡M×$:Ñ$:ÀtÔLóô
ð 	
r   c                óv   — t        | j                  «      dk(  sJ ‚t        j                  | t	        |«      ¬«      S )Nr   )r›  )r\  r›  r.  rg  rh  )r   rQ  s     r   Úwith_out_argszArguments.with_out_args	  s5   € Ü�4—8‘8‹} Ò!Ð!Ð!Ü×"Ñ"ØÜ�d“ô
ð 	
r   c                ó(  — g }g }g }|}| j                  d«      D ]r  }|sŒ|dk(  r||u sJ d«       ‚|}Œt        j                  |«      }|j                  �"|j                  j                  r||u rn||u r	|}n||usJ ‚|j                  |«       Œt |||fS )Nrî   r³  z:invalid syntax: kwarg-only specifier * can only occur once)rï   r  r@   r¬  r­  rÒ   )r'  r  r  r›  Úarguments_accr–  Úpargs          r   Ú	_preparsezArguments._preparse	  sÈ   € à%'ˆ
Ø%'ˆ
Ø ˆØ"ˆð —:‘:˜dÓ#ò 	'ˆCÙØØ�cŠzà! ZÑ/ðPàOóPØ/à *�ØÜ—>‘> #Ó&ˆDð �‰Ð*¨t¯©×/GÒ/GØ  JÑ.ØØ" jÑ0Ø$'‘Mà$¨CÑ/Ð/Ð/Ø× Ñ  Õ&ð/	'ð2 ˜: sÐ*Ð*r   c                ó®  — t         j                  | «      \  }}}d}t        |«      D ]  \  }}|j                  dk(  sŒ|} n |�|d| }t	        ||   «      }||dz   d }	ng }d}|}	g }
d}g }|
}dd„} |dt
        j                  d«      «       |dt
        j                  d«      «       |d	t
        j                  d
«      «       |dt
        j                  d«      «      g}d}|t        |«      k  r¨|t        |«      t        |«      z
  k  rft        d„ t        ||||t        |«      z    «      D «       «      r;||
u sJ ‚t        ||   ||dz      ||dz      ||dz      ¬«      }|t        |«      z  }|}ŒŽ|j                  ||   «       |dz  }|t        |«      k  rŒ¨t        t        |«      |t        |	«      t        |
«      |t        |«      t        |«      ¬«      S )z.
        Input: 'int x, int y, int z'
        Nr   r  c                ó   ‡ ‡— ˆ ˆfd„S )Nc                óX   •— | j                   ‰k(  xr | j                  ‰t        ‰«      fv S r2   )r4   r4  r’  )r£  r4   Útys    €€r   ú<lambda>z/Arguments.parse.<locals>.pred.<locals>.<lambda>a	  s'   ø€ ˜QŸV™V t™^ÒP°·±¸2¼|ÈBÓ?OÐ:PÐ0P€ r   r!   )r4   r9  s   ``r   ÚpredzArguments.parse.<locals>.pred`	  s	   ù€ ÜPÐPr   r  rç   r  r±  r  r²  r  r(  r   c              3  ó2   K  — | ]  \  }} ||«      –— Œ y ­wr2   r!   )r•  Úpr£  s      r   r—  z"Arguments.parse.<locals>.<genexpr>o	  s    è ø€ ò á˜˜1ñ �a—Dñùr×  rQ  rK  r  r,  )r4   r   r9  rŒ  r   zCallable[[Argument], bool])r  r5  Ú	enumerater4   rþ  rŒ  r@   r\  r  r;  r   rÒ   rh  )r'  r  r  r›  Úself_ixÚir£  r
  r=  rK  r  rg  r  Úkwarg_only_accr;  Ú
predicatess                   r   r@   zArguments.parse;	  s"  € ô '0×&9Ñ&9¸$Ó&?Ñ#ˆ
�J ð ˆÜ˜jÓ)ò 	‰DˆAˆqØ�v‰v˜ÓØ�Ùð	ð ÐØ",¨X¨gÐ"6ÐÜ# J¨wÑ$7Ó8ˆHØ#-¨g¸©k¨mÐ#<Ñ à"$ÐØˆHØ#-Ð ð 9;Ð%Ø8<ˆØ9;Ð&Ø6ˆó	Qñ �œ$Ÿ*™* \Ó2Ó3Ù�œ4Ÿ:™: hÓ/Ó0Ù�œ4Ÿ:™: hÓ/Ó0Ù�œtŸz™z¨&Ó1Ó2ð	
ˆ
ð ˆØ”#�j“/Ò!à”C˜
“O¤c¨*£oÑ5Ò5äñ ä # J°
¸1¸qÄ3ÀzÃ?Ñ?RÐ0SÓ Tôô ð *Ð-JÑJÐJÐJä%;Ø(¨™mØ)¨!¨a©%Ñ0Ø)¨!¨a©%Ñ0Ø#-¨a°!©eÑ#4ô	&�Nð œ˜Z›Ñ(�AØ%C�NØØ×!Ñ! *¨Q¡-Ô0Ø�‰FˆAð) ”#�j“/Ó!ô, Ü %Ð&9Ó :ØÜ!&Ð';Ó!<Ü*/Ð0MÓ*NØ)Ü+0Ð1OÓ+PÜ�c“
ô
ð 	
r   c                óp  — g }|j                  t        t        | j                  «      «       | j                  s| j
                  r|j                  d«       |j                  t        t        | j                  «      «       |j                  t        t        | j
                  «      «       dj                  |«      S )Nr³  rî   )r  ri  r   r  r  r›  rÒ   rÓ   )r   Úall_argumentss     r   r   zArguments.__str__‹	  s‚   € Ø#%ˆØ×ÑœS¤ d×&:Ñ&:Ó;Ô<Ø×Ò 4§8¢8Ø× Ñ  Ô%Ø×ÑœS¤ d×&:Ñ&:Ó;Ô<Ø×ÑœS¤ d§h¡hÓ/Ô0Ø�y‰y˜Ó'Ð'r   c                ó  — | j                   €| j                  rJ ‚| j                  €| j                  rJ ‚| j                  D �cg c]&  }|j                  �|j                  j
                  r|‘Œ( }}t        |«      dk(  sJ d«       ‚y c c}w )Nr   zOmutable pre_self_positional arguments are not currently supported in the schema)r=  r
  rg  r  r¬  r­  r\  )r   r£  Úmutable_pre_self_positionalss      r   r¦  zArguments.__post_init__”	  s›   € ð �=‰=Ð Ø×/Ò/Ð/Ð/Ø×ÑÐ&Ø×:Ò:Ð:Ð:ð ×-Ñ-ö(
àØ�|‰|Ð'¨A¯L©L×,AÒ,Aò ð(
Ð$ð (
ô Ð,Ó-°Ò2ð	]à\ó	]Ù2ùò(
s   Á+BNr  )r   z:Sequence[Argument | SelfArgument | TensorOptionsArguments])r   z!Sequence[Argument | SelfArgument])r   z+Sequence[Argument | TensorOptionsArguments]©r   z	list[str]rÆ  )rU  r(  r   r  )r   r  )rQ  úlist[Argument]r   r  )r'  r   r   z5tuple[list[Argument], list[Argument], list[Argument]])r'  r   r   r  r   rÄ  )r   r   r   r    rÇ  r  r  r<  r  r¡  r  r  r  r  r  rh  rw  r¢  rÜ  r/  r1  rÈ   r5  r@   r   r¦  r!   r   r   r  r  t  sQ  … ð
 .Ó-Ø!Ó!Ø.Ó.à#7Ó7Ø1Ó1ð %9Ó8ð 
Óàòó ðð òó ðð òDó ðDð òó ðð òó ðð ðà	Còó ðð òó ðð òó ðð òó ðó
óGóGóJð 27õ !
óF
ó
ð ò!+ó ð!+ðF òM
ó ðM
ó^(ô]r   r  )rò   ÚsubÚmulÚdivÚmodÚpowÚlshiftÚrshiftÚandÚxorÚorc                  óT   — e Zd ZU ded<   ded<   ded<   dZded<   edd„«       Zdd	„Zy
)rj  r   rÀ  r(  r½  rf  FrÞ  c                óÜ  ‡— | dk7  sJ ‚| j                  d«      rJ d«       ‚t        j                  d| «      }|�?d}|j                  d«      Št	        ˆfd„t
        D «       «      rd}‰dd  Šn"d}‰d	   d
k7  sJ ‚d}| Š‰d   dk(  rd}‰d d Šnd}d}‰j                  |«      rd}‰d t        |«        Š|s|rJ ‚d}t        ‰|||¬«      }t        |«      | k(  sJ t        |«      › d| › �«       ‚|S )Nr&   rc  zs_out suffix is reserved and not permitted for operator names; did you mean to specify an out overload name instead?z^__([^_]+)__$Tr  c              3  ó.   •K  — | ]  }‰d |› �k(  –— Œ y­w)r@  Nr!   )r•  ÚnrÀ  s     €r   r—  z)BaseOperatorName.parse.<locals>.<genexpr>å	  s   øè ø€ ÒG q�4˜Q˜q˜c˜7•?ÑGùr  Fr   r@  rö  Ú_Ú_functional)rÀ  r½  rf  rÞ  rÑ  )	re  r{  r„  r…  r   ÚAUGMENTED_ASSIGNMENT_NAMESr\  rj  r   )rÙ  r	  rf  r½  Úfunctional_suffixrÞ  rÔ   rÀ  s          @r   r@   zBaseOperatorName.parseÚ	  s<  ø€ à�RŠxˆˆxØ—;‘;˜vÔ&ð 	
ðDó	
Ð&ô �H‰HÐ% rÓ*ˆØˆ=Ø ˆMØ—7‘7˜1“:ˆDÜÓGÔ,FÔGÔGØ�Ø˜A˜B�x‘à�ð
 ˜A‘w #’~Ð%�~à!ˆMØˆDØ�B‰x˜3ŠØ�Ø˜C˜R�y‘à�ð *ÐØ�=‰=Ð*Ô+Ø"&ÐØÐ1œ3Ð0Ó1Ð1Ð2ˆDñ %©WÐ4Ð4à"'ÐäØØØ'Ø 3ô	
ˆô �1‹v˜Š|Ð0¤ A£˜x t¨B¨4Ð0Ó0ˆ|Øˆr   c                óº   — | j                   r"| j                  rdnd}d|› | j                  › d�S | j                  rdn| j                  rdnd}| j                  › |› �S )Nr@  r&   Ú__rW  rX  )rf  r½  rÀ  rÞ  )r   r@  s     r   r   zBaseOperatorName.__str__
  sj   € Ø×ÒØ—|’|‘¨ˆAØ˜�s˜4Ÿ9™9˜+ RÐ(Ð(ð —<’<ñ ð ×+Ò+ñ #àð ð —i‘i�[  Ð$Ð$r   N)rÙ  r   r   rj  r   )r   r   r   r    rÞ  rÈ   r@   r   r!   r   r   rj  rj  À	  s7   … à
ƒIØƒMØÓð( !&Ð˜Ó%àò/ó ð/ôb%r   rj  c                  óT   — e Zd ZU ded<   ded<   edd„«       Zdd„Zdd„Zdd„Zdd	„Z	y
)rZ  rj  r4   r   rF  c                óÈ   — d| v r| j                  dd«      \  }}n| }d}t        t        j                  |«      |¬«      }t	        |«      | k(  sJ t	        |«      › d| › �«       ‚|S )Nú.r  r&   rE  rÑ  )rï   rZ  rj  r@   r   )r  r4   rF  rÔ   s       r   r@   zOperatorName.parse"
  sk   € à�'‰>Ø")§-¡-°°QÓ"7ÑˆD‘-àˆDØˆMÜÔ.×4Ñ4°TÓ:È-ÔXˆÜ�1‹v˜Ò Ð:¤S¨£V H¨D°°	Ð":Ó:Ð Øˆr   c                ój   — | j                   r| j                  › d| j                   › �S | j                  › S )Nr_  ©rF  r4   r   s    r   r   zOperatorName.__str__-
  ó3   € Ø×ÒØ—i‘i�[  $×"4Ñ"4Ð!5Ð6Ð6à—i‘i�[Ð!r   c                ój   — | j                   r| j                  › d| j                   › �S | j                  › S )NrW  ra  r   s    r   Úunambiguous_namezOperatorName.unambiguous_name8
  rb  r   c                ó˜   — t        t        | j                  j                  d| j                  j                  ¬«      | j
                  ¬«      S ©NFre  rE  )rZ  rj  r4   rÀ  rf  rF  r   s    r   Úremove_inplacezOperatorName.remove_inplace>
  s=   € ÜÜ!Ø—Y‘Y—^‘^ØØ"Ÿi™i×5Ñ5ôð
 ×,Ñ,ô
ð 	
r   c                ó„   — t        t        | j                  j                  d| j                  j                  ¬«      |¬«      S rf  )rZ  rj  r4   rÀ  rf  )r   Úoverloads     r   Úwith_overloadzOperatorName.with_overloadH
  s7   € ÜÜ!Ø—Y‘Y—^‘^ØØ"Ÿi™i×5Ñ5ôð
 #ô
ð 	
r   N)r  r   r   rZ  r   )r   rZ  )ri  r   r   rZ  )
r   r   r   r    rÈ   r@   r   rd  rg  rj  r!   r   r   rZ  rZ  
  s4   … à
ÓØÓàòó ðó"ó"ó
ô
r   rZ  c                ó¸   — | j                   j                  «       t        j                  uxr/ |j	                  | «       xr |j	                  |j                  «      S r2   )r'  rœ  r�  rÉ  r
  )râ  r  Úbs      r   Ú"gets_generated_out_inplace_wrapperrm  S
  sI   € ð 	
�‰�‰‹œZ×2Ñ2Ð2ò 	'Ø—‘˜Q“Ðò	'à�L‰L˜Ÿ™Ó&ðr   c                  óf   — e Zd ZU ded<   ded<   ded<   dd„Zddœdd	„Zedd
„«       Zedd„«       Zy)ÚNativeFunctionsViewGroupr$  ÚviewrÎ  Ú	view_copyÚview_inplacec                óø  — | j                   j                  sJ ‚| j                  €]t        | j                   «      �rAJ t	        | j                   j
                  j                  «      › dt        | j                   «      ›d�«       ‚| j                  j
                  j                  j                  j                  j                  d«      sJ ‚| j                   j
                  j                  «       | j                  j
                  j                  d¬«      k(  sJ ‚d| j                  j                  v sPJ t	        | j                  j
                  j                  «      t	        | j                   j                  «      f› d�«       ‚| j                  �K| j                   j
                  j                  «       | j                  j
                  j                  «       k(  sJ ‚| j                   j                  r}| j                  �q| j                  j                  s[J t	        | j                   j
                  j                  «      › dt	        | j                  j
                  j                  «      › d	�«       ‚| j                   j                  r| j                  �r| j                  j                  s[J t	        | j                   j
                  j                  «      › dt	        | j                  j
                  j                  «      › d
�«       ‚y y y )Nz‰ appears to be a new operator that aliases its inputs. The codegen expects you to add a corresponding operator to native_functions.yaml: z3. See Note [view_copy NativeFunctions] for details.)r]  r^  Trp  rq  zÀ appears to be a view_copy operator. The codegen expects view_copy operators to be annotated with the 'view_copy' tag in native_functions.yaml. See Note [view_copy NativeFunction] for details.rÒ  z] must either both have CompositeImplicitAutograd kernels, or both not have composite kernels.zi must either both have CompositeImplicitAutogradNestedTensor kernels, or both not have composite kernels.)rp  r»  rq  Úgets_generated_view_copyr   r'  r4   Úget_view_copy_namerÀ  re  rÜ  r@  rr  r<  r=  r   s    r   r¦  z&NativeFunctionsViewGroup.__post_init__r
  s…  € Ø�y‰y×#Ò#Ð#Ð#Ø�>‰>Ð!Ü/°·	±	Õ:ð Ü�t—y‘y—~‘~×*Ñ*Ó+Ð,ð -ä& t§y¡yÓ1Ð4ð 5EðEóÐ:ð —>‘>×&Ñ&×+Ñ+×0Ñ0×5Ñ5×>Ñ>Ð?TÔUÐUÐUØ—9‘9—>‘>×+Ñ+Ó-°·±×1DÑ1D×1NÑ1NØ%)ð 2Oó 2ò ð ð ð  $§.¡.×"5Ñ"5Ñ5ð Ü�t—~‘~×*Ñ*×/Ñ/Ó0´#°d·i±i·n±nÓ2EÐEÐFð GDð DóÐ5ð
 ×ÑÐ(Ø—9‘9—>‘>×+Ñ+Ó-°×1BÑ1B×1GÑ1G×1QÑ1QÓ1SÒSÐSÐSà�9‰9×;Ò;Ø× Ñ Ð,Ø×(Ñ(×OÒOð Ü˜4Ÿ9™9Ÿ>™>×.Ñ.Ó/Ð0°´c¸$×:KÑ:K×:PÑ:P×:UÑ:UÓ6VÐ5Wð Xhð hóÐOð �9‰9×IÒIØ× Ñ Ð,à×%Ñ%×ZÒZðô ˜4Ÿ9™9Ÿ>™>×.Ñ.Ó/Ð0°´c¸$×:KÑ:K×:PÑ:P×:UÑ:UÓ6VÐ5Wð Xtð tóÙZð -ð Jr   T)Úinclude_copyc             #  ó˜   K  — | j                   –— | j                  �| j                  –— | j                  �|r| j                  –— y y y ­wr2   )rp  rr  rq  )r   rv  s     r   rÝ  z"NativeFunctionsViewGroup.functions—
  sE   è ø€ Ø�i‰iŠØ×ÑÐ(Ø×#Ñ#Ò#Ø�>‰>Ð%©,Ø—.‘.Ó ð +7Ð%ùs   ‚AA
c                ó.   — | j                   j                  S r2   )rp  rÁ  r   s    r   rÁ  z"NativeFunctionsViewGroup.root_namež
  s   € à�y‰y×"Ñ"Ð"r   c                ó.   — | j                   j                  S r2   )rp  r<  r   s    r   Ú	compositez"NativeFunctionsViewGroup.composite¢
  s   € ð �y‰y×?Ñ?Ð?r   NrÄ  )rv  r(  r   rí  r   rÆ  )	r   r   r   r    r¦  rÝ  rÇ  rÁ  rz  r!   r   r   ro  ro  h
  sP   … à
Óð %Ó$à'Ó'ó#ðJ 15õ !ð ò#ó ð#ð ò@ó ñ@r   ro  c                óÊ   — | j                   sy| j                  ryd| j                  v ry| j                  j                  j                  j
                  j                  d«      ryy)NFr¯  Ú_inverseT)r»  r<  r@  r'  r4   rÀ  re  )râ  s    r   rt  rt  ©
  sS   € à�<Š<Øð 	×/Ò/Øà˜Ÿ™ÑØð 	‡v�v‡{�{×Ñ×Ñ×%Ñ% jÔ1ØØr   c                ó€  — dg}t        | j                  j                  «      |vrt        | «      sJ ‚| j                  j                  j                  j                  › d�}t        t        |d| j                  j                  j                  j                  ¬«      | j                  j                  j                  ¬«      }|S )NÚnarrowr]  Fre  rE  )	r   r'  r4   rt  rÀ  rZ  rj  rf  rF  )râ  Ú-list_of_ops_with_explicit_view_copy_operatorsrk  Úview_copy_names       r   ru  ru  À
  s™   € ð 6>°JÐ1Ü
ˆ1�6‰6�;‰;ÓÐLÑLÜ'¨Ô*Ð*Ð*à—6‘6—;‘;×#Ñ#×(Ñ(Ð)¨Ð/€IÜ!ÜØ E¸¿¹¿¹×9IÑ9I×9WÑ9Wô
ð —f‘f—k‘k×/Ñ/ô	€Nð Ðr   c                óz   — | dk(  ry| d   dk(  r| d   dk(  r| dd } t        d„ | j                  d	«      D «       «      S )
z$
    Input: '()'
    Output: []
    z()r!   r   rõ  rö  r÷  r  c              3  óF   K  — | ]  }t         j                  |«      –— Œ y ­wr2   )r[  r@   r”  s     r   r—  z parse_returns.<locals>.<genexpr>á
  s   è ø€ ÒF s”—‘˜c×"ÑFùs   ‚!rî   )rh  rï   )r(  s    r   r$  r$  Ø
  sN   € ð
 �dÒØØ�1�~˜Ò ¨R¡°CÒ!7Ø! ! BÐ'ˆÜÑF¨k×.?Ñ.?ÀÓ.EÔFÓFÐFr   c                  óD   — e Zd ZU ded<   ded<   ed	d„«       Zd
d„Zdd„Zy)r[  zdict[str, list[Argument]]rg  rH  rò   c                óN  — t        | t        «      sJ ‚g }d| d   vrI| d   j                  d«      }|D �cg c]%  }t        j	                  |j                  «       «      ‘Œ' }}| d d } i }| D ]ˆ  }t        |t        «      sJ ‚d|v sJ d«       ‚|j                  d«      \  }}d|vsJ d|› d�«       ‚|j                  d«      }|D �cg c]%  }t        j	                  |j                  «       «      ‘Œ' }	}|	||<   ŒŠ t        ||¬«      }
|
j                  «       | k(  sJ d	«       ‚|
S c c}w c c}w )
NrŠ  rö  rJ  zLprecomputed parameters without replacement are allowed only in the last linerô  zillegal kernel param name 'z' in precomputed parameters')rg  rò   zr.to_list() != src)	rT  rX  rï   r  r@   r_  r   r[  Úto_list)ÚsrcÚadd_argsÚadd_listr4   rg  Úraw_replace_itemr–  Úwith_list_rawÚ	with_listÚwith_list_argsrÔ   s              r   r@   zPrecompute.parseï
  sS  € ä˜#œtÔ$Ð$Ð$ð ˆØ˜˜R™Ñ Ø˜2‘w—}‘} SÓ)ˆHØAIÖJ¸œŸ™ t§z¡z£|Õ4ÐJˆHÐJØ�c�r�(ˆCàˆØ #ò 	*ÐÜÐ.´Ô4Ð4Ð4ØÐ-Ñ-ð ð5óÐ-ð
 "2×!7Ñ!7¸Ó!?ÑˆC�à˜3‘ðOà,¨S¨EÐ1MÐNóOØà%×+Ñ+¨CÓ0ˆIØGPÖQ¸tœhŸn™n¨T¯Z©Z«\Õ:ÐQˆNÐQØ)ˆG�CŠLð	*ô ˜w¨HÔ5ˆØ�y‰y‹{˜cÒ!Ð7Ð#7Ó7Ð!Øˆùò+ Kùò  Rs   ´*DÃ*D"c                ó  — | j                   D ]+  }|j                  j                  «       |j                  k7  rŒ+J ‚ | j                  j	                  «       D ]2  }|D ]+  }|j                  j                  «       |j                  k7  rŒ+J ‚ Œ4 y r2   )rò   r4   Úupperrg  ró   )r   r£  r'  s      r   r¦  zPrecompute.__post_init__  sz   € ð —‘ò 	,ˆAØ—6‘6—<‘<“> Q§V¡VÓ+Ð+Ð+ð	,à—L‘L×'Ñ'Ó)ò 	0ˆDØò 0�Ø—v‘v—|‘|“~¨¯©Ó/Ð/Ð/ñ0ñ	0r   c                óª   — g }| j                   j                  «       D ]3  \  }}dj                  d„ |D «       «      }|j                  |› d|› �«       Œ5 |S )Nrî   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr2   rÕ  )r•  Úparams     r   r—  z%Precompute.to_list.<locals>.<genexpr>   s   è ø€ Ò$P°E¤S¨§ZÑ$Pùr×  rŠ  )rg  r:   rÓ   rÒ   )r   Úreplace_listÚkernel_paramÚreplacement_paramsÚreplacementss        r   r…  zPrecompute.to_list  sa   € ØˆØ04·±×0BÑ0BÓ0Dò 	EÑ,ˆLÐ,ØŸ9™9Ñ$PÐ=OÔ$PÓPˆLØ×Ñ < .°°\°NÐ CÕDð	Eð Ðr   N)r†  Úobjectr   r[  rÄ  rG  )r   r   r   r    rÈ   r@   r¦  r…  r!   r   r   r[  r[  ç
  s-   … ð 'Ó&à	Óàò"ó ð"óH0ôr   r[  r   )rÚ   r0   r   r(  )râ  r$  r  rÍ  rl  rú  r   r(  )râ  r$  r   r(  )râ  r$  r   rZ  )r(  r   r   r  )lÚ
__future__r   r.  r  r{  r   Úenumr   r   Útypingr   r   r	   Útorchgen.utilsr
   r   r   r   r#   ri  rï   rÑ   rÐ   ÚAUTOGRAD_KEYSÚFRAGMENT_NAMESPACESr0   rÊ   r×   rÕ   rÖ   ÚhasattrrÔ   Úprintrà  rs   ro   rn   ru   rá   rä   rŒ   r›   rL   r�   rœ   r}   r~   ri   rj   rk   rl   rª   r«   ry   r—   r¦   rˆ   rµ   rS   r`  rÛ   rÝ   rß   râ   rå   rç   rð   r    r÷   rø   rú   rû   rù   rý   rþ   r   r  r  r  r  r$  r�  rÍ  ra  rj  rú  r&  r~  rŒ  r6  r5  r’  r”  r“  r  r[  rþ  r   r  rY  rj  rZ  rm  ro  rt  ru  r$  r[  )Ú	components   0r   ú<module>r      sf  ðÞ "ã Û Û 	Ý !ß ß /Ñ /ç DÑ Dñ: �$Ô÷*ð *ó ð*ôˆdô ð (Ð ð n×sÑsÓuÐ òÐ ð (Ð(Ø,>ö,Ø(€J�Óò,ñ €ð #Ð$:Ð;Ð ô
_>�$ô _>ôD˜Dô óð ò €BØ ò ˆÙ�{ B¨¡GÕ,Ù+Ó-ˆAÙ�!ŒHÙØ˜2˜$˜r˜dÐ"pÐqrÐpsÐtóð ñ	ðð ‡O�OØ×ÑØ‡O�OØ‡O�Oð	Ð ð #×'Ñ'¨¯©Ð9Ð ð ‡O�OØ×ÑØ×ÑØ×ÑØ×ÑØ‡O�OØ‡O�OØ×ÑØ×ÑØ×ÑØ×ÑØ×)Ñ)Ø×5Ñ5Ø×)Ñ)Ø×6Ñ6Ø×ÑØ× Ñ ð ×ÑØ×ÑØ×ÑØ×ÑØ× Ñ Ø×Ñð3€ó>óóó*ó%ô+�ô +ð\ 46€Ð0Ó 5á&à�‰Ø�‰Ø�‰Ø�‰Ø×Ñðó€ˆjÑ ñ '¨
×(8Ñ(8¸*×:KÑ:KÐ'LÓM€ˆjÑ Ù%Ø×Ñ˜j×6Ñ6Ð7ó€ˆiÑ ð % ZÑ0°=ÀÑ3LÑL€ˆeÑ Ø!.¨uÑ!5¸ÀiÑ8PÑ!P€ˆoÑ à�*Ñ ¨iÑ 8Ñ8ð Ð"Ñ #ô;ˆtô ;ô4�dô ô
�Tô ñ$ �$Ô÷a	Gð a	Gó ða	GôH�ô ñ �$Ô÷q
ð q
ó ðq
ñh �$Ô÷(ð (ó ð(ñ, �$Ô÷
ð 
ó ð
ñ6 �$Ô÷8ð 8ó ð8ñ` �$Ô÷r@ð r@ó ðr@ñz �$Ô÷1ð 1ó ð1ñt �$Ô÷2"ð 2"ó ð2"ôlˆTô ñ0 �$Ôô*ˆtó *ó ð*ñ( �$Ôô(�4ó (ó ð(ñ( �$Ôô�dó ó ðñ@ �$Ôôˆtó ó ðñ* �$Ô÷W5ð W5ó ðW5ñt �$Ô÷4)ð 4)ó ð4)ñp �$Ô÷ð ó ðñ �$Ô÷Gð Gó ðGñ �$Ô÷p]ð p]ó ðp]òl	Ð ñ* �$Ô÷W%ð W%ó ðW%ñx �$Ô÷2
ð 2
ó ð2
ðjØðØ.ðØ3?ðà	óñ* �$Ô÷=@ð =@ó ð=@ó@ó.ó0	Gñ �$Ô÷;ð ;ó ñ;ùòEU,s   Á3T