
    g                     ~   d dl Z d dlZd dlmZmZmZ d dlmZ  ej                  d      Z	 e
d      D  ch c]  } d| dj                  d       c} 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yc c} w )    N)ascii_lettersascii_lowercasedigits)castascii   %02Xz:/?#[]@z!$'()*,+&=;z-._~s   [A-Z0-9][A-Z0-9]z[A-Fa-f0-9][A-Fa-f0-9]zutf-8c                   D    e Zd Zddddddedededed	d
f
dZded	efdZy
)_Quoter FT)safe	protectedqsrequoter   r   r   r   returnNc                <    || _         || _        || _        || _        y )N)_safe
_protected_qs_requote)selfr   r   r   r   s        E/var/www/openai/venv/lib/python3.12/site-packages/yarl/_quoting_py.py__init__z_Quoter.__init__   s      
#    valc                 *   |y t        |t              st        d      |sy|j                  dd      }t	               }t	               }| j
                  }|t        z  }| j                  s|dz  }|| j                  z  }|j                  d      }d}|t        |      k  r%||   }|d	z  }|r;|t        v r|d
z
  }|j                  |       t        |      dk(  r|d	d  }	t        j                  |	      s'|j                  d       |j                          |dz  }	 t!        t#        |d	d  j%                  d      d            }
|
| j                  v r|j                  |       n0|
|v r|j                  t)        |
             n|j                  |       |j                          nBt        |      dk(  r4|t        |      k(  r&|j                  d       |j                          |d	z  }W|t)        d      k(  rN| j*                  rB|j                          |j                  |       |t        |      k(  r|j                  d       | j                  r*|t)        d      k(  r|j                  t)        d             ||v r|j                  |        |j                  d|dj                  d             |t        |      k  r%|j%                  d      }||k(  r|S |S # t&        $ r* |j                  d       |j                          |dz  }Y w xY w)NArgument should be strr   utf8ignore)errorsr   r   r             s   %25      baser	    +r
   )
isinstancestr	TypeErrorencode	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   __call__z_Quoter.__call__$   s   ;#s#455zz&z2kkzzxxFNDG$CIocB1HC))bB

2s8q=ab'C"==-

6*		q !#&s3qr7>>'+B'L#M  4??2

3!T)

3x=1

3IIK X]sc$i'7JJv&IIK1HCs3xDMM		

2 #d)#JJv&xxB#c(N

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

2JJ!Bs8,,W56q CIot zz'"3;JY & !

6*		q 	!s   (K /LL__name__
__module____qualname__r-   boolr   rG    r   r   r   r      s]         	 
     
 NC NC Nr   r   c            	       >    e Zd Zdddddedededdfd	Zd
edefdZy)	_Unquoterr   F)r!   unsafer   r!   rP   r   r   Nc                n    || _         || _        || _        t               | _        t        d      | _        y )NT)r   )_ignore_unsafer   r   _quoter
_qs_quoter)r   r!   rP   r   s       r   r   z_Unquoter.__init__v   s,    y!T*r   r   c                    |y t        |t              st        d      |syt        t        j
                  t                     }g }d}|t        |      k  r!||   }|dz  }|dk(  r|t        |      dz
  k  r|||dz    }t        j                  |      rt        t        |d      g      }|dz  }	 |j                  |      }|s}| j"                  r4|d
v r0| j%                  |      }
|
t'        d      |j                  |
       n]|| j(                  v s|| j*                  v r0| j-                  |      }
|
t'        d      |j                  |
       n|j                  |       |j                  rE|dz
  t        |j                        d	z  z
  }	|j                  ||	|dz
          |j!                          |dk(  r?| j"                  r|| j(                  v r|j                  d       n|j                  d       || j(                  v rP|j                  d       t/        t1        |            j3                         dd  }|D ]  }|j                  |        |j                  |       |t        |      k  r!|j                  r+|j                  |t        |j                         d	z  d         dj5                  |      }||k(  r|S |S # t        $ r |d	z
  t        |j                        d	z  z
  }	|j                  ||	|d	z
          |j!                          	 |j                  |      }n(# t        $ r |j                  ||d	z
  |        Y Y w xY wY w xY w)Nr   r   r   r#   r	   r&   r'   r(   r%   z+=&;zCannot quote Noner+   r*   )r,   r-   r.   r   codecsBufferedIncrementalDecoderutf8_decoderr2   _IS_HEX_STR	fullmatchbytesr:   r;   UnicodeDecodeErrorbufferr4   resetr   rU   RuntimeErrorrS   rR   rT   hexr=   upperjoin)r   r   decoderr?   rB   rC   r@   brE   	start_pctto_addhrF   s                r   rG   z_Unquoter.__call__}   s   ;#s#455v88,.ICHnSB1HCSySCHqL0#a(((-s3R012A1HC
%#*>>!#4 $ xxH$6!%!:!>"./B"CC

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

6*

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

3y3734Syxx2#5JJsOJJsOT\\!

3BL&&(,BJJrN JJrNm CHnp >>JJsC//!3567wws|3;Ji . %$'!Gc'...AA.E$E	

3y37#;<%'.~~a'8H1 %JJs37S'9:$% %%s7   1K	 	AML*)M* M
MMMMrH   rM   r   r   rO   rO   u   sA    (*" +# +C +$ +SW +HC HC Hr   rO   )rW   restringr   r   r   typingr   r/   r3   rangeBPCT_ALLOWED
GEN_DELIMSSUB_DELIMS_WITHOUT_QS
SUB_DELIMSRESERVED
UNRESERVEDr1   compiler5   rZ   getincrementaldecoderrY   r   rO   )is   0r   <module>rv      s     	 9 9 )?))'2 5:3Z@Z!Ac7""7+Z@
! "V+

"V#f,

,
, "**(
)bjj12+v++G4\ \~P P] As   B: