
    OAi              	      N   S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSK	J
r
Jr  \R                  S:  a  SSKJr  O\r\" \" \" SS	5      5      \" \" S
S5      5      -   / SQ-   / SQ-   \" \" SS5      5      -   \" \" SS5      5      -   5      rS"S jrS#S$S jjrS#S%S jjr " S S\R*                  5      r " S S\\R.                  5      r " S S\\R2                  5      r " S S\R6                  5      r " S S\R:                  5      rS&S jr\R@                  " \5        S S!/r!g)'zImplement pdfdoc codec.    )annotationsN)	Container)Any)pdf_doc_to_utf8utf8_to_pdf_doc)      )Buffer          ) i"   i    i!   i&   i   i   i  iD   i9   i:   i"  i0   i   i   i   i   i   i   i"!  i  i  iA  iR  i`  ix  i}  i1  iB  iS  ia  i~  i   )i  i  i  i  i  i  i  i              c                f    [        U 5       H  u  p#[        U5      U;  d  M  Us  $    [        S5      e)Nz'couldn't find the unencodable character)	enumerateord
ValueError)sordinalsnchars       I/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pikepdf/codec.py_find_first_indexr   G   s1    Q<t9H$H   >
??    c                   US:X  a  SOSn[        X5      u  p4U(       a  U[        U 5      4$ US:X  a  UR                  SS5      nU[        U 5      4$ US:X  a  U[        U 5      4$ US:X  a]  U R                  S5      (       d  U R                  S5      (       a  [	        S	U S
SS5      e[        U [        5      n[	        S	U UUS-   S5      e[        U5      e)z0Convert input string to bytes in PdfDocEncoding.replace   ?   ignorer   strictu   þÿu   ÿþpdfdocr      zCstrings beginning with byte order marks cannot be encoded in pdfdoc   z2character cannot be represented in pdfdoc encoding)r   lenr   
startswithUnicodeEncodeErrorr   PDFDOC_ENCODABLELookupError)inputerrorserror_markersuccessr#   offending_indexs         r   pdfdoc_encoder0   N   s    !Y.4GL%e:OGs5z!!-s5z!!s5z!!J''5+;+;J+G+G$U  ,E3CD a@
 	
 f
r   c                    [        U [        5      (       a  U R                  5       n [        U 5      nUS:X  a)  UR	                  S5      nUS:  a  [        SU UUS-   S5      eU[        U 5      4$ )z/Convert PdfDoc-encoded input into a Python str.r"   u   �r   r#   r%   z0no Unicode mapping is defined for this character)
isinstance
memoryviewtobytesr   findUnicodeDecodeErrorr&   )r+   r,   r   idxs       r   pdfdoc_decoder8   r   sq    %$$AffX!8$aB  c%j=r   c                  4    \ rS rSrSrSSS jjrSS	S jjrSrg)
PdfDocCodec   z8Implement PdfDocEncoding character map used inside PDFs.c                    [        X5      $ )z)Implement codecs.Codec.encode for pdfdoc.r0   selfr+   r,   s      r   encodePdfDocCodec.encode       U++r   c                    [        X5      $ )z)Implement codecs.Codec.decode for pdfdoc.)r8   r>   s      r   decodePdfDocCodec.decode   rB   r    Nr"   r+   strr,   rI   returnztuple[bytes, int]r+   r
   r,   rI   rJ   tuple[str, int])__name__
__module____qualname____firstlineno____doc__r@   rD   __static_attributes__rF   r   r   r:   r:      s    B,, ,r   r:   c                      \ rS rSrSrSrg)PdfDocStreamWriter   z'Implement PdfDocEncoding stream writer.rF   N)rM   rN   rO   rP   rQ   rR   rF   r   r   rT   rT      s    1r   rT   c                  &    \ rS rSrSrSSS jjrSrg)PdfDocStreamReader   z'Implement PdfDocEncoding stream reader.c                .    [         R                  XU5      $ )z0Implement codecs.StreamReader.decode for pdfdoc.)r:   rD   r>   s      r   rD   PdfDocStreamReader.decode   s    !!$v66r   rF   NrG   )r+   bytesr,   rI   rJ   rL   rM   rN   rO   rP   rQ   rD   rR   rF   r   r   rW   rW      s    17 7r   rW   c                  &    \ rS rSrSrSSS jjrSrg)PdfDocIncrementalEncoder   z-Implement PdfDocEncoding incremental encoder.c                     [        US5      S   $ )z6Implement codecs.IncrementalEncoder.encode for pdfdoc.r"   r   r=   r?   r+   finals      r   r@   PdfDocIncrementalEncoder.encode   s    UH-a00r   rF   NF)r+   rI   rb   boolrJ   r[   )rM   rN   rO   rP   rQ   r@   rR   rF   r   r   r^   r^      s    71 1r   r^   c                  &    \ rS rSrSrSSS jjrSrg)PdfDocIncrementalDecoder   z-Implement PdfDocEncoding incremental decoder.c                2    [        [        U5      S5      S   $ )z6Implement codecs.IncrementalDecoder.decode for pdfdoc.r"   r   )r8   r[   ra   s      r   rD   PdfDocIncrementalDecoder.decode   s    U5\84Q77r   rF   Nrd   )r+   r   rb   re   rJ   rI   r\   rF   r   r   rg   rg      s    78 8r   rg   c           
         U S;   aH  [        5       n[        R                  " U UR                  UR                  [
        [        [        [        S9$ g)a|  Register pdfdoc codec with Python.

Both pdfdoc and pdfdoc_pikepdf are registered. Use "pdfdoc_pikepdf" if pikepdf's
codec is required. If another third party package installs a codec named pdfdoc,
the first imported by Python will be registered and will service all encoding.
Unfortunately, Python's codec infrastructure does not give a better mechanism
for resolving conflicts.
)r#   pdfdoc_pikepdf)namer@   rD   streamwriterstreamreaderincrementalencoderincrementaldecoderN)	r:   codecs	CodecInfor@   rD   rT   rW   r^   rg   )encodingcodecs     r   find_pdfdocrv      sI     //<<<<++77
 	
 r   r   r   )r   rI   r   zContainer[int]rJ   intrG   rH   rK   )rt   rI   rJ   zcodecs.CodecInfo | None)"rQ   
__future__r   rr   syscollections.abcr   typingr   pikepdf._corer   r   version_infor
   	frozensetlistranger)   r   r0   r8   Codecr:   StreamWriterrT   StreamReaderrW   IncrementalEncoderr^   IncrementalDecoderrg   rv   register__all__rF   r   r   <module>r      s6    "  
 %  :w&F tX	
5x !"!#H GI$GJ 5x !K%"L 5x !M&"( V@!H&	,&,, 	,2f&9&9 27f&9&9 71v88 18v88 8.  /
0r   