
    @wgB!                         d dl Z d dlmZ ddlmZmZmZ ddlmZ  e j                  e
      Zd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dedefdZy)    N)BytesIO   )WHITESPACES
StreamTyperead_non_whitespace)PdfReadErrori    streamreturnc                 (   d}	 t        |       | j                  t              z   }|st        d      |j	                  d      }|dk\  r.||d|dz    z  }| j                  t        |       |z   dz   d       n|j	                  d      }|dk\  ru| j                  t        |       |z   dz
  d       | j                  d      }|t        v r1| j                  dd       | j                  d      }|dz  }|t        v r1||d| z  }n:t        |      d	k(  r||z  }t        d      ||dd z  }| j                  dd       7t        |       }|| j                  d	      z  }| j                  d
d       |dd	 dk7  s|d	d dk(  s|d	d t        v st        d      |S )z_
    Extract HexEncoded Stream from Inline Image.
    the stream will be moved onto the EI
        Unexpected end of stream   >r   N      EIr      EI stream not foundr   readBUFFER_SIZEr   findseeklenr   )r	   data_outdata_bufferedpos_tokpos_eicei_toks          R/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/generic/_image_inline.pyextract_inline_AHxr"   +   s   
 H +F3fkk+6NN9::$$T*a<o166HKK]++g591=##E*Q;KK]++f4q8!<AA{"B"KKN! {" gv..H1$%H9::cr**HKKA1 4 !(F
fkk!nF
KKAa{eF1QK3$6&1+:T011Or   c                    d}	 t        |       | j                  t              z   }|st        d      |j	                  d      }|dk\  r.||d|dz    z  }| j                  t        |       |z   dz   d       n9t        |      dk(  r||z  }t        d      ||dd z  }| j                  dd       t        |       }|| j                  d      z  }| j                  d	d       |dd d
k7  s|dd dk(  s|dd t        v st        d      |S )zX
    Extract A85 Stream from Inline Image.
    the stream will be moved onto the EI
    r   r   s   ~>r   Nr   r   r   r   r   r   r   r   r	   r   r   r   r    s        r!   extract_inline_A85r%   U   s7   
 H +F3fkk+6NN9::$$U+a<m!44HKK]++g591=1$%H9::MR
 	
 	B " !(F
fkk!nF
KKAa{eF1QK3$6&1+:T011Or   c                    d}	 | j                  t              }|st        d      |j                  d      }|dk\  r.||d|dz    z  }| j	                  t        |       |z   dz   d       n||z  }lt        |       }|| j                  d      z  }| j	                  dd       |dd d	k7  s|dd
 dk(  s|dd
 t        v st        d      |S )zW
    Extract RL Stream from Inline Image.
    the stream will be moved onto the EI
    r   r      r   Nr   r   r   r   r   r   )r   r   r   r   r   r   r   r   r$   s        r!   extract_inline_RLr(   v   s    
 H K09::$$W-a<m!44HKK]++g591=M!  !(F
fkk!nF
KKAa{eF1QK3$6&1+:T011Or   c                    d}d}	 | j                  d      }|s|dk(  r||z  }|dk7  r$d}| j                  d      }||z  }|dk(  r| j                  dd       nK|dk(  rnE|dk(  rn@|d	v r;| j                  d
      }||z  }|d   dz  |d   z   }|| j                  |d
z
        z  }t        |       }|| j                  d
      z  }| j                  dd       |dd
 dk7  s|d
d dk(  s|d
d t        v st	        d      |S )z_
    Extract DCT (JPEG) Stream from Inline Image.
    the stream will be moved onto the EI
    r   FTr             s&   r   r      r   r   r   r   )r   r   r   r   r   )r	   r   notfirstr   szr    s         r!   extract_inline_DCTr1      s=   
 H H
KKNWMH<HKKNA<KKA'\'\T

 AAMH1ad"BBF++H1 6 !(F
fkk!nF
KKAa{eF1QK3$6&1+:T011Or   c                    t               }	 | j                  t              }|st        d      |j	                  d      }|dk(  r|j                  |       n|j                  |d|dz           |j                         dz
  }| j                  |dz   t        |      z
  d       | j                         }| j                  d      }|dk7  r| j                  |d       | j                  d      }|t        vr| j                  |d       |t        v r| j                  d      }|t        v r||dz
  | t        vr|dvr| j                  |d       D|j                  |       	 |j                         S g)z+
    Legacy method
    used by default
    r      Er+   r   r      I>   r3      Q)r   r   r   r   r   writetellr   r   r   truncategetvalue)r	   
stream_outr   r   
sav_pos_ei	saved_postok2tok3s           r!   extract_inline_defaultr?      sn   
 J
K09::##
 R<]+ ]1vz:;#*Q.JKK
S%77;I;;q>Dt|Iq);;q>D;&Iq)+%{{1~ +%VaZ&1D V J Iq) 
+  O r   )loggingior   _utilsr   r   r   errorsr   	getLogger__name__loggerr   bytesr"   r%   r(   r1   r?    r   r!   <module>rI      s   8   
 "			8	$'z 'e 'Tz e Bj U 6)z )e )X.!: .!% .!r   