
    ǁi|
                     2    d dl Z ddlmZ d Zd Zd ZddZy)	    N   )InvalidImageDataErrorc                 0   | dd dk7  rt        d      d}dg}	 | ||dz    dk(  r|j                  | |d        	 |S t        j                  d| |dz   |dz          d   }||z   dz   }| || }|j                  |       |}|t	        |       k\  rt        d	      ~)
=Slices JPEG meta data into a list from JPEG binary data.
    r         Given data isn't JPEG.s   N>H   zWrong JPEG data.)r   appendstructunpacklen)dataheadsegmentslengthendPointsegs         X/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/piexif/_common.pysplit_into_segmentsr      s     AayK#$<==D}H
dQh;.OODK( O ]]4dQhq)AB1EFf}q(HtX&COOC DCI'(:;;     c                    t        | d      }|j                  d      }|dd dk7  rt        d      |dd }d}d}t        |      |k(  rt	        j
                  d	|dd       d   }|dd d
k(  r4|j                  |dz
        }|dd dk7  r|j                  |      }`||z   }n>|dd dk(  r&|j                  |dz
         |j                  |      }nnt        |      |k(  r|j                          |S )r   rb   r   r   r   r	   r   Nr
      s   Exifr      )openreadr   r   r   r   close)filenamefr   r   HEAD_LENGTHexifr   segment_datas           r   read_exif_from_filer&      s    	XtA66!9DAayK#$<==!9DKD
d){
"tT!QZ038{"66&1*-LBQ7*vvk*,&D!AY'!FF6A:66+&D d){
"  GGIKr   c                 <    | D ]  }|dd dk(  s|dd dk(  s|c S  y)z*Returns Exif from JPEG meta data list
    r   r   r   r   
      Exif  N )r   r   s     r   get_exif_segr+   <   s8      q8{"s1RyO'CJ r   c                    | d   dd dk(  rU| d   dd dk(  rJ| d   dd dk(  r?|r|| d<   | j                  d       n|| j                  d       nk| j                  d       nY| d   dd dk(  r|rL|| d<   nF| d   dd dk(  r'| d   dd dk(  r|r|| d<   n(|&| j                  d       n|r| j                  d|       d	j                  |       S )
z2Merges Exif with APP0 and APP1 manipulations.
    r   r   r   s   r   r   r(   r)   r   )popinsertjoin)r   r$   s     r   merge_segmentsr0   E   s     {1Q;&{1Q;&{1RO+HQKLLO\LLOLLO	!Qq	[	(HQK	!Qq	[	(	!Qr	o	-HQK\LLOOOAt$88Hr   )r   )r   _exceptionsr   r   r&   r+   r0   r*   r   r   <module>r2      s     ..>r   