Ë
    [^(hdZ  ã                   ó2  — d dl Z d dlZd dlZd dl mZ d dlmZ d dlmZ d dlZd dl	m
Z
 	 d dlZ  G d„ d«      Z G d„ d	e«      Z e«       Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd d„Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&y# e$ r Y Œgw xY w)!é    N)Ú	reduction)Úregister_after_fork)ÚUnion)Úcheck_serializing_named_tensorc                   óF   — e Zd ZdZddgZd„ Zed„ «       Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚStorageWeakRefzŽA weak reference to a Storage.

    The cdata member is a Python number containing the integer representation of
    the Storage pointer.
    ÚcdataÚ_free_weak_refc                 ól   — |j                  «       | _        t        j                  j                  | _        y ©N)Ú	_weak_refr	   ÚtorchÚStorager
   )ÚselfÚstorages     ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/multiprocessing/reductions.pyÚ__init__zStorageWeakRef.__init__!   s&   € Ø×&Ñ&Ó(ˆŒ
ô $Ÿm™m×:Ñ:ˆÕó    c                 ót   — | j                  | «      }||_        t        j                  j                  |_        |S r   )Ú__new__r	   r   r   r
   )Úclsr	   Úinstances      r   Úfrom_weakrefzStorageWeakRef.from_weakref'   s.   € à—;‘;˜sÓ#ˆØˆŒÜ"'§-¡-×">Ñ">ˆÔØˆr   c                 óT   — t         j                  j                  | j                  «      S r   )r   r   Ú_expiredr	   ©r   s    r   ÚexpiredzStorageWeakRef.expired.   s   € Ü�}‰}×%Ñ% d§j¡jÓ1Ð1r   c                 ó:   — | j                  | j                  «       y r   )r
   r	   r   s    r   Ú__del__zStorageWeakRef.__del__1   s   € Ø×Ñ˜DŸJ™JÕ'r   c                 ó   — | j                   S r   )r	   r   s    r   Ú__hash__zStorageWeakRef.__hash__4   s   € Ø�z‰zÐr   c                 ód   — t        | «      t        |«      k(  ry| j                  |j                  k(  S )NT)Úidr	   )r   Úothers     r   Ú__eq__zStorageWeakRef.__eq__7   s(   € Üˆd‹8”r˜%“yÒ ØØ�z‰z˜UŸ[™[Ñ(Ð(r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   Úclassmethodr   r   r   r!   r%   © r   r   r   r      sA   „ ñð Ð*Ð+€Iò;ð ñó ðò2ò(òó)r   r   c                   ó0   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zy)	ÚSharedCachez:Dictionary from multiprocessing handles to StorageWeakRef.Nc                 óf   — d| _         | j                  «        t        | t        j                  «       y )Né€   )ÚlimitÚ_after_forkr   r.   r   s    r   r   zSharedCache.__init__@   s)   € ð ˆŒ
ð 	×ÑÔÜ˜D¤+×"9Ñ"9Õ:r   c                 ó6   — t        j                  «       | _        y r   )Ú	threadingÚLockÚlockr   s    r   r2   zSharedCache._after_forkJ   s   € Ü—N‘NÓ$ˆ�	r   c                 ór   — | j                   5  t        j                  | |«      cd d d «       S # 1 sw Y   y xY wr   )r6   ÚdictÚget)r   Úkeys     r   r9   zSharedCache.getM   s,   € Ø�Y‰Yñ 	'Ü—8‘8˜D #Ó&÷	'÷ 	'ò 	'ús   �-­6c                 óÄ   — | j                   5  t        j                  | ||«       t        | «      | j                  kD  r| j                  «        d d d «       y # 1 sw Y   y xY wr   )r6   r8   Ú__setitem__Úlenr1   Úfree_dead_references)r   r:   Ústorage_refs      r   r<   zSharedCache.__setitem__Q   sL   € Ø�Y‰Yñ 	,Ü×Ñ˜T 3¨Ô4Ü�4‹y˜4Ÿ:™:Ò%Ø×)Ñ)Ô+÷	,÷ 	,ñ 	,ús   �A AÁAc                 ó¤   — d}t        | j                  «       «      D ]  \  }}|j                  «       r| |= Œ|dz  }Œ  t        d|dz  «      | _        y )Nr   é   r0   é   )ÚlistÚitemsr   Úmaxr1   )r   Úliver:   r?   s       r   r>   z SharedCache.free_dead_referencesW   sV   € ØˆÜ $ T§Z¡Z£\Ó 2ò 	ÑˆC�Ø×"Ñ"Ô$Ø˜‘Ià˜‘	‘ð		ô
 ˜˜d Q™hÓ'ˆ�
r   )ÚreturnN)	r&   r'   r(   r)   r   r2   r9   r<   r>   r,   r   r   r.   r.   =   s   „ ÙDó;ò%ò'ò,ó(r   r.   c                 óV   — t         j                  j                  j                  | |«      S r   )r   ÚcudaÚEventÚfrom_ipc_handle)ÚdeviceÚhandles     r   Úrebuild_eventrN   e   s   € Ü�:‰:×Ñ×+Ñ+¨F°FÓ;Ð;r   c                 óJ   — | j                  «       }t        | j                  |ffS r   )Ú
ipc_handlerN   rL   )ÚeventrM   s     r   Úreduce_eventrR   i   s$   € Ø×ÑÓ€FÜ˜EŸL™L¨&Ð1Ð2Ð2r   c                 ó  — |\  }}}}t         j                  j                  ||||«      }| t         j                  j                  j
                  k(  r-t         j                  j                  j                  ||¬«      }|S ||_        |S )N©Úrequires_grad)r   Ú_utilsÚ_rebuild_tensorÚnnÚ	parameterÚ	ParameterrU   )r   r   ÚmetadataÚstorage_offsetÚsizeÚstriderU   Úts           r   Úrebuild_tensorr`   n   sx   € Ø2:Ñ/€N�D˜& -Ü�‰×$Ñ$ W¨n¸dÀFÓK€AØ
Œe�h‰h× Ñ ×*Ñ*Ò*ô �H‰H×Ñ×(Ñ(¨¸-Ð(ÓHˆð €Hð (ˆŒØ€Hr   c                 ó^  — t        j                  |d¬«      }t        j                  ||d¬«      }t         j                  j	                  ||||«      }	| t         j
                  j                  j                  k(  r-t         j
                  j                  j                  |	|¬«      }	|	S ||	_        |	S )NÚmeta©rL   T©Úwrap_storageÚdtypeÚ	_internalrT   )	r   ÚUntypedStorageÚTypedStoragerV   rW   rX   rY   rZ   rU   )
Ú
tensor_clsÚtensor_sizeÚtensor_strideÚtensor_offsetrf   Ústorage_size_bytesrU   Úuntyped_storageÚtyped_storager_   s
             r   Úrebuild_meta_tensorrq   {   s    € ô ×*Ñ*Ð+=ÀfÔM€Oä×&Ñ&Ø$¨E¸Tô€Mô 	�‰×$Ñ$ØØØØó		€Að ”U—X‘X×'Ñ'×1Ñ1Ò1ô �H‰H×Ñ×(Ñ(¨¸-Ð(ÓHˆð €Hð (ˆŒà€Hr   c           
      ó–  — |�|dk(  r |d||d¬«      }not        |||	f«      }|€Kt        j                  j                  «        |j	                  ||||	||||«      }t        |«      t        ||	f<   n|j                  |||¬«       t        |t        j                  «      r|n|j                  }t        j                  j                  t        j                  j                  ||d¬«      |||«      }| t        j                  j                   j"                  k(  r-t        j                  j                   j#                  ||
¬«      }|S |
|_        |S )Nr   T)rf   rL   rg   rc   rd   rT   )Ústorage_from_cacher   rI   Ú
_lazy_initÚ_new_shared_cudar   Úshared_cacheÚ_release_ipc_counterÚ
isinstancerh   Ú_untyped_storagerV   rW   r   ri   rX   rY   rZ   rU   )rj   rk   rl   rm   Ústorage_clsrf   Ústorage_deviceÚstorage_handlern   Ústorage_offset_bytesrU   Úref_counter_handleÚref_counter_offsetÚevent_handleÚevent_sync_requiredr   Ú_storager_   s                     r   Úrebuild_cuda_tensorrƒ   ›   s^  € ð$ ÐÐ!3°qÒ!8Ù˜a u°^ÈtÔT‰ä$Ø˜.Ð*>Ð?ó
ˆð ˆ?Ü�J‰J×!Ñ!Ô#Ø!×2Ñ2ØØØ"Ø$Ø"Ø"ØØ#ó	ˆGô DRØóDŒL˜.Ð*>Ð?Ò@ð
 ×,Ñ,Ø"Ð$6¸~ð -ô ô �gœu×3Ñ3Ô4ñ 	à×%Ñ%ð ô 	�‰×$Ñ$Ü�‰×"Ñ"°ÀÐQUÐ"ÓVØØØó		€Að ”U—X‘X×'Ñ'×1Ñ1Ò1ô �H‰H×Ñ×(Ñ(¨¸-Ð(ÓHˆð €Hð (ˆŒà€Hr   c                 ó  — | j                   r| j                  st        d«      ‚t        | «       t        j
                  j                  j                  | «       ddlm	} | j                  rt        | |«      st        | «      S | j                  t        j                  t        j                  t        j                   t        j"                  t        j$                  hv rt'        | «      S | j)                  «       }|j*                  j,                  j.                  dk(  r”|j1                  «       \  }}}}}}}	}
| j3                  «       }t5        |«      t6        |<   t8        t/        | «      | j;                  «       | j=                  «       |t/        |«      | j>                  ||||| j                   |||	|
ffS |j*                  j,                  j.                  dk(  rrt@        t/        | «      | j;                  «       | j=                  «       | j3                  «       | j>                  | jC                  «       j;                  «       | j                   ffS | j3                  «       | j;                  «       | j=                  «       | j                   f}tD        t/        | «      ||ffS )NzøCowardly refusing to serialize non-leaf tensor which requires_grad, since autograd does not support crossing process boundaries.  If you just want to transfer the data, call detach() on the tensor before serializing (e.g., putting it on the queue).r   )ÚNestedTensorrI   rb   )#rU   Úis_leafÚRuntimeErrorr   r   ÚutilsÚhooksÚwarn_if_has_hooksÚ$torch.nested._internal.nested_tensorr…   Ú	is_nestedrx   Úreduce_nested_tensorÚlayoutÚ
sparse_cooÚ
sparse_csrÚ
sparse_bsrÚ
sparse_cscÚ
sparse_bscÚreduce_sparse_tensorÚ_typed_storagery   rL   ÚtypeÚ_share_cuda_r\   r   rv   rƒ   r]   r^   rf   rq   ro   r`   )Útensorr…   r   rL   rM   rn   r}   r~   r   r€   r�   rm   r[   s                r   Úreduce_tensorr™   ß   sD  € Ø×Ò F§N¢NÜðBó
ð 	
ô # 6Ô*Ü	‡K�K×Ñ×'Ñ'¨Ô/õ~ Bà×Ò¤
¨6°<Ô @Ü# FÓ+Ð+à‡}�}Ü×ÑÜ×ÑÜ×ÑÜ×ÑÜ×Ñðñ ô $ FÓ+Ð+à×#Ñ#Ó%€Gà×Ñ×&Ñ&×+Ñ+¨vÒ5ð × Ñ Ó"ñ		
ØØØØ ØØØØà×-Ñ-Ó/ˆÜ-¨gÓ6Œ�VÑô  ä�V“Ø—‘“Ø—‘“ØÜ�W“Ø—‘ØØØ"Ø$Ø×$Ñ$Ø"Ø"ØØ#ðð
ð 	
ð( 
×	!Ñ	!×	(Ñ	(×	-Ñ	-°Ò	7ää�V“Ø—‘“Ø—‘“Ø×%Ñ%Ó'Ø—‘Ø×&Ñ&Ó(×-Ñ-Ó/Ø×$Ñ$ðð
ð 	
ð 	×ÑÓØ�‰‹Ø�‰‹Ø×Ñð	€Hô œT &›\¨7°HÐ=Ð>Ð>r   c                 óZ   —  | |Ž } ||Ž }	 ||Ž }
 ||Ž }t        j                  ||	|
|«      S r   )r   Ú_nested_view_from_buffer_copy)Úrebuild_buffer_funcÚrebuild_buffer_argsÚrebuild_sizes_funcÚrebuild_sizes_argsÚrebuild_strides_funcÚrebuild_strides_argsÚrebuild_offsets_funcÚrebuild_offsets_argsÚbufferÚsizesÚstridesÚoffsetss               r   Úrebuild_nested_tensorr¨   “  sG   € ñ !Ð"5Ð6€FÙÐ 2Ð3€EÙ"Ð$8Ð9€GÙ"Ð$8Ð9€GÜ×.Ñ.¨v°u¸gÀwÓOÐOr   c           	      ó  — t        | j                  «       «      \  }}t        | j                  «       «      \  }}t        | j                  «       «      \  }}t        | j	                  «       «      \  }}t
        ||||||||ffS r   )r™   ÚvaluesÚ_nested_tensor_sizeÚ_nested_tensor_stridesÚ_nested_tensor_storage_offsetsr¨   )	Úntrœ   r�   rž   rŸ   r    r¡   r¢   r£   s	            r   r�   r�   ¤  s›   € Ü/<¸R¿Y¹Y»[Ó/IÑ,ÐÐ,Ü-:¸2×;QÑ;QÓ;SÓ-TÑ*ÐÐ*Ü1>Ø
×!Ñ!Ó#ó2Ñ.ÐÐ.ô 2?Ø
×)Ñ)Ó+ó2Ñ.ÐÐ.ô
 	àØØØØ Ø Ø Ø ð		
ðð r   c                 óH   —  | |Ž } ||Ž }t        j                  ||||¬«      S )N)Úis_coalesced)r   Úsparse_coo_tensor)Úrebuild_indices_funcÚrebuild_indices_argsÚrebuild_values_funcÚrebuild_values_argsÚshaper°   Úindicesrª   s           r   Úrebuild_sparse_coo_tensorr¸   ½  s1   € ñ #Ð$8Ð9€GÙ Ð"5Ð6€FÜ×"Ñ" 7¨F°EÈÔUÐUr   c                 óT   —  | |Ž } ||Ž }	 ||Ž }
t        j                  ||	|
||¬«      S )N)rŽ   )r   Úsparse_compressed_tensor)Úrebuild_compressed_indices_funcÚrebuild_compressed_indices_argsÚrebuild_plain_indices_funcÚrebuild_plain_indices_argsr´   rµ   r¶   rŽ   Úcompressed_indicesÚplain_indicesrª   s              r   Ú rebuild_sparse_compressed_tensorrÁ   Ê  sH   € ñ 9Ø	(ðÐñ /Ð0JÐK€MÙ Ð"5Ð6€FÜ×)Ñ)Ø˜M¨6°5Àôð r   c           	      ó  — | j                   t        j                  u r^t        | j	                  «       «      \  }}t        | j                  «       «      \  }}t        ||||| j                  | j                  «       ffS | j                   t        j                  t        j                  hv r!| j                  «       }| j                  «       }nb| j                   t        j                  t        j                  hv r!| j                  «       }| j!                  «       }nt#        | j                   «      ‚t        |«      \  }}t        |«      \  }	}
t        | j%                  «       «      \  }}t&        |||	|
||| j                  | j                   ffS r   )rŽ   r   r�   r™   Ú_indicesÚ_valuesr¸   r¶   r°   r�   r‘   Úcrow_indicesÚcol_indicesr’   r“   Úccol_indicesÚrow_indicesÚNotImplementedErrorrª   rÁ   )Úsparser²   r³   r´   rµ   r¿   rÀ   r»   r¼   r½   r¾   s              r   r”   r”   Þ  sq  € Ø‡}�}œ×(Ñ(Ñ(Ü5BÀ6Ç?Á?ÓCTÓ5UÑ2ÐÐ2Ü3@ÀÇÁÓAQÓ3RÑ0ÐÐ0ä%à$Ø$Ø#Ø#Ø—‘Ø×#Ñ#Ó%ðð

ð 
	
ð �=‰=œU×-Ñ-¬u×/?Ñ/?Ð@Ñ@Ø!'×!4Ñ!4Ó!6ÐØ"×.Ñ.Ó0‰MØ�]‰]œu×/Ñ/´×1AÑ1AÐBÑBØ!'×!4Ñ!4Ó!6ÐØ"×.Ñ.Ó0‰Mä% f§m¡mÓ4Ð4ô Ð,Ó-ñ	
Ø+Ø+äANØóB
Ñ>Ð"Ð$>ô 4AÀÇÁÃÓ3QÑ0ÐÐ0ä,à/Ø/Ø*Ø*Ø#Ø#Ø—‘Ø—‘ð	ð
ð 	
r   c                 ó\   — t        j                  | «      }|j                  |j                  fS r   )ÚosÚfstatÚst_inoÚst_dev)ÚfdÚstats     r   Úfd_idrÒ     s$   € ô �8‰8�B‹<€DØ�K‰K˜Ÿ™Ð%Ð%r   c                 ó„   — t         j                  |«      }|€y t        j                  j	                  |j
                  «      S r   )rv   r9   r   rh   Ú_new_with_weak_ptrr	   )r   r:   r?   s      r   rs   rs     s8   € Ü×"Ñ" 3Ó'€KØÐØÜ×Ñ×2Ñ2°;×3DÑ3DÓEÐEr   c                 ó<  — |j                  «       }	 t        | t        |«      «      }|�|t        j                  |«       S | j                  ||«      }t        |«      t        t        |«      <   |t        j                  |«       S # t        j                  |«       w xY wr   )Údetachrs   rÒ   rÌ   ÚcloseÚ_new_shared_fd_cpur   rv   )r   Údfr]   rÐ   r   s        r   Úrebuild_storage_fdrÚ     sy   € Ø	�‰‹€BðÜ$ S¬%°«)Ó4ˆØÐØô
 	�‰��ð	 ×(Ñ(¨¨TÓ2ˆÜ"0°Ó"9Œ”U˜2“YÑØä
�‰��øŒ�‰��ús   ’B Á .B ÂBc                 ó€  — t        | |«      }|�|j                  «       S |€"t        j                  j	                  |||«      }n[|t        j
                  j                  |«      z  }t        j                  j	                  |||«      }t        j                  ||d¬«      }t        |«      t        |<   |j                  «       S ©NTrd   )
rs   Ú_shared_decrefr   rh   Ú_new_shared_filename_cpurV   Ú_element_sizeri   r   rv   )r   ÚmanagerrM   r]   rf   r   Ú	byte_sizero   s           r   Úrebuild_storage_filenamerâ   )  s¸   € Ü?QØˆVó@€Gð ÐØ×%Ñ%Ó'Ð'Ø€}Ü×&Ñ&×?Ñ?ÀÈÐQUÓV‰àœ5Ÿ<™<×5Ñ5°eÓ<Ñ<ˆ	ä× Ñ ×9Ñ9¸'À6È9ÓUð 	ô ×$Ñ$Ø(°Àô
ˆô *¨'Ó2„L�ÑØ×!Ñ!Ó#Ð#r   c                 ó   —  | «       S r   r,   )r   s    r   Úrebuild_storage_emptyrä   =  s	   € Ù‹5€Lr   c                 óF   — t         j                  j                  | |d¬«      S rÜ   )r   r   ri   )r   rf   s     r   Úrebuild_typed_storageræ   A  s   € Ü�=‰=×%Ñ%°7À%ÐSWÐ%ÓXÐXr   c                 ó>   — t         | j                  | j                  ffS r   )ræ   ry   rf   ©r   s    r   Úreduce_typed_storageré   F  s   € Ü! G×$<Ñ$<¸g¿m¹mÐ#LÐMÐMr   c                 ó   —  || d¬«      S )NT)re   rg   r,   )r   Ústorage_types     r   Úrebuild_typed_storage_childrì   J  s   € Ù W¸Ô=Ð=r   c                 ó<   — t         | j                  t        | «      ffS r   )rì   ry   r–   rè   s    r   Úreduce_typed_storage_childrî   O  s   € Ü'¨'×*BÑ*BÄDÈÃMÐ)RÐSÐSr   c                 ób  — ddl m} | j                  rt        d«      ‚| j                  j
                  dk(  rt        d«      ‚ |«       dk(  rV| j                  «       }|d   }t        }t        | t        j                  «      r|| j                  fz  }| j                  «        nl| j                  «       dk(  rt        t        | «      ffS | j                  «       \  }}t         j"                  j%                  |«      }t'        |«      }||f}t(        }t+        | «      t,        |<   |t        | «      f|z   fS )NrA   )Úget_sharing_strategyz>Cannot pickle CUDA storage; try pickling a CUDA tensor insteadrb   z>Cannot pickle meta storage; try pickling a meta tensor insteadÚfile_systemr   )Ú rð   Úis_cudar‡   rL   r–   Ú_share_filename_cpu_râ   rx   r   ri   rf   Ú_shared_increfr]   rä   Ú_share_fd_cpu_Úmultiprocessingr   ÚDupFdrÒ   rÚ   r   rv   )r   rð   r[   Ú	cache_keyÚrebuildrÐ   r]   rÙ   s           r   Úreduce_storagerû   S  s  € Ý&à‡‚ÜØLó
ð 	
ð 
�‰×	Ñ	 Ò	&ÜØLó
ð 	
ñ 
Ó	 =Ò	0Ø×/Ñ/Ó1ˆØ˜Q‘Kˆ	Ü*ˆÜ�gœu×1Ñ1Ô2Ø˜Ÿ™Ð(Ñ(ˆHØ×ÑÕ Ø	�‰‹˜1Ò	ô &¬¨W«Ð'7Ð8Ð8à×)Ñ)Ó+‰ˆˆDÜ×&Ñ&×,Ñ,¨RÓ0ˆÜ˜"“Iˆ	Ø˜�:ˆÜ$ˆä,¨WÓ5„L�ÑØ”d˜7“mÐ%¨Ñ0Ð1Ð1r   c                  ól  — t        j                  t        j                  j                  t
        «       t        j                  D ]F  } | j                  dk(  rt        j                  | t        «       Œ-t        j                  | t        «       ŒH t        j                  t        j                  j                  t        «       t        j                  D ]  } t        j                  | t        «       Œ t        j                  t        j                  t        «       ddlm} t        j                  |t        «       y )Nrh   r   )rZ   )r   Úregisterr   rI   rJ   rR   Ú_storage_classesr&   rû   rî   r   ri   ré   Ú_tensor_classesr™   ÚTensorÚtorch.nn.parameterrZ   )r_   rZ   s     r   Úinit_reductionsr  t  sÊ   € Ü×Ñ”u—z‘z×'Ñ'¬Ô6ä×#Ñ#ò >ˆØ�:‰:Ð)Ò)Ü×Ñ˜q¤.Õ1ä×Ñ˜qÔ"<Õ=ð	>ô ×Ñ”u—}‘}×1Ñ1Ô3GÔHä×"Ñ"ò -ˆÜ×Ñ˜1œmÕ,ð-ô ×Ñ”u—|‘|¤]Ô3å,ä×Ñ�y¤-Õ0r   r   )'r÷   rÌ   r4   r   Úmultiprocessing.utilr   Útypingr   r   Útorch._namedtensor_internalsr   Úmultiprocessing.resource_sharerÚImportErrorr   r8   r.   rv   rN   rR   r`   rq   rƒ   r™   r¨   r�   r¸   rÁ   r”   rÒ   rs   rÚ   râ   rä   ræ   ré   rì   rî   rû   r  r,   r   r   ú<module>r     sØ   ðã Û 	Û Ý %Ý 4Ý ã Ý Gð	ó +÷
")ñ ")ôJ!(�$ô !(ñJ ‹}€ò<ò3ò

òò@AòHq?òhPò"ò2
Vòò(,
ò^&òFò
ó$ò(òYò
Nò>ò
Tò2óB1øðA ò 	Ùð	ús   ªB ÂBÂB