ó
    "Eñi©  ã                   óÈ   • % S SK r S SKJr  S SKrS SKJr  S SKJrJrJ	r	  S SK
Jr  Sq\R                  S-  \S'   \ R                  " S5      S 5       r " S	 S
\	5      rS rS rg)é    N)ÚOptional)Ú_len_torch_function_stack)Ú	_pop_modeÚ
_push_modeÚTorchFunctionMode©Úcontext_decoratorÚCURRENT_DEVICEé   c                  óÂ  • 1 [         R                  i[         R                  i[         R                  i[         R                  i[         R
                  i[         R                  i[         R                  i[         R                  i[         R                  i[         R                  R                  i[         R                  R                  i[         R                  i[         R                  i[         R                  i[         R                   i[         R"                  i[         R$                  i[         R&                  R(                  i[         R*                  i[         R,                  i[         R.                  i[         R0                  i[         R2                  i[         R4                  i[         R6                  i[         R8                  i[         R:                  i[         R<                  i[         R>                  i[         R@                  i[         RB                  i[         RD                  i[         RF                  i[         RH                  i[         RJ                  i[         RL                  i$ ©N)'ÚtorchÚemptyÚempty_permutedÚempty_stridedÚempty_quantizedÚonesÚarangeÚbartlett_windowÚblackman_windowÚeyeÚfftÚfftfreqÚrfftfreqÚfullÚhamming_windowÚhann_windowÚkaiser_windowÚlinspaceÚlogspaceÚnestedÚnested_tensorÚrandÚrandnÚrandintÚrandpermÚrangeÚsparse_coo_tensorÚsparse_compressed_tensorÚsparse_csr_tensorÚsparse_csc_tensorÚsparse_bsr_tensorÚsparse_bsc_tensorÚtril_indicesÚtriu_indicesÚzerosÚasarrayÚtensorÚ	as_tensorÚscalar_tensor© ó    ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/utils/_device.pyÚ_device_constructorsr8      sF  € ð)ä�‰ð)ô 	×Ñð)ô 	×Ñð	)ô
 	×Ñð)ô 	�
‰
ð)ô 	�‰ð)ô 	×Ñð)ô 	×Ñð)ô 	�	‰	ð)ô 	�	‰	×Ñð)ô 	�	‰	×Ñð)ô 	�
‰
ð)ô 	×Ñð)ô 	×Ñð)ô  	×Ñð!)ô" 	�‰ð#)ô$ 	�‰ð%)ô& 	�‰×"Ñ"ð')ô, 	�
‰
ð-)ô. 	�‰ð/)ô0 	�‰ð1)ô2 	�‰ð3)ô4 	�‰ð5)ô6 	×Ñð7)ô8 	×&Ñ&ð9)ô: 	×Ñð;)ô< 	×Ñð=)ô> 	×Ñð?)ô@ 	×ÑðA)ôB 	×ÑðC)ôD 	×ÑðE)ôF 	�‰ðG)ôH 	�‰ðI)ôL 	�‰ðM)ôN 	�‰ðO)ôP 	×ÑðQ)ð )r6   c                   ó4   • \ rS rSrSS jrS rS rS	S jrSrg)
ÚDeviceContexté=   Nc                 óH   • [         R                  " U5      U l        S U l        g r   )r   ÚdeviceÚ	prev_mode)Úselfr=   s     r7   Ú__init__ÚDeviceContext.__init__>   s   € ä—l’l 6Ó*ˆŒØ26ˆ�r6   c                 ó  • [         U l        U R                  q [        [	        5       5       Vs/ s H  n[        5       PM     nn[        U 5        [        U5       H+  n[        U[        5      (       a  X0l
        M   [        U5        M-     g s  snf r   )r
   Ú
old_devicer=   r'   r   r   r   ÚreversedÚ
isinstancer:   r>   )r?   Ú_Ú	cur_stackÚmodes       r7   Ú	__enter__ÚDeviceContext.__enter__C   sl   € ä(ˆŒØŸ™ˆô
 +0Ô0IÓ0KÔ*LÓMÒ*L Q”Y–[Ñ*Lˆ	ÐMä�4Ôä˜YÖ'ˆDÜ˜$¤×.Ñ.Ø!%–ä˜4Ö ò	 (ùò	 Ns   ­B	c                 ó¾  • U R                   q/ n[        [        5       S-
  5       H>  n[	        5       n[        U[        5      (       a  [        S5      eUR                  U5        M@     [        5       S:”  a*  [	        5       n[        U[        5      (       d  [        S5      eU R                  b  [        U R                  5        [        U5       H  n[        U5        M     g )Nr   z@Found nested DeviceContext on the mode stack where none expectedr   z8Expected a DeviceContext at the bottom of the mode stack)rC   r
   r'   r   r   rE   r:   ÚAssertionErrorÚappendr>   r   rD   )r?   Úexc_typeÚexc_valÚexc_tbrG   rF   rH   s          r7   Ú__exit__ÚDeviceContext.__exit__U   s¾   € àŸ™ˆØˆ	ô Ô0Ó2°QÑ6Ö7ˆAÜ“;ˆDÜ˜$¤×.Ñ.Ü$ØVóð ð ×Ñ˜TÖ"ñ 8ô %Ó&¨Ó*Ü“;ˆDÜ˜d¤M×2Ñ2Ü$ØNóð ð �>‰>Ñ%Ü�t—~‘~Ô&ä˜YÖ'ˆDÜ�tÖò (r6   c                 ó†   • U=(       d    0 nU[        5       ;   a!  UR                  S5      c  U R                  US'   U" U0 UD6$ )Nr=   )r8   Úgetr=   )r?   ÚfuncÚtypesÚargsÚkwargss        r7   Ú__torch_function__Ú DeviceContext.__torch_function__p   sC   € Ø—˜2ˆØÔ'Ó)Ó)¨f¯j©j¸Ó.BÑ.JØ#Ÿ{™{ˆF�8ÑÙ�TÐ$˜VÑ$Ð$r6   )r=   rC   r>   )ÚreturnN)r5   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r@   rI   rQ   rY   Ú__static_attributes__r5   r6   r7   r:   r:   =   s   † ô7ò
!ò$÷6%r6   r:   c                 ó$   ^ • [        U 4S jU5      $ )Nc                  ó   >• T $ r   r5   ©r=   s   €r7   Ú<lambda>Ú"device_decorator.<locals>.<lambda>y   s   ø€ ¡Vr6   r   )r=   rU   s   ` r7   Údevice_decoratorrf   x   s   ø€ Üœ^¨TÓ2Ð2r6   c                 ó   ^ • U 4S j$ )zà
Set the default device inside of the wrapped function by decorating it with this function.

If you would like to use this as a context manager, use device as a
context manager directly, e.g., ``with torch.device(device)``.
c                 óD   >• [        [        R                  " T5      U 5      $ r   )rf   r   r=   )rU   r=   s    €r7   rd   Úset_device.<locals>.<lambda>ƒ   s   ø€ Ô(¬¯ª°fÓ)=¸tÔDr6   r5   rc   s   `r7   Ú
set_devicerj   |   s   ø€ ô EÐDr6   )Ú	functoolsÚtypingr   r   Útorch._Cr   Útorch.overridesr   r   r   Útorch.utils._contextlibr	   r
   r=   Ú__annotations__Ú	lru_cacher8   r:   rf   rj   r5   r6   r7   Ú<module>rr      sh   ðä Ý ã Ý .ß DÑ DÝ 5ð '+€�—‘˜tÑ#Ó *ð ×Ò�QÓñ*ó ð*ô\7%Ð%ô 7%òv3óEr6   