Ë
    vl�j²  ã                   ó¢   — d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
  e j                  e«      Z G d„ de
«      Z G d„ d	«      Zd
edefd„Zy)é    N)ÚIterator)ÚBytesIO)ÚBinaryIOÚcast)ÚPDFEOFErrorÚPDFExceptionc                   ó   — e Zd Zy)ÚCorruptDataErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úB/var/www/html/pp/venv/lib/python3.12/site-packages/pdfminer/lzw.pyr
   r
      s   „ Ør   r
   c                   óN   — e Zd Zdeddfd„Zdedefd„Zdedefd„Zde	e   fd	„Z
y)
Ú
LZWDecoderÚfpÚreturnNc                 óX   — || _         d| _        d| _        d| _        g | _        d | _        y )Nr   é   é	   )r   ÚbuffÚbposÚnbitsÚtableÚprevbuf)Úselfr   s     r   Ú__init__zLZWDecoder.__init__   s,   € ØˆŒØˆŒ	ØˆŒ	ØˆŒ
à)+ˆŒ
Ø%)ˆ�r   Úbitsc                 óX  — d}	 d| j                   z
  }||k  r9||z  | j                  ||z
  z	  d|z  dz
  z  z  }| xj                   |z  c_         	 |S ||z  | j                  d|z  dz
  z  z  }||z  }| j                  j                  d«      }|st        ‚t        |«      | _        d| _         Œ¨)Nr   é   r   )r   r   r   Úreadr   Úord)r   r   ÚvÚrÚxs        r   ÚreadbitszLZWDecoder.readbits   s»   € ØˆØà�D—I‘I‘ˆAØ�qŠyð ˜$‘Y D§I¡I°!°d±(Ñ$;ÀÀdÁÈaÁÑ#PÑQ�Ø—	’	˜TÑ!•	Øð ˆð ˜!‘V §	¡	¨a°1©f¸©\Ñ :Ñ;�Ø˜‘	�Ø—G‘G—L‘L “O�ÙÜ%Ð%Ü ›F�”	Ø�”	ð) r   Úcodec                 ó–  — d}|dk(  rnt        d«      D �cg c]  }t        |f«      ‘Œ c}| _        | j                  j                  d «       | j                  j                  d «       d| _        d| _        |S |dk(  r	 |S | j                  s&t        t        | j                  |   «      x}| _        |S |t        | j                  «      k  rIt        t        | j                  |   «      }| j                  j                  | j                  |d d z   «       nq|t        | j                  «      k(  rS| j                  j                  | j                  | j                  d d z   «       t        t        | j                  |   «      }nt        ‚t        | j                  «      }|dk(  rd| _        n|dk(  rd	| _        n|d
k(  rd| _        || _        |S c c}w )Nr   é   r   i  r!   iÿ  é
   iÿ  é   iÿ  é   )	ÚrangeÚbytesr   Úappendr   r   r   Úlenr
   )r   r(   r&   ÚcÚtable_lengths        r   ÚfeedzLZWDecoder.feed2   s†  € ØˆØ�3Š;Ü/4°S«zÖ:¨!œ%  �+Ò:ˆDŒJØ�J‰J×Ñ˜dÔ#Ø�J‰J×Ñ˜dÔ#ØˆDŒLØˆDŒJð, ˆð+ �SŠ[Øð( ˆð' —’Ü#¤E¨4¯:©:°dÑ+;Ó<Ð<ˆA�”ð$ ˆð! ”c˜$Ÿ*™*“oÒ%Üœ §
¡
¨4Ñ 0Ó1�Ø—
‘
×!Ñ! $§,¡,°°2°A°Ñ"6Õ7Øœ˜TŸZ™Z›Ò(Ø—
‘
×!Ñ! $§,¡,°·±¸b¸qÐ1AÑ"AÔBÜœ §
¡
¨4Ñ 0Ó1‘ä&Ð&Ü˜tŸz™z›?ˆLØ˜sÒ"Ø�•
Ø Ò%Ø�•
Ø Ò%Ø�”
ØˆDŒLØˆùò5 ;s   •Gc           	   #   ó  K  — 	 	 | j                  | j                  «      }	 | j                  |«      }|–— t
        j                  d| j                  ||| j                  dd  «       Œc# t        $ r Y y w xY w# t        $ r Y y w xY w­w)Nz&nbits=%d, code=%d, output=%r, table=%ri  )r'   r   ÚEOFErrorr4   r
   ÚloggerÚdebugr   )r   r(   r&   s      r   ÚrunzLZWDecoder.runQ   sŽ   è ø€ ØðØ—}‘} T§Z¡ZÓ0�ðØ—I‘I˜d“O�ð ŠGä�L‰LØ8Ø—
‘
ØØØ—
‘
˜3˜4Ð ôð øô ò Ùðûô $ò áðüsD   ‚B…A' ¡A6 ²5BÁ'	A3Á0BÁ2A3Á3BÁ6	BÁ?BÂBÂB)r   r   r   r   r   Úintr'   r/   r4   r   r9   r   r   r   r   r      sK   „ ð*˜8ð *¨ó *ð˜Sð  Só ð2˜ð  ó ð>�X˜e‘_ô r   r   Údatar   c                 ól   — t        | «      }t        |«      j                  «       }dj                  |«      S )Nr   )r   r   r9   Újoin)r;   r   Úss      r   Ú	lzwdecoder?   g   s+   € Ü	�‹€BÜ�2‹×ÑÓ€AØ�8‰8�A‹;Ðr   )ÚloggingÚcollections.abcr   Úior   Útypingr   r   Úpdfminer.pdfexceptionsr   r   Ú	getLoggerr   r7   r
   r   r/   r?   r   r   r   ú<module>rF      sR   ðÛ Ý $Ý ß !ç <à	ˆ×	Ñ	˜8Ó	$€ô	�|ô 	÷Uñ Uðp�Eð ˜eô r   