+
    –°³jx  ã                   óH   € ^ RI Ht ^ RIHt ^ RIHt ] ! R R4      4       tR# )é    )Ú	dataclass)Úreduce)Ú_remote_devicec                   óT   a € ] tR t^t o Rt. ROtR	V 3R lR lltR tV 3R ltRt	V t
R# )
ÚShardMetadataa  
Represents a shard of the overall Tensor including its
offsets, lengths and device placement.

Args:
    shard_offsets(List[int]): Offsets in the original tensor indicating
        the start offsets for this shard. Should have the same rank as
        the original tensor.
    shard_sizes(List[int]): Integers indicating the size of each
        dimension for this shard. Should have the same rank as the
        original tensor.
    placement(:class:`torch.distributed._remote_device`):
        Specifies the placement of this shard.
Nc                ój   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[S[,          R,          /# )é   Úshard_offsetsÚshard_sizesÚ	placementN)ÚlistÚintÚstrr   )ÚformatÚ__classdict__s   "€Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributed/_shard/metadata.pyÚ__annotate__ÚShardMetadata.__annotate__   s;   ø€ ÷ ?ñ ?á™C•yð?ñ ™#•Yð?ñ ™Õ'¨$Õ.ñ	?ó    c                ó  € Wn         W n        \        V\        4      '       d   \	        V4      V n        MW0n        \        V P                   4      \        V P                  4      8w  d0   \        R \        V P                   4       RV P                   R24      h\        \        V P                   4      4       FI  pV P                   V,          ^ 8  d   \        R4      hV P                  V,          ^ 8  g   K@  \        R4      h	  R# )zMshard_offsets and shard_sizes should have the same number of elements, found z and z respectivelyzshard_offsets should be >=0zshard_sizes should be >= 0N)	r
   r   Ú
isinstancer   r   r   ÚlenÚ
ValueErrorÚrange)Úselfr
   r   r   Úis   &&&& r   Ú__init__ÚShardMetadata.__init__   sâ   € ð +ÔØ&ÔÜ�i¤×%Ò%Ü+¨IÓ6ˆD�Nà&ŒNÜˆt×!Ñ!Ó"¤c¨$×*:Ñ*:Ó&;Ô;Üð6Ü69¸$×:LÑ:LÓ6MÐ5Nð OØ×'Ñ'Ð(¨ð7óð ô ”s˜4×-Ñ-Ó.Ö/ˆAØ×!Ñ! !Õ$ qÔ(Ü Ð!>Ó?Ð?Ø×Ñ Õ" QÖ&Ü Ð!=Ó>Ð>ó	 0r   c                óˆ   € R  p\        WP                  ^%4      p\        WP                  V4      pV! W P                  4      pV# )c                 ó4   € V ^,          \        V4      ,           # )é   )Úhash)ÚaÚbs   &&r   Ú_hash_reduceÚ,ShardMetadata.__hash__.<locals>._hash_reduce9   s   € Ø˜•Fœd 1›gÕ%Ð%r   )r   r
   r   r   )r   r%   Úress   &  r   Ú__hash__ÚShardMetadata.__hash__8   s@   € ò	&ô �\×#5Ñ#5°rÓ:ˆÜ�\×#3Ñ#3°SÓ9ˆÙ˜3§¡Ó/ˆØˆ
r   c                ól   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[R,          ;R&   # )r	   r
   r   Nr   )r   r   r   )r   r   s   "€r   r   r      s9   ø‡ ‚ ñ& ™•9Ññ' ñ( ‘c•Ññ) ñ*  Õ$Ñ$ò+ r   )r   r
   r   )r
   r   r   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   r(   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s(   ø‡ € ñò >€I÷?ò ?ò2÷a ƒ r   r   N)Údataclassesr   Ú	functoolsr   Útorch.distributed.remote_devicer   r   © r   r   Ú<module>r8      s'   ðå !Ý å :ð ÷6ð 6ó ò6r   