
    .i:                         d Z ddlZddlmZ ddlmZ  ej        d          Z ej        d          Zde	de	fd	Z
 ej        d
          Zde	de	fdZdS )zBPython implementation of ASCII85/ASCIIHex decoder (Adobe version).    N)	a85decode)	unhexlifys   ^\s*<?\s*~\s*s   \s*~\s*>?\s*$datareturnc                     t                               d|           } t                              d|           } t          |           S )a  In ASCII85 encoding, every four bytes are encoded with five ASCII
    letters, using 85 different types of characters (as 256**4 < 85**5).
    When the length of the original bytes is not a multiple of 4, a special
    rule is used for round up.

    Adobe's ASCII85 implementation expects the input to be terminated
    by `b"~>"`, and (though this is absent from the PDF spec) it can
    also begin with `b"<~"`.  We can't reliably expect this to be the
    case, and there can be off-by-one errors in stream lengths which
    mean we only see `~` at the end.  Worse yet, `<` and `>` are
    ASCII85 digits, so we can't strip them.  We settle on a compromise
    where we strip leading `<~` or `~` and trailing `~` or `~>`.
        )start_resubend_rer   )r   s    L/var/www/html/analyses/venv/lib/python3.11/site-packages/pdfminer/ascii85.pyascii85decoder      s6     <<T""D::c4  DT??r   s   \sc                     t                               d|           } |                     d          }|dk    r| d|         } |dz  dk    r| dz  } t          |           S )a  ASCIIHexDecode filter: PDFReference v1.4 section 3.3.1
    For each pair of ASCII hexadecimal digits (0-9 and A-F or a-f), the
    ASCIIHexDecode filter produces one byte of binary data. All white-space
    characters are ignored. A right angle bracket character (>) indicates
    EOD. Any other characters will cause an error. If the filter encounters
    the EOD marker after reading an odd number of hexadecimal digits, it
    will behave as if a 0 followed the last digit.
    r      >N         0)bws_rer
   findr   )r   idxs     r   asciihexdecoder   !   s^     ::c4  D
))D//C
byyDSDz7a<<DLDT??r   )__doc__rebase64r   binasciir   compiler	   r   bytesr   r   r    r   r   <module>r      s    H H 				            2:'((	%	&	& %    & 
F		 5      r   