
    h                     R   d dl Z d dlZd dlmZmZmZ d dlmZmZm	Z	  ej
        d          Zd  ed          D             ZdZdZed	z   Zeez   Zeez   d
z   Zeez   Z ej        d          Z ej        d          Z e j        d          Z G d d          Z G d d          ZdS )    N)ascii_lettersascii_lowercasedigits)Unioncastoverloadasciic                 @    h | ]}d |d                     d          S )%02Xr	   )encode).0is     M/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/yarl/_quoting_py.py	<setcomp>r      s.    @@@A""7++@@@       z:/?#[]@z!$'()*,+&=;z-._~s   [A-Z0-9][A-Z0-9]z[A-Fa-f0-9][A-Fa-f0-9]zutf-8c                       e Zd Zddddddedededed	d
f
dZeded	efd            Zedd            Zdeed
f         d	eed
f         fdZd
S )_Quoter FT)safe	protectedqsrequoter   r   r   r   returnNc                >    || _         || _        || _        || _        d S N)_safe
_protected_qs_requote)selfr   r   r   r   s        r   __init__z_Quoter.__init__   s$     
#r   valc                     d S r    r#   r%   s     r   __call__z_Quoter.__call__$       ),r   c                     d S r   r'   r(   s     r   r)   z_Quoter.__call__&       +.3r   c                 b   |d S t          |t                    st          d          |sdS |                    dd          }t	                      }t	                      }| j        }|t          z  }| j        s|dz  }|| j        z  }|                    d          }d}|t          |          k     r||         }|d	z  }|r|t          v r|d
z
  }|                    |           t          |          dk    r=|d	d          }	t                              |	          s/|                    d           |                                 |dz  }	 t!          t#          |d	d                              d          d                    }
n?# t&          $ r2 |                    d           |                                 |dz  }Y $w xY w|
| j        v r|                    |           n<|
|v r#|                    t)          |
                     n|                    |           |                                 nTt          |          dk    rA|t          |          k    r.|                    d           |                                 |d	z  }|t)          d          k    rZ| j        rS|                                 |                    |           |t          |          k    r|                    d           [| j        r7|t)          d          k    r$|                    t)          d                     ||v r|                    |           |                    d|d                    d                     |t          |          k     |                    d          }||k    r|S |S )NArgument should be strr   utf8ignore)errorsr   r	   r             s   %25      baser    +r   )
isinstancestr	TypeErrorr   	bytearrayr   ALLOWEDr!   r    lenBASCII_LOWERCASEappend_IS_HEXmatchextendclearchrintdecode
ValueErrorordr"   )r#   r%   bvalretpctr   bsafeidxchbufunquotedret2s               r   r)   z_Quoter.__call__(   s   ;4#s## 	64555 	2zz&z22kkkkzx 	FNDG$$CIIoocB1HC +)))bB

2s88q==abb'C"==-- !

6***		q !#&s3qrr7>>'+B+B'L'L'L#M#M% ! ! !

6***		q 	!  4?22

3!T))

3x==1111

3IIKKKK XX]]sc$ii'7'7JJv&&&IIKKK1HCs3xxDM		

2 #d))##JJv&&&x B#c((NN

3s88$$$U{{

2JJB,,W55666q CIIoot zz'""3;;Js   9F 8GGr%   Nr   N	__name__
__module____qualname__r<   boolr$   r   r)   r   r'   r   r   r   r      s                 	 
     
        ,C,C,,, X,... X.NE#t), NsDy1A N N N N N Nr   r   c                       e Zd Zddddddededededd	f
d
Zededefd            Zedd            Zdeed	f         deed	f         fdZd	S )	_Unquoterr   F)r0   unsafer   plusr0   r]   r   r^   r   Nc                    || _         || _        || _        || _        t	                      | _        t	          d          | _        d S )NT)r   )_ignore_unsafer!   _plusr   _quoter
_qs_quoter)r#   r0   r]   r   r^   s        r   r$   z_Unquoter.__init__z   sA     
yy!T***r   r%   c                     d S r   r'   r(   s     r   r)   z_Unquoter.__call__   r*   r   c                     d S r   r'   r(   s     r   r)   z_Unquoter.__call__   r,   r   c                    |d S t          |t                    st          d          |sdS t          t          j        t                                }g }d}|t          |          k     r#||         }|dz  }|dk    r|t          |          dz
  k    r|||dz            }t          	                    |          rt          t          |d          g          }|dz  }	 |                    |          }n# t          $ r |d	z
  t          |j                  d	z  z
  }	|                    ||	|d	z
                      |                                 	 |                    |          }n2# t          $ r% |                    ||d	z
  |                    Y Y Bw xY wY nw xY w|sP| j        r@|d
v r<|                     |          }
|
t'          d          |                    |
           nc|| j        v s	|| j        v r<|                     |          }
|
t'          d          |                    |
           n|                    |           |j        rQ|dz
  t          |j                  d	z  z
  }	|                    ||	|dz
                      |                                 |dk    rD| j        s| j        r	|| j        v r|                    d           n|                    d           || j        v rg|                    d           t1          t3          |                                                    dd          }|D ]}|                    |           |                    |           |t          |          k     #|j        r3|                    |t          |j                   d	z  d                     d                    |          }||k    r|S |S )Nr.   r   r   r2   r   r5   r6   r7   r4   z+=&;zCannot quote Noner:   r9   )r;   r<   r=   r   codecsBufferedIncrementalDecoderutf8_decoderr@   _IS_HEX_STR	fullmatchbytesrH   rI   UnicodeDecodeErrorbufferrB   resetr!   rd   RuntimeErrorra   r`   rc   rb   hexrK   upperjoin)r#   r%   decoderrM   rP   rQ   rN   brS   	start_pctto_addhrT   s                r   r)   z_Unquoter.__call__   s	   ;4#s## 	64555 	2v8,..IICHHnnSB1HCSyySCHHqL00#a-(((-- s3R000122A1HC
%#*>>!#4#4- % % %$'!Gc'..A.AA.E$E	

3y37':#;<<<%'.~~a'8'8HH1 % % %JJs37S='9:::$HH% %H% $ ! x -H$6$6!%!:!:!>"./B"C"CC

6****!T\11X5M5M!%h!7!7!>"./B"C"CC

6****

8,,,~  !Gc'.&9&9A&==	

3y3723444Syy $ $dl8J8JJJsOOOOJJsOOOT\!!

3BLL&&((, # #BJJrNNNNJJrNNNm CHHnnp > 	8JJsC///!3556777wws||3;;Js7   #C9 9AF E+*F +*FF FF F rU   rV   r'   r   r   r\   r\   y   s         + + + + 	+
 + + 
+ + + + ,C,C,,, X,... X.HE#t), HsDy1A H H H H H Hr   r\   )rh   restringr   r   r   typingr   r   r   r   rA   rangeBPCT_ALLOWED
GEN_DELIMSSUB_DELIMS_WITHOUT_QS
SUB_DELIMSRESERVED
UNRESERVEDr?   compilerC   rk   getincrementaldecoderrj   r   r\   r'   r   r   <module>r      s_    				 9 9 9 9 9 9 9 9 9 9 ( ( ( ( ( ( ( ( ( ()?)'22 @@UU3ZZ@@@
! "V+

"V#f,

,
, "*(
)
)bj122+v+G44` ` ` ` ` ` ` `F\ \ \ \ \ \ \ \ \ \r   