§
    �Štj,[  ã                  óš  — d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlZd dlmc mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, erd dl-m.Z.  edg d¢¦  «        Z/d?d„Z0	 d@dAd$„Z1dBd%„Z2	 dCdDd-„Z3	 	 	 	 dEdFd8„Z4	 d@dGd=„Z5e6d>k    r e2¦   «          dS dS )Hé    )ÚannotationsN)ÚCounterÚdefaultdictÚ
namedtuple)ÚPath)ÚTYPE_CHECKING)ÚDispatcherSignature)ÚCodeTemplate)Únative_function_manager)Úget_grouped_native_functionsÚparse_native_yaml)ÚBackendIndexÚBackendMetadataÚDispatchKeyÚNativeFunctionÚNativeFunctionsGroupÚOperatorName)ÚSelectiveBuilder)Ú	concatMapÚcontextÚFileManagerÚNamespaceHelperÚTarget)Ú
YamlLoader)ÚSequenceÚParsedExternalYaml)Úbackend_keyÚautograd_keyÚ
class_nameÚcpp_namespaceÚbackend_indicesÚbackend_yaml_pathÚstrÚgrouped_native_functionsú/Sequence[NativeFunction | NativeFunctionsGroup]r!   údict[DispatchKey, BackendIndex]Úreturnc           	     ó  ‡‡‡‡‡‡— d„ t          d„ |¦  «        D ¦   «         Št          | ¦  «        5 }t          j        |t          ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚g d¢}| 	                    dd ¦  «        Š‰€t          d¦  «        ‚| 	                    dd ¦  «        }| 	                    d	d ¦  «        Š‰€t          d
¦  «        ‚| 	                    dd¦  «        }t          |t          ¦  «        st          d|› �¦  «        ‚| 	                    dd¦  «        }t          |t          ¦  «        st          d|› �¦  «        ‚| 	                    dg ¦  «        }	|	€g }	t          |	t          ¦  «        s#t          d|	› dt          |	¦  «        › d�¦  «        ‚| 	                    dg ¦  «        }
|
€g }
t          |
t          ¦  «        s#t          d|
› dt          |
¦  «        › d�¦  «        ‚t          |
¦  «        }| 	                    dg ¦  «        }t          |t          ¦  «        st          d|› �¦  «        ‚| 	                    dg ¦  «        }|	                     |¦  «         | 	                    di ¦  «         | 	                    di ¦  «         t          |                     ¦   «         ¦  «        dk    rOt          | › dd                     |                     ¦   «         ¦  «        › dd                     |¦  «        › �¦  «        ‚d;ˆˆfd)„}d Št          |	¦  «        dk    rit#          ˆfd*„¦  «        5  t%          j        ‰¦  «        Šd d d ¦  «         n# 1 swxY w Y    ||	|‰||¬+¦  «        }‰‰v rt          d,‰› �¦  «        ‚|‰‰<   d Št          |¦  «        dk    rlt#          ˆfd-„¦  «        5  t%          j        d.‰› �¦  «        Šd d d ¦  «         n# 1 swxY w Y    |||‰||¬+¦  «        }‰‰v rt          d/‰› �¦  «        ‚|‰‰<   |D �]5}t          |t(          ¦  «        rU‰€g n%d0„ ‰‰                              |¦  «        fD ¦   «         }‰€g n%d1„ ‰‰                              |¦  «        fD ¦   «         }n^‰€g n*d2„ ˆˆfd3„|                     ¦   «         D ¦   «         D ¦   «         }‰€g n*d4„ ˆˆfd5„|                     ¦   «         D ¦   «         D ¦   «         }d6„ |D ¦   «         }d7„ |D ¦   «         }t          |¦  «        dk    s?t          |¦  «        dk    s,t          d8|d         j        › d9|d         j        › d:�¦  «        ‚�Œ7t1          ‰‰|‰‰¦  «        S )<Nc                ó(   — i | ]}|j         j        |“ŒS © ©ÚfuncÚname©Ú.0Úfs     úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/gen_backend_stubs.pyú
<dictcomp>z&parse_backend_yaml.<locals>.<dictcomp>0   s4   € ð @ð @ð @àð 	
ŒŒ�Qð@ð @ð @ó    c                ót   — t          | t          ¦  «        r| gn t          |                      ¦   «         ¦  «        S ©N)Ú
isinstancer   ÚlistÚ	functions©r0   s    r1   ú<lambda>z$parse_backend_yaml.<locals>.<lambda>3   s+   € �Z¨­>Ñ:Ô:ÐS�q�c�cÅÀQÇ[Â[Á]Ä]Ñ@SÔ@S€ r3   )ÚLoaderz'Expected yaml_values to be a dict, got )
Úbackendr   r    Úextra_headersÚ	supportedÚautogradÚfull_codegenÚ
non_nativeÚir_genÚsymintr<   z&You must provide a value for "backend"r   r    z,You must provide a value for "cpp_namespace"Úuse_out_as_primaryFzHYou must provide either True or False for use_out_as_primary. Provided: Údevice_guardzBYou must provide either True or False for device_guard. Provided: r>   z,expected "supported" to be a list, but got: z
 (of type ú)rC   z)expected "symint" to be a list, but got: r?   z+expected "autograd" to be a list, but got: r@   rA   rB   r   z contains unexpected keys: z, z). Only the following keys are supported: Úbackend_opsú	list[str]Ú
symint_opsúset[str]Údispatch_keyr   ÚboolÚuse_device_guardr'   r   c               ó  •— i }| D ]k}t          j        |¦  «        }|‰vrt          d|› �¦  «        ‚t          j        ‰|         j        ¦  «        }||v r|dz  }t          |d‰
¬¦  «        }	|	||<   Œlt          ||d||¬¦  «        S )Nz Found an invalid operator name: Ú_symintF)ÚkernelÚ
structuredr    T)rK   rD   ÚexternalrE   Úindex)r   ÚparseÚAssertionErrorÚ
dispatcherr-   r,   r   r   )rG   rI   rK   rD   rM   ÚmetadataÚopÚop_nameÚkernel_nameÚmr    Únative_functions_maps             €€r1   Úcreate_backend_indexz0parse_backend_yaml.<locals>.create_backend_indexŠ   sÉ   ø€ ð 9;ˆØð 	"ð 	"ˆBÝ"Ô(¨Ñ,Ô,ˆGØÐ2Ð2Ð2Ý$Ð%QÈÐ%QÐ%QÑRÔRÐRå$œ/Ð*>¸wÔ*GÔ*LÑMÔMˆKØ�ZÐÐØ˜yÑ(�åØ"¨uÀMðñ ô ˆAð !"ˆH�WÑÐÝØ%Ø1ØØ)Øð
ñ 
ô 
ð 	
r3   c                 ó   •— d‰ › d�S )NzFThe provided value for "backend" must be a valid DispatchKey, but got ú.r*   ©r<   s   €r1   r:   z$parse_backend_yaml.<locals>.<lambda>«   s   ø€ ÐgÐ]dÐgÐgÐg€ r3   )rD   rM   zDuplicate backend key: c                 ó   •— d‰ › d�S )Nz The "autograd" key was specified, which indicates that you would like to override the behavior of autograd for some operators on your backend. However "Autogradz" is not a valid DispatchKey.r*   r`   s   €r1   r:   z$parse_backend_yaml.<locals>.<lambda>½   s    ø€ ð vØOVðvð vð v€ r3   ÚAutogradzDuplicate autograd key: c                ó   — g | ]}|®|‘ŒS r5   r*   ©r/   r[   s     r1   ú
<listcomp>z&parse_backend_yaml.<locals>.<listcomp>Ò   ó%   € ð ð ð àØ�}ð à$�}�}r3   c                ó   — g | ]}|®|‘ŒS r5   r*   rd   s     r1   re   z&parse_backend_yaml.<locals>.<listcomp>Û   rf   r3   c                ó   — g | ]}|®|‘ŒS r5   r*   rd   s     r1   re   z&parse_backend_yaml.<locals>.<listcomp>å   ó)   € ð ð ð àð �}ð ð
 %�}�}r3   c                óF   •— g | ]}‰‰                               |¦  «        ‘ŒS r*   ©Ú
get_kernel)r/   r0   r!   r   s     €€r1   re   z&parse_backend_yaml.<locals>.<listcomp>ç   s<   ø€ ð ð ð àð (¨Ô4×?Ò?ÀÑBÔBðð ð r3   c                ó   — g | ]}|®|‘ŒS r5   r*   rd   s     r1   re   z&parse_backend_yaml.<locals>.<listcomp>ñ   ri   r3   c                óF   •— g | ]}‰‰                               |¦  «        ‘ŒS r*   rk   )r/   r0   r   r!   s     €€r1   re   z&parse_backend_yaml.<locals>.<listcomp>ó   s<   ø€ ð ð ð àð (¨Ô5×@Ò@ÀÑCÔCðð ð r3   c                ó   — g | ]}|®|‘ŒS r5   r*   r.   s     r1   re   z&parse_backend_yaml.<locals>.<listcomp>û   s   € ÐGÐGÐG ¸¸˜1¸¸¸r3   c                ó   — g | ]}|®|‘ŒS r5   r*   r.   s     r1   re   z&parse_backend_yaml.<locals>.<listcomp>ü   s   € ÐIÐIÐI !¸1¸=˜A¸=¸=¸=r3   zÊCurrently, all variants of an op must either be registered to a backend key, or to a backend's autograd key. They cannot be mix and matched. If this is something you need, feel free to create an issue! z" is listed under "supported", but z is listed under "autograd".)rG   rH   rI   rJ   rK   r   rD   rL   rM   rL   r'   r   )r   ÚopenÚyamlÚloadr   r6   ÚdictrU   ÚtypeÚpoprL   r7   ÚsetÚextendÚlenÚkeysÚjoinr   r   rT   r   rl   r8   rP   r   )r"   r$   r!   r0   Úyaml_valuesÚ
valid_keysr   rD   rM   r>   rC   Ú
symint_setÚsupported_autogradr@   r]   Úbackend_idxÚautograd_idxÚgÚforward_kernelsÚbackward_kernelsr   r<   r   r    r\   s     `                 @@@@@r1   Úparse_backend_yamlr…   +   s9  øøøøøø€ ð
@ð @åØSÐSØ$ñ
ô 
ð@ñ @ô @Ðõ 
ÐÑ	 Ô	 ð 6 AÝ”i ­*Ð5Ñ5Ô5ˆð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6å�k¥4Ñ(Ô(ð 
ÝØIµd¸;Ñ6GÔ6GÐIÐIñ
ô 
ð 	
ðð ð €Jð �oŠo˜i¨Ñ.Ô.€GØ€ÝÐEÑFÔFÐFà—’ ¨tÑ4Ô4€Jà—O’O O°TÑ:Ô:€MØÐÝÐKÑLÔLÐLð %ŸšÐ)=¸uÑEÔEÐÝÐ(­$Ñ/Ô/ð 
ÝØkÐWiÐkÐkñ
ô 
ð 	
ð #—’ ~°uÑ=Ô=ÐÝÐ&­Ñ-Ô-ð 
ÝØcÐQaÐcÐcñ
ô 
ð 	
ð —’ ¨RÑ0Ô0€IØÐØˆ	Ý�i¥Ñ&Ô&ð 
ÝØb¸9ÐbÐbÕPTÐU^ÑP_ÔP_ÐbÐbÐbñ
ô 
ð 	
ð �_Š_˜X rÑ*Ô*€FØ€~ØˆÝ�f�dÑ#Ô#ð 
ÝØY¸ÐYÐYÍ$ÈvÉ,Ì,ÐYÐYÐYñ
ô 
ð 	
õ �V‘”€Jà$Ÿš¨°RÑ8Ô8ÐÝÐ(­$Ñ/Ô/ð 
ÝØNÐ:LÐNÐNñ
ô 
ð 	
ð
 —?’? >°2Ñ6Ô6€LØ×Ò�\Ñ"Ô"Ð"ð ‡O‚O�L "Ñ%Ô%Ð%ð ‡O‚O�H˜bÑ!Ô!Ð!å
ˆ;×ÒÑÔÑÔ !Ò#Ð#ÝØ ð Nð N¸T¿YºYÀ{×GWÒGWÑGYÔGYÑ=ZÔ=Zð Nð NØ6:·i²iÀ
Ñ6KÔ6KðNð Nñ
ô 
ð 	
ð

ð 
ð 
ð 
ð 
ð 
ð 
ð< '+€KÝ
ˆ9�~„~˜ÒÐÝØgÐgÐgÐgñ
ô 
ð 	5ð 	5õ &Ô+¨GÑ4Ô4ˆKð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð
 +Ð*ØØØØ1Ø-ð
ñ 
ô 
ˆð ˜/Ð)Ð)Ý Ð!H¸;Ð!HÐ!HÑIÔIÐIØ'2ˆ˜Ñ$à'+€LÝ
ÐÑÔ Ò"Ð"Ýðvð vð vð vñ
ô 
ð 	Cð 	Cõ 'Ô,Ð-A¸Ð-AÐ-AÑBÔBˆLð		Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð ,Ð+ØØØØ1Ø-ð
ñ 
ô 
ˆð ˜?Ð*Ð*Ý Ð!J¸LÐ!JÐ!JÑKÔKÐKØ(4ˆ˜Ñ%à%ð 7ñ 7ˆÝ�a�Ñ(Ô(ð +	ð Ð&ð �ðð à-¨kÔ:×EÒEÀaÑHÔHÐIðñ ô ð ð  Ð'ð �ðð à-¨lÔ;×FÒFÀqÑIÔIÐJðñ ô ð Ðð Ð&ð �ðð ðð ð ð ð à!"§¢¡¤ðñ ô ðñ ô ð ð  Ð'ð �ðð ðð ð ð ð à!"§¢¡¤ðñ ô ðñ ô ð ð HÐG oÐGÑGÔGˆØIÐIÐ'7ÐIÑIÔIÐÝ�OÑ$Ô$¨Ò)Ð)­SÐ1AÑ-BÔ-BÀaÒ-GÐ-GÝ ðPð # 1Ô%Ô,ðPð Pð (¨Ô*Ô1ð	Pð Pð Pñô ð ùõ Ø�\ :¨}¸oñô ð s5   ±AÁAÁ AÍ#NÎNÎNÏ!PÐP	ÐP	Únative_functionsúSequence[NativeFunction]r   r   r   úDispatchKey | Noner   Úkernel_defn_file_pathr@   úlist[OperatorName] | NoneÚNonec                óŠ  ‡‡‡— 	 t          |¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   n%# t          $ r}	t          d|› �¦  «        |	‚d }	~	ww xY w‰€g Š||         j        g|€g n||         j        gz   }
t          t          t          d„ |
¦  «        ¦  «        ¦  «        Šˆˆfd„| D ¦   «         }t          t          ¦  «        }|D ]-}|‰|j	        j
                                               |¦  «         Œ.d|› d�}t          d„ t          j        ||¦  «        D ¦   «         ¦  «        }d}|                     ¦   «         D ]\\  }}t!          |¦  «        }||         }||k    r:dd„Šd                     ˆfd„|D ¦   «         ¦  «        }|d|› d|› d|› d|› d|› d�z  }Œ]|dk    rt          |¦  «        ‚d S )Nz2Unable to read from the specified impl_path file: c                ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                ó&   — g | ]\  }}||j         f‘ŒS r*   )rP   )r/   rY   rW   s      r1   re   z>error_on_missing_kernels.<locals>.<lambda>.<locals>.<listcomp>'  s0   € ð ð ð Ù3D°7¸H�W˜hœoÐ.ðð ð r3   )Úitems)rS   s    r1   r:   z*error_on_missing_kernels.<locals>.<lambda>'  s(   € ð ð ØHMÏÊÉÌðñ ô € r3   c                óL   •— g | ] }|j         j        ‰v ¯|j         j        ‰v¯|‘Œ!S r*   r+   )r/   r0   Úexpected_backend_op_namesr@   s     €€r1   re   z,error_on_missing_kernels.<locals>.<listcomp>.  sA   ø€ ð ;ð ;ð ;àØŒ6Œ;Ð3Ð3Ð3¸¼¼È<Ð8WÐ8Wð 	
à8WÐ8WÐ8Wr3   z(.*)z::\s*([\w\d]*)\(c                óB   — g | ]\  }}|                      d ¦  «        °|‘ŒS )ú:)Úendswith)r/   ÚxÚys      r1   re   z,error_on_missing_kernels.<locals>.<listcomp>D  s<   € ð 	
ð 	
ð 	
á��AØ—:’:˜c‘?”?ð	
Øð	
ð 	
ð 	
r3   Ú r0   r   r'   r#   c                óª   — t          | ¦  «        5  t          j        | j        ¦  «                             ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S r5   )r   r	   Úfrom_schemar,   Údeclr9   s    r1   Úcreate_declz-error_on_missing_kernels.<locals>.create_declQ  s¤   € Ý,¨QÑ/Ô/ð Jð JÝ.Ô:¸1¼6ÑBÔB×GÒGÑIÔIðJð Jð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Js   �+AÁAÁAú
c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r*   r*   )r/   r0   r›   s     €r1   re   z,error_on_missing_kernels.<locals>.<listcomp>U  s!   ø€ Ð-LÐ-LÐ-LÀ¨k¨k¸!©n¬nÐ-LÐ-LÐ-Lr3   z$ is missing a kernel definition for z. We found z( kernel(s) with that name,
but expected zH kernel(s). The expected function schemas for the missing operator are:
z

)r0   r   r'   r#   )rq   ÚreadÚOSErrorrU   rS   rt   r7   r   r   r,   r-   Úappendr   ÚreÚfindallr�   ry   r{   )r†   r!   r   r   r   r‰   r@   r0   Úbackend_defnsÚeÚindicesÚexpected_backend_native_funcsÚ#expected_backend_kernel_name_countsÚnative_fÚkernel_defn_regexÚ!actual_backend_kernel_name_countsÚmissing_kernels_err_msgÚexpected_nameÚfuncsÚexpected_overload_countÚactual_overload_countÚexpected_schemas_strr›   r‘   s         `               @@r1   Úerror_on_missing_kernelsr±     s  øøø€ ðÝÐ'Ñ(Ô(ð 	%¨AØŸFšF™HœHˆMð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%øøåð ð ð ÝØXÐAVÐXÐXñ
ô 
àð	øøøøðøøøð
 ÐØˆà˜{Ô+Ô1Ð2ØÐ"ˆˆ¨¸Ô)FÔ)LÐ(Mñ€Gõ
 :>ÝÝðð ð ñ	ô ñ	
ô 	
ñ	:ô 	:Ðð;ð ;ð ;ð ;ð ;à!ð;ñ ;ô ;Ð!õ
 LWÝñLô LÐ'ð 2ð ð ˆØ+Ø% h¤mÔ&8Ô9ô	
ç
Š&�Ñ
Ô
Ð
Ð
ð
 = 
Ð<Ð<Ð<ÐÝ(/ð
	
ð 	
åœ*Ð%6¸ÑFÔFð	
ñ 	
ô 	
ñ
)ô 
)Ð%ð !ÐØ C× IÒ IÑ KÔ Kð ð Ñˆ�uÝ"% e¡*¤*ÐØ AÀ-Ô PÐØ"Ð&;Ò;Ð;ðJð Jð Jð Jð $(§9¢9Ð-LÐ-LÐ-LÐ-LÀeÐ-LÑ-LÔ-LÑ#MÔ#MÐ Ø#ð (Øð(ð (Ø1>ð(ð (ØK`ð(ð (à%ð(ð (ð ð(ð (ð (ñ Ð#øð  "Ò$Ð$ÝÐ4Ñ5Ô5Ð5ð %Ð$s2   …A ”5©A µ9¹A ¼9½A Á
A#ÁAÁA#c                 ó„  — t          j        d¬¦  «        } |                      dddd¬¦  «         |                      dd	d
d¬¦  «         |                      ddt          dd¬¦  «         |                      ddt          d d¬¦  «         |                      ¦   «         }t          |j        |j        |j	        |j
        ¦  «         d S )NzGenerate backend stub files)Údescriptionz-sz--source-yamlz--source_yamlzApath to source yaml file containing operator external definitions)Úhelpz-oz--output-dirz--output_dirzoutput directoryz	--dry-runz	--dry_runF)ru   Údefaultr´   z--impl-pathz--impl_pathz9path to the source C++ file containing kernel definitions)ÚargparseÚArgumentParserÚadd_argumentrL   r#   Ú
parse_argsÚrunÚsource_yamlÚ
output_dirÚdry_runÚ	impl_path)ÚparserÚoptionss     r1   ÚmainrÁ   `  sî   € ÝÔ$Ð1NÐOÑOÔO€FØ
×ÒØØØØPð	 ñ ô ð ð ×Ò˜˜n¨nÐCUÐÑVÔVÐVØ
×ÒØ�[¥t°UÐASð ñ ô ð ð ×ÒØØÝØØHð ñ ô ð ð ×ÒÑ!Ô!€GåˆÔ˜WÔ/°´À'ÔBSÑTÔTÐTÐTÐTr3   r—   Úfmr   r    Úbackend_dispatch_keyÚautograd_dispatch_keyÚbackend_namec                óZ  ‡‡‡‡‡‡‡	‡
‡— ‰€t          d¦  «        ‚dŠ
t          t          t          ˆˆfd„|¦  «        ¦  «        ¦  «        Š	t          t          t          ˆˆfd„|¦  «        ¦  «        ¦  «        Št	          |¦  «        Š|                      ‰› d�dˆˆ	ˆˆˆˆ
ˆfd„¦  «         d S )Núclass_name must not be NonezAAutogenerated file by gen_backend_stubs.py. Do not edit directly!c                ó:   •— t          j        | ‰‰         ¦  «        S r5   ©ÚdestÚ#compute_native_function_declaration)r0   rÃ   r!   s    €€r1   r:   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>Ž  s   ø€ �$ÔBØ�Ð';Ô<ñô € r3   c                óB   •— ‰€g nt          j        | ‰‰         ¦  «        S r5   rÉ   )r0   rÄ   r!   s    €€r1   r:   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>˜  s0   ø€ Ø(Ð0ð ˜"åÔ=Ø�Ð'<Ô=ñô ð r3   úNativeFunctions.hzDispatchKeyNativeFunctions.hc                 ó2   •— ‰‰j         ‰‰j        ‰‰ z   ‰‰dœS )N)Úgenerated_commentÚnamespace_prologuer   Únamespace_epilogueÚdispatch_declarationsÚBackendNamer   )ÚprologueÚepilogue)Úautograd_declarationsÚbackend_declarationsrÃ   rÅ   r   rÏ   Ú	ns_helpers   €€€€€€€r1   r:   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>¦  s0   ø€ Ø!2Ø"+Ô"4Ø$Ø"+Ô"4Ø%9Ð<QÑ%QØ'Ø/ð
ð 
€ r3   )rU   Úsortedrw   r   r   Úwrite_with_template)rÂ   r   r    r!   r$   rÃ   rÄ   rÅ   rÖ   r×   rÏ   rØ   s    ` ` ```@@@@r1   Ú"gen_dispatchkey_nativefunc_headersrÛ   x  s0  øøøøøøøøø€ ð ÐÝÐ:Ñ;Ô;Ð;àKð õ "ÝÝðð ð ð ð ð )ñ	ô ñ	
ô 	
ñ	ô 	Ðõ #ÝÝðð ð ð ð ð
 )ñô ñ		
ô 		
ñô Ðõ   Ñ.Ô.€IØ×ÒØÐ2Ð2Ð2Ø&ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ñô ð ð ð r3   FTr¼   rK   Úselectorr   Úbuild_in_treerL   Úper_operator_headersÚeager_registrationc                ó„  ‡ ‡‡‡‡‡	‡‡‡‡‡‡— |› d|› d�g}|r d                      d„ |D ¦   «         ¦  «        Šnd                      d„ |D ¦   «         ¦  «        Š‰€t          d¦  «        ‚|‰         Št          t          t	          j        ‰t          j        ‰dd‰› d¬	¦  «        ‰¦  «        ¦  «        }dŠt          d
¬¦  «        ŠdŠdŠ|r't          d¦  «        }| 
                    ‰|¬¦  «        Šn't          d¦  «        }| 
                    |
‰|¬¦  «        Š‰                      d‰› d�dˆˆˆˆˆˆ ˆˆˆˆ	ˆˆfd„¦  «         d S )Nú/rÍ   rœ   c              3  ó"   K  — | ]
}d |› d�V — ŒdS )z
#include <ú>Nr*   ©r/   Úhs     r1   ú	<genexpr>z/gen_dispatcher_registrations.<locals>.<genexpr>Å  ó.   è è € Ð0TÐ0TÀqÐ1B¸aÐ1BÐ1BÐ1BÐ0TÐ0TÐ0TÐ0TÐ0TÐ0Tr3   c              3  ó"   K  — | ]
}d |› d�V — ŒdS )z
#include "ú"Nr*   rä   s     r1   ræ   z/gen_dispatcher_registrations.<locals>.<genexpr>Ç  rç   r3   rÇ   FT©ÚrocmrC   Úclass_method_nameÚskip_dispatcher_op_registrationÚat)Únamespace_strr—   zOTORCH_LIBRARY_IMPL(aten, $dispatch_key, m) {
    $dispatch_registrations_body
})rK   Údispatch_registrations_bodyzõTORCH_API void Register${backend_name}${dispatch_key}NativeFunctions();
TORCH_API void Register${backend_name}${dispatch_key}NativeFunctions() {
    static auto m = MAKE_TORCH_LIBRARY_IMPL(aten, $dispatch_key);
    $dispatch_registrations_body
})rÅ   rK   rð   ÚRegisterz.cppzRegisterDispatchKey.cppc                 óö   •— d‰‰	sdnd‰‰                      ¦   «         t          j        ‰ ‰	d¬¦  «        t          j        ‰ ¦  «        ‰                     dˆ ˆˆˆˆˆˆ
ˆfd„¦  «                             ‰¦  «        dœS )Nr—   z#include <ATen/Functions.h>F)rÞ   rë   zRegisterDispatchDefinitions.inic                 óÎ   •— ‰j         ‰j        ‰‰‰                     ¦   «         dt          t	          t          j        ‰ t          j        ‰dd‰› d¬¦  «        ‰¦  «        ¦  «        dœS )Nr—   FTrê   )Úns_prologueÚns_epilogueÚ"static_init_dispatch_registrationsÚdeferred_dispatch_registrationsÚdispatch_namespaceÚdispatch_namespaced_definitionsÚdispatch_anonymous_definitions)	rÔ   rÕ   Úlowerr7   r   rÊ   ÚRegisterDispatchKeyr   ÚANONYMOUS_DEFINITION)Úbackend_indexr   r÷   rK   r$   rØ   rÜ   rö   s   €€€€€€€€r1   r:   z@gen_dispatcher_registrations.<locals>.<lambda>.<locals>.<lambda>
  s�   ø€ Ø#,Ô#5Ø#,Ô#5Ø:\Ø7VØ*6×*<Ò*<Ñ*>Ô*>Ø79Ý6:Ý!Ý Ô4Ø -Ý &Ô ;Ø (Ø%*Ø'+Ø5?°/Ø@Eðñ ô ð 5ñô ñ7ô 7ðð € r3   )Úextra_cuda_headersÚexternal_backend_headersÚops_headersr   rø   Údispatch_headersÚdispatch_helpersÚdispatch_definitions)rû   rÊ   Úgen_registration_headersÚgen_registration_helpersÚsubstitute_with_templateÚsplit)rþ   r   r÷   rK   Úexternal_backend_headers_strrÂ   r$   ÚnewlinerØ   rÞ   rÜ   rö   s   €€€€€€€€€€€€r1   r:   z.gen_dispatcher_registrations.<locals>.<lambda>ü  sÀ   ø€ Ø"$Ø(Dà'ðÐ8Ð8àØ'Ø".×"4Ò"4Ñ"6Ô"6Ý $Ô =ØÐ4HÈuð!ñ !ô !õ !%Ô =¸mÑ LÔ LØ$&×$?Ò$?Ø1ðð ð ð ð ð ð ð ð ð ð ñ%ô %÷0 Še�G‰nŒnðI%
ð %
€ r3   )r{   rU   r7   r   rÊ   rü   r   ÚREGISTRATIONr   r
   Ú
substituterÚ   )rÂ   r¼   r   r!   r$   rÃ   rK   rÜ   rÝ   rÞ   rÅ   rß   Úheadersrð   Ústatic_templateÚdeferred_templaterþ   r÷   r	  r
  rØ   rö   s   ` ` ` `` `      @@@@@@r1   Úgen_dispatcher_registrationsr  ²  s  øøøøøøøøøøøø€ ð  Ð?Ð?Ð,Ð?Ð?Ð?ð€Gð ð UØ'+§y¢yÐ0TÐ0TÈGÐ0TÑ0TÔ0TÑ'TÔ'TÐ$Ð$à'+§y¢yÐ0TÐ0TÈGÐ0TÑ0TÔ0TÑ'TÔ'TÐ$àÐÝÐ:Ñ;Ô;Ð;Ø# LÔ1€Må"&ÝÝÔ$ØÝÔ#ØØØØ%/ /Ø05ðñ ô ð %ñ	
ô 	
ñ#ô #Ðð €GÝ¨dÐ3Ñ3Ô3€IØ&(Ð#Ø)+Ð&Øð 
Ý&ðñ
ô 
ˆð .=×-GÒ-GØ%Ø(Cð .Hñ .
ô .
Ð*Ð*õ
 )ðñ
ô 
Ðð +<×*FÒ*FØ%Ø%Ø(Cð +Gñ +
ô +
Ð'ð ×ÒØ%�<Ð%Ð%Ð%Ø!ð%	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ð %	
ñ)ô )ð )ð )ð )r3   r»   r½   r¾   ú
str | Nonec                óð  ‡‡— t          t          ¦  «                             ¦   «         j        j        }t          j                             |d¦  «        }t          j                             |¦  «        s t          j                             |d¦  «        }t          j                             |d¦  «        Šdˆˆfd„} ||¦  «        }t          j                             |d	¦  «        }t          j                             |d
¦  «        }	t          ||	¦  «        }
|
j	        |
j
        }}t          |¦  «        }t          | ||¦  «        }|j        }|j        }|j        }|j        }|j
        }t#          j        ¦   «         }|€d S |€||                              ¦   «         }|€t)          d¦  «        ‚|�t+          ||||||¦  «         t-          |||||||¦  «         |€|gn||gD ]}t/          ||||||||¦  «         Œd S )Nzaten/srcztorchgen/packagedzATen/templatesÚinstall_dirr#   r'   r   c                ó(   •— t          | ‰‰¬¦  «        S )N)r  Útemplate_dirr½   )r   )r  r½   r  s    €€r1   Úmake_file_managerzrun.<locals>.make_file_manager0  s!   ø€ ÝØ#°,Èð
ñ 
ô 
ð 	
r3   z!ATen/native/native_functions.yamlzATen/native/tags.yamlrÇ   )r  r#   r'   r   )r   Ú__file__ÚabsoluteÚparentÚosÚpathr{   Úexistsr   r†   r!   r   r…   r   r   r    r   r   Úget_nop_selectorÚnative_function_class_namerU   r±   rÛ   r  )r»   r¼   r½   r¾   ÚrootÚ
common_dirr  rÂ   Únative_yaml_pathÚtags_yaml_pathÚparsed_yamlr†   r!   r$   Úparsed_backend_yamlr   r   r    r   rÜ   rK   r  s     `                  @r1   rº   rº   %  sN  øø€ õ •‰>Œ>×"Ò"Ñ$Ô$Ô+Ô2€DÝ”—’˜d JÑ/Ô/€JÝŒ7�>Š>˜*Ñ%Ô%ð =Ý”W—\’\ $Ð(;Ñ<Ô<ˆ
å”7—<’< 
Ð,<Ñ=Ô=€Lð
ð 
ð 
ð 
ð 
ð 
ð 
ð
 
Ð	˜:Ñ	&Ô	&€Bå”w—|’| JÐ0SÑTÔTÐÝ”W—\’\ *Ð.EÑFÔF€NÝ#Ð$4°nÑEÔE€KàÔ$ØÔ#ð &Ðõ  <Ð<LÑMÔMÐÝ,ØÐ-¨ñô Ðð &Ô1€KØ&Ô3€LØ'Ô5€MØ$Ô/€JØ)Ô9€OåÔ0Ñ2Ô2€HàÐàˆàÐð
 % [Ô1×LÒLÑNÔNˆ
ØÐÝÐ:Ñ;Ô;Ð;àÐÝ ØØØØØØñ	
ô 	
ð 	
õ 'Ø
ØØØØ ØØñô ð ð &Ð-ˆˆˆ°KÀÐ3Nð
ð 
ˆõ 	%ØØØØØ$ØØØñ		
ô 		
ð 		
ð 		
ð
ð 
r3   Ú__main__)r"   r#   r$   r%   r!   r&   r'   r   r5   )r†   r‡   r!   r&   r   r   r   rˆ   r   r#   r‰   r#   r@   rŠ   r'   r‹   )r'   r‹   )r—   )rÂ   r   r   r#   r    r#   r!   r&   r$   r%   rÃ   r   rÄ   rˆ   rÅ   r#   r'   r‹   )FFr—   T)rÂ   r   r¼   r#   r   r#   r!   r&   r$   r%   rÃ   r   rK   r   rÜ   r   rÝ   rL   rÞ   rL   rÅ   r#   rß   rL   r'   r‹   )
r»   r#   r¼   r#   r½   rL   r¾   r  r'   r‹   )7Ú
__future__r   r¶   r  r¡   Úcollectionsr   r   r   Úpathlibr   Útypingr   rr   Útorchgen.api.dispatcherÚapirV   Útorchgen.destrÊ   Útorchgen.api.typesr	   Útorchgen.code_templater
   Útorchgen.contextr   Útorchgen.genr   r   Útorchgen.modelr   r   r   r   r   r   Ú!torchgen.selective_build.selectorr   Útorchgen.utilsr   r   r   r   r   Útorchgen.yaml_utilsr   Úcollections.abcr   r   r…   r±   rÁ   rÛ   r  rº   Ú__name__r*   r3   r1   ú<module>r7     sÀ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à €€€à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø /Ð /Ð /Ð /Ð /Ð /Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ *Ð *Ð *Ð *Ð *Ð *ð ð )Ø(Ð(Ð(Ð(Ð(Ð(ð
  �ZØØUÐUÐUñô Ð ð]ð ]ð ]ð ]ðN /3ðR6ð R6ð R6ð R6ð R6ðjUð Uð Uð Uð@ ð7ð 7ð 7ð 7ð 7ðH  Ø!&ØØ#ðpð pð pð pð pðh OSðR
ð R
ð R
ð R
ð R
ðj ˆzÒÐØ€D�F„F€F€F€Fð Ðr3   