
    )Jf                         d dl Z 	  ed           g dZg dZn# e$ r
 g dZdgZY nw xY weez   Zd Zd Zd	 Zd
 Z	d Z
 e j        de
           dS )    N   )   i  i   i  i  i  )r   i )i   i )i   i )i   i )i   i )i   i )i   i )i   i )i  	 i	 )i  
 i
 )i   i )i   i )i   i )i  i )i   i  )i   i )i   i )r   r   r   r   c                 F    t           D ]\  }}|| cxk    r|k    rn  dS dS )NTF)_ESCAPE_RANGES)octetstartends      S/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/openid/codecutil.py_in_escape_ranger   .   sH    $  
sE    S     44 !5    c                 @    t          |           }d|cxk    odk    nc S )Ni   i  ord	character
char_values     r   _starts_surrogate_pairr   5   /    YJZ))))6)))))r   c                 @    t          |           }d|cxk    odk    nc S )Ni   i  r   r   s     r   _ends_surrogate_pairr   :   r   r   c                    g }t          |           }|D ]}t          |          }t          |          r>t          |                              d          D ]}|                    d|z             ^t          |          rCt          |          }||z                       d          D ]}|                    d|z             |                    t          |                     |S )Nzutf-8z%%%X)iterr   r   chrencodeappendr   next)chunkreplacements
chunk_iterr   	codepointcharnext_characters          r   _pct_encoded_replacementsr'   ?   s   LeJ 
0 
0		NN	I&& 	0I--g66 3 3##FTM22223#I.. 	0!*--N"^3;;GDD 3 3##FTM22223 I////r   c                     | j         | j        | j                 }t          |          }d                    |          | j        fS )z
    Encoding error handler that does percent-escaping of Unicode, to be used
    with codecs.register_error
    TODO: replace use of this with urllib.parse.quote as appropriate
     )objectr   r   r'   join)errr!   r"   s      r   _pct_escape_handlerr-   P   s?     Jsy()E,U33LGGL!!37++r   oid_percent_escape)codecsr   UCSCHARIPRIVATE
ValueErrorr
   r   r   r   r'   r-   register_error r   r   <module>r5      s    &CLLL  G(  HHA  
 
 
  G 	HHH
L 8#  * * *
* * *
  ", , ,  *,? @ @ @ @ @s    ))