
    NgB!                         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dS )    N)BytesIO   )WHITESPACES
StreamTyperead_non_whitespace)PdfReadErrori    streamreturnc                    d}	 t          |           |                     t                    z   }|st          d          |                    d          }|dk    r;||d|dz            z  }|                     t          |           |z   dz   d           n|                    d          }|dk    r|                     t          |           |z   dz
  d           |                     d          }|t          v r9|                     d	d           |                     d          }|dz  }|t          v 9||d|         z  }nLt          |          d
k    r||z  }t          d          ||dd	         z  }|                     d	d           t          |           }||                     d
          z  }|                     dd           |dd
         dk    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
        T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          W/var/www/html/ai-engine/env/lib/python3.11/site-packages/pypdf/generic/_image_inline.pyextract_inline_AHxr"   +   s,   
 H+F33fkk+6N6NN 	;9:::$$T**a<<o1o66HKK]+++g591===##E**Q;;KK]+++f4q8!<<<AA{""B"""KKNN! {"" gvg..H1$$%H9:::crc**HKKA14 !((F
fkk!nnF
KKAac{eF1Q3K3$6$6&1+:T:T0111Or   c                    d}	 t          |           |                     t                    z   }|st          d          |                    d          }|dk    r;||d|dz            z  }|                     t          |           |z   dz   d           nKt          |          dk    r||z  }t          d          ||dd	         z  }|                     d	d           t          |           }||                     d          z  }|                     d
d           |dd         dk    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   Tr   s   ~>r   Nr   r   r   r   r   r   r   r   r	   r   r   r   r    s        r!   extract_inline_A85r%   U   s   
 H+F33fkk+6N6NN 	;9:::$$U++a<<m!m44HKK]+++g591===1$$%H9:::MRC
 	
 	B" !((F
fkk!nnF
KKAac{eF1Q3K3$6$6&1+:T:T0111Or   c                    d}	 |                      t                    }|st          d          |                    d          }|dk    r;||d|dz            z  }|                     t          |           |z   dz   d           n||z  }t          |           }||                      d          z  }|                     d	d           |dd         d
k    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   Tr      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0 	;9:::$$W--a<<m!m44HKK]+++g591===M!	" !((F
fkk!nnF
KKAac{eF1Q3K3$6$6&1+:T:T0111Or   c                 ~   d}d}	 |                      d          }|s|dk    r||z  }|dk    r*d}|                      d          }||z  }|dk    r|                     dd           n[|dk    rnT|dk    rnN|d	v rI|                      d
          }||z  }|d         dz  |d         z   }||                      |d
z
            z  }t          |           }||                      d
          z  }|                     dd           |dd
         dk    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NN 	WMH<<HKKNNA<<KKA'\\'\\T
 

 AAMH1ad"BBF+++H1,6 !((F
fkk!nnF
KKAac{eF1Q3K3$6$6&1+:T:T0111Or   c                    t                      }	 |                     t                    }|st          d          |                    d          }|dk    r|                    |           nJ|                    |d|dz                       |                                dz
  }|                     |dz   t          |          z
  d           |                                 }|                     d          }|dk    r|                     |d           |                     d          }|t          vr|                     |d           ;|t          v r|                     d          }|t          v ||dz
  |         t          vr|dvr|                     |d           |
                    |           n|                                S )	z+
    Legacy method
    used by default
    Tr      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?      s   
 J%K00 	;9:::##
 
 R<<]++++ ]1vz>:;;;#**Q.JKK
S%7%77;;;I;;q>>Dt||Iq)));;q>>D;&&Iq)))+%%{{1~~ +%%VaZ&01DD V J J Iq))) 
+++K%N    r   )loggingior   _utilsr   r   r   errorsr   	getLogger__name__loggerr   bytesr"   r%   r(   r1   r?    r   r!   <module>rI      s6  8                
 " ! ! ! ! !		8	$	$'z 'e ' ' ' 'Tz e    Bj U    6)z )e ) ) ) )X.!: .!% .! .! .! .! .! .!r   