o
    çûõjM#  ã                   @   sD  d dl Z d dlmZmZmZmZ d dlmZ e d¡Z	dZ
dZee d Zee
 Ze  d¡Zd	d
„ eD ƒZdZeeeeeƒƒƒZdZdZdZdZdZdZdZi dd
„ eddƒD ƒ¥dddeefi¥dd
„ g eddƒ¢d‘d‘R D ƒ¥dedefddeefdœ¥d d
„ ed!d"ƒD ƒ¥d"ded#efi¥ZG d$d%„ d%ƒZG d&d'„ d'ƒZ dS )(é    N)Úascii_lettersÚascii_lowercaseÚdigitsÚ	hexdigits)ÚoverloadÚasciiz!$'()*,z+&=;z-._~s   [A-Z0-9][A-Z0-9]c                 C   s*   i | ]}t D ]}|| t|| d ƒ“qqS )é   )r   Úint)Ú.0ÚaÚb© r   úC/opt/steambot/venv/lib/python3.10/site-packages/yarl/_quoting_py.pyÚ
<dictcomp>   s   * r   é€   é¿   é?   é   é   é   é   c                 C   ó   i | ]	}|d t ttf“qS )é   )Ú_UTF8_CONT_MINÚ_UTF8_CONT_MAXÚ_UTF8_LEAD2_PAYLOAD©r
   Úleadr   r   r   r      ó    ÿÿéÂ   éà   é   é    c                 C   r   )r!   )r   r   Ú_UTF8_LEAD3_PAYLOADr   r   r   r   r   !   r   éá   éí   éî   éï   éŸ   é   é�   )r%   éð   c                 C   r   )r)   )r   r   Ú_UTF8_LEAD4_PAYLOADr   r   r   r   r   '   r   éñ   éô   é�   c                   @   st   e Zd Zdddddœdedededed	d
f
dd„Zeded	efdd„ƒZeddd„ƒZded
B d	ed
B fdd„Zd
S )Ú_QuoterÚ FT)ÚsafeÚ	protectedÚqsÚrequoter2   r3   r4   r5   ÚreturnNc                C   sl   |  ¡ r|  ¡ stdƒ‚|rd|v sd|v rtdƒ‚|r(d|v s$d|v r(tdƒ‚|| _|| _|| _|| _d S )Nz,Only safe symbols with ORD < 128 are allowedú%z=safe and protected cannot contain '%' when requote is enabledú z8safe and protected cannot contain ' ' when qs is enabled)ÚisasciiÚ
ValueErrorÚ_safeÚ
_protectedÚ_qsÚ_requote)Úselfr2   r3   r4   r5   r   r   r   Ú__init__0   s   ÿ
z_Quoter.__init__Úvalc                 C   ó   d S ©Nr   ©r?   rA   r   r   r   Ú__call__G   ó   z_Quoter.__call__c                 C   rB   rC   r   rD   r   r   r   rE   I   rF   c                 C   sl  |d u rd S t |tƒstdƒ‚|sdS |jddd�}tƒ }tƒ }| j}|t7 }| js.|t7 }|| j	7 }| d¡}d}|t
|ƒk �r(|| }|d7 }|rÚ|tv rS|d	 }| |¡ t
|ƒd
krÀ|dd … }	t |	¡sw| d¡ | ¡  |d8 }q:ztt|dd …  d¡dd�ƒ}
W n tyž   | d¡ | ¡  |d8 }Y q:w |
| j	v rª| |¡ n|
|v r¶| t|
ƒ¡ n| |¡ | ¡  nt
|ƒdkrÙ|t
|ƒkrÙ| d¡ | ¡  |d8 }q:|tdƒkrø| jrø| ¡  | |¡ |t
|ƒkr÷| d¡ q:| j�r|tdƒk�r| tdƒ¡ q:||v �r| |¡ q:| d|d›� d¡¡ |t
|ƒk sA| d¡}||k�r4|S |S )NúArgument should be strr1   Úutf8Úignore)Úerrorsr   r   é   é    r!   s   %25r   r   )Úbaser7   r8   ú+Ú02X)Ú
isinstanceÚstrÚ	TypeErrorÚencodeÚ	bytearrayr;   ÚALLOWEDr=   ÚQSr<   ÚlenÚBASCII_LOWERCASEÚappendÚ_IS_HEXÚmatchÚextendÚclearÚchrr	   Údecoder:   Úordr>   )r?   rA   ÚbvalÚretÚpctr2   ÚbsafeÚidxÚchÚbufÚunquotedÚret2r   r   r   rE   K   s†   





"
ü







È
:
©rA   Nr6   N©Ú__name__Ú
__module__Ú__qualname__rQ   Úboolr@   r   rE   r   r   r   r   r0   /   s*    úýüûú
ùr0   c                   @   st   e Zd Zdddddœdededededd	f
d
d„Zededefdd„ƒZeddd„ƒZded	B ded	B fdd„Zd	S )Ú	_Unquoterr1   F)rI   r4   ÚplusÚreplace_invalidrI   r4   rq   rr   r6   Nc                C   s    |rt nt t }|D ]}| ¡ std|›d�ƒ‚||v r$td|›d�ƒ‚q
|r)dnd| _|p/|| _ttƒ| _||r;tnd D ]}dt	|ƒd›�| jt	|ƒ< q>d S )Nzignore cannot contain z, it is not ASCIIz, it is decoded anywayu   ï¿½r1   r7   rO   )
rU   rV   r9   r:   Ú_invalidÚ_plus_is_spaceÚlistÚ_ASCII_CHARSÚ_ascii_outputr`   )r?   rI   r4   rq   rr   Údecoded_anywayrf   r   r   r   r@   �   s   
ÿ

ÿz_Unquoter.__init__rA   c                 C   rB   rC   r   rD   r   r   r   rE   ¸   rF   z_Unquoter.__call__c                 C   rB   rC   r   rD   r   r   r   rE   º   rF   c                 C   s$  |d u rd S t |tƒstdƒ‚|sdS | jr d|v r | dd¡}| d¡ }dkr+|S | j}| j}g }d } } } }	 }
}d}|dkrît 	||d |d	 … ¡}|rt||ksg|d u sg|
|  krf|kstn | 
|pp|||… ¡ d}||kr�| 
|||… ¡ |d u r�|}| d|d ¡}qA|d	 }|rµ|t> |t@ B }|d7 }tt}
}||	kr´| 
t|ƒ¡ d}n/|tk rÁ| 
|| ¡ n#t 	|¡ }d urÙ|\}	}
}}||@ }d}|}n| 
|pâ|||… ¡ | d|¡}|dksE|rû| 
|pù|||… ¡ | 
||d … ¡ d |¡}||k�r|S |S )
NrG   r1   rN   r8   r7   éÿÿÿÿr   rK   r!   )rP   rQ   rR   rt   ÚreplaceÚfindrw   rs   Ú
_PCT_BYTESÚgetrY   Ú_UTF8_CONT_BITSÚ_UTF8_CONT_PAYLOADr   r   r^   Ú_ASCII_LIMITÚ_UTF8_LEADSÚjoin)r?   rA   ÚposÚascii_outputÚinvalidrb   ÚpendingÚpending_startÚ
code_pointÚneedÚlowÚhighre   Úbyter   Úpayloadri   r   r   r   rE   ¼   sh   
*
€á!

rj   rk   r   r   r   r   rp   œ   s*    úýüûú
ùrp   )!ÚreÚstringr   r   r   r   Útypingr   rS   rX   ÚSUB_DELIMS_WITHOUT_QSrV   Ú
UNRESERVEDrU   ÚcompilerZ   r|   r€   ÚtupleÚmapr^   Úrangerv   r   r   r   r~   r   r#   r,   r�   r0   rp   r   r   r   r   Ú<module>   sR    

þÿûþú


õþôðm