Ë
    óÍ:jã  ã                   ób   — U d dl mZ g Zee   ed<   dededefd„Zdededeee	e	e	e	f      fd	„Z
y
)é    )ÚChunkStorageMetadataÚ__all__Úshard1Úshard2Úreturnc                 ó  — t        | j                  «      }t        |«      D ]d  }| j                  |   |j                  |   |j                  |   z   k\  r y|j                  |   | j                  |   | j                  |   z   k\  sŒd y y)zCheck if two shards overlap.FT)ÚlenÚoffsetsÚrangeÚsizes)r   r   ÚndimsÚis       ú|/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torch/distributed/checkpoint/resharding.pyÚ"_check_shard_metadata_pair_overlapr      s~   € ô �—‘Ó€EÜ�5‹\ò ˆØ�>‰>˜!Ñ §¡¨qÑ 1°F·L±LÀ±OÑ CÒCÙØ�>‰>˜!Ñ §¡¨qÑ 1°F·L±LÀ±OÑ CÓCÙð	ð ó    Úsaved_shardÚcurrent_shardc                 ó6  — g }t        t        | j                  |j                  | j                  |j                  «      «      D ]T  \  }\  }}}}t	        ||z   ||z   «      }|t        ||«      z
  }	||kD  rd}
||z
  }n||z
  }
d}|j                  ||
||	f«       ŒV |S )a[  
    Return the overlapping region between saved_shard and current_shard.

    There returned list has the same number of elements as the tensor's dimension.
    For each element, we produce a tuple with the following contents:
        (dimension, `saved_shard` offset, `current_shard` offset, length)

    Offsets are relative to each shard.
    r   )Ú	enumerateÚzipr
   r   ÚminÚmaxÚappend)r   r   ÚnarrowsÚdimÚsaved_shard_offsetÚcurrent_shard_offsetÚsaved_shard_sizeÚcurrent_shard_sizeÚmin_range_endÚlengthÚoffset_for_saved_tensorÚoffset_for_current_tensors               r   Ú+_shards_get_overlap_region_wrt_saved_tensorr$      sâ   € ð €Gô 
ÜØ×ÑØ×!Ñ!Ø×ÑØ×Ñó		
ó
ò
ñ 	ˆñ ØØØØô ØÐ!1Ñ1Ø Ð#5Ñ5ó
ˆð
 ¤Ð%9Ð;MÓ!NÑNˆàÐ 4Ò4Ø&'Ð#Ø(:Ð=QÑ(QÑ%à&:Ð=OÑ&OÐ#Ø()Ð%à�‰ØÐ)Ð+DÀfÐMõ	
ð7
ð> €Nr   N)Ú%torch.distributed.checkpoint.metadatar   r   ÚlistÚstrÚ__annotations__Úboolr   ÚtupleÚintr$   © r   r   ú<module>r-      se   ðÞ Fð €ˆˆc‰Ó ðØ ðØ*>ðà	óð$,Ø%ð,Ø6Jð,à	ˆ%��S˜#˜sÐ"Ñ
#Ñ$ô,r   