
    @OOf"                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ ee	e
e
f      Zdedefd	Zdedefd
ZdedefdZdedefdZy)    N)KaitaiStream)gif)ico)jpeg)pngdatareturnc                    t        j                  t        t        j                  |                   }dd|j
                  j                   d|j
                  j                   dfg}|j                  D ]  }|j                  dk(  r4|j                  dt        |j                  j                  dz        f       G|j                  dk(  rE|j                  j                  }|j                  j                  }|j                  d	| d| f       |j                  d
k(  r<|j                  |j                  j                   |j                  j"                  f       |j                  dk(  r=|j                  |j                  j                   |j                  j"                  f       2|j                  dk(  sC|j                  |j                  j                   |j                  j$                  j'                  d      f        |S )N)FormatzPortable network graphicsSize x  pxgAMAgammai pHYsaspecttEXtiTXtzTXtz	iso8859-1)r   Pngr   ioBytesIOihdrwidthheightchunkstypeappendstrbody	gamma_intpixels_per_unit_xpixels_per_unit_ykeywordtexttext_datastreamdecode)r   imgpartschunkaspectxaspectys         j/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/contentviews/image/image_parser.py	parse_pngr.      s   
'',rzz$/0
1C/	CHHNN#3sxx&7s;<E  ::LL'3uzz';';f'D#EFGZZ6!jj22Gjj22GLL(wis7)$<=>ZZ6!LL%**,,ejjoo>?ZZ6!LL%**,,ejjoo>?ZZ6!LL##UZZ%?%?%F%F{%ST L    c                    t        j                  t        t        j                  |                   }|j
                  }ddd|j                  j                   fd|j                   d|j                   dfdt        |j                        fg}g }|j                  D ]-  }|j                  j                  dk(  s|j                  |       / g }|D ]7  }|j                   j"                  j$                  d	k(  s'|j                  |       9 |D ]W  }|j                   j                   j&                  }|D ]0  }|j(                  }	|	d
k7  s|j                  d	t        |	      f       2 Y |S )N)r   zCompuserve GIFVersionGIFr   r   r   
background	extensioncommentr/   )r   Gifr   r   r   logical_screen_descriptorhdrversionscreen_widthscreen_heightr   bg_color_indexblocks
block_typenamer   r    label_name_entriesbytes)
r   r(   
descriptorr)   
ext_blocksblockcomment_blocksrB   entryr5   s
             r-   	parse_gifrI   %   sX   
'',rzz$/0
1C..J$	c#''//*+,	J++,C
0H0H/IMN	s:4456	E J %  K/e$% N )::""i/!!%()   8**//)) 	8EkkG#~iW67	88 Lr/   c           	         t        j                  t        t        j                  |                   }dg}|j
                  D ]E  }|j                  j                  dk(  rA|j                  d|j                  j                   d|j                  j                   df       |j                  j                  dk(  r|j                  dd|j                  j                   d	|j                  j                   d
f       |j                  dd|j                  j                   d	|j                  j                   d
f       |j                  dt!        |j                  j"                  j$                        f       |j                  j                  dk(  r&|j                  dt!        |j                        f       |j                  j                  dk(  st'        |j                  d      s|j                  j(                  j                  j(                  j*                  j,                  D ]^  }|j                  |j                  |j.                  j                  |j                  j1                  d      j3                  d      f       ` H |S )N)r   zJPEG (ISO 10918)sof0r   r   r   app0jfif_version(z, )jfif_density	jfif_unitcomr5   app1r    zUTF-8 )r   Jpegr   r   r   segmentsmarkerrA   r   r   image_widthimage_heightversion_majorversion_minor	density_x	density_yr   density_units_value_hasattrr    ifd0fieldstagr'   strip)r   r(   r)   segmentfields        r-   
parse_jpegrg   ?   s   
))LD!12
3C+,E<< >>  F*LLGLL445S9R9R8SSVWX >>  F*LL"2232gll6P6P5QQRS LL"../r',,2H2H1IK LL+s7<<+E+E+M+M'NOP>>  E)LL)S%678>>  F*w||V,$\\..3388==DD Ezz-"YY--uzz/@/@/I/O/OPV/WX/8 Lr/   c                    t        j                  t        t        j                  |                   }ddt        |j                        fg}t        |j                        D ]v  \  }}|j                  d|dz    dj                  |j                  sdn|j                  |j                  sdn|j                  d|j                  d|j                        f       x |S )N)r   ICOzNumber of imageszImage    z6Size: {} x {}
{: >18}Bits per pixel: {}
{: >18}PNG: {}    )r   Icor   r   r   r   
num_images	enumerateimagesr   formatr   r   bppis_png)r   r(   r)   iimages        r-   	parse_icorv   a   s    
'',rzz$/0
1C	S01E
 cjj) 
5Q PWW${{C$||CIILL
	

 Lr/   )r   kaitaistructr   mitmproxy.contrib.kaitaistructr   r   r   r   listtupler   MetadatarC   r.   rI   rg   rv    r/   r-   <module>r}      sv    	 % . . / .c3h E h 0E h 4U x DE h r/   