§
    P›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
 d dlmZ d dlmZmZ e
r
d dlmZmZmZ  ed	¬
¦  «         G d„ d¦  «        ¦   «         Z G d„ de¦  «        ZdZg d¢Zg d¢Zdgd„ eD ¦   «         z   ZddhZ G d„ de¦  «        Z G d„ de¦  «        Zdpd„ZeD ]>ZeD ]9Z e eeez   ¦  «        s( e¦   «         Z! e"e!¦  «          e#de› e› de!› �¦  «        ‚Œ:Œ?ej$        ej%        ej&        ej'        ej(        hZ)ej%        ej&        hZ*ej&        ej+        ej,        ej-        ej%        ej$        ej'        ej.        ej/        ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        ejB        ejC        ej(        gZDdqd!„ZEdqd"„ZFdqd#„ZGdqd$„ZHdqd%„ZIeFd&eGd'iZJ G d(„ d)e¦  «        ZKi ZLd*eMd+<    eeKjN        eKjO        eKjP        eKjQ        eKjR        g¦  «        eLd,<    eeKjS        eKjT        g¦  «        eLd-<    eeKjU        eKjV        g¦  «        eLd.<   eLd,         eLd-         z  eLd/<   eLd/         eLd.         z  eLd0<   eLd-         eLd.         z  eLd1<    G d2„ d3e¦  «        ZW G d4„ d5e¦  «        ZX G d6„ d7e¦  «        ZY ed	¬
¦  «         G d8„ d9¦  «        ¦   «         ZZ G d:„ d;e¦  «        Z[ ed	¬
¦  «         G d<„ d=¦  «        ¦   «         Z\ ed	¬
¦  «         G d>„ d?¦  «        ¦   «         Z] ed	¬
¦  «         G d@„ dA¦  «        ¦   «         Z^ ed	¬
¦  «         G dB„ dC¦  «        ¦   «         Z_ ed	¬
¦  «         G dD„ dE¦  «        ¦   «         Z` ed	¬
¦  «         G dF„ dG¦  «        ¦   «         Za ed	¬
¦  «         G dH„ dI¦  «        ¦   «         Zb G dJ„ dKe¦  «        Zc ed	¬
¦  «         G dL„ dMeb¦  «        ¦   «         Zd ed	¬
¦  «         G dN„ dOeb¦  «        ¦   «         Ze ed	¬
¦  «         G dP„ dQeb¦  «        ¦   «         Zf ed	¬
¦  «         G dR„ dSeb¦  «        ¦   «         Zg ed	¬
¦  «         G dT„ dU¦  «        ¦   «         Zh ed	¬
¦  «         G dV„ dW¦  «        ¦   «         Zi ed	¬
¦  «         G dX„ dY¦  «        ¦   «         Zj ed	¬
¦  «         G dZ„ d[¦  «        ¦   «         Zk ed	¬
¦  «         G d\„ d]¦  «        ¦   «         Zlg d^¢Zm ed	¬
¦  «         G d_„ d`¦  «        ¦   «         Zn ed	¬
¦  «         G da„ db¦  «        ¦   «         Zodrdf„Zp ed	¬
¦  «         G dg„ dh¦  «        ¦   «         Zqdsdi„Zrdtdj„Zsdudm„Zt ed	¬
¦  «         G dn„ do¦  «        ¦   «         ZudS )vé    )ÚannotationsN)Ú	dataclass)ÚautoÚEnum)ÚTYPE_CHECKING)Úassert_never)ÚNamespaceHelperÚ
OrderedSet)ÚCallableÚIteratorÚSequenceT)Úfrozenc                  ó,   — e Zd ZU ded<   ded<   dd„ZdS )	ÚLocationÚstrÚfileÚintÚlineÚreturnc                ó$   — | j         › d| j        › �S )Nú:)r   r   ©Úselfs    úM/home/lighthouse/health/venv/lib64/python3.11/site-packages/torchgen/model.pyÚ__str__zLocation.__str__1   s   € Ø”)Ð)Ð)˜dœiÐ)Ð)Ð)ó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   © r   r   r   r   ,   s<   € € € € € € à€I€I�IØ€I€I�Ið*ð *ð *ð *ð *ð *r   r   c                  ó6   — e Zd Z e¦   «         Z e¦   «         ZdS )ÚVariantN)r   r   r    r   ÚfunctionÚmethodr"   r   r   r$   r$   6   s$   € € € € € Øˆt‰vŒv€HØˆT‰VŒV€F€F€Fr   r$   z
at::native)ÚCPUÚCUDAÚHIPÚXLAÚMTIAÚMPSÚIPUÚXPUÚHPUÚVEÚLazyÚMetaÚPrivateUse1ÚPrivateUse2ÚPrivateUse3)Ú Ú	QuantizedÚSparseÚ	SparseCsrÚNestedTensorÚAutogradÚAutogradNestedTensorc                ó   — g | ]}d |z   ‘ŒS )r;   r"   )Ú.0Ú	components     r   ú
<listcomp>r@   [   s*   € ð ,ð ,ð ,Ø(€J�Ñð,ð ,ð ,r   Ú	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“dS )ÚDispatchKeyr   r   r   c                ó   — | j         S ©N©Únamer   s    r   r   zDispatchKey.__str__ø   ó
   € ØŒyÐr   c                óD   — t          | ¦  «                             ¦   «         S rF   )r   Úlowerr   s    r   rK   zDispatchKey.lowerû   s   € Ý�4‰yŒy�ŠÑ Ô Ð r   Úvaluec                ó‚   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œt          d| › �¦  «        ‚)Nzunknown dispatch key )rD   Ú__members__ÚitemsÚAssertionError©rL   ÚkÚvs      r   ÚparsezDispatchKey.parseþ   sR   € åÔ+×1Ò1Ñ3Ô3ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð åÐ<°UÐ<Ð<Ñ=Ô=Ð=r   Nr   )rL   r   r   rD   )”r   r   r    Ú	UndefinedÚCatchAllr   ÚFPGAÚMAIAÚVulkanÚMetalÚMKLDNNÚOpenGLÚOpenCLÚIDEEPÚCustomRNGKeyIdÚ	MkldnnCPUr8   r9   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ÚFuncTorchBatchedDecompositionr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   Ú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   rK   ÚstaticmethodrT   r"   r   r   rD   rD   d   sz  € € € € € Ø€IØ€Hàˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆT‰VŒV€FØˆD‰FŒF€EØˆT‰VŒV€FØˆT‰VŒV€FØˆT‰VŒV€FØˆD‰FŒF€EØ�T‘V”V€NØ�‘”€IØˆT‰VŒV€FØ�‘”€IØ�4‘6”6€LØˆD‰FŒF€Eà˜™œÐØ�$‘&”&€KØ�t‘v”vÐØˆT‰VŒV€FØ$( D¡F¤FÐ!Ø�‘”€JØ�‘”€IØˆt‰vŒv€HØ�D‘F”F€MØˆD‰FŒF€EØ�D‘F”F€MØ ˜D™FœFÐØ˜4™6œ6ÐØˆT‰VŒV€FØˆt‰vŒv€HØ�$‘&”&€KØ�4‘6”6€LØˆd‰fŒf€GØˆt‰vŒv€HØ˜4™6œ6ÐØ�t‘v”vÐØ˜$™&œ&ÐØ˜™œÐØ%) T¡V¤VÐ"Ø�D‘F”F€MØ"& $¡&¤&ÐØ#˜t™vœvÐà�d‘f”f€OØˆt‰vŒv€HØ $ ¡¤ÐØ,0¨D©F¬FÐ)Ø $ ¡¤ÐØ-1¨T©V¬VÐ*Ø$( D¡F¤FÐ!ð ˆ$‰&Œ&€CØˆ4‰6Œ6€DØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ	ˆ‰Œ€BØˆ4‰6Œ6€DØˆ4‰6Œ6€DØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�$‘&”&€KØ�D‘F”F€MØ�D‘F”F€MØ˜4™6œ6ÐØ˜4™6œ6ÐØ˜4™6œ6ÐØ�‘”€IØ�‘”€JØ�‘”€IØ�‘”€IØ�‘”€JØ�‘”€IØ�‘”€IØ�‘”€IØ�‘”€IØˆt‰vŒv€HØ�‘”€JØ�‘”€JØ˜™œÐØ˜™œÐØ˜™œÐØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�$‘&”&€KØ�D‘F”F€MØ�D‘F”F€MØ˜4™6œ6ÐØ˜4™6œ6ÐØ˜4™6œ6ÐØ�d‘f”f€OØ�t‘v”vÐØ�d‘f”f€OØ�d‘f”f€OØ�t‘v”vÐØ�d‘f”f€OØ�d‘f”f€OØ�d‘f”f€OØ�d‘f”f€OØ�T‘V”V€NØ�t‘v”vÐØ�t‘v”vÐØ"˜d™fœfÐØ"˜d™fœfÐØ"˜d™fœfÐØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�‘”€JØ�4‘6”6€LØ�4‘6”6€LØ˜$™&œ&ÐØ˜$™&œ&ÐØ˜$™&œ&Ððð ð ð ð!ð !ð !ð !ð ð>ð >ð >ñ „\ð>ð >ð >r   rD   c                  óJ   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         ZdS )Ú_TorchDispatchModeKeyN)r   r   r    r   ÚFAKEÚPROXYÚ
FUNCTIONALr"   r   r   rÏ   rÏ     s/   € € € € € Øˆ4‰6Œ6€DØˆD‰FŒF€EØ�‘”€J€J€Jr   rÏ   r   r   c                 ó’   ‡— g } t           D ](Š|                      ˆfd„t          D ¦   «         ¦  «         Œ)d                     | ¦  «        S )Nc              3  ó(   •K  — | ]}d ‰› |› d�V — ŒdS )z    z	 = auto()Nr"   )r>   ÚbcÚfks     €r   ú	<genexpr>z.codegen_per_backend_entries.<locals>.<genexpr>  s4   øè è € ÐGÐG¨bÐ)˜Ð)˜BÐ)Ð)Ð)ÐGÐGÐGÐGÐGÐGr   ú
)ÚFUNCTIONALITY_KEYSÚextendÚBACKEND_COMPONENTSÚjoin)ÚrrÖ   s    @r   Úcodegen_per_backend_entriesrÞ     sT   ø€ Ø€AÝ ð Hð HˆØ	�ŠÐGÐGÐGÐGÕ4FÐGÑGÔGÑGÔGÐGÐGØ�9Š9�Q‰<Œ<Ðr   zMissing zL from DispatchKey enum.  Here is the autogenerated list we expect to have:

ÚdkÚboolc                ób   — | t           j        t           j        t           j        t           j        hv S rF   ©rD   r   r€   r}   r~   ©rß   s    r   Úis_generic_dispatch_keyrä   M  s,   € ØÝÔ-ÝÔ:ÝÔ-ÝÔ9ð	ð ð r   c                óŽ   — | t           j        t           j        t           j        t           j        t           j        t           j        hv S rF   )rD   r(   rƒ   r’   r¡   r°   r¿   rã   s    r   Úis_cuda_dispatch_keyræ   W  s8   € ØÝÔÝÔ!ÝÔÝÔ!ÝÔ$ÝÔ ðð ð r   c                óŽ   — | t           j        t           j        t           j        t           j        t           j        t           j        hv S rF   )rD   r.   r‰   r˜   r§   r¶   rÅ   rã   s    r   Úis_xpu_dispatch_keyrè   c  s7   € ØÝŒÝÔ ÝÔÝÔ ÝÔ#ÝÔðð ð r   c                ó   — | t           v S rF   )ÚSTRUCTURED_DISPATCH_KEYSrã   s    r   Úis_structured_dispatch_keyrë   p  s   € ØÕ)Ð)Ð)r   c                ó   — | t           v S rF   )ÚUFUNC_DISPATCH_KEYSrã   s    r   Úis_ufunc_dispatch_keyrî   t  s   € àÕ$Ð$Ð$r   ÚcudaÚxpuc                  óÆ  — 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dd„Zedd„¦   «         Zedd„¦   «         Zedd
„¦   «         ZdS )Ú
ScalarTyper   r   c                ó   — | j         S rF   rG   r   s    r   r   zScalarType.__str__‘  rI   r   rL   úScalarType | Nonec                ób   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œd S rF   )rò   rN   rO   rQ   s      r   Úmaybe_parsezScalarType.maybe_parse”  s@   € åÔ*×0Ò0Ñ2Ô2ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð àˆtr   c                ób   — t                                | ¦  «        }|€t          d| › �¦  «        ‚|S )Nzunknown dtype )rò   rö   rP   )rL   Úmb_rs     r   rT   zScalarType.parse›  s6   € å×%Ò% eÑ,Ô,ˆØˆ<Ý Ð!9°%Ð!9Ð!9Ñ:Ô:Ð:Øˆr   ÚvaluesúOrderedSet[ScalarType]c                ó   — t          ¦   «         }|                      d¦  «        D ]Y}|t          v r!|                     t          |         ¦  «         Œ,|                     t
                               |¦  «        ¦  «         ŒZ|S )Nú, )r
   ÚsplitÚDTYPE_CLASSESÚupdateÚaddrò   rT   )rù   ÚdtypesrL   s      r   Ú	parse_setzScalarType.parse_set¢  ss   € å)3©¬ˆØ—\’\ $Ñ'Ô'ð 	4ð 	4ˆEØ�Ð%Ð%Ø—’�m¨EÔ2Ñ3Ô3Ð3Ð3à—
’
�:×+Ò+¨EÑ2Ô2Ñ3Ô3Ð3Ð3Øˆr   Nr   )rL   r   r   rô   )rL   r   r   rò   )rù   r   r   rú   )r   r   r    r   ÚByteÚCharÚShortÚIntÚLongÚHalfÚFloatÚDoubleÚComplexHalfÚComplexFloatÚComplexDoubleÚBoolÚBFloat16ÚFloat8_e5m2ÚFloat8_e5m2fnuzÚFloat8_e4m3fnÚFloat8_e4m3fnuzÚFloat8_e8m0fnur   rÍ   rö   rT   r  r"   r   r   rò   rò   }  sN  € € € € € Øˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆD‰FŒF€EØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆD‰FŒF€EØˆT‰VŒV€FØ�$‘&”&€KØ�4‘6”6€LØ�D‘F”F€MØˆ4‰6Œ6€DØˆt‰vŒv€HØ�$‘&”&€KØ�d‘f”f€OØ�D‘F”F€MØ�d‘f”f€OØ�T‘V”V€Nðð ð ð ð ðð ð ñ „\ðð ðð ð ñ „\ðð ðð ð ñ „\ðð ð 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dS )	ÚUfuncKeyr   r   c                ó   — | j         S rF   rG   r   s    r   r   zUfuncKey.__str__×  rI   r   rL   c                ó‚   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œt          d| › �¦  «        ‚)Nzunknown ufunc key )r  rN   rO   rP   rQ   s      r   rT   zUfuncKey.parseÚ  sR   € åÔ(×.Ò.Ñ0Ô0ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð åÐ9°%Ð9Ð9Ñ:Ô:Ð:r   Nr   )rL   r   r   r  )r   r   r    r   ÚCUDAFunctorÚCUDAFunctorOnOtherÚCUDAFunctorOnSelfÚ	CPUScalarÚ	CPUVectorÚ
ScalarOnlyÚGenericr   rÍ   rT   r"   r   r   r  r  È  s›   € € € € € ð �$‘&”&€KØ˜™œÐØ˜™œÐà�‘”€IØ�‘”€Ið �‘”€JØˆd‰fŒf€Gðð ð ð ð ð;ð ;ð ;ñ „\ð;ð ;ð ;r   r  c                  ó   — e Zd ZdZdZdS )ÚDeviceCheckTyper   é   N)r   r   r    ÚNoCheckÚ	ExactSamer"   r   r   r'  r'  â  s   € € € € € Ø€GØ€I€I€Ir   r'  c                  óJ   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         ZdS )ÚViewSchemaKindN)r   r   r    r   ÚaliasingÚaliasing_inplaceÚnon_aliasingr"   r   r   r,  r,  ç  s0   € € € € € Øˆt‰vŒv€HØ�t‘v”vÐØ�4‘6”6€L€L€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	 d7d8d-„¦   «         Zd9d/„Zd9d0„Zed:d1„¦   «         Z	ed:d2„¦   «         Z
ed;d4„¦   «         Zed<d5„¦   «         Zed:d6„¦   «         Zd%S )=ÚNativeFunctionr   Ú	namespaceÚFunctionSchemaÚfuncrà   Ú!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ÚtagsNÚeiúdict[str, object]Ú
valid_tagsÚignore_keysúset[DispatchKey] | Noner   úMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]c           	     ó¾  ‡7— |                       ¦   «         }|                     d¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚t          j        |d¬¦  «        }|                     d¬¦  «        }t           	                    |j
        ¦  «        Š7|                     dg ¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚t          |¦  «        }	|                     d	d
¦  «        }
t          |
t          ¦  «        st	          d|
› �¦  «        ‚|
r‰7j        j        rt	          d¦  «        ‚|                     dd¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚t          ¦   «         }|                     d¦  «        D ]_}|dk    r |                     t$          j        ¦  «         Œ(|dk    r |                     t$          j        ¦  «         ŒNt	          d|› �¦  «        ‚|                     dd
¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd
¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|� |t*          j        v st	          d|› �¦  «        ‚|€t*          j        }nt*          |         }|                     dd
¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|�d|v rt	          d¦  «        ‚d}|�t0           	                    |¦  «        }|                     dd¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|�d|v rt	          d ¦  «        ‚|                     d!d¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|�t$          j        |v rt	          d"¦  «        ‚|                     d#d¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|                     d$d¦  «        }|�|durt	          d%|› �¦  «        ‚|rt2           	                    |¦  «        nd}|                     d&g ¦  «        }t          |t          ¦  «        r|g}t          |t          ¦  «        st	          d'|› �¦  «        ‚|dk    rd(|v r|                     d(¦  «         t          ¦   «         }|D ]O}t7          |¦  «        d)k    rt	          d*¦  «        ‚||v r|                     |¦  «         Œ>t	          d+|› �¦  «        ‚d)d,lm} |                     d-d¦  «        }|�'t          |t<          ¦  «        st	          d.|› �¦  «        ‚i } d)}!|��|rt	          d/¦  «        ‚d
}"|                     ¦   «         D �]Q\  }#}|#d0k    rŒt          |#t          ¦  «        st	          d1|#› d2|› �¦  «        ‚t          |t          ¦  «        st	          d3|› d2|› �¦  «        ‚|#                     d4¦  «        D ]Ú}$t@           	                    |$ !                    ¦   «         ¦  «        }%|!dz  }!|r|%|v rŒ:|%tD          vrt	          d5|%› d6|› d7�¦  «        ‚t          j        |d8¬9¦  «        }|                     d:¬¦  «        }&tG          |j
        |otI          |%¦  «        |&d;z   ¬<¦  «        | |%<   |%t@          j%        u r|| &                    ‰7¦  «        k    rd}"ŒÛ�ŒS|!dk    r|"rt	          d=¦  «        ‚|s†|  '                    ¦   «         t@          j%        hk    sc| t@          j%                  (                    ¦   «         s?|!dk    s9t	          d>| &                    ‰7¦  «        › d?| t@          j%                 › d@�¦  «        ‚n¶|s´|€²t          ‰7j&        j&        ¦  «        }'|' )                    dA¦  «        s:|' *                    dB¦  «        s%‰7j        j+        r,‰7j         ,                    ¦   «         st	          dC|'› dD�¦  «        ‚tG          | &                    ‰7¦  «        d
tZ          ¬E¦  «        | t@          j%        <   dF„ | D ¦   «         }(t7          |(¦  «        dk    s>t7          |(¦  «        dGk    rt@          j.        |(vrt@          j/        |(v st	          dH¦  «        ‚|                     dIdJ¦  «        })t          |)t          ¦  «        st	          dK|)› �¦  «        ‚|)dJk    rg ndL„ |)                     d¦  «        D ¦   «         }*|                     dMi ¦  «        }+i },t          |+t          ¦  «        r3t`           	                    |+tb          j2        ¦  «        |,tb          j2        <   nÏt          |+t<          ¦  «        r¨|+                     ¦   «         D ]’\  }$}-|$d0k    rŒt          |$t          ¦  «        st	          dN|$› �¦  «        ‚t          |-t          ¦  «        st	          dO|-› �¦  «        ‚tb           	                    |$¦  «        }.t`           	                    |-|.¦  «        |,|.<   Œ“nt	          dP|+› �¦  «        ‚|,rh|st	          dQ¦  «        ‚d)dl3m4c m5}/ tl          D ]F}%|%| v rt	          dR|%› �¦  «        ‚tG          |/ 7                    ‰7|%¦  «        dtZ          ¬<¦  «        | |%<   ŒG|rd}0nt|  '                    ¦   «         t@          j%        hk    oP|  '                    ¦   «         t@          j/        hk    o-|  '                    ¦   «         t@          j%        t@          j/        hk    }0t@          j%        | v }1t@          j/        | v }2t@          j8        | v }3t@          j.        | v }4ˆ7fdS„|                      ¦   «         D ¦   «         }5|                     d0d¦  «         |rt	          dT|› �¦  «        ‚|�!tr          D ]}6|6| v rt	          dU|6› dV�¦  «        ‚Œtu          d^i d‰7“d	|
“d|“d|“d|“d|“d$|“dI|*“dM|,“d|“d|“d!|“d#|“d|“d|“dW|“d|	“dX|0“dY|1“dZ|2“d[|3“d\|4“d&|“d]|“Ž|5fS )_zp
        Parse a NativeFunction from a dictionary as directly parsed
        from native_functions.yaml
        r4  znot a str: r(  )Únamespaced_entityÚ	max_levelÚaten)ÚdefaultrF  z#cpp_no_default_args is not a list: r5  Fz1use_const_ref_for_mutable_tensors is not a bool: z4see https://github.com/pytorch/pytorch/issues/145522r;  r%   zvariants is not a str: rü   r&   zillegal variant r<  znot a bool: r=  r6  Tr7  Nzillegal device_check: rA  rB  ú::zbnamespace is not supported in structured delegate, using the same namespace as the native functionrC  zbnamespace is not supported in structured inherits, using the same namespace as the native functionr9  z&functions in modules cannot be methodsr:  rD  z5precomputed requires structured=True, got structured=rL  ztags is not a list: Úpt2_compliant_tagr   zvalid_tags is emptyzillegal tag )ÚcppÚdispatchzdispatch is not a dict: zncannot 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.é   )rU  Úatz::native)ÚkernelrA  Ú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__)rA  ra  c                ó’   — g | ]D}|t           j        k    s0|t           j        k    s |t           j        k    s|t           j        k    ¯B|‘ŒES r"   râ   )r>   Úds     r   r@   z,NativeFunction.from_yaml.<locals>.<listcomp>c  s]   € ð "
ð "
ð "
àØ•KÔ9Ò9Ð9Ø•KÔFÒFÐFØ•KÔ9Ò9Ð9Ø•KÔEÒEÐEð ð
 FÐEÐEr   é   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 onlyr?  r6   zautogen is not a str: c                óB   — g | ]}t                                |¦  «        ‘ŒS r"   )ÚOperatorNamerT   ©r>   Úxs     r   r@   z,NativeFunction.from_yaml.<locals>.<listcomp>‡  s&   € ÐIÐIÐI¨A•,×$Ò$ QÑ'Ô'ÐIÐIÐIr   r@  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 c                ó*   •— i | ]\  }}|‰j         |i“ŒS r"   rG   )r>   rR   rS   r4  s      €r   ú
<dictcomp>z,NativeFunction.from_yaml.<locals>.<dictcomp>Ò  s%   ø€ ÐKÐKÐK±$°!°Q˜A ¤	¨1˜~ÐKÐKÐKr   zleftover entries: z+if structured_delegate, then must not have z* in dispatch dictionary (it is delegated!)r>  rG  rH  rI  rJ  rK  r2  r"   );ÚcopyÚpopÚ
isinstancer   rP   r	   Úfrom_namespaced_entityÚget_cpp_namespacer3  rT   Úentity_nameÚlistÚsetrà   Ú	argumentsÚoutrý   r   r$   r%   r&   r'  rN   r*  rh  Ú
PrecomputeÚappendÚlenÚtorchgen.apirZ  ÚdictrO   rD   ÚstripÚdispatch_keysÚBackendMetadatarë   r}   rH   ÚkeysÚsupports_symintÚ
startswithÚendswithÚtensor_optionsÚhas_tensor_argÚDEFAULT_KERNEL_NAMESPACEr€   r~   ÚUfuncInnerLoopr  r%  Útorchgen.api.ufuncÚapiÚufuncrí   Úschema_kernel_namer   rê   r1  )8rM  r>  rO  rP  ÚeÚfuncsÚnamespace_helperr2  Úcpp_no_default_args_listrF  r5  Ú
variants_sr;  rS   r<  r=  r6  Údevice_check_sr7  rA  Ústructured_delegate_srB  rC  r9  r:  Úprecomputed_dictrD  Útags_inprL  ÚtrZ  Úraw_dispatchr[  Únum_dispatch_keysÚ%redundant_composite_implicit_autogradÚksrR   Údispatch_keyÚkernel_namespacerH   Úcomposites_in_dispatchÚautogen_strr?  Úraw_ufunc_inner_loopr@  ÚvoÚ	ufunc_keyr‰  rG  rH  rI  rJ  rK  Úbackend_metadataÚkeyr4  s8                                                          @r   Ú	from_yamlzNativeFunction.from_yamlo  s0  ø€ ð �GŠG‰IŒIˆà—’�f‘”ˆÝ˜%¥Ñ%Ô%ð 	8Ý Ð!6¨uÐ!6Ð!6Ñ7Ô7Ð7å*ÔAØ#¨qð
ñ 
ô 
Ðð %×6Ò6¸vÐ6ÑFÔFˆ	Ý×#Ò#Ð$4Ô$@ÑAÔAˆà#$§5¢5Ð)>ÀÑ#CÔ#CÐ ÝÐ2µDÑ9Ô9ð 	Ý ØPÐ6NÐPÐPñô ð õ "Ð":Ñ;Ô;Ðà,-¯EªEØ/°ñ-
ô -
Ð)õ Ð;½TÑBÔBð 	Ý ØgÐDeÐgÐgñô ð ð -ð 	ØŒ~Ô!ð Ý$ØJñô ð ð —U’U˜: zÑ2Ô2ˆ
Ý˜*¥cÑ*Ô*ð 	IÝ Ð!G¸:Ð!GÐ!GÑHÔHÐHÝ!$¡¤ˆØ×!Ò! $Ñ'Ô'ð 	=ð 	=ˆAØ�JŠˆØ—’�WÔ-Ñ.Ô.Ð.Ð.Ø�h’�Ø—’�Wœ^Ñ,Ô,Ð,Ð,å$Ð%;¸Ð%;Ð%;Ñ<Ô<Ð<à%&§U¢UÐ+GÈÑ%OÔ%OÐ"ÝÐ4µdÑ;Ô;ð 	NÝ Ð!LÐ0JÐ!LÐ!LÑMÔMÐMàŸUšUÐ#7¸Ñ?Ô?ÐÝÐ,­dÑ3Ô3ð 	FÝ Ð!DÐ0BÐ!DÐ!DÑEÔEÐEà—u’u˜^¨TÑ2Ô2ˆÝ˜,­Ñ-Ô-ð 	@Ý Ð!>°Ð!>Ð!>Ñ?Ô?Ð?àŸš˜~¨tÑ4Ô4ˆØÐ&­*°^ÅSÑ*IÔ*IÐ&Ý Ð!?¨~Ð!?Ð!?Ñ@Ô@Ð@àÐ" n½Ô8SÐ&SÐ&Så Ð!J¸.Ð!JÐ!JÑKÔKÐKàÐ!Ý*Ô4ˆLˆLå*¨>Ô:ˆLà—U’U˜<¨Ñ/Ô/ˆ
Ý˜*¥dÑ+Ô+ð 	>Ý Ð!<°
Ð!<Ð!<Ñ=Ô=Ð=à !§¢Ð&;¸TÑ BÔ BÐà!Ð)­ZÐ8MÍsÑ-SÔ-SÐ)å Ð!FÐ/DÐ!FÐ!FÑGÔGÐGØ Ð,°Ð9NÐ1NÐ1NÝ ðCñô ð ð 48ÐØ Ð,Ý".×"4Ò"4Ð5JÑ"KÔ"KÐàŸešeÐ$9¸4Ñ@Ô@ÐØ#Ð+­zÐ:MÍsÑ/SÔ/SÐ+Ý Ð!DÐ/BÐ!DÐ!DÑEÔEÐEØÐ*¨tÐ7JÐ/JÐ/JÝ ðCñô ð ð
 Ÿš˜o¨tÑ4Ô4ˆØÐ%­°MÅ3Ñ)GÔ)GÐ%Ý Ð!>¨}Ð!>Ð!>Ñ?Ô?Ð?ØÐ$­¬¸8Ð)CÐ)CÝ Ð!IÑJÔJÐJàŸEšEÐ"5°tÑ<Ô<ÐØ!Ð)­ZÐ8IÍ3Ñ-OÔ-OÐ)Ý Ð!BÐ/@Ð!BÐ!BÑCÔCÐCàŸ5š5 °Ñ5Ô5ÐØÐ'¨J¸dÐ,BÐ,BÝ ØTÈ
ÐTÐTñô ð ð =MÐV•j×&Ò&Ð'7Ñ8Ô8Ð8ÐRVˆà—5’5˜ Ñ$Ô$ˆÝ�h¥Ñ$Ô$ð 	"Ø �zˆHÝ˜(¥DÑ)Ô)ð 	DÝ Ð!B¸Ð!BÐ!BÑCÔCÐCð ˜ÒÐÐ#6¸*Ð#DÐ#DØ�OŠOÐ/Ñ0Ô0Ð0å™œˆØð 	9ð 	9ˆAÝ�:‰Œ !Ò#Ð#Ý$Ð%:Ñ;Ô;Ð;à�JˆˆØ—’˜‘”��å$Ð%7°AÐ%7Ð%7Ñ8Ô8Ð8à$Ð$Ð$Ð$Ð$Ð$à—u’u˜Z¨Ñ.Ô.ˆØÐ$­
°<ÅÑ(FÔ(FÐ$Ý Ð!?¸AÐ!?Ð!?Ñ@Ô@Ð@Ø79ˆØ!"ÐØÑ#Ø)ð Ý$ðCñô ð ð 5:Ð1Ø%×+Ò+Ñ-Ô-ð )Eñ )E‘��AØ˜Ò#Ð#ØÝ! "¥cÑ*Ô*ð Ý(ØH°ÐHÐH¸,ÐHÐHñô ð õ " !¥SÑ)Ô)ð Ý(ØI°1ÐIÐI¸<ÐIÐIñô ð ð Ÿš #™œð Eð E�AÝ#.×#4Ò#4°Q·W²W±Y´YÑ#?Ô#?�LØ%¨Ñ*Ð%à"ð ! |°{Ð'BÐ'BØ Ø#­=Ð8Ð8Ý,ð?¨Lð ?ð ?ÀQð ?ð ?ð ?ñô ð õ (7Ô'MØ Qð(ñ (ô (Ð$ð (8×'IÒ'IÐRVÐ'IÑ'WÔ'WÐ$õ .=Ø/Ô;Ø#-ð $EÝ6°|ÑDÔDØ'7¸*Ñ'Dð	.ñ .ô .�H˜\Ñ*ð %­Ô(MÐMÐMØ §¢¨$¡¤Ò/Ð/à@DÐ=øñ=EðF ! AÒ%Ð%Ð*OÐ%Ý$ð#ñô ð ð $ð
à—=’=‘?”?¥{Ô'LÐ&MÒMÐMØ�KÔAÔB×RÒRÑTÔTð Nà$¨Ò)Ð)å$ð;Ðhk×hpÒhpÐquÑhvÔhvð ;ð ;Ø'­Ô(MÔNð;ð ;ð ;ñô ð øð
 ð 	Ð 3Ð ;Ý�t”y”~Ñ&Ô&ˆDà—’ Ñ'Ô'ðà—=’= Ñ)Ô)ðð
 ”NÔ1ðð !œN×9Ò9Ñ;Ô;ðõ %ð- ð -ð -ð -ñô ð õ ?NØ—’˜‘”¨5Õ@Xð?ñ ?ô ?ˆH•[Ô:Ñ;ð"
ð "
àð"
ñ "
ô "
Ðõ Ð&Ñ'Ô'¨1Ò,Ð,åÐ*Ñ+Ô+¨qÒ0Ð0åÔFØ1ð2ð 2õ  ÔEØ-ð.ð .õ
 !ðvñô ð ð —e’e˜I rÑ*Ô*ˆÝ˜+¥sÑ+Ô+ð 	IÝ Ð!G¸+Ð!GÐ!GÑHÔHÐHð ˜bÒ Ð ð ˆBàIÐI°×1BÒ1BÀ4Ñ1HÔ1HÐIÑIÔIð 	ð  !ŸušuÐ%7¸Ñ<Ô<ÐØÐÝÐ*­CÑ0Ô0ð 	Ý1?×1EÒ1EØ$¥hÔ&6ñ2ô 2Ð�XÔ-Ñ.Ð.õ Ð,­dÑ3Ô3ð 	Ø-×3Ò3Ñ5Ô5ð Rð R‘��2Ø˜
’?�?ØÝ! !¥SÑ)Ô)ð TÝ(Ð)RÈqÐ)RÐ)RÑSÔSÐSÝ! "¥cÑ*Ô*ð WÝ(Ð)UÐQSÐ)UÐ)UÑVÔVÐVÝ$ŸNšN¨1Ñ-Ô-�	Ý.<×.BÒ.BÀ2ÀyÑ.QÔ.QÐ  Ñ+Ð+ðRõ !ØKÐ5IÐKÐKñô ð ð ð 	Øð AÝ$Ð%?Ñ@Ô@Ð@ð /Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.å 3ð 	ð 	�Ø 8Ð+Ð+Ý(Ø[È\Ð[Ð[ñô ð õ *9Ø ×3Ò3°D¸,ÑGÔGØ#Ý":ð*ñ *ô *�˜Ñ&Ð&ð ð 	àˆKˆKð —’‘”¥KÔ$IÐ#JÒJð Ø—M’M‘O”OÝÔEÐFòGðð —M’M‘O”OåÔ9ÝÔEðòð	 õ Ô1°XÐ=ð 	/õ Ô=ÀÐIð 	=õ Ô1°XÐ=ð 	/õ Ô>À(ÐJð 	>ð LÐKÐKÐK¸(¿.º.Ñ:JÔ:JÐKÑKÔKÐð 	
�Šˆj˜$ÑÔÐØð 	;Ý Ð!9°aÐ!9Ð!9Ñ:Ô:Ð:ð Ð*Ý/ð ð �Ø˜(�?�?Ý(ð-Àcð -ð -ð -ñô ð ð #õ ð ð ð Ø�Tðà2SÐ2Sðð "˜ðð &˜:ð	ð
 %8Ð$7ðð %8Ð$7ðð (˜Kðð  ˜ðð "2Ð!1ðð ,FÐ+Eðð $6Ð#5ðð ,˜mðð #4Ð"3ðð *˜\ðð *˜\ðð  �Cð!ð" %8Ð$7ð#ð$ (˜Kð%ð& 8^Ð7]ð'ð( FzÐEyð)ð* 8^Ð7]ð+ð, G|ÐF{ð-ð. �Tð/ð0 $˜)ð1ð4 ð7
ð 	
r   ÚNonec                ó^   — | j         rt          d¦  «        ‚| j        st          d¦  «        ‚d S )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))rA  rP   rB  r   s    r   Úvalidate_unstructuredz$NativeFunction.validate_unstructured  sT   € ð Œ?ð 	Ý ð5ñô ð ð Ô'ð 	Ý ðiñô ð ð	ð 	r   c                ób  — | j         j        j        r%| j        t          j        hk    rt          d¦  «        ‚| j        rL| j                              ¦   «         t          j        k    rt          d¦  «        ‚| j
        st          d¦  «        ‚| j        rL| j                              ¦   «         t          j        k    rt          d¦  «        ‚| j
        st          d¦  «        ‚| j        r| j        rt          d¦  «        ‚d„ | j                              ¦   «         D ¦   «         }t                               | j        |¦  «        }t!          |¦  «        dk    rt          d|› �¦  «        ‚| j        �| j        st          d	¦  «        ‚t%          | j         j        ¦  «                             d
¦  «        r$| j        t,          j        k    rt          d¦  «        ‚dt%          | j         j        ¦  «        v sždt%          | j         j        ¦  «        v s(t1          d„ | j         j        j        D ¦   «         ¦  «        r=dt%          | j         j        ¦  «        vr"t%          | j         j        j        ¦  «        dk    s| j         j                             ¦   «         r'd| j        vrt          d| j         j        › �¦  «        ‚d S d S )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 functionc                ó*   — h | ]}|j         ®	|j        ’ŒS rF   )rW  rH   ©r>   Úas     r   ú	<setcomp>z/NativeFunction.__post_init__.<locals>.<setcomp>9  s(   € ð 
ð 
ð 
ØÀ!Ä)ÐBWˆAŒFÐBWÐBWÐBWr   r   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  ó(   K  — | ]}d |j         v V — ŒdS )r­  NrG   ©r>   Úargs     r   r×   z/NativeFunction.__post_init__.<locals>.<genexpr>R  s:   è è € ð ð Ø25˜	 S¤XÐ-ðð ð ð ð ð r   ÚbackwardÚ_cudnn_init_dropout_stateÚnondeterministic_seededz(nondeterministic_seeded tag missing for )r4  ru  rv  r;  r$   r%   rP   rA  ÚkindÚ
SchemaKindr6  rB  Úschema_order_argumentsrt  Ú
differencerF  ry  rC  r   rH   r�  r7  r'  r)  ÚanyÚflat_allÚhas_generator_argrL  )r   Údefaulted_argumentsÚinvalid_argss      r   Ú__post_init__zNativeFunction.__post_init__  s  € ØŒ9ÔÔ"ð 	ØŒ}¥Ô!1Ð 2Ò2Ð2Ý$ð_ñô ð ð Œ?ð 		ØŒy�~Š~ÑÔ¥:¤>Ò1Ð1Ý$ðOñô ð ð Ô$ð Ý$ØPñô ð ð Ô#ð 		ØŒy�~Š~ÑÔ¥:¤>Ò1Ð1Ý$ðBñô ð ð Ô$ð Ý$ØPñô ð ð
 Œ?ð 	˜tÔ7ð 	Ý ØQñô ð ð
ð 
Ø œI×<Ò<Ñ>Ô>ð
ñ 
ô 
Ðõ —~’~ dÔ&>Ð@SÑTÔTˆÝˆ|ÑÔ Ò!Ð!Ý Ð!OÀÐ!OÐ!OÑPÔPÐPØÔ#Ð/Ø”?ð Ý$ØJñô ð õ ˆtŒyŒ~ÑÔ×)Ò)¨*Ñ5Ô5ð 	ØÔ ¥OÔ$;Ò;Ð;Ý$ð=ñô ð ð •c˜$œ)œ.Ñ)Ô)Ð)Ð)ð ¥ T¤Y¤^Ñ!4Ô!4Ð4Ð4Ýð ð Ø9=¼Ô9LÔ9Uðñ ô ñ ô ð 5ð ¥c¨$¬)¬.Ñ&9Ô&9Ð9Ð9Ý˜œ	œÔ+Ñ,Ô,Ð0KÒKÐKàŒyÔ"×4Ò4Ñ6Ô6ð Lð )°´	Ð9Ð9Ý$ØO¸t¼y¼~ÐOÐOñô ð ð :Ð9ð	 LÐKr   c                óH   — | j         p| j        p| j        p| j         o| j        S rF   )rH  rJ  rK  rI  r   s    r   Úhas_composite_kernelz#NativeFunction.has_composite_kernela  s@   € ð Ô7ð JØÔ:ðJàÔIð
ð
 Ô7ð JØÔIð	
r   c                ód  — | j         j        }t          |¦  «        dk    ot          d„ |D ¦   «         ¦  «        }d| j        v o9t          | j         j        ¦  «        dk    ot          | j         j        ¦  «        dk    }t          d„ | j                              ¦   «         D ¦   «         ¦  «        }|p|p|S )Nr   c              3  óB   K  — | ]}|j         d uo|j         j         V — Œd S rF   ©Ú
annotationÚis_write©r>   rÝ   s     r   r×   z,NativeFunction.is_view_op.<locals>.<genexpr>o  sG   è è € ð 5
ð 5
ØGHˆAŒL Ð$ÐB¨Q¬\Ô-BÐ)Bð5
ð 5
ð 5
ð 5
ð 5
ð 5
r   Úinplace_viewÚresize_Ú
resize_as_c              3  óD   K  — | ]}|j         d uod|j         j        v V — Œd S )NÚ*)rÃ  Úalias_set_after)r>   Úinps     r   r×   z,NativeFunction.is_view_op.<locals>.<genexpr>x  sL   è è € ð 
ð 
àð ŒN $Ð&ÐP¨3°#´.Ô2PÐ+Pð
ð 
ð 
ð 
ð 
ð 
r   )r4  Úreturnsry  r¸  rL  r   rH   r¶  )r   ÚretsÚis_non_mutating_viewÚis_inplace_viewÚis_wildcard_views        r   Ú
is_view_opzNativeFunction.is_view_opl  sÛ   € àŒyÔ ˆÝ" 4™yœy¨1š}ð  
µð 5
ð 5
ØLPð5
ñ 5
ô 5
ñ 2
ô 2
Ðð
 ˜dœiÐ'ð 4Ý�D”I”NÑ#Ô# yÒ0ð4å�D”I”NÑ#Ô# |Ò3ð 	õ
 ð 
ð 
à”y×7Ò7Ñ9Ô9ð
ñ 
ô 
ñ 
ô 
Ðð $ÐJ ÐJÐ:JÐJr   r,  c                óÜ   — | j         rG| j        j        j        j        r1d| j        vrt          d| j        j        › �¦  «        ‚t          j        S | j         rt          j        S t          j	        S )NrÆ  zinplace_view tag missing for )
rÒ  r4  rH   ÚinplacerL  rP   r,  r.  r-  r/  r   s    r   Úview_schema_kindzNativeFunction.view_schema_kind~  sj   € àŒ?ð 	3˜tœyœ~Ô2Ô:ð 	3Ø T¤YÐ.Ð.Ý$Ð%UÀTÄYÄ^Ð%UÐ%UÑVÔVÐVÝ!Ô2Ð2ØŒ?ð 	/Ý!Ô*Ð*å!Ô.Ð.r   c                ó.   — | j         j        j        j        S rF   )r4  rH   Úbaser   s    r   Ú	root_namezNativeFunction.root_name‰  s   € àŒyŒ~Ô"Ô'Ð'r   c                ó"   — | j         p| j        d uS rF   )rA  rB  r   s    r   Úpart_of_structured_groupz'NativeFunction.part_of_structured_group�  s   € àŒÐF $Ô":À$Ð"FÐFr   rF   )
rM  rN  r>  r   rO  rE  rP  rQ  r   rR  ©r   r£  ©r   rà   )r   r,  r   )r   r   r    r!   rÍ   r¢  r¥  r½  Úpropertyr¿  rÒ  rÕ  rØ  rÚ  r"   r   r   r1  r1  ù  s^  € € € € € € ð €N€N�Nð ÐÐÑð ,Ð+Ð+Ñ+ð ÐÐÑð "Ð!Ð!Ñ!ð ÐÐÑð "Ð!Ð!Ñ!ð ÐÐÑð
 %Ð$Ð$Ñ$ð ÐÐÑð €M€M�Mð  ÐÐÑð 5Ð4Ð4Ñ4ð ÐÐÑð -Ð,Ð,Ñ,ð $Ð#Ð#Ñ#ð #Ð"Ð"Ñ"ð "Ð!Ð!Ñ!ð ÐÐÑð 1Ð0Ð0Ñ0Ø>Ð>Ð>Ñ>Ø0Ð0Ð0Ñ0Ø?Ð?Ð?Ñ?ð €N€N�Nð ð
 04ð	O
ð O
ð O
ð O
ñ „\ðO
ðbð ð ð ð*Ið Ið Ið IðV ð
ð 
ð 
ñ „Xð
ð ðKð Kð Kñ „XðKð" ð/ð /ð /ñ „Xð/ð ð(ð (ð (ñ „Xð(ð ðGð Gð Gñ „XðGð Gð Gr   r1  c                  ór   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         ZdS )rµ  N)	r   r   r    r   Ú
functionalrÔ  rv  ÚmutableÚscratchr"   r   r   rµ  rµ  ’  sE   € € € € € Ø�‘”€JØˆd‰fŒf€GØ
ˆ$‰&Œ&€CØˆd‰fŒf€GØˆd‰fŒf€G€G€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dS )ÚNativeFunctionsGroupr1  rß  úNativeFunction | NonerÔ  rà  rv  r   rà   c                ó   — | j         j        S rF   )rv  rA  r   s    r   rA  zNativeFunctionsGroup.structured§  s   € ð ŒxÔ"Ð"r   r£  c           
     ó¦
  — | j         j                             ¦   «         }|                      ¦   «         D ]‰}||j                             ¦   «         k    r,t	          d|› d|j                             ¦   «         › �¦  «        ‚| j        |j        k    r.t	          d| j        j        j        › d|j        j        › �¦  «        ‚ŒŠ| j         j         	                    ¦   «         t          j         k    r/t	          d| j         j         	                    ¦   «         › d�¦  «        ‚| j        j         	                    ¦   «         t          j        k    r/t	          d| j        j         	                    ¦   «         › d�¦  «        ‚| j         j        | j        j        k    r*t	          d	| j         j        › d
| j        j        › d�¦  «        ‚| j        �Ÿ| j        j         	                    ¦   «         t          j        k    r/t	          d| j        j         	                    ¦   «         › d�¦  «        ‚| j        j        | j         j        k    r*t	          d| j        j        › d| j         j        › d�¦  «        ‚| j        �É| j        j         	                    ¦   «         t          j        k    r/t	          d| j        j         	                    ¦   «         › d�¦  «        ‚| j        j        | j         j        k    r*t	          d| j        j        › d| j         j        › d�¦  «        ‚| j         j        j        j        j        st	          d¦  «        ‚| j        rê| j        j        s| j        j        rt	          d¦  «        ‚| j         j        | j        j        j        k    r?t	          | j         j        j        › d| j         j        › d| j        j        j        › �¦  «        ‚| j        �^| j        j        | j        j        j        k    r?t	          | j        j        j        › d| j        j        › d| j        j        j        › �¦  «        ‚t%          d„ |                      ¦   «         D ¦   «         ¦  «        }d                     d„ |D ¦   «         ¦  «        }t)          ¦   «         }|                      ¦   «         D ]&}|                     d„ |j        D ¦   «         ¦  «         Œ'd                     d„ t%          |¦  «        D ¦   «         ¦  «        }t/          |¦  «        dk    rBt/          |¦  «        dk    r/t1          d|› d|› dt3          |j        j        ¦  «        › �¦  «        ‚||k    rt1          d|› d |› d!|› d"�¦  «        ‚d S )#Nz_NativeFunctionsGroup constructed from two NativeFunctions that don't have matching signatures: ú != zMNativeFunctionsGroup constructed from structured and unstructured functions: ú and zfunctional.func.kind() is z , expected SchemaKind.functionalzout.func.kind() is z, expected SchemaKind.outzfunctional.namespace (z) != out.namespace (ú)zinplace.func.kind() is z, expected SchemaKind.inplacezinplace.namespace (z) != functional.namespace (zmutable.func.kind() is z, expected SchemaKind.mutablezmutable.namespace (zSfunctional.func.name.name.functional_overload must be True when mutable is not Nonez.structured composite kernels are not supportedz delegates to z but its actual delegate is c                óR   — g | ]$}d |j         v ¯t          |j        j        ¦  «        ‘Œ%S )Ú	generated)rL  r   r4  rH   )r>   Úfs     r   r@   z6NativeFunctionsGroup.__post_init__.<locals>.<listcomp>õ  s0   € ÐQÐQÐQ !¸;È!Ì&Ð;PÐ;P�S�””ÑÔÐ;PÐ;PÐ;Pr   rü   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   ©r   ri  s     r   r×   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>÷  s(   è è € Ð%DÐ%D°¥c¨!¡f¤fÐ%DÐ%DÐ%DÐ%DÐ%DÐ%Dr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   rî  )r>   Úops     r   r×   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>ú  s(   è è € Ð)FÐ)F°b­#¨b©'¬'Ð)FÐ)FÐ)FÐ)FÐ)FÐ)Fr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   rî  ri  s     r   r×   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>û  s9   è è € ð /
ð /
Ø�C�‰FŒ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ß  r4  Ú	signatureÚ	functionsrP   rA  rÚ  rv  rH   r´  rµ  r2  rÔ  rà  Úfunctional_overloadrH  rI  rB  ÚsortedrÜ   rt  rÿ   r?  ry  ÚRuntimeErrorr   )r   Útest_sigrì  Úgenerated_fnsÚgenerated_fns_strÚexpected_generated_fnsÚexpected_generated_fns_strs          r   r½  z"NativeFunctionsGroup.__post_init__¬  s  € Ø#'¤?Ô#7×#AÒ#AÑ#CÔ#CˆØ—’Ñ!Ô!ð 	ð 	ˆAØ˜1œ6×+Ò+Ñ-Ô-Ò-Ð-Ý$ð_Ø<Dð_ð _ØJKÌ&×JZÒJZÑJ\ÔJ\ð_ð _ñô ð ð
 Œ !Ô"<Ò<Ð<Ý$ðIØ"&¤(¤-Ô"4ðIð IØ;<¼6¼;ðIð Iñô ð ð =ð
 Œ?Ô×$Ò$Ñ&Ô&­*Ô*?Ò?Ð?Ý Øj¨T¬_Ô-A×-FÒ-FÑ-HÔ-HÐjÐjÐjñô ð ð Œ8Œ=×ÒÑÔ¥:¤>Ò1Ð1Ý ØU d¤h¤m×&8Ò&8Ñ&:Ô&:ÐUÐUÐUñô ð ð Œ?Ô$¨¬Ô(:Ò:Ð:Ý Øm¨¬Ô)BÐmÐmÐX\ÔX`ÔXjÐmÐmÐmñô ð ð Œ<Ð#ØŒ|Ô ×%Ò%Ñ'Ô'­:Ô+=Ò=Ð=Ý$Øe¨d¬lÔ.?×.DÒ.DÑ.FÔ.FÐeÐeÐeñô ð ð Œ|Ô%¨¬Ô)BÒBÐBÝ$Øy¨$¬,Ô*@ÐyÐyÐ]aÔ]lÔ]vÐyÐyÐyñô ð ð Œ<Ð#ØŒ|Ô ×%Ò%Ñ'Ô'­:Ô+=Ò=Ð=Ý$Øe¨d¬lÔ.?×.DÒ.DÑ.FÔ.FÐeÐeÐeñô ð ð Œ|Ô%¨¬Ô)BÒBÐBÝ$Øy¨$¬,Ô*@ÐyÐyÐ]aÔ]lÔ]vÐyÐyÐyñô ð ð ”?Ô'Ô,Ô1ÔEð Ý$Øiñô ð ð Œ?ð 	ð ”Ô?ðWà”8ÔPðWõ %Ð%UÑVÔVÐVàŒÔ2°d´h´mÔ6HÒHÐHÝ$Ø”Ô+Ô0ð Gð GÀÄÔ@cð Gð GØ26´(´-Ô2DðGð Gñô ð ð Œ|Ð'Ø”<Ô3°t´x´}Ô7IÒIÐIÝ(Øœ<Ô,Ô1ð Kð KÀÄÔAað Kð KØ6:´h´mÔ6HðKð Kñô ð õ
 ØQÐQ t§~¢~Ñ'7Ô'7ÐQÑQÔQñ
ô 
ˆð !ŸIšIÐ%DÐ%D°mÐ%DÑ%DÔ%DÑDÔDÐÝ+.©5¬5ÐØ—’Ñ!Ô!ð 	Gð 	GˆAØ"×)Ò)Ð)FÐ)F¸A¼IÐ)FÑ)FÔ)FÑFÔFÐFÐFØ%)§Y¢Yð /
ð /
Ý"Ð#9Ñ:Ô:ð/
ñ /
ô /
ñ &
ô &
Ð"õ Ð%Ñ&Ô&¨!Ò+Ð+µ°MÑ0BÔ0BÀQÒ0FÐ0FÝðjÐ?Pð jð jà,=ðjð jåWZÐ[\Ô[aÔ[fÑWgÔWgðjð jñô ð ð
 &Ð):Ò:Ð:ÝðNÐ?Pð Nð NØ;LðNð Nà0JðNð Nð Nñô ð ð ;Ð:r   r3  c                ó>   — | j         j                             ¦   «         S rF   )rv  r4  ró  r   s    r   ró  zNativeFunctionsGroup.signature  s   € ØŒxŒ}×&Ò&Ñ(Ô(Ð(r   úIterator[NativeFunction]c              #  ór   K  — | j         V — | j        V — | j        �	| j        V — | j        �| j        V — d S d S rF   )rß  rv  rÔ  rà  r   s    r   rô  zNativeFunctionsGroup.functions  sY   è è € ØŒoÐÐÐØŒhˆˆˆØŒ<Ð#Ø”,ÐÐÐØŒ<Ð#Ø”,ÐÐÐÐÐð $Ð#r   r   c                ó   — | j         j        S rF   )rß  rØ  r   s    r   rØ  zNativeFunctionsGroup.root_name  s   € àŒÔ(Ð(r   re  ú dict[SchemaKind, NativeFunction]úNativeFunctionsGroup | Nonec                óä  — | st          d¦  «        ‚t          | ¦  «        dk    rd S t          | ¦  «        } |                      t          j        d ¦  «        }|                      t          j        d ¦  «        }|                      t          j        d ¦  «        }|                      t          j        d ¦  «        }| rt          d| › �¦  «        ‚|€t          d¦  «        ‚|€d S t          ||||¬¦  «        S )Nz from_dict called with empty dictr(  zunexpected keys in dict: zfunctional variant is required)rß  rÔ  rà  rv  )
rP   ry  r{  rn  rµ  rß  rÔ  rà  rv  rã  )re  rß  rÔ  rà  rv  s        r   Ú	from_dictzNativeFunctionsGroup.from_dict  sô   € àð 	EÝ Ð!CÑDÔDÐDÝˆq‰6Œ6�QŠ;ˆ;Ø�4Ý�‰GŒGˆØ—U’U�:Ô0°$Ñ7Ô7ˆ
Ø—%’%�
Ô*¨DÑ1Ô1ˆØ—%’%�
Ô*¨DÑ1Ô1ˆØ�eŠe•J”N DÑ)Ô)ˆØð 	BÝ Ð!@¸QÐ!@Ð!@ÑAÔAÐAØÐÝ Ð!AÑBÔBÐBð ˆ;Ø�4å#Ø!ØØØð	
ñ 
ô 
ð 	
r   NrÜ  rÛ  ©r   r3  )r   rþ  r   )re  r  r   r  )r   r   r    r!   rÝ  rA  r½  ró  rô  rØ  rÍ   r  r"   r   r   rã  rã     så   € € € € € € àÐÐÑØ"Ð"Ð"Ñ"Ø"Ð"Ð"Ñ"ØÐÐÑàð#ð #ð #ñ „Xð#ð]ð ]ð ]ð ]ð~)ð )ð )ð )ðð ð ð ð ð)ð )ð )ñ „Xð)ð ð
ð 
ð 
ñ „\ð
ð 
ð 
r   rã  c                  ó6   — e Zd ZU ded<   ded<   ded<   d	d„ZdS )
r~  r   r`  rà   rA  ra  r   c                ó   — d| j         v S )NÚ_symint)r`  r   s    r   r€  zBackendMetadata.supports_symintI  s   € Ø˜DœKÐ'Ð'r   NrÜ  )r   r   r    r!   r€  r"   r   r   r~  r~  6  sQ   € € € € € € ð €K€K�Kð
 ÐÐÑð ÐÐÑð(ð (ð (ð (ð (ð (r   r~  c                  óF   — e Zd ZU ded<   ded<   ded<   edd	„¦   «         Zd
S )r†  r   rH   rú   Úsupported_dtypesr  rŸ  rL   r   c                óf  — |                       dd¦  «        \  }}|d         dk    rt          d|› �¦  «        ‚|d         dk    rt          d|› �¦  «        ‚t          ¦   «         }|dd…                               d	¦  «        D ]}|t                               |¦  «        z  }Œ t          |||¬
¦  «        S )Nú r(  r   ú(z0expected '(' at start of supported_dtypes, got: éÿÿÿÿré  z.expected ')' at end of supported_dtypes, got: rü   )rH   r
  rŸ  )rý   rP   r
   rò   r  r†  )rL   rŸ  rH   Úsupported_dtypes_strr
  rR   s         r   rT   zUfuncInnerLoop.parseU  sæ   € à%*§[¢[°°aÑ%8Ô%8Ñ"ˆÐ"Ø Ô" cÒ)Ð)Ý ØYÐCWÐYÐYñô ð ð   Ô# sÒ*Ð*Ý ØWÐAUÐWÐWñô ð õ 4>±<´<ÐØ% a¨ dÔ+×1Ò1°$Ñ7Ô7ð 	8ð 	8ˆAØ¥
× 4Ò 4°QÑ 7Ô 7Ñ7ÐÐÝØÐ(8ÀIð
ñ 
ô 
ð 	
r   N)rL   r   rŸ  r  r   r†  )r   r   r    r!   rÍ   rT   r"   r   r   r†  r†  M  sW   € € € € € € à€I€I�IØ,Ð,Ð,Ñ,ð ÐÐÑàð
ð 
ð 
ñ „\ð
ð 
ð 
r   r†  c                  óz   — 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	dS )ÚBackendIndexrD   r™  rà   Úuse_out_as_primaryr6  Úexternalz#dict[OperatorName, BackendMetadata]ÚindexÚparent_indexú6dict[DispatchKey, dict[OperatorName, BackendMetadata]]Úchild_indexr   r£  c                óÂ   — |                      ¦   «         D ]I\  }}|                      ¦   «         D ]/\  }}|| |         v rt          d|› d|› �¦  «        ‚|| |         |<   Œ0ŒJd S )Nzduplicate operator z for dispatch key )rO   rP   )r  r  rR   rS   Úop_nameÚmetadatas         r   Ú
grow_indexzBackendIndex.grow_index~  s•   € ð
  ×%Ò%Ñ'Ô'ð 	4ð 	4‰DˆAˆqØ%&§W¢W¡Y¤Yð 4ð 4Ñ!�˜Ø˜l¨1œoÐ-Ð-Ý(ØL¨gÐLÐLÈÐLÐLñô ð ð ,4�˜Q” Ñ(Ð(ð4ð	4ð 	4r   Úgrã  r1  c                ó,   — | j         r|j        S |j        S rF   )r  rv  rß  )r   r  s     r   ÚprimaryzBackendIndex.primary‹  s   € ØÔ"ð 	 Ø”5ˆLà”<Ðr   ú%NativeFunction | NativeFunctionsGroupc                ó4   — |                       |¦  «        }|d uS rF   )Ú
get_kernel)r   r  Úms      r   Ú
has_kernelzBackendIndex.has_kernel‘  s   € Ø�OŠO˜AÑÔˆØ˜ˆ}Ðr   úBackendMetadata | Nonec                óþ   — t          |t          ¦  «        r|}n:t          |t          ¦  «        r|                      |¦  «        }nt	          |¦  «         |j        j        | j        vrd S | j        |j        j                 S rF   )ro  r1  rã  r  r   r4  rH   r  )r   r  rì  s      r   r!  zBackendIndex.get_kernel•  ss   € õ �a�Ñ(Ô(ð 	ØˆAˆAÝ˜Õ/Ñ0Ô0ð 	Ø—’˜Q‘”ˆAˆAå˜‰OŒOˆOØŒ6Œ;˜dœjÐ(Ð(Ø�4ØŒz˜!œ&œ+Ô&Ð&r   r8  c                óB   — | j         rt          | j        ¦  «        › d�S d S )NÚNativeFunctions)r  r   r™  r   s    r   Únative_function_class_namez'BackendIndex.native_function_class_name¢  s-   € ØŒ=ð 	Ý˜$Ô+Ñ,Ô,Ð=Ð=Ð=Ð=ð
 �4r   N)r  r  r  r  r   r£  )r  rã  r   r1  )r  r  r   rà   )r  r  r   r$  )r   r8  )
r   r   r    r!   rÍ   r  r  r#  r!  r(  r"   r   r   r  r  o  sÁ   € € € € € € àÐÐÑð ÐÐÑð ÐÐÑà€N€N�Nà.Ð.Ð.Ñ.àð
4ð 
4ð 
4ñ „\ð
4ð ð  ð  ð  ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð 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d$S )/r3  rh  rH   Ú	Argumentsru  útuple[Return, ...]rÍ  r   rà   c                óV   ‡— dd„Št          ˆfd„| j        j        D ¦   «         ¦  «        S )Nr°  ÚArgumentr   rà   c                ó,   — | j         €dS | j         j        S ©NFrÂ  )r°  s    r   rÄ  z+FunctionSchema.is_mutable.<locals>.is_writeí  s   € ØŒ~Ð%Ø�uØ”>Ô*Ð*r   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rF   r"   )r>   r©  rÄ  s     €r   r×   z,FunctionSchema.is_mutable.<locals>.<genexpr>ô  s+   øè è € Ð@Ð@ 1�8�8˜A‘;”;Ð@Ð@Ð@Ð@Ð@Ð@r   )r°  r-  r   rà   )r¸  ru  r¹  )r   rÄ  s    @r   Ú
is_mutablezFunctionSchema.is_mutableë  sA   ø€ ð	+ð 	+ð 	+ð 	+õ Ð@Ð@Ð@Ð@¨¬Ô(?Ð@Ñ@Ô@Ñ@Ô@Ð@r   úIterator[Argument]c                ój   — t          j        | j        j        | j        j        | j        j        ¦  «        S rF   )Ú	itertoolsÚchainru  Úflat_positionalÚflat_kwarg_onlyrv  r   s    r   r¶  z%FunctionSchema.schema_order_argumentsö  s.   € ÝŒØŒNÔ*ØŒNÔ*ØŒNÔñ
ô 
ð 	
r   z3(?P<name>[^\(]+)\((?P<args>.*)\) -> (?P<returns>.*)r4  r   c                ó¸  — t           j                             | ¦  «        }t          |¦  «        dk    rt	          d| › �¦  «        ‚|d         \  }}}t
                               |¦  «        }t                               |¦  «        }t          |¦  «        }t          |||¬¦  «        }t          |¦  «        | k    r!t	          t          |¦  «        › d| › �¦  «        ‚|S )Nr(  zInvalid function schema: r   ©rH   ru  rÍ  rç  )
r3  Údecl_reÚfindallry  rP   rh  rT   r*  Úparse_returnsr   )	r4  ÚdeclsÚopsÚargsÚreturn_declrH   ru  rÍ  rÝ   s	            r   rT   zFunctionSchema.parseÿ  sË   € õ Ô&×.Ò.¨tÑ4Ô4ˆÝˆu‰:Œ:˜Š?ˆ?Ý Ð!C¸TÐ!CÐ!CÑDÔDÐDØ!& q¤ÑˆˆT�;Ý×!Ò! #Ñ&Ô&ˆÝ—O’O DÑ)Ô)ˆ	Ý Ñ,Ô,ˆÝ °	À7ÐKÑKÔKˆÝˆq‰6Œ6�TŠ>ˆ>Ý ¥C¨¡F¤FÐ!6Ð!6°Ð!6Ð!6Ñ7Ô7Ð7Øˆr   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  ó@   K  — | ]}|j         ®	|j         j        ¯|V — Œd S rF   rÂ  rÅ  s     r   r×   z5FunctionSchema.returns_are_aliased.<locals>.<genexpr>  s@   è è € ð 
ð 
àØŒ|Ð'¨A¬LÔ,AÐ'ð à'Ð'Ð'Ð'ð
ð 
r   )r¸  rÍ  r   s    r   Úreturns_are_aliasedz"FunctionSchema.returns_are_aliased  s2   € åð 
ð 
à”\ð
ñ 
ô 
ñ 
ô 
ð 	
r   r£  c                óŽ  ‡‡— t          | j        j        | j        ¦  «        D ]4\  }Š|j        ‰j        k    rt          d|j        › d‰j        › �¦  «        ‚Œ5| j        j        D ]AŠt          ˆfd„| j        D ¦   «         ¦  «        rt          dt          | ¦  «        › �¦  «        ‚ŒBt          | j        j        ¦  «        d„ | j        j
        D ¦   «         z   }d„ | j        D ¦   «         }d„ | j        D ¦   «         }t          |¦  «        dk    s2t          |¦  «        dk    st          d	t          | ¦  «        › �¦  «        ‚|D ],Št          ˆfd
„|D ¦   «         ¦  «        st          d¦  «        ‚Œ-| j        j        r®t          d„ | j        j        D ¦   «         ¦  «        r(t          | j        ¦  «        dk    rt          d¦  «        ‚nct          d„ | j        j        D ¦   «         ¦  «        }|t          | j        ¦  «        k    r(t          d|› dt          | j        ¦  «        › d�¦  «        ‚| j        j        j        rë| j        j        }|r|j        j        r|j        j        j        st          d| j        › d�¦  «        ‚|j        j        t%          t&          j        ¦  «        k    rQt          | j        ¦  «        dk    r | j        d         j        |j        j        k    st          d| j        › d�¦  «        ‚n0t          | j        ¦  «        dk    rt          d| j        › d�¦  «        ‚| j        j        �A|                      ¦   «         t.          j        k    rt          dt          | ¦  «        › �¦  «        ‚|                      ¦   «         rA|                      ¦   «         t.          j        k    r!t          dt          | ¦  «        › �¦  «        ‚d S d S )Nz„Out arguments must have matching return Tensor; furthermore, the ith-argument needs to correspond to the ith return. arg.annotation=z, ret.annotation=c              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S rF   ©rÃ  ©r>   rÝ   r©  s     €r   r×   z/FunctionSchema.__post_init__.<locals>.<genexpr>!  s,   øè è € ÐFÐF°A�1”< 1¤<Ò/ÐFÐFÐFÐFÐFÐFr   z^If you have a schema with mutable positional args, we expect them to not be returned. schema: c                ó(   — g | ]}|j         d k    ¯|‘ŒS r   rG   r¯  s     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>)  s+   € ð 3
ð 3
ð 3
Ø¸S¼XÈÒ=OÐ=OˆCÐ=OÐ=OÐ=Or   c                ó8   — g | ]}|j         ®	|j         j        ¯|‘ŒS rF   rÂ  ©r>   Úrets     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>,  s4   € ð 
ð 
ð 
àØŒ~Ð)¨c¬nÔ.EÐ)ð à)Ð)Ð)r   c                ó8   — g | ]}|j         �|j         j        °|‘ŒS rF   rÂ  rJ  s     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>1  s4   € ð 
ð 
ð 
àØŒ~Ð%¨S¬^Ô-DÐ%ð à%Ð%Ð%r   r   zYNativeFunctions must have either only mutable returns, or only immutable returns. Found: c              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S rF   rF  )r>   r°  rK  s     €r   r×   z/FunctionSchema.__post_init__.<locals>.<genexpr>@  s,   øè è € ÐPÐP¸C�s”~¨¬Ò7ÐPÐPÐPÐPÐPÐPr   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  óZ   K  — | ]&}|j         t          t          j        ¦  «        k    V — Œ'd S rF   )ÚtypeÚBaseTypeÚBaseTyÚTensorr¨  s     r   r×   z/FunctionSchema.__post_init__.<locals>.<genexpr>K  s3   è è € ÐQÐQ¸�1”6�X¥f¤mÑ4Ô4Ò4ÐQÐQÐQÐQÐQÐQr   zƒout= ops that accept tensor lists as out arguments are expected to have no return type (since you can't do method chaining on them)c                óF   — g | ]}|j                              d ¦  «        °|‘ŒS ©Ú	_scratch_©rH   r�  r¯  s     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>U  s>   € ð ð ð àØ"œx×2Ò2°;Ñ?Ô?ðØðð ð r   zSMust return as many arguments as there are out arguments, or no return at all. Got z non-scratch out args and z returnszInplace op z4 must have a self argument with a mutable annotationr(  z" with Tensor self must return selfz* with non-Tensor self must have no returnsz·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: )Úzipru  rv  rÍ  rÃ  rP   Úpost_self_positional_mutabler¸  r   rs  r6  ry  rH   rÔ  Úself_argÚargumentrÄ  rO  rP  rQ  rR  rƒ  r´  rµ  rß  Úis_functional_fn)	r   r°  Úout_and_selfÚmutable_returnsÚimmutable_returnsÚnon_scratch_out_argsÚself_ar©  rK  s	          @@r   r½  zFunctionSchema.__post_init__  sÄ  øø€ Ý˜DœNÔ.°´Ñ=Ô=ð 	ð 	‰HˆC�ØŒ~ ¤Ò/Ð/Ý$ðXà&)¤nðXð XàGJÄ~ðXð Xñô ð ð 0ð ”Ô<ð 	ð 	ˆAÝÐFÐFÐFÐF¸¼ÐFÑFÔFÑFÔFð Ý$ð AÕuxÐy}Ñu~Ôu~ð  Að  Añô ð ðõ ˜DœNÔ.Ñ/Ô/ð 3
ð 3
Øœ>Ô9ð3
ñ 3
ô 3
ñ 
ˆð
ð 
à”|ð
ñ 
ô 
ˆð

ð 
à”|ð
ñ 
ô 
Ðõ �OÑ$Ô$¨Ò)Ð)­SÐ1BÑ-CÔ-CÀqÒ-HÐ-HÝ ØwÕloÐptÑluÔluÐwÐwñô ð ð #ð 	ð 	ˆCÝÐPÐPÐPÐPÀ<ÐPÑPÔPÑPÔPð Ý$ðNñô ð ðð
 Œ>Ôð 	õ ÐQÐQ¸d¼nÔ>PÐQÑQÔQÑQÔQð Ý�t”|Ñ$Ô$¨Ò)Ð)Ý(ðkñô ð ð *õ (+ðð à#'¤>Ô#5ðñ ô ñ(ô (Ð$ð (­3¨t¬|Ñ+<Ô+<Ò<Ð<Ý(ðkØ3ðkð kÝORÐSWÔS_ÑO`ÔO`ðkð kð kñô ð ð
 Œ9Œ>Ô!ð 	Ø”^Ô,ˆFàðà”OÔ.ðð ”OÔ.Ô7ðõ
 %Øa $¤)ÐaÐaÐañô ð ð ŒÔ#¥xµ´Ñ'>Ô'>Ò>Ð>õ ˜œÑ%Ô%¨Ò*Ð*Øœ QœÔ2°f´oÔ6PÒPÐPå(ØS d¤iÐSÐSÐSñô ð ð Qõ �t”|Ñ$Ô$¨Ò)Ð)Ý(Ø[ d¤iÐ[Ð[Ð[ñô ð ð Œ>Ô(Ð4Ø�yŠy‰{Œ{�jÔ3Ò3Ð3Ý$ð+å" 4™yœyð+ð +ñô ð ð
 × Ò Ñ"Ô"ð 	Ø�yŠy‰{Œ{�jÔ3Ò3Ð3Ý$ð+å" 4™yœyð+ð +ñô ð ð	ð 	Ø3Ð3r   c                ó   — d| j         j        v S )Nrß  ©rH   Úoverload_namer   s    r   r[  zFunctionSchema.is_functional_fnŒ  s   € Ø˜tœyÔ6Ð6Ð6r   c                ó4   — t          | j        j        ¦  «        S rF   )rà   ru  rv  r   s    r   Ú	is_out_fnzFunctionSchema.is_out_fn�  s   € õ6 �D”NÔ&Ñ'Ô'Ð'r   rµ  c                óÔ  — t          | j        j        ¦  «        }t          d„ | j        j        D ¦   «         ¦  «        }| j        j        j        }t          d„ | j        j        D ¦   «         ¦  «        }|r|rt          d¦  «        ‚|rt          j        S |r|st          d¦  «        ‚t          j	        S |r|rt          d¦  «        ‚t          j        S |rt          j
        S t          j        S )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.
        c                óF   — g | ]}|j                              d ¦  «        ¯|‘ŒS rT  rV  r¯  s     r   r@   z'FunctionSchema.kind.<locals>.<listcomp>µ  s-   € ÐSÐSÐS�S°#´(×2EÒ2EÀkÑ2RÔ2RÐSˆSÐSÐSÐSr   c              3  ó@   K  — | ]}|j         d uo|j         j        V — Œd S rF   rÂ  r¨  s     r   r×   z&FunctionSchema.kind.<locals>.<genexpr>¸  sG   è è € ð 
ð 
àð ŒL Ð$Ð>¨¬Ô)>ð
ð 
ð 
ð 
ð 
ð 
r   z(A schema cannot be both out= and inplacezFinvariant: 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à   ru  rv  rH   rÔ  r¸  Úpost_self_positionalrP   rµ  rá  rà  rß  )r   Úis_outÚ
is_scratchÚ
is_inplacer1  s        r   r´  zFunctionSchema.kind¬  s*  € õ �d”nÔ(Ñ)Ô)ˆÝØSÐS˜DœNÔ.ÐSÑSÔSñ
ô 
ˆ
ð ”Y”^Ô+ˆ
Ýð 
ð 
à”^Ô8ð
ñ 
ô 
ñ 
ô 
ˆ
ð ð 	M�jð 	MÝ Ð!KÑLÔLÐLð ð 	)ÝÔ%Ð%Øð 	)Øð Ý$Ø\ñô ð õ Ô%Ð%Øð 		)Øð Ý$ð Añô ð õ ”>Ð!Øð 	)ÝÔ%Ð%åÔ(Ð(r   úlist[str | None]c                ó|  ‡— g }| j         D ]°Šˆfd„| j        j        D ¦   «         }t          |¦  «        dk    r|                     d ¦  «         ŒCt          |¦  «        dk    r!|                     |d         j        ¦  «         Œwd                     d„ |D ¦   «         ¦  «        }t          d‰j        › d|› d�¦  «        ‚|S )	Nc                óB   •— g | ]}|j         ®	|j         ‰j         k    ¯|‘ŒS rF   rF  )r>   r©  rÝ   s     €r   r@   z7FunctionSchema.aliased_return_names.<locals>.<listcomp>ß  s9   ø€ ð ð ð àØ”<Ð+°´ÀÄÒ0LÐ0Lð à0LÐ0LÐ0Lr   r   r(  rü   c              3  ó$   K  — | ]}|j         V — Œd S rF   rG   r¨  s     r   r×   z6FunctionSchema.aliased_return_names.<locals>.<genexpr>é  s$   è è € Ð)GÐ)G°Q¨!¬&Ð)GÐ)GÐ)GÐ)GÐ)GÐ)Gr   zFound a return (z)that aliases multiple inputs (ré  )rÍ  ru  r¹  ry  rx  rH   rÜ   rP   )r   ÚoutsÚaliased_argsÚaliased_namesrÝ   s       @r   Úaliased_return_namesz#FunctionSchema.aliased_return_namesÜ  sð   ø€ Ø!#ˆØ”ð 	ð 	ˆAðð ð ð àœÔ0ðñ ô ˆLõ
 �<Ñ Ô  AÒ%Ð%Ø—’˜DÑ!Ô!Ð!Ð!Ý�\Ñ"Ô" aÒ'Ð'Ø—’˜L¨œOÔ0Ñ1Ô1Ð1Ð1à $§	¢	Ð)GÐ)G¸,Ð)GÑ)GÔ)GÑ GÔ G�Ý$Ø^ q¤vÐ^Ð^ÈmÐ^Ð^Ð^ñô ð ð ˆr   F)Ústrip_defaultÚstrip_view_copy_nameÚkeep_return_namesru  rv  rw  c          	     óT  ‡ ‡— dˆfd„}‰ j         j         j        }|rW|                     d¦  «        r|                     dd¦  «        }n+|                     d¦  «        r|                     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                             |¬¦  «        }	t          ‰ j         ¦  «        dk    r;t                                t          |	¦  «                             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
        rÝ   ÚReturnr   c                óD   •— t          ‰r| j        nd | j        d ¬¦  «        S )N©rH   rO  rÃ  )ry  rH   rO  )rÝ   rw  s    €r   Ústrip_ret_annotationz6FunctionSchema.signature.<locals>.strip_ret_annotation  s0   ø€ ÝØ0Ð:�Q”V�V°dØ”VØðñ ô ð r   Ú_copyr6   Ú_scatterÚscatterÚinversec              3  óÆ   •‡K  — | ]ZŠ‰j         ®	‰j         j        ¯t          ˆfd„‰j        D ¦   «         ¦  «        °5t	          ‰r
‰j        › d�nd ‰j        d ¬¦  «        V — Œ[d S )Nc              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S rF   rF  rG  s     €r   r×   z5FunctionSchema.signature.<locals>.<genexpr>.<genexpr>@  s,   øè è € ÐKÐK¸˜œ¨¬Ò4ÐKÐKÐKÐKÐKÐKr   Ú_outr{  )rÃ  rÄ  r¸  rÍ  ry  rH   rO  )r>   r©  rw  r   s    @€€r   r×   z+FunctionSchema.signature.<locals>.<genexpr>*  s�   øøè è € ð ,
ð ,
ð ð Œ|Ð'Ø”Ô%ð (åÐKÐKÐKÐK¸d¼lÐKÑKÔKÑKÔKð (õ! Ø(9ÐC˜œ�_�_�_�_¸tØ”VØðñ ô ð  (Ð'Ð'Ð'ð),
ð ,
r   N©ru  zbernoulli.pzfloat pzfloat p=0.5F©r×  rÔ  Údunder_methodrb  r9  )rÝ   ry  r   ry  )rH   r×  r‚  ÚreplaceÚtupler4  r5  ru  rY  rZ  rv  ri  ÚmaprÍ  ró  r   r*  rT   r3  rh  ÚBaseOperatorNamer†  )
r   ru  rv  rw  r|  Ú	base_nameÚreturns_from_mutable_inputsÚoriginal_returnsrÍ  Úargs_sigs
   `  `      r   ró  zFunctionSchema.signatureï  sä  øø€ ðX	ð 	ð 	ð 	ð 	ð 	ð ”I”NÔ'ˆ	Øð 	DØ×!Ò! 'Ñ*Ô*ð DØ%×-Ò-¨g°rÑ:Ô:�	�	Ø×#Ò# JÑ/Ô/ð DØ%×-Ò-¨i¸ÑCÔC�	õ ',ð ,
ð ,
ð ,
ð ,
ð ,
õ ”_ð
 ”~Ô.Ð:ð ”^Ô,Ô5Ð6Ð6àà”Ô"Ø”Ô3ñ
ô 
ð,
ñ ,
ô ,
ñ '
ô '
Ð#õ0 !¥Ð%9¸4¼<Ñ!HÔ!HÑIÔIÐà"Ð%@Ñ@ˆà”>×+Ò+¸-Ð+ÑHÔHˆåˆtŒy‰>Œ>˜]Ò*Ð*Ý —’¥s¨8¡}¤}×'<Ò'<¸YÈÑ'VÔ'VÑWÔWˆHåÝÝ%Ø"Ø!Ø"&¤)¤.Ô">ðñ ô ð
 !ðñ ô ð Øð
ñ 
ô 
ð 	
r   c                ó.   — |                       d¬¦  «        S )NT©rv  )ró  r   s    r   Úview_signaturezFunctionSchema.view_signatureX  s   € Ø�~Š~°4ˆ~Ñ8Ô8Ð8r   c                ó:   — t          || j        | j        ¬¦  «        S )Nr9  )r3  ru  rÍ  )r   rH   s     r   Ú	with_namezFunctionSchema.with_name[  s&   € ÝØØ”nØ”Lð
ñ 
ô 
ð 	
r   c                óp   — |                       ¦   «         t          j        t          j        t          j        fv S rF   )r´  rµ  rÔ  rv  rà  r   s    r   Úmodifies_argumentsz!FunctionSchema.modifies_argumentsb  s$   € à�yŠy‰{Œ{�zÔ1µ:´>Å:ÔCUÐVÐVÐVr   c                ó4   — | j                              ¦   «         S rF   )ru  Úhas_symint_argr   s    r   Ú
has_symintzFunctionSchema.has_symintf  s   € ØŒ~×,Ò,Ñ.Ô.Ð.r   c                ó  — t          | j        ¦  «        }t          | j        ¦  «        dk    rt          | j        d         ¦  «        }n3dd                     t          t           | j        ¦  «        ¦  «        z   dz   }| j        › d|› d|› �S )Nr(  r   r  rü   ré  z) -> )r   ru  ry  rÍ  rÜ   r‰  rH   )r   Úall_arguments_strrÍ  s      r   r   zFunctionSchema.__str__i  s‚   € Ý ¤Ñ/Ô/ÐÝˆtŒ|ÑÔ Ò!Ð!Ý˜$œ, qœ/Ñ*Ô*ˆGˆGà˜DŸIšI¥c­#¨t¬|Ñ&<Ô&<Ñ=Ô=Ñ=ÀÑCˆGØ”)Ð?Ð?Ð/Ð?Ð?°gÐ?Ð?Ð?r   NrÜ  )r   r2  )r4  r   r   r3  rÛ  )r   rµ  )r   rm  )ru  rà   rv  rà   rw  rà   r   r3  r  )rH   rh  r   r3  r   )r   r   r    r!   rÝ  r1  r¶  ÚreÚcompiler:  rÍ   rT   rC  r½  r[  re  r´  rt  ró  r‘  r“  r•  r˜  r   r"   r   r   r3  r3  á  sÎ  € € € € € € ð ÐÐÑàÐÐÑð  ÐÐÑàðAð Að Añ „XðAð
ð 
ð 
ð 
ð ˆbŒjÐOÑPÔP€Gàðð ð ñ „\ðð
ð 
ð 
ð 
ðtð tð tð tðl7ð 7ð 7ð 7ð(ð (ð (ð (ð:*)ð *)ð *)ð *)ð`ð ð ð ð, $Ø%*Ø"'ðg
ð g
ð g
ð g
ð g
ð g
ðR9ð 9ð 9ð 9ð
ð 
ð 
ð 
ð ðWð Wð Wñ „XðWð/ð /ð /ð /ð@ð @ð @ð @ð @ð @r   r3  c                  óN   — e Zd ZU ded<   ded<   ded<   edd	„¦   «         Zdd
„ZdS )Ú
Annotationztuple[str, ...]Ú	alias_setrà   rÄ  rË  Úannr   r   c                ó  — t          j        d| ¦  «        }|€t          d| › �¦  «        ‚|                     d¦  «        |                     d¦  «        r|                     d¦  «        ndz   }t	          |                     d¦  «        ¦  «        }|                     d¦  «        dk    }|r&t          |¦  «        dk    rt          d	| › d
�¦  «        ‚|                     d¦  «        r5t	          |                     d¦  «                             d¦  «        ¦  «        nd}t          |¦  «        dk    r&t          |¦  «        dk    rt          d| › d
�¦  «        ‚t          |||¬¦  «        }t          |¦  «        | k    rt          |› d| › �¦  «        ‚|S )Nz2^([a-z])(\|[a-z])*(!?)( -> (\*|[a-z](\|[a-z])*))?$zunrecognized alias annotation r(  rf  r6   ú|r^  ú!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›  ÚmatchrP   Úgrouprˆ  rý   ry  rž  r   )r   r"  Úbefore_aliasrŸ  rÄ  Ú	after_setrÝ   s          r   rT   zAnnotation.parse‚  s”  € õ  ŒHÐJÈCÑPÔPˆàˆ9Ý Ð!GÀ#Ð!GÐ!GÑHÔHÐHØ—w’w˜q‘z”z°1·7²7¸1±:´:Ð%E Q§W¢W¨Q¡Z¤Z ZÀ2ÑFˆÝ˜,×,Ò,¨SÑ1Ô1Ñ2Ô2ˆ	Ø—7’7˜1‘:”: Ò$ˆØð 	�˜I™œ¨Ò*Ð*Ý ØM¸sÐMÐMÐMñô ð ð 56·G²G¸A±J´JÐF•E˜!Ÿ'š' !™*œ*×*Ò*¨3Ñ/Ô/Ñ0Ô0Ð0ÀBˆ	Ýˆ|ÑÔ˜qÒ Ð ¥S¨¡^¤^°aÒ%7Ð%7Ý ØtÐfiÐtÐtÐtñô ð õ Ø¨(ÀIð
ñ 
ô 
ˆõ ˆq‰6Œ6�SŠ=ˆ=Ý  A  ¨3  Ñ1Ô1Ð1Øˆr   c                ó˜   — d                      | j        ¦  «        }| j        r|› d�}d                      | j        ¦  «        }|r|› d|› �}|S )Nr¢  r£  ú -> )rÜ   rŸ  rÄ  rË  )r   rŸ  rË  s      r   r   zAnnotation.__str__©  s_   € Ø—H’H˜Tœ^Ñ,Ô,ˆ	ØŒ=ð 	(Ø$˜˜˜ˆIØŸ(š( 4Ô#7Ñ8Ô8ˆØð 	<Ø$Ð;Ð;¨/Ð;Ð;ˆIØÐr   N)r   r   r   rž  r   )r   r   r    r!   rÍ   rT   r   r"   r   r   rž  rž  z  sl   € € € € € € ð ÐÐÑØ€N€N�NØ$Ð$Ð$Ñ$àð$ð $ð $ñ „\ð$ðLð ð ð ð ð r   rž  c                  óv   — 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dS )ÚTyper”  r   r   c                óˆ   — t                                | ¦  «        }t          |¦  «        | k    rt          |› d| › �¦  «        ‚|S )Nrç  )r¬  Ú_parser   rP   )r”  rÝ   s     r   rT   z
Type.parse»  s=   € å�KŠK˜‰NŒNˆÝˆq‰6Œ6�QŠ;ˆ;Ý  A  ¨1  Ñ/Ô/Ð/Øˆr   c                ó®  — t          j        d| ¦  «        }|�:t          t                               |                     d¦  «        ¦  «        ¦  «        S t          j        d| ¦  «        }|�u|                     d¦  «        �"t          |                     d¦  «        ¦  «        nd }t          t                               |                     d¦  «        ¦  «        |¬¦  «        S t          j        d| ¦  «        }|�"t          |                     d¦  «        ¦  «        S 	 t          t          |          ¦  «        S # t          $ r}t          d| › �¦  «        |‚d }~ww xY w)Nz^(.+)\?$r(  z^(.+)\[([0-9]+)?\]$rf  )ÚelemÚsizez-^__torch__\.torch\.classes\.([a-zA-Z0-9_.]+)$zunrecognized type )r›  r¥  ÚOptionalTyper¬  rT   r¦  r   ÚListTypeÚCustomClassTyperP  rQ  ÚKeyErrorr÷  )r”  r"  r±  r‹  s       r   r®  zType._parseÂ  s)  € åŒH�[ !Ñ$Ô$ˆØˆ=Ý¥§
¢
¨1¯7ª7°1©:¬:Ñ 6Ô 6Ñ7Ô7Ð7ÝŒHÐ+¨QÑ/Ô/ˆØˆ=Ø&'§g¢g¨a¡j¤jÐ&<•3�q—w’w˜q‘z”z‘?”?�?À$ˆDÝ¥§¢¨A¯GªG°A©J¬JÑ!7Ô!7¸dÐCÑCÔCÐCõ ŒHÐEÀqÑIÔIˆØˆ=Ý" 1§7¢7¨1¡:¤:Ñ.Ô.Ð.ð	@Ý�F 1œIÑ&Ô&Ð&øÝð 	@ð 	@ð 	@ÝÐ7°AÐ7Ð7Ñ8Ô8¸aÐ?øøøøð	@øøøs   ÄD2 Ä2
EÄ<EÅEc                ó   — t           ‚rF   ©ÚNotImplementedErrorr   s    r   r   zType.__str__Õ  ó   € Ý!Ð!r   Úbase_tyrQ  rà   c                ó   — t           ‚rF   r·  ©r   rº  s     r   Úis_base_ty_likezType.is_base_ty_likeÝ  r¹  r   c                ó@   — |                       t          j        ¦  «        S rF   )r½  rQ  rR  r   s    r   Úis_tensor_likezType.is_tensor_likeà  ó   € Ø×#Ò#¥F¤MÑ2Ô2Ð2r   c                ó@   — |                       t          j        ¦  «        S rF   )r½  rQ  Ú	Generatorr   s    r   Úis_generator_likezType.is_generator_likeã  s   € Ø×#Ò#¥FÔ$4Ñ5Ô5Ð5r   c                ó@   — |                       t          j        ¦  «        S rF   )r½  rQ  ÚSymIntr   s    r   Úis_symint_likezType.is_symint_likeæ  rÀ  r   c                ó   — t           ‚rF   r·  r   s    r   Úis_nullablezType.is_nullableé  r¹  r   úListType | Nonec                ó   — t           ‚rF   r·  r   s    r   Úis_list_likezType.is_list_likeì  r¹  r   N)r”  r   r   r¬  r   ©rº  rQ  r   rà   rÜ  ©r   rÉ  )r   r   r    rÍ   rT   r®  r   r½  r¿  rÃ  rÆ  rÈ  rË  r"   r   r   r¬  r¬  ¹  sâ   € € € € € àðð ð ñ „\ðð ð@ð @ð @ñ „\ð@ð$"ð "ð "ð "ð"ð "ð "ð "ð3ð 3ð 3ð 3ð6ð 6ð 6ð 6ð3ð 3ð 3ð 3ð"ð "ð "ð "ð"ð "ð "ð "ð "ð "r   r¬  c                  óž  — 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dS )rQ  N)r   r   r    r   rÂ  rò   rR  r   ÚDimnameÚ	DimVectorÚfloatr   rà   ÚLayoutÚDeviceÚDeviceIndexÚScalarÚMemoryFormatÚQSchemeÚStorageÚStreamrÅ  ÚSymBoolÚGraphModuler"   r   r   rQ  rQ  ñ  sê   € € € € € Ø�‘”€IØ�‘”€JØˆT‰VŒV€FØ
ˆ$‰&Œ&€CØˆd‰fŒf€GØ�‘”€IØˆD‰FŒF€EØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØˆT‰VŒV€FØˆT‰VŒV€FØ�$‘&”&€KØˆT‰VŒV€FØ�4‘6”6€LØˆd‰fŒf€GØˆd‰fŒf€GØˆT‰VŒV€FØˆT‰VŒV€FØˆd‰fŒf€GØ�$‘&”&€K€K€Kr   rQ  c                  óB   — e Zd ZU ded<   dd„Zdd„Zdd	„Zdd„Zdd„ZdS )rP  rQ  rH   r   r   c                ó   — | j         j         › S rF   rG   r   s    r   r   zBaseType.__str__  s   € Ø”)”.Ð"Ð"r   rº  rà   c                ó   — | j         |k    S rF   rG   r¼  s     r   r½  zBaseType.is_base_ty_like  s   € ØŒy˜GÒ#Ð#r   c                ó   — dS r/  r"   r   s    r   rÈ  zBaseType.is_nullable  ó   € Øˆur   rÉ  c                ó   — d S rF   r"   r   s    r   rË  zBaseType.is_list_like  ó   € Øˆtr   c                ó,   — | j         t          j        k    S rF   )rH   rQ  rÅ  r   s    r   rÆ  zBaseType.is_symint_like  s   € ØŒy�FœMÒ)Ð)r   Nr   rÌ  rÜ  rÍ  )	r   r   r    r!   r   r½  rÈ  rË  rÆ  r"   r   r   rP  rP    sƒ   € € € € € € à€L€L�Lð#ð #ð #ð #ð$ð $ð $ð $ðð ð ð ðð ð ð ð*ð *ð *ð *ð *ð *r   rP  c                  óB   — e Zd ZU ded<   dd„Zdd	„Zdd
„Zdd„Zdd„ZdS )r²  r¬  r°  r   r   c                ó   — | j         › d�S )Nú?)r°  r   s    r   r   zOptionalType.__str__!  s   € Ø”)ˆˆˆÐr   rº  rQ  rà   c                ó6   — | j                              |¦  «        S rF   ©r°  r½  r¼  s     r   r½  zOptionalType.is_base_ty_like$  ó   € ØŒy×(Ò(¨Ñ1Ô1Ð1r   c                ó4   — | j                              ¦   «         S rF   ©r°  rÆ  r   s    r   rÆ  zOptionalType.is_symint_like'  ó   € ØŒy×'Ò'Ñ)Ô)Ð)r   c                ó   — dS )NTr"   r   s    r   rÈ  zOptionalType.is_nullable*  râ  r   rÉ  c                ó4   — | j                              ¦   «         S rF   )r°  rË  r   s    r   rË  zOptionalType.is_list_like-  s   € ØŒy×%Ò%Ñ'Ô'Ð'r   Nr   rÌ  rÜ  rÍ  ©	r   r   r    r!   r   r½  rÆ  rÈ  rË  r"   r   r   r²  r²    sƒ   € € € € € € à€J€J�Jðð ð ð ð2ð 2ð 2ð 2ð*ð *ð *ð *ðð ð ð ð(ð (ð (ð (ð (ð (r   r²  c                  óB   — e Zd ZU ded<   dd„Zdd„Zdd	„Zdd
„Zdd„ZdS )r´  r   Ú
class_namer   c                ó   — 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__6  s   € ð <¨$¬/Ð;Ð;Ð;r   rº  rQ  rà   c                ó   — dS r/  r"   r¼  s     r   r½  zCustomClassType.is_base_ty_like<  rà  r   c                ó   — dS r/  r"   r   s    r   rÆ  zCustomClassType.is_symint_like?  rà  r   c                ó   — dS )z8
        Assume a custom class is not nullable.
        Fr"   r   s    r   rÈ  zCustomClassType.is_nullableB  s	   € ð ˆur   rÉ  c                ó   — d S rF   r"   r   s    r   rË  zCustomClassType.is_list_likeH  râ  r   Nr   rÌ  rÜ  rÍ  rï  r"   r   r   r´  r´  2  sƒ   € € € € € € à€O€O�Oð<ð <ð <ð <ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r   r´  c                  óL   — 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dS )r³  r¬  r°  z
int | Noner±  r   r   c                ó>   — | j         r| j         › nd}| j        › d|› d�S )Nr6   ú[ú])r±  r°  )r   r±  s     r   r   zListType.__str__X  s/   € Ø!%¤Ð2�$”)ˆ~ˆ~°ˆØ”)Ð%Ð%˜dÐ%Ð%Ð%Ð%r   rº  rQ  rà   c                ó6   — | j                              |¦  «        S rF   rè  r¼  s     r   r½  zListType.is_base_ty_like\  ré  r   c                ó4   — | j                              ¦   «         S rF   rë  r   s    r   rÆ  zListType.is_symint_like_  rì  r   c                ó4   — | j                              ¦   «         S rF   )r°  rÈ  r   s    r   rÈ  zListType.is_nullableb  s   € ØŒy×$Ò$Ñ&Ô&Ð&r   rÉ  c                ó   — | S rF   r"   r   s    r   rË  zListType.is_list_likee  s   € Øˆr   Nr   rÌ  rÜ  rÍ  rï  r"   r   r   r³  r³  S  s�   € € € € € € à€J€J�JØÐÐÑð&ð &ð &ð &ð2ð 2ð 2ð 2ð*ð *ð *ð *ð'ð 'ð 'ð 'ðð ð ð ð ð r   r³  c                  óˆ   — 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	dS )r-  r   rH   r¬  rO  r8  rW  úAnnotation | NonerÃ  r   c                ó   — | j         S rF   rF  r   s    r   Ú
alias_infozArgument.alias_info‡  ó
   € àŒÐr   r°  c                ó<  — d| vrt          d| › d�¦  «        ‚d| v re|                      d¦  «        dk    rt          d| › d�¦  «        ‚|                      d¦  «        \  }}|                     dd¦  «        \  }}|› d|› �}n|                      dd¦  «        \  }}|}d }t	          j        d|¦  «        }|r‚|                     d¦  «        d	vr%t          d
|                     d¦  «        › �¦  «        ‚d|                     d¦  «        z   }t                               |                     d¦  «        ¦  «        }n|}d }t                               |¦  «        }	t          ||	||¬¦  «        }
t          |
¦  «        | k    r!t          t          |
¦  «        › d| › �¦  «        ‚|
S )Nr  zillegal argument 'rò  ú=r(  z&illegal argument with default value: 'úTensor\((.+)\)(.*)rf  ©r6   ræ  z[]ú.unrecognized alias analysis form with Tensor: rR  ©rH   rO  rW  rÃ  rç  )rP   Úcountrý   Úrsplitr›  r¥  r¦  rž  rT   r¬  r-  r   )r°  Útype_and_annot_and_namerW  Útype_and_annotrH   Úname_and_defaultr¥  Útype_srÃ  rO  rÝ   s              r   rT   zArgument.parse‹  sÇ  € ð �cˆ>ˆ>Ý Ð!<°cÐ!<Ð!<Ð!<Ñ=Ô=Ð=Ø�#ˆ:ˆ:Ø�yŠy˜‰~Œ~ Ò"Ð"Ý$Ð%TÈcÐ%TÐ%TÐ%TÑUÔUÐUØ/2¯yªy¸©~¬~Ñ,Ð# WØ#:×#AÒ#AÀ#ÀqÑ#IÔ#IÑ ˆN˜DØ"&Ð2Ð2¨Ð2Ð2ÐÐà/2¯zªz¸#¸qÑ/AÔ/AÑ,ˆNÐ,Ø#ˆDØˆGå”Ð.°Ñ?Ô?ˆàð 
	à�{Š{˜1‰~Œ~ _Ð4Ð4Ý$ØUÀUÇ[Â[ÐQRÁ^Ä^ÐUÐUñô ð ð  §¢¨A¡¤Ñ.ˆFÝ#×)Ò)¨%¯+ª+°a©.¬.Ñ9Ô9ˆJˆJà#ˆFØˆJÝ�zŠz˜&Ñ!Ô!ˆÝØØØØ!ð	
ñ 
ô 
ˆõ ˆq‰6Œ6�SŠ=ˆ=Ý ¥C¨¡F¤FÐ!5Ð!5°Ð!5Ð!5Ñ6Ô6Ð6Øˆr   rà   c                ó,   — | j         d uo| j         j        S rF   rÂ  r   s    r   rÄ  zArgument.is_write´  ó   € àŒ dÐ*ÐG¨t¬Ô/GÐGr   c                óÞ   — | j         › }| j        r5|dvrt          d|› �¦  «        ‚|                     dd| j        › d�¦  «        }| j        €|S d}| j        r
d| j        › �}|› d| j        › |› �S )	N©rR  zTensor?zTensor[]úannotation on non-Tensor type: rR  úTensor(ré  r6   r  r  )rO  rÃ  rP   r‡  rH   rW  )r   rO  Ú
mb_defaults      r   r   zArgument.__str__¸  s    € Ø”)ˆ~ˆØŒ?ð 	HØÐ<Ð<Ð<Ý$Ð%MÀtÐ%MÐ%MÑNÔNÐNØ—<’< Ð*F°D´OÐ*FÐ*FÐ*FÑGÔGˆDØŒ9ÐØˆKàˆJØŒ|ð 0Ø/ ¤Ð/Ð/�
ØÐ4Ð4˜TœYÐ4¨
Ð4Ð4Ð4r   N©r   r   )r°  r   r   r-  rÜ  r   ©
r   r   r    r!   rÝ  r  rÍ   rT   rÄ  r   r"   r   r   r-  r-  i  s»   € € € € € € ð
 €I€I�IØ€J€J�JØÐÐÑð* "Ð!Ð!Ñ!àðð ð ñ „Xðð ð&ð &ð &ñ „\ð&ðP ðHð Hð Hñ „XðHð5ð 5ð 5ð 5ð 5ð 5r   r-  c                  ó~   — 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	dS )ry  r8  rH   r¬  rO  r   rÃ  r   c                ó   — | j         S rF   rF  r   s    r   r  zReturn.alias_infoÍ  r  r   r°  r   c                óD  — d| v r|                       dd¦  «        \  }}n| }d }t          j        d|¦  «        }|r‚|                     d¦  «        dvr%t	          d|                     d¦  «        › �¦  «        ‚d|                     d¦  «        z   }t
                               |                     d¦  «        ¦  «        }n|}d }t                               |¦  «        }t          |||¬¦  «        }t          |¦  «        | k    r!t	          t          |¦  «        › d	| › �¦  «        ‚|S )
Nr  r(  r  rf  r  r  rR  r{  rç  )
r  r›  r¥  r¦  rP   rž  rT   r¬  ry  r   )r°  r  rH   r¥  r  rÃ  rO  rÝ   s           r   rT   zReturn.parseÑ  s-  € ð �#ˆ:ˆ:Ø#&§:¢:¨c°1Ñ#5Ô#5Ñ ˆN˜D˜Dà ˆNØˆDÝ”Ð.°Ñ?Ô?ˆàð 
	à�{Š{˜1‰~Œ~ _Ð4Ð4Ý$ØUÀUÇ[Â[ÐQRÁ^Ä^ÐUÐUñô ð ð  §¢¨A¡¤Ñ.ˆFÝ#×)Ò)¨%¯+ª+°a©.¬.Ñ9Ô9ˆJˆJà#ˆFØˆJÝ�zŠz˜&Ñ!Ô!ˆÝØØØ!ð
ñ 
ô 
ˆõ
 ˆq‰6Œ6�SŠ=ˆ=Ý ¥C¨¡F¤FÐ!5Ð!5°Ð!5Ð!5Ñ6Ô6Ð6Øˆr   rà   c                ó,   — | j         d uo| j         j        S rF   rÂ  r   s    r   rÄ  zReturn.is_writeð  r  r   c                ó´   — | j         › }| j        r5|dvrt          d|› �¦  «        ‚|                     dd| j        › d�¦  «        }| j        €|S |› d| j        › �S )Nr  r  rR  r  ré  r  )rO  rÃ  rP   r‡  rH   )r   rO  s     r   r   zReturn.__str__ô  s}   € Ø”)ˆ~ˆØŒ?ð 	HØÐ<Ð<Ð<Ý$Ð%MÀtÐ%MÐ%MÑNÔNÐNØ—<’< Ð*F°D´OÐ*FÐ*FÐ*FÑGÔGˆDØŒ9ÐØˆKàÐ(Ð(˜TœYÐ(Ð(Ð(r   Nr  )r°  r   r   ry  rÜ  r   r  r"   r   r   ry  ry  Ç  s­   € € € € € € àÐÐÑØ€J€J�JØ!Ð!Ð!Ñ!àðð ð ñ „Xðð ðð ð ñ „\ðð< ðHð Hð Hñ „XðHð	)ð 	)ð 	)ð 	)ð 	)ð 	)r   ry  c                  ó   — e Zd ZU ded<   dS )ÚSelfArgumentr-  rZ  N)r   r   r    r!   r"   r   r   r  r  	  s   € € € € € € àÐÐÑÐÐr   r  c                  ó@   — e Zd ZU ded<   ded<   ded<   ded<   d
d„Zd	S )ÚTensorOptionsArgumentsr-  ÚdtypeÚlayoutÚdeviceÚ
pin_memoryr   úSequence[Argument]c                ó6   — | j         | j        | j        | j        gS rF   ©r"  r#  r$  r%  r   s    r   ÚallzTensorOptionsArguments.all	  s   € Ø”
˜DœK¨¬°d´oÐFÐFr   N©r   r&  )r   r   r    r!   r)  r"   r   r   r!  r!  		  s]   € € € € € € à€O€O�OØÐÐÑØÐÐÑØÐÐÑðGð Gð Gð Gð Gð Gr   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
<   ed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Z	ed1d„¦   «         Z
ed2d„¦   «         Zed3d„¦   «         Zed1d„¦   «         Zd4d„Zd5d„Zd5d„Zd5d„Zdd œd6d"„Zd7d#„Zd8d&„Zed9d*„¦   «         Zed:d+„¦   «         Zd;d,„Zd<d.„Zd/S )=r*  ztuple[Argument, ...]Úpre_self_positionalzSelfArgument | NonerY  ri  Úpre_tensor_options_kwarg_onlyzTensorOptionsArguments | Nonerƒ  Úpost_tensor_options_kwarg_onlyrv  r   r&  c                ór   — g }|                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r6  r7  ©r   rK  s     r   Úflat_non_outzArguments.flat_non_out+	  s6   € à ˆØ�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4Ô'Ñ(Ô(Ð(Øˆ
r   c                ó¾   — g }|                      | j        ¦  «         | j        �|                     | j        j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r,  rY  rx  rZ  ri  r0  s     r   r6  zArguments.flat_positional2	  sU   € à ˆØ�
Š
�4Ô+Ñ,Ô,Ð,ØŒ=Ð$Ø�JŠJ�t”}Ô-Ñ.Ô.Ð.Ø�
Š
�4Ô,Ñ-Ô-Ð-Øˆ
r   c                ó$   — d„ | j         D ¦   «         S )Nc                ó    — g | ]}|j         ¯	|‘ŒS r"   )rÄ  r¨  s     r   r@   z:Arguments.post_self_positional_mutable.<locals>.<listcomp>=	  s   € ÐCÐCÐC�a¸¼
ÐC�ÐCÐCÐCr   )ri  r   s    r   rX  z&Arguments.post_self_positional_mutable;	  s   € àCÐC˜4Ô4ÐCÑCÔCÐCr   c                óØ   — g }|                      | j        ¦  «         | j        �,|                      | j                             ¦   «         ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r-  rƒ  r)  r.  r0  s     r   r7  zArguments.flat_kwarg_only@	  s`   € à ˆØ�
Š
�4Ô5Ñ6Ô6Ð6ØÔÐ*Ø�JŠJ�tÔ*×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø�
Š
�4Ô6Ñ7Ô7Ð7Øˆ
r   c                ó¦   — g }|                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r6  r7  rv  r0  s     r   r¹  zArguments.flat_allI	  sJ   € à ˆØ�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4”8ÑÔÐØˆ
r   ú:Sequence[Argument | SelfArgument | TensorOptionsArguments]c                ór   — g }|                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   Ú
positionalÚ
kwarg_onlyr0  s     r   Únon_outzArguments.non_outQ	  s8   € ð GIˆØ�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Øˆ
r   ú!Sequence[Argument | SelfArgument]c                ó´   — g }|                      | j        ¦  «         | j        �|                     | j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r,  rY  rx  ri  r0  s     r   r9  zArguments.positionalZ	  sR   € à-/ˆØ�
Š
�4Ô+Ñ,Ô,Ð,ØŒ=Ð$Ø�JŠJ�t”}Ñ%Ô%Ð%Ø�
Š
�4Ô,Ñ-Ô-Ð-Øˆ
r   ú+Sequence[Argument | TensorOptionsArguments]c                ó´   — g }|                      | j        ¦  «         | j        �|                     | j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r-  rƒ  rx  r.  r0  s     r   r:  zArguments.kwarg_onlyc	  sT   € à79ˆØ�
Š
�4Ô5Ñ6Ô6Ð6ØÔÐ*Ø�JŠJ�tÔ*Ñ+Ô+Ð+Ø�
Š
�4Ô6Ñ7Ô7Ð7Øˆ
r   c                ó¦   — g }|                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÚ   r9  r:  rv  r0  s     r   r)  zArguments.alll	  sH   € àFHˆØ�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”8ÑÔÐØˆ
r   ú	list[str]c                ó$   — d„ | j         D ¦   «         S )Nc                óB   — g | ]}|j         ®	|j         j        ¯|j        ‘ŒS rF   )rÃ  rÄ  rH   r¨  s     r   r@   z/Arguments.mutable_arg_names.<locals>.<listcomp>u	  s6   € ð 
ð 
ð 
àØŒ|Ð'¨A¬LÔ,AÐ'ð ŒFà'Ð'Ð'r   )r¹  r   s    r   Úmutable_arg_nameszArguments.mutable_arg_namest	  s%   € ð
ð 
à”]ð
ñ 
ô 
ð 	
r   rà   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rF   )rO  r¿  r¨  s     r   r×   z+Arguments.has_tensor_arg.<locals>.<genexpr>|	  ó0   è è € ÐFÐF¨q�1”6×(Ò(Ñ*Ô*ÐFÐFÐFÐFÐFÐFr   ©r¸  r1  r   s    r   r„  zArguments.has_tensor_arg{	  ó"   € ÝÐFÐF°DÔ4EÐFÑFÔFÑFÔFÐFr   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rF   )rO  rÆ  r¨  s     r   r×   z+Arguments.has_symint_arg.<locals>.<genexpr>	  rG  r   rH  r   s    r   r—  zArguments.has_symint_arg~	  rI  r   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rF   )rO  rÃ  r¨  s     r   r×   z.Arguments.has_generator_arg.<locals>.<genexpr>‚	  s0   è è € ÐIÐI°!�1”6×+Ò+Ñ-Ô-ÐIÐIÐIÐIÐIÐIr   rH  r   s    r   rº  zArguments.has_generator_arg�	  s"   € ÝÐIÐI°tÔ7HÐIÑIÔIÑIÔIÐIr   Fr„  ru  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 )Nr©  r-  r   c                óP   •— t          | j        | j        ‰s| j        nd d ¬¦  «        S )Nr	  )r-  rH   rO  rW  )r©  ru  s    €r   Ústrip_arg_annotationz1Arguments.signature.<locals>.strip_arg_annotation‡	  s5   ø€ ÝØ”VØ”VØ)6Ð@˜œ	˜	¸DØð	ñ ô ð r   r"   ©r,  rY  ri  r-  rƒ  r.  rv  )r©  r-  r   r-  )
r*  rˆ  r‰  r,  rY  r  rZ  ri  r-  r.  )r   ru  rP  s    ` r   ró  zArguments.signature„	  sð   ø€ ð	ð 	ð 	ð 	ð 	ð 	õ Ý %ÝÐ(¨$Ô*BÑCÔCñ!ô !ð
 ”=Ð,õ Ð1Ð1°$´-Ô2HÑIÔIÑJÔJÐJàå!&ÝÐ(¨$Ô*CÑDÔDñ"ô "õ
 +0ÝÐ(¨$Ô*LÑMÔMñ+ô +õ •CÐ,¨dÔ.QÑRÔRÑSÔSñ+Tð  Ø+-àð/
ñ 
ô 
ð 	
r   c           	     ó°   — | j         €t          d¦  «        ‚t          j        | t	          t          j        | j         j        d ¬¦  «        ¦  «        ¬¦  «        S )Nz2remove_self_annotation called but self_arg is NonerF  )rY  )rY  rP   Údataclassesr‡  r  rZ  r   s    r   Úremove_self_annotationz Arguments.remove_self_annotation©	  s[   € ØŒ=Ð Ý Ð!UÑVÔVÐVÝÔ"ØÝ!ÝÔ# D¤MÔ$:ÀtÐLÑLÔLñô ð
ñ 
ô 
ð 	
r   rq  úlist[Argument]c                ó¦   — t          | j        ¦  «        dk    rt          d| j        › �¦  «        ‚t          j        | t          |¦  «        ¬¦  «        S )Nr   z0with_out_args called but self.out is not empty: )rv  )ry  rv  rP   rS  r‡  rˆ  )r   rq  s     r   Úwith_out_argszArguments.with_out_args³	  s\   € ÝˆtŒx‰=Œ=˜AÒÐÝ ØMÀ4Ä8ÐMÐMñô ð õ Ô"ØÝ�d‘”ð
ñ 
ô 
ð 	
r   r?  r   ú5tuple[list[Argument], list[Argument], list[Argument]]c                ó^  — g }g }g }|}|                       d¦  «        D ]‹}|sŒ|dk    r||urt          d¦  «        ‚|}Œ!t                               |¦  «        }|j        �|j        j        r||u rn#||u r|}n||u rt          d|j        › d�¦  «        ‚|                     |¦  «         ŒŒ|||fS )Nrü   rÊ  z:invalid syntax: kwarg-only specifier * can only occur onceznon-mutable argument 'z%' cannot follow mutable out arguments)rý   rP   r-  rT   rÃ  rÄ  rH   rx  )r?  r9  r:  rv  Úarguments_accr°  Úpargs          r   Ú	_preparsezArguments._preparse½	  s  € à%'ˆ
Ø%'ˆ
Ø ˆØ"ˆð —:’:˜dÑ#Ô#ð 	'ð 	'ˆCØð ØØ�cŠzˆzØ ¨
Ð2Ð2Ý(ØTñô ð ð !+�ØÝ—>’> #Ñ&Ô&ˆDð ŒÐ*¨t¬Ô/GÐ*Ø  JÐ.Ð.ØØ" jÐ0Ð0Ø$'�Møà  CÐ'Ð'Ý(Øa°´ÐaÐaÐañô ð ð × Ò  Ñ&Ô&Ð&Ð&à˜: sÐ*Ð*r   c                óâ  — t                                | ¦  «        \  }}}d}t          |¦  «        D ]\  }}|j        dk    r|} nŒ|�-|d|…         }t	          ||         ¦  «        }||dz   d…         }	ng }d}|}	g }
d}g }|
}dd
„} |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «        g}d}|t          |¦  «        k     rñ|t          |¦  «        t          |¦  «        z
  k    r›t          d„ t          ||||t          |¦  «        z   …         ¦  «        D ¦   «         ¦  «        r\||
urt          d¦  «        ‚t          ||         ||dz            ||dz            ||dz            ¬¦  «        }|t          |¦  «        z  }|}ŒÑ|                     ||         ¦  «         |dz  }|t          |¦  «        k     °ñt          t          |¦  «        |t          |	¦  «        t          |
¦  «        |t          |¦  «        t          |¦  «        ¬¦  «        S )z.
        Input: 'int x, int y, int z'
        Nr   r(  rH   r   Útyr¬  r   úCallable[[Argument], bool]c                ó   ‡ ‡— ˆ ˆfd„S )Nc                óJ   •— | j         ‰k    o| j        ‰t          ‰¦  «        fv S rF   )rH   rO  r²  )r©  rH   r^  s    €€r   ú<lambda>z/Arguments.parse.<locals>.pred.<locals>.<lambda>
  s&   ø€ ˜QœV tš^ÐP°´¸2½|ÈBÑ?OÔ?OÐ:PÐ0P€ r   r"   )rH   r^  s   ``r   ÚpredzArguments.parse.<locals>.pred

  s   øø€ ØPÐPÐPÐPÐPÐPr   r"  rò   r#  rÒ  r$  rÓ  r%  rà   r   c              3  ó2   K  — | ]\  }} ||¦  «        V — Œd S rF   r"   )r>   Úpr©  s      r   r×   z"Arguments.parse.<locals>.<genexpr>
  sB   è è € ð ð á˜˜1ð �A�a‘D”Dðð ð ð ð ð r   z-tensor options arguments can only appear oncerf  r^  r(  rQ  )rH   r   r^  r¬  r   r_  )r*  r\  Ú	enumeraterH   r  r¬  rT   ry  r)  rW  rP   r!  rx  rˆ  )r?  r9  r:  rv  Úself_ixÚir©  r,  rY  ri  r-  rƒ  r.  Úkwarg_only_accrc  Ú
predicatess                   r   rT   zArguments.parseå	  sÜ  € õ '0×&9Ò&9¸$Ñ&?Ô&?Ñ#ˆ
�J ð ˆÝ˜jÑ)Ô)ð 	ð 	‰DˆAˆqØŒv˜ÒÐØ�Ø�ð  ð ÐØ",¨X¨g¨XÔ"6ÐÝ# J¨wÔ$7Ñ8Ô8ˆHØ#-¨g¸©k¨m¨mÔ#<Ð Ð à"$ÐØˆHØ#-Ð ð 9;Ð%Ø8<ˆØ9;Ð&Ø6ˆð	Qð 	Qð 	Qð 	Qð ˆD��$Ÿ*š* \Ñ2Ô2Ñ3Ô3ØˆD��4Ÿ:š: hÑ/Ô/Ñ0Ô0ØˆD��4Ÿ:š: hÑ/Ô/Ñ0Ô0ØˆD��tŸzšz¨&Ñ1Ô1Ñ2Ô2ð	
ˆ
ð ˆØ•#�j‘/”/Ò!Ð!à•C˜
‘O”O¥c¨*¡o¤oÑ5Ò5Ð5åð ð å # J°
¸1¸qÅ3ÀzÁ?Ä?Ñ?RÐ;RÔ0SÑ TÔ Tðñ ô ñ ô ð ð &Ð-JÐJÐJÝ,ØKñô ð õ &<Ø(¨œmØ)¨!¨a©%Ô0Ø)¨!¨a©%Ô0Ø#-¨a°!©eÔ#4ð	&ñ &ô &�Nð �˜Z™œÑ(�AØ%C�NØØ×!Ò! *¨Q¤-Ñ0Ô0Ð0Ø�‰FˆAð/ •#�j‘/”/Ò!Ð!õ2 Ý %Ð&9Ñ :Ô :ØÝ!&Ð';Ñ!<Ô!<Ý*/Ð0MÑ*NÔ*NØ)Ý+0Ð1OÑ+PÔ+PÝ�c‘
”
ð
ñ 
ô 
ð 	
r   c                ó„  — g }|                      t          t          | j        ¦  «        ¦  «         | j        s| j        r|                     d¦  «         |                      t          t          | j        ¦  «        ¦  «         |                      t          t          | j        ¦  «        ¦  «         d                     |¦  «        S )NrÊ  rü   )rÚ   r‰  r   r6  r7  rv  rx  rÜ   )r   Úall_argumentss     r   r   zArguments.__str__8
  s£   € Ø#%ˆØ×Ò�S¥ dÔ&:Ñ;Ô;Ñ<Ô<Ð<ØÔð 	& 4¤8ð 	&Ø× Ò  Ñ%Ô%Ð%Ø×Ò�S¥ dÔ&:Ñ;Ô;Ñ<Ô<Ð<Ø×Ò�S¥ d¤hÑ/Ô/Ñ0Ô0Ð0Ø�yŠy˜Ñ'Ô'Ð'r   r£  c                óæ   — | j         €| j        rt          d¦  «        ‚| j        €| j        rt          d¦  «        ‚d„ | j        D ¦   «         }t          |¦  «        dk    rt          d|› �¦  «        ‚d S )Nz5pre_self_positional is non-empty but self_arg is NonezFpost_tensor_options_kwarg_only is non-empty but tensor_options is Nonec                ó8   — g | ]}|j         ®	|j         j        ¯|‘ŒS rF   rÂ  r¨  s     r   r@   z+Arguments.__post_init__.<locals>.<listcomp>Q
  s4   € ð (
ð (
ð (
àØŒ|Ð'¨A¬LÔ,AÐ'ð à'Ð'Ð'r   r   zQmutable pre_self_positional arguments are not currently supported in the schema: )rY  r,  rP   rƒ  r.  ry  )r   Úmutable_pre_self_positionalss     r   r½  zArguments.__post_init__A
  sÂ   € ð Œ=Ð ØÔ'ð Ý$ØKñô ð ð ÔÐ&ØÔ2ð Ý$Ø\ñô ð ð(
ð (
àÔ-ð(
ñ (
ô (
Ð$õ
 Ð+Ñ,Ô,°Ò1Ð1Ý ð Cð  eAð  Cð  Cñô ð ð 2Ð1r   Nr*  )r   r7  )r   r<  )r   r>  ©r   rA  rÜ  )ru  rà   r   r*  )r   r*  )rq  rU  r   r*  )r?  r   r   rX  )r?  r   r   r*  r   rÛ  )r   r   r    r!   rÝ  r1  r6  rX  r7  r¹  r;  r9  r:  r)  rD  r„  r—  rº  ró  rT  rW  rÍ   r\  rT   r   r½  r"   r   r   r*  r*  	  s¨  € € € € € € ð
 .Ð-Ð-Ñ-Ø!Ð!Ð!Ñ!Ø.Ð.Ð.Ñ.à7Ð7Ð7Ñ7Ø1Ð1Ð1Ñ1ð 9Ð8Ð8Ñ8ð ÐÐÑàðð ð ñ „Xðð ðð ð ñ „Xðð ðDð Dð Dñ „XðDð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð
ð 
ð 
ð 
ðGð Gð Gð GðGð Gð Gð GðJð Jð Jð Jð 27ð #
ð #
ð #
ð #
ð #
ð #
ðJ
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð ð%+ð %+ð %+ñ „\ð%+ðN ðP
ð P
ð P
ñ „\ðP
ðd(ð (ð (ð (ðð ð ð ð ð r   r*  )r   ÚsubÚmulÚdivÚmodÚpowÚlshiftÚrshiftÚandÚxorÚorc                  ój   — e Zd ZU ded<   ded<   ded<   dZded<   dZd	ed
<   edd„¦   «         Zdd„ZdS )rŠ  r   r×  rà   rÔ  r†  Frõ  Nr8  r2  rð  r   c                ób  ‡
— | dk    rt          d¦  «        ‚|                      d¦  «        rt          d¦  «        ‚t          j        d| ¦  «        }|r|                     d¦  «        nd}|r|                     d¦  «        n| }t          j        d|¦  «        }|�ed	}|                     d¦  «        Š
t          ˆ
fd
„t          D ¦   «         ¦  «        rd	}‰
dd …         Š
n@d}‰
d         dk    rt          d| › �¦  «        ‚nd}|Š
‰
d         dk    rd	}‰
d d…         Š
nd}d}‰
                     |¦  «        r1d	}‰
d t          |¦  «         …         Š
|s|rt          d| › �¦  «        ‚nd}t          ‰
||||¬¦  «        }	t          |	¦  «        | k    r!t          t          |	¦  «        › d| › �¦  «        ‚|	S )Nr6   zoperator name cannot be emptyrƒ  zs_out suffix is reserved and not permitted for operator names; did you mean to specify an out overload name instead?z^(?:(.*)::)?(.*)$r(  rf  z^__([^_]+)__$Tc              3  ó*   •K  — | ]}‰d |› �k    V — ŒdS )rh  Nr"   )r>   Únr×  s     €r   r×   z)BaseOperatorName.parse.<locals>.<genexpr>§
  s-   øè è € ÐGÐG q�4˜7˜q˜7˜7’?ÐGÐGÐGÐGÐGÐGr   Fr   rh  z,unexpected dunder method starting with 'i': r  Ú_Ú_functionalz:functional overload cannot be a dunder method or inplace: )r×  rÔ  r†  rõ  r2  rç  )
rP   r‚  r›  r¥  r¦  r¸  ÚAUGMENTED_ASSIGNMENT_NAMESry  rŠ  r   )rð  r¥  r2  Úop_without_nsr"  r†  rÔ  Úfunctional_suffixrõ  rÝ   r×  s             @r   rT   zBaseOperatorName.parse”
  s.  ø€ à�Š8ˆ8Ý Ð!@ÑAÔAÐAØ�;Š;�vÑÔð 	Ý ðHñô ð õ ”Ð-¨rÑ2Ô2ˆØ&+Ð3�E—K’K ‘N”N�N°ˆ	Ø*/Ð7˜Ÿš A™œ˜°RˆÝŒHÐ% }Ñ5Ô5ˆØˆ=Ø ˆMØ—7’7˜1‘:”:ˆDÝÐGÐGÐGÐGÕ,FÐGÑGÔGÑGÔGð Ø�Ø˜A˜B˜B”x��à�ð
 ˜”7˜c’>�>Ý(ØKÀrÐKÐKñô ð ð "ð
 "ˆMØ ˆDØ�BŒx˜3ŠˆØ�Ø˜C˜R˜C”y��à�ð *ÐØ�=Š=Ð*Ñ+Ô+ð 
	(Ø"&ÐØÐ1�3Ð0Ñ1Ô1Ð1Ð1Ô2ˆDð ð  ð Ý$ØUÐQSÐUÐUñô ð ðð
 #(ÐåØØØ'Ø 3Øð
ñ 
ô 
ˆõ ˆq‰6Œ6�RŠ<ˆ<Ý ¥C¨¡F¤FÐ!4Ð!4°Ð!4Ð!4Ñ5Ô5Ð5Øˆr   c                ó¬   — | j         r
| j         › d�nd}| j        r| j        rdnd}|› d|› | j        › d�S | j        rdn
| j        rdnd}|› | j        › |› �S )NrX  r6   rh  Ú__r  r€  )r2  r†  rÔ  r×  rõ  )r   Únamespace_prefixrh  s      r   r   zBaseOperatorName.__str__Ö
  s›   € Ø48´NÐJ˜dœnÐ0Ð0Ð0Ð0ÈÐØÔð 	7Ø”|Ð+��¨ˆAØ&Ð:Ð:¨!Ð:¨T¬YÐ:Ð:Ð:Ð:ð ”<ð��ð Ô+ð�]�]àð ð 'Ð6¨¬	Ð6°1Ð6Ð6Ð6r   )rð  r   r   rŠ  r   )	r   r   r    r!   rõ  r2  rÍ   rT   r   r"   r   r   rŠ  rŠ  t
  sŽ   € € € € € € à€I€I�IØ€M€M�MØÐÐÑð( !&ÐÐ%Ð%Ð%Ñ%ð !€IÐ Ð Ð Ñ àð?ð ?ð ?ñ „\ð?ðB7ð 7ð 7ð 7ð 7ð 7r   rŠ  c                  ó\   — 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	dS )rh  rŠ  rH   r   rc  r  r   c                ó  — d| v r|                       dd¦  «        \  }}n| }d}t          t                               |¦  «        |¬¦  «        }t	          |¦  «        | k    r!t          t	          |¦  «        › d| › �¦  «        ‚|S )Nú.r(  r6   rb  rç  )rý   rh  rŠ  rT   r   rP   )r  rH   rc  rÝ   s       r   rT   zOperatorName.parseí
  sˆ   € à�'ˆ>ˆ>Ø")§-¢-°°QÑ"7Ô"7ÑˆD�-�-àˆDØˆMÝÕ.×4Ò4°TÑ:Ô:È-ÐXÑXÔXˆÝˆq‰6Œ6�WÒÐÝ ¥C¨¡F¤FÐ!9Ð!9°Ð!9Ð!9Ñ:Ô:Ð:Øˆr   c                óB   — | j         r| j        › d| j         › �S | j        › S )Nr‰  ©rc  rH   r   s    r   r   zOperatorName.__str__ù
  ó0   € ØÔð 	"Ø”iÐ6Ð6 $Ô"4Ð6Ð6Ð6à”i�>Ð!r   c                óB   — | j         r| j        › d| j         › �S | j        › S )Nr  r‹  r   s    r   Úunambiguous_namezOperatorName.unambiguous_name  rŒ  r   c                óv   — t          t          | j        j        d| j        j        ¬¦  «        | j        ¬¦  «        S ©NFr…  rb  )rh  rŠ  rH   r×  r†  rc  r   s    r   Úremove_inplacezOperatorName.remove_inplace
  sE   € ÝÝ!Ø”Y”^ØØ"œiÔ5ðñ ô ð
 Ô,ð
ñ 
ô 
ð 	
r   Úoverloadc                ól   — t          t          | j        j        d| j        j        ¬¦  «        |¬¦  «        S r�  )rh  rŠ  rH   r×  r†  )r   r’  s     r   Úwith_overloadzOperatorName.with_overload  sB   € ÝÝ!Ø”Y”^ØØ"œiÔ5ðñ ô ð
 #ð
ñ 
ô 
ð 	
r   N)r  r   r   rh  r   )r   rh  )r’  r   r   rh  )
r   r   r    r!   rÍ   rT   r   rŽ  r‘  r”  r"   r   r   rh  rh  è
  sœ   € € € € € € àÐÐÑØÐÐÑàð	ð 	ð 	ñ „\ð	ð"ð "ð "ð "ð"ð "ð "ð "ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r   rh  rì  r  Úbc                ó¬   — | j                              ¦   «         t          j        uo/|                     | ¦  «         o|                     |j        ¦  «        S rF   )r4  r´  rµ  rß  r#  )rì  r  r•  s      r   Ú"gets_generated_out_inplace_wrapperr—    sI   € ð 	
Œ�Š‰Œ�ZÔ2Ð2ð 	'Ø—’˜Q‘”Ðð	'à�LŠL˜œÑ&Ô&ðr   c                  ót   — 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dS )ÚNativeFunctionsViewGroupr1  Úviewrä  Ú	view_copyÚview_inplacer   r£  c                ór  — | j         j        s!t          d| j         j        j        › �¦  «        ‚| j        €Yt          | j         ¦  «        rCt          t          | j         j        j        ¦  «        › dt          | j         ¦  «        ›d�¦  «        ‚�n7| j        j        j        j        j	         
                    d¦  «        s!t          d| j        j        j        › �¦  «        ‚| j         j                             ¦   «         | j        j                             d¬¦  «        k    rS| j         j                             ¦   «         }| j        j                             d¬¦  «        }t          d|› d	|› �¦  «        ‚d
| j        j        vrGt          t          | j        j        j        ¦  «        t          | j         j        ¦  «        f› d�¦  «        ‚| j        ��| j         j                             ¦   «         | j        j                             ¦   «         k    rQ| j         j                             ¦   «         }| j        j                             ¦   «         }t          d|› d	|› �¦  «        ‚| j         j        r`| j        �Y| j        j        sMt          t          | j         j        j        ¦  «        › dt          | j        j        j        ¦  «        › d�¦  «        ‚| j         j        r`| j        �[| j        j        sQt          t          | j         j        j        ¦  «        › dt          | j        j        j        ¦  «        › d�¦  «        ‚d S d S d S )Nzview is not a view op: z‰ 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~  z4view_copy name must end with '_copy' or '_scatter': Tr�  z+view and view_copy signatures don't match: rç  r›  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.z.view and view_inplace signatures don't match: 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.)rš  rÒ  rP   r4  rH   r›  Úgets_generated_view_copyr   Úget_view_copy_namer×  r‚  ró  rL  rœ  rH  rI  )r   Úview_sigÚview_copy_sigÚview_inplace_sigs       r   r½  z&NativeFunctionsViewGroup.__post_init__>  su  € ØŒyÔ#ð 	RÝ Ð!P¸4¼9¼>Ô;NÐ!PÐ!PÑQÔQÐQØŒ>Ð!Ý'¨¬	Ñ2Ô2ð Ý$Ý˜4œ9œ>Ô.Ñ/Ô/ð Ið Iå*¨4¬9Ñ5Ô5ðIð Ið Iñô ð ñð ”>Ô&Ô+Ô0Ô5×>Ò>Ð?TÑUÔUð Ý$ØeÈ4Ì>ÔK^ÔKcÐeÐeñô ð ð ŒyŒ~×'Ò'Ñ)Ô)¨T¬^Ô-@×-JÒ-JØ%)ð .Kñ .ô .ò ð ð  œ9œ>×3Ò3Ñ5Ô5�Ø $¤Ô 3× =Ò =ÐSWÐ =Ñ XÔ X�Ý$Ø_À(Ð_Ð_ÐP]Ð_Ð_ñô ð ð  $¤.Ô"5Ð5Ð5Ý$Ý˜4œ>Ô.Ô3Ñ4Ô4µc¸$¼)¼.Ñ6IÔ6IÐJð Hð Hð Hñô ð ð
 ÔÐ(ØŒyŒ~×'Ò'Ñ)Ô)¨TÔ->Ô-C×-MÒ-MÑ-OÔ-OÒOÐOØœ9œ>×3Ò3Ñ5Ô5�Ø#'Ô#4Ô#9×#CÒ#CÑ#EÔ#EÐ Ý$ØeÀXÐeÐeÐScÐeÐeñô ð ð Œ9Ô;ð 	ØÔ Ð,ØÔ(ÔOð Ý(Ý˜tœyœ~Ô2Ñ3Ô3ð lð l½#¸dÔ>OÔ>TÔ>YÑ:ZÔ:Zð lð lð lñô ð ð Œ9ÔIð 	ØÔ Ð,ØÔ(Ô]ð Ý(Ý˜tœyœ~Ô2Ñ3Ô3ð xð x½#¸dÔ>OÔ>TÔ>YÑ:ZÔ:Zð xð xð xñô ð ð	ð 	Ø,Ð,ðð r   T)Úinclude_copyr£  rà   rþ  c             #  óh   K  — | j         V — | j        �	| j        V — | j        �|r| j        V — d S d S d S rF   )rš  rœ  r›  )r   r£  s     r   rô  z"NativeFunctionsViewGroup.functionss  sX   è è € ØŒiˆˆˆØÔÐ(ØÔ#Ð#Ð#Ð#ØŒ>Ð%¨,Ð%Ø”.Ð Ð Ð Ð Ð ð &Ð%Ð%Ð%r   r   c                ó   — | j         j        S rF   )rš  rØ  r   s    r   rØ  z"NativeFunctionsViewGroup.root_namez  s   € àŒyÔ"Ð"r   c                ó   — | j         j        S rF   )rš  rH  r   s    r   Ú	compositez"NativeFunctionsViewGroup.composite~  s   € ð ŒyÔ?Ð?r   NrÛ  )r£  rà   r   rþ  r   rÜ  )	r   r   r    r!   r½  rô  rÝ  rØ  r§  r"   r   r   r™  r™  4  sº   € € € € € € àÐÐÑð %Ð$Ð$Ñ$à'Ð'Ð'Ñ'ð3ð 3ð 3ð 3ðj 15ð !ð !ð !ð !ð !ð !ð ð#ð #ð #ñ „Xð#ð ð@ð @ð @ñ „Xð@ð @ð @r   r™  c                ó–   — | j         sdS | j        rdS d| j        v rdS | j        j        j        j                             d¦  «        rdS dS )NFrÆ  Ú_inverseT)rÒ  rH  rL  r4  rH   r×  r‚  )rì  s    r   rž  rž  …  sa   € àŒ<ð Øˆuð 	Ô/ð Øˆuà˜œÐÐØˆuð 	„v„{ÔÔ×%Ò% jÑ1Ô1ð ØˆuØˆ4r   c                óR  — dg}t          | j        j        ¦  «        |vr+t          | ¦  «        st	          | j        j        › d�¦  «        ‚| j        j        j        j        › d�}t          t          |d| j        j        j        j        ¬¦  «        | j        j        j	        ¬¦  «        }|S )NÚnarrowz, does not have a generated view_copy variantr}  Fr…  rb  )
r   r4  rH   rž  rP   r×  rh  rŠ  r†  rc  )rì  Ú-list_of_ops_with_explicit_view_copy_operatorsr‹  Úview_copy_names       r   rŸ  rŸ  œ  s»   € ð 6>°JÐ1Ý
ˆ1Œ6Œ;ÑÔÐLÐLÐLÝ'¨Ñ*Ô*ð 	Ý Ø”6”;ÐLÐLÐLñô ð ð ”6”;Ô#Ô(Ð/Ð/Ð/€IÝ!ÝØ E¸¼¼Ô9IÔ9Wð
ñ 
ô 
ð ”f”kÔ/ð	ñ ô €Nð Ðr   r@  r+  c                ó®   — | dk    rdS | d         dk    r| d         dk    r
| dd…         } t          d„ |                      d	¦  «        D ¦   «         ¦  «        S )
z$
    Input: '()'
    Output: []
    z()r"   r   r  r  ré  r(  c              3  óJ   K  — | ]}t                                |¦  «        V — Œd S rF   )ry  rT   r¯  s     r   r×   z parse_returns.<locals>.<genexpr>À  s.   è è € ÐFÐF s•—’˜cÑ"Ô"ÐFÐFÐFÐFÐFÐFr   rü   )rˆ  rý   )r@  s    r   r<  r<  ·  sj   € ð
 �dÒÐØˆrØ�1„~˜ÒÐ ¨R¤°CÒ!7Ð!7Ø! ! B $Ô'ˆÝÐFÐF¨k×.?Ò.?ÀÑ.EÔ.EÐFÑFÔFÑFÔFÐFr   c                  óL   — e Zd ZU ded<   ded<   edd„¦   «         Zdd
„Zdd„ZdS )rw  zdict[str, list[Argument]]r‡  rU  r   ÚsrcÚobjectr   c                óÔ  — t          | t          ¦  «        st          dt          | ¦  «        › �¦  «        ‚g }d| d         vr1| d                              d¦  «        }d„ |D ¦   «         }| d d…         } i }| D ]¡}t          |t
          ¦  «        st          dt          |¦  «        › �¦  «        ‚d|vrt          d|› �¦  «        ‚|                     d¦  «        \  }}d|v rt          d	|› d
�¦  «        ‚|                     d¦  «        }d„ |D ¦   «         }|||<   Œ¢t          ||¬¦  «        }	|	                     ¦   «         | k    r't          d|	                     ¦   «         › d| › �¦  «        ‚|	S )Nz precomputed must be a list, got rª  r  r]  c                óf   — g | ].}t                                |                     ¦   «         ¦  «        ‘Œ/S r"   ©r-  rT   r|  ©r>   rH   s     r   r@   z$Precompute.parse.<locals>.<listcomp>Ý  s,   € ÐJÐJÐJ¸�Ÿš t§z¢z¡|¤|Ñ4Ô4ÐJÐJÐJr   z$precomputed item must be a str, got zSprecomputed parameters without replacement are allowed only in the last line, got: r  zillegal kernel param name 'z' in precomputed parametersc                óf   — g | ].}t                                |                     ¦   «         ¦  «        ‘Œ/S r"   rµ  r¶  s     r   r@   z$Precompute.parse.<locals>.<listcomp>ñ  s,   € ÐQÐQÐQ¸t�hŸnšn¨T¯ZªZ©\¬\Ñ:Ô:ÐQÐQÐQr   )r‡  r   zr.to_list() != src: rç  )ro  rs  rP   rO  rý   r   rw  Úto_list)
r±  Úadd_argsÚadd_listr‡  Úraw_replace_itemr°  Úwith_list_rawÚ	with_listÚwith_list_argsrÝ   s
             r   rT   zPrecompute.parseÎ  s¾  € å˜#�tÑ$Ô$ð 	QÝ Ð!OÅDÈÁIÄIÐ!OÐ!OÑPÔPÐPð ˆØ˜˜RœÐ Ð Ø˜2”w—}’} SÑ)Ô)ˆHØJÐJÀÐJÑJÔJˆHØ�c�r�c”(ˆCàˆØ #ð 	*ð 	*ÐÝÐ.µÑ4Ô4ð Ý$ØS½4Ð@PÑ;QÔ;QÐSÐSñô ð ð Ð-Ð-Ð-Ý$Ø|ÐjzÐ|Ð|ñô ð ð "2×!7Ò!7¸Ñ!?Ô!?ÑˆC�Ø�cˆzˆzÝ$ØR°#ÐRÐRÐRñô ð ð &×+Ò+¨CÑ0Ô0ˆIØQÐQÀyÐQÑQÔQˆNØ)ˆG�C‰LˆLå˜w¨HÐ5Ñ5Ô5ˆØ�9Š9‰;Œ;˜#ÒÐÝ Ð!N¸¿	º	¹¼Ð!NÐ!NÈÐ!NÐ!NÑOÔOÐOØˆr   r£  c                ó@  — | j         D ];}|j                             ¦   «         |j        k    rt          d|j        › �¦  «        ‚Œ<| j                             ¦   «         D ]@}|D ];}|j                             ¦   «         |j        k    rt          d|j        › �¦  «        ‚Œ<ŒAd S )Nz5precomputed argument name must not be all uppercase: )r   rH   ÚupperrP   r‡  rù   )r   r©  r?  s      r   r½  zPrecompute.__post_init__ù  sÊ   € ð ”ð 	ð 	ˆAØŒv�|Š|‰~Œ~ ¤Ò'Ð'Ý$ØTÈAÌFÐTÐTñô ð ð (ð ”L×'Ò'Ñ)Ô)ð 	ð 	ˆDØð ð �Ø”6—<’<‘>”> Q¤VÒ+Ð+Ý(ØXÐPQÔPVÐXÐXñô ð ð ,ðð	ð 	r   rA  c                óº   — g }| j                              ¦   «         D ]>\  }}d                     d„ |D ¦   «         ¦  «        }|                     |› d|› �¦  «         Œ?|S )Nrü   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   rî  )r>   Úparams     r   r×   z%Precompute.to_list.<locals>.<genexpr>  s(   è è € Ð$PÐ$P°E¥S¨¡Z¤ZÐ$PÐ$PÐ$PÐ$PÐ$PÐ$Pr   rª  )r‡  rO   rÜ   rx  )r   Úreplace_listÚkernel_paramÚreplacement_paramsÚreplacementss        r   r¸  zPrecompute.to_list  sx   € ØˆØ04´×0BÒ0BÑ0DÔ0Dð 	Eð 	EÑ,ˆLÐ,ØŸ9š9Ð$PÐ$PÐ=OÐ$PÑ$PÔ$PÑPÔPˆLØ×Ò <Ð CÐ C°\Ð CÐ CÑDÔDÐDÐDàÐr   N)r±  r²  r   rw  rÛ  rp  )r   r   r    r!   rÍ   rT   r½  r¸  r"   r   r   rw  rw  Æ  sw   € € € € € € ð 'Ð&Ð&Ñ&àÐÐÑàð(ð (ð (ñ „\ð(ðTð ð ð ðð ð ð ð ð r   rw  r   )rß   rD   r   rà   )rì  r1  r  rã  r•  r  r   rà   )rì  r1  r   rà   )rì  r1  r   rh  )r@  r   r   r+  )vÚ
__future__r   rS  r4  r›  r   Úenumr   r   Útypingr   Útyping_extensionsr   Útorchgen.utilsr	   r
   Úcollections.abcr   r   r   r   r$   r…  rÛ   rÙ   ÚAUTOGRAD_KEYSÚFRAGMENT_NAMESPACESrD   rÏ   rÞ   rÖ   rÕ   ÚhasattrrÝ   Úprintr÷  r,   r(   r'   r.   r+   rê   rí   r‘   r    r`   r˜   r§   r’   r¡   r–   r¥   r‚   rƒ   r}   r~   r   r€   r¯   r°   r¶   r·   r2   rœ   r«   r�   rº   rg   r}  rä   ræ   rè   rë   rî   Údispatch_device_maprò   rþ   r!   r  r  r  r  r  r	  r
  r  r  r  r'  r,  r1  rµ  rã  r~  r†  r  r3  rž  r¬  rQ  rP  r²  r´  r³  r-  ry  r  r!  r*  r�  rŠ  rh  r—  r™  rž  rŸ  r<  rw  r"   r   r   ú<module>rÓ     s-  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð ð =Ø<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð: €�$ÐÑÔð*ð *ð *ð *ð *ñ *ô *ñ Ôð*ðð ð ð ð ˆdñ ô ð ð (Ð ðð ð Ð ð"ð ð Ð ð (Ð(ð ,ð ,Ø,>ð,ñ ,ô ,ñ €ð #Ð$:Ð;Ð ð
_>ð _>ð _>ð _>ð _>�$ñ _>ô _>ð _>ðDð ð ð ð ˜Dñ ô ð ðð ð ð ð ð ð €BØ ð ð ˆØˆw�{ B¨¡GÑ,Ô,ð 	Ø+Ð+Ñ-Ô-ˆAØˆE�!‰HŒHˆHØ�,Øt˜2Ðt˜rÐtÐtÐqrÐtÐtñô ð ð	ðð „OØÔØ„OØ„OØÔðÐ ð #Ô'¨¬Ð9Ð ð „OØÔØÔØÔØÔØ„OØ„OØÔØÔØÔØÔØÔØÔØÔØÔØÔ)ØÔ5ØÔ)ØÔ6ØÔØÔ ØÔØÔð ÔØÔØÔØÔØÔ ØÔØÔðA!€ðLð ð ð ðð ð ð ðð ð ð ð*ð *ð *ð *ð%ð %ð %ð %ð
 ,¨VÐ5HÈ%ÐPÐ ð-ð -ð -ð -ð -�ñ -ô -ð -ð` 46€Ð 5Ð 5Ð 5Ñ 5à&˜JàŒØŒØŒØŒØÔðñô €ˆjÑ ð '˜J¨
Ô(8¸*Ô:KÐ'LÑMÔM€ˆjÑ Ø%˜:ØÔ˜jÔ6Ð7ñô €ˆiÑ ð % ZÔ0°=ÀÔ3LÑL€ˆeÑ Ø!.¨uÔ!5¸ÀiÔ8PÑ!P€ˆoÑ à�*Ô ¨iÔ 8Ñ8ð Ð"Ñ #ð;ð ;ð ;ð ;ð ;ˆtñ ;ô ;ð ;ð4ð ð ð ð �dñ ô ð ð
ð ð ð ð �Tñ ô ð ð$ €�$ÐÑÔðU
Gð U
Gð U
Gð U
Gð U
Gñ U
Gô U
Gñ ÔðU
Gðpð ð ð ð �ñ ô ð ð €�$ÐÑÔðR
ð R
ð R
ð R
ð R
ñ R
ô R
ñ ÔðR
ðj €�$ÐÑÔð(ð (ð (ð (ð (ñ (ô (ñ Ôð(ð, €�$ÐÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ðB €�$ÐÑÔð9ð 9ð 9ð 9ð 9ñ 9ô 9ñ Ôð9ðb €�$ÐÑÔðM@ð M@ð M@ð M@ð M@ñ M@ô M@ñ ÔðM@ðp €�$ÐÑÔð5ð 5ð 5ð 5ð 5ñ 5ô 5ñ Ôð5ð| €�$ÐÑÔð3"ð 3"ð 3"ð 3"ð 3"ñ 3"ô 3"ñ Ôð3"ðnð ð ð ð ˆTñ ô ð ð. €�$ÐÑÔð*ð *ð *ð *ð *ˆtñ *ô *ñ Ôð*ð( €�$ÐÑÔð(ð (ð (ð (ð (�4ñ (ô (ñ Ôð(ð( €�$ÐÑÔðð ð ð ð �dñ ô ñ Ôðð@ €�$ÐÑÔðð ð ð ð ˆtñ ô ñ Ôðð* €�$ÐÑÔðZ5ð Z5ð Z5ð Z5ð Z5ñ Z5ô Z5ñ ÔðZ5ðz €�$ÐÑÔð5)ð 5)ð 5)ð 5)ð 5)ñ 5)ô 5)ñ Ôð5)ðr €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð €�$ÐÑÔðGð Gð Gð Gð Gñ Gô Gñ ÔðGð €�$ÐÑÔðDð Dð Dð Dð Dñ Dô Dñ ÔðDðT
ð ð Ð ð* €�$ÐÑÔðn7ð n7ð n7ð n7ð n7ñ n7ô n7ñ Ôðn7ðf €�$ÐÑÔð3
ð 3
ð 3
ð 3
ð 3
ñ 3
ô 3
ñ Ôð3
ðlð ð ð ð* €�$ÐÑÔðM@ð M@ð M@ð M@ð M@ñ M@ô M@ñ ÔðM@ð`ð ð ð ð.ð ð ð ð6	Gð 	Gð 	Gð 	Gð €�$ÐÑÔðGð Gð Gð Gð Gñ Gô Gñ ÔðGð Gð Gr   