ó
    ×›‘hz  ã                   óP   • S r S\S\4S jrS\S\4S jrS\S\4S jrS\S\4S jrg)	z6
Tools for pedantically processing the HTTP protocol.
ÚbÚreturnc                 ó.   • U  H  nUS;  d  M    g   U S:g  $ )z3
Is the string a token per RFC 9110 section 5.6.2?
sM   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&'*+-.^_`|~Fó    © ©r   Úcs     ÚUC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/web/_abnf.pyÚ_istokenr
   
   s+   € ó ˆØðõ
ñ
 ñ ð �‰8€Or   Údatac                 ó‚   • U R                  S5      n U R                  5       (       d  [        SU < 35      e[        U 5      $ )a   
Parse a decimal integer of the form C{1*DIGIT}, i.e. consisting only of
decimal digits. The integer may be embedded in whitespace (space and
horizontal tab). This differs from the built-in L{int()} function by
disallowing a leading C{+} character and various forms of whitespace
(note that we sanitize linear whitespace in header values in
L{twisted.web.http_headers.Headers}).

@param data: Value to parse.

@returns: A non-negative integer.

@raises ValueError: When I{value} contains non-decimal characters.
s    	z#Value contains non-decimal digits: )ÚstripÚisdigitÚ
ValueErrorÚint)r   s    r	   Ú_decintr      s:   € ð �:‰:�fÓ€DØ�<‰<�>‰>ÜÐ>¸t¹hÐGÓHÐHÜˆt‹9Ðr   c                 ó.   • U  H  nUS;  d  M    g   U S:g  $ )z~
Is the string case-insensitively hexidecimal?

It must be composed of one or more characters in the ranges a-f, A-F
and 0-9.
s   0123456789abcdefABCDEFFr   r   r   s     r	   Ú_ishexdigitsr   -   s%   € ó ˆØÐ-Õ-Ùñ ð �‰8€Or   c                 óP   • [        U 5      (       d  [        U 5      e[        U S5      $ )zÅ
Decode a hexadecimal integer.

Unlike L{int(b, 16)}, this raises L{ValueError} when the integer has
a prefix like C{b'0x'}, C{b'+'}, or C{b'-'}, which is desirable when
parsing network protocols.
é   )r   r   r   )r   s    r	   Ú_hexintr   :   s#   € ô ˜�?‰?Ü˜‹mÐÜˆq�"‹:Ðr   N)Ú__doc__ÚbytesÚboolr
   r   r   r   r   r   r   r	   Ú<module>r      sV   ðñ
ð
�ð ˜$ô ð�%ð ˜Cô ð*
�Eð 
˜dô 
ð
ˆuð 
˜õ 
r   