o
    EXîh€M  ã                   @   sX  	 d dl Z d dlZd dlZg d¢ZdjZdjZdjZG dd„ deƒZ	ej
ej d Zed	 Zd
d„ eedƒƒeeeeƒƒ D ƒZe edƒdedƒdi¡ e  de  e¡ ¡jZdd„ Ze  d¡jZdd„ Zdd„ Zg d¢Zg d¢Zd eefdd„ZG dd„ de ƒZ!dZ"e"d  Z#e  d!e" d" e# d# e j$e j%B ¡Z&G d$d%„ d%e ƒZ'G d&d'„ d'e'ƒZ(dS )(é    N)ÚCookieErrorÚ
BaseCookieÚSimpleCookieÚ z; ú c                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r
   r
   ú6/opt/python-3.10.19/usr/lib/python3.10/http/cookies.pyr   ‘   s    r   z!#$%&'*+-.^_`|~:z ()/<=>?@[]{}c                 C   s   i | ]}|d | “qS )z\%03or
   )Ú.0Únr
   r
   r   Ú
<dictcomp>¥   s    ÿr   é   ú"ú\"ú\z\\z[%s]+c                 C   s(   	 | d u s	t | ƒr| S d|  t¡ d S )Nr   )Ú_is_legal_keyÚ	translateÚ_Translator©Ústrr
   r
   r   Ú_quote®   s   r   z\\(?:([0-3][0-7][0-7])|(.))c                 C   s"   | d rt t| d dƒƒS | d S )Né   é   é   )ÚchrÚint)Úmr
   r
   r   Ú_unquote_replace½   s   r   c                 C   sJ   | d u s
t | ƒdk r| S | d dks| d dkr| S | dd… } tt| ƒS )Nr   r   r   éÿÿÿÿr   )ÚlenÚ_unquote_subr   r   r
   r
   r   Ú_unquoteÃ   s   
r#   )ZMonZTueZWedZThuZFriZSatZSun)NZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecc              	   C   sR   ddl m}m } |ƒ }|||  ƒ\	}}}}	}
}}}}d|| ||| ||	|
|f S )Nr   )ÚgmtimeÚtimez#%s, %02d %3s %4d %02d:%02d:%02d GMT)r%   r$   )ÚfutureZweekdaynameZ	monthnamer$   r%   ZnowZyearZmonthZdayZhhZmmÚssZwdÚyÚzr
   r
   r   Ú_getdateä   s   ÿr*   c                
   @   sÞ   e Zd Z	 ddddddddd	d
œ	ZddhZdd„ Zedd„ ƒZedd„ ƒZedd„ ƒZ	dd„ Z
d1dd„Zdd„ ZejZdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd2d)d*„ZeZd+d,„ Zd1d-d.„Zd1d/d0„ZeejƒZdS )3ÚMorselÚexpiresÚPathÚCommentZDomainzMax-AgeZSecureZHttpOnlyZVersionZSameSite)	r,   ÚpathÚcommentÚdomainúmax-ageÚsecureÚhttponlyÚversionZsamesiter3   r4   c                 C   s0   d  | _  | _| _| jD ]	}t | |d¡ qd S )Nr   )Ú_keyÚ_valueÚ_coded_valueÚ	_reservedÚdictÚ__setitem__)ÚselfÚkeyr
   r
   r   Ú__init__  s   
ÿzMorsel.__init__c                 C   ó   | j S ©N)r6   ©r<   r
   r
   r   r=     ó   z
Morsel.keyc                 C   r?   r@   )r7   rA   r
   r
   r   Úvalue  rB   zMorsel.valuec                 C   r?   r@   )r8   rA   r
   r
   r   Úcoded_value  rB   zMorsel.coded_valuec                 C   s2   |  ¡ }|| jvrtd|f ƒ‚t | ||¡ d S ©NzInvalid attribute %r)Úlowerr9   r   r:   r;   )r<   ÚKÚVr
   r
   r   r;   #  s   
zMorsel.__setitem__Nc                 C   s.   |  ¡ }|| jvrtd|f ƒ‚t | ||¡S rE   )rF   r9   r   r:   Ú
setdefault)r<   r=   Úvalr
   r
   r   rI   )  s   
zMorsel.setdefaultc                 C   s>   t |tƒstS t | |¡o| j|jko| j|jko| j|jkS r@   )Ú
isinstancer+   ÚNotImplementedr:   Ú__eq__r7   r6   r8   ©r<   Zmorselr
   r
   r   rM   /  s   

ÿ
þ
ýzMorsel.__eq__c                 C   s$   t ƒ }t || ¡ |j | j¡ |S r@   )r+   r:   ÚupdateÚ__dict__rN   r
   r
   r   Úcopy9  s   zMorsel.copyc                 C   sR   i }t |ƒ ¡ D ]\}}| ¡ }|| jvrtd|f ƒ‚|||< qt  | |¡ d S rE   )r:   ÚitemsrF   r9   r   rO   )r<   ÚvaluesÚdatar=   rJ   r
   r
   r   rO   ?  s   

zMorsel.updatec                 C   s   |  ¡ | jv S r@   )rF   r9   )r<   rG   r
   r
   r   ÚisReservedKeyH  s   zMorsel.isReservedKeyc                 C   sH   |  ¡ | jv rtd|f ƒ‚t|ƒstd|f ƒ‚|| _|| _|| _d S )Nz Attempt to set a reserved key %rzIllegal key %r)rF   r9   r   r   r6   r7   r8   )r<   r=   rJ   Z	coded_valr
   r
   r   ÚsetK  s   
z
Morsel.setc                 C   s   | j | j| jdœS )N)r=   rC   rD   ©r6   r7   r8   rA   r
   r
   r   Ú__getstate__V  s   ýzMorsel.__getstate__c                 C   s"   |d | _ |d | _|d | _d S )Nr=   rC   rD   rW   )r<   Ústater
   r
   r   Ú__setstate__]  s   

zMorsel.__setstate__úSet-Cookie:c                 C   s   d||   |¡f S )Nz%s %s)ÚOutputString)r<   ÚattrsÚheaderr
   r
   r   Úoutputb  s   zMorsel.outputc                 C   s   d| j j|  ¡ f S )Nú<%s: %s>)Ú	__class__r   r\   rA   r
   r
   r   Ú__repr__g  s   zMorsel.__repr__c                 C   s   d|   |¡ dd¡ S )Nz—
        <script type="text/javascript">
        <!-- begin hiding
        document.cookie = "%s";
        // end hiding -->
        </script>
        r   r   )r\   Úreplace)r<   r]   r
   r
   r   Ú	js_outputj  s   úzMorsel.js_outputc                 C   s   g }|j }|d| j| jf ƒ |d u r| j}t|  ¡ ƒ}|D ]m\}}|dkr'q||vr,q|dkrCt|tƒrC|d| j| t|ƒf ƒ q|dkrXt|tƒrX|d| j| |f ƒ q|dkrot|t	ƒro|d| j| t
|ƒf ƒ q|| jv r€|r|t	| j| ƒƒ q|d| j| |f ƒ qt|ƒS )Nú%s=%sr   r,   r2   z%s=%dr0   )Úappendr=   rD   r9   ÚsortedrR   rK   r   r*   r   r   Ú_flagsÚ_semispacejoin)r<   r]   Úresultrf   rR   r=   rC   r
   r
   r   r\   t  s.   
€zMorsel.OutputStringr@   )Nr[   )r   r   r	   r9   rh   r>   Úpropertyr=   rC   rD   r;   rI   rM   ÚobjectÚ__ne__rQ   rO   rU   rV   rX   rZ   r_   Ú__str__rb   rd   r\   ÚclassmethodÚtypesÚGenericAliasÚ__class_getitem__r
   r
   r
   r   r+   ì   sH    ÷



	



!r+   z,\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=z\[\]zŒ
    \s*                            # Optional whitespace at start of cookie
    (?P<key>                       # Start of group 'key'
    [a	  ]+?   # Any word of at least one letter
    )                              # End of group 'key'
    (                              # Optional group: there may not be a value.
    \s*=\s*                          # Equal Sign
    (?P<val>                         # Start of group 'val'
    "(?:[^\\"]|\\.)*"                  # Any doublequoted string
    |                                  # or
    \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT  # Special case for "expires" attr
    |                                  # or
    [a-  ]*      # Any word or empty string
    )                                # End of group 'val'
    )?                             # End of optional value group
    \s*                            # Any number of spaces.
    (\s+|;|$)                      # Ending either at space, semicolon, or EOS.
    c                   @   sl   e Zd Z	 dd„ Zdd„ Zddd„Zdd	„ Zd
d„ Zddd„ZeZ	dd„ Z
ddd„Zdd„ Zefdd„ZdS )r   c                 C   s
   	 ||fS r@   r
   ©r<   rJ   r
   r
   r   Úvalue_decode½  s   zBaseCookie.value_decodec                 C   s   	 t |ƒ}||fS r@   r   ©r<   rJ   Zstrvalr
   r
   r   Úvalue_encodeÆ  s   zBaseCookie.value_encodeNc                 C   s   |r	|   |¡ d S d S r@   )Úload)r<   Úinputr
   r
   r   r>   Ï  s   ÿzBaseCookie.__init__c                 C   s0   	 |   |tƒ ¡}| |||¡ t | ||¡ d S r@   )Úgetr+   rV   r:   r;   )r<   r=   Z
real_valuerD   ÚMr
   r
   r   Z__setÓ  s   zBaseCookie.__setc                 C   s>   	 t |tƒrt | ||¡ d S |  |¡\}}|  |||¡ d S r@   )rK   r+   r:   r;   rv   Ú_BaseCookie__set)r<   r=   rC   ÚrvalÚcvalr
   r
   r   r;   Ù  s
   
zBaseCookie.__setitem__r[   ú
c                 C   s<   	 g }t |  ¡ ƒ}|D ]\}}| | ||¡¡ q| |¡S r@   )rg   rR   rf   r_   Újoin)r<   r]   r^   Úseprj   rR   r=   rC   r
   r
   r   r_   â  s   
zBaseCookie.outputc                 C   sJ   g }t |  ¡ ƒ}|D ]\}}| d|t|jƒf ¡ q
d| jjt|ƒf S )Nre   r`   )rg   rR   rf   ÚreprrC   ra   r   Ú
_spacejoin)r<   ÚlrR   r=   rC   r
   r
   r   rb   ì  s
   zBaseCookie.__repr__c                 C   s8   	 g }t |  ¡ ƒ}|D ]\}}| | |¡¡ qt|ƒS r@   )rg   rR   rf   rd   Ú	_nulljoin)r<   r]   rj   rR   r=   rC   r
   r
   r   rd   ó  s   zBaseCookie.js_outputc                 C   s8   	 t |tƒr|  |¡ d S | ¡ D ]\}}|| |< qd S r@   )rK   r   Ú_BaseCookie__parse_stringrR   )r<   Zrawdatar=   rC   r
   r
   r   rw   û  s   

þ
zBaseCookie.loadc                 C   sp  d}t |ƒ}g }d}d}d}d|  kr|k r”n nz| ||¡}	|	s#nq|	 d¡|	 d¡}
}|	 d¡}|
d dkrI|s<q| ||
dd … |f¡ n@|
 ¡ tjv ru|sTd S |d u rj|
 ¡ tjv rh| ||
df¡ n!d S | ||
t	|ƒf¡ n|d ur‡| ||
|  
|¡f¡ d}nd S d|  kr“|k sn d }|D ]\}}
}||kr¦|||
< q˜|\}}|  |
||¡ | |
 }q˜d S )	Nr   Fr   r   r=   rJ   ú$T)r!   ÚmatchÚgroupÚendrf   rF   r+   r9   rh   r#   rt   r{   )r<   r   ZpattÚir   Zparsed_itemsZmorsel_seenZTYPE_ATTRIBUTEZTYPE_KEYVALUEr‡   r=   rC   rz   Útpr|   r}   r
   r
   r   Z__parse_string	  sJ   
Þ%

øzBaseCookie.__parse_stringr@   )Nr[   r~   )r   r   r	   rt   rv   r>   r{   r;   r_   rn   rb   rd   rw   Ú_CookiePatternr…   r
   r
   r
   r   r   º  s    	
	
	
r   c                   @   s   e Zd Z	 dd„ Zdd„ ZdS )r   c                 C   s   t |ƒ|fS r@   )r#   rs   r
   r
   r   rt   M  s   zSimpleCookie.value_decodec                 C   s   t |ƒ}|t|ƒfS r@   )r   r   ru   r
   r
   r   rv   P  s   zSimpleCookie.value_encodeN)r   r   r	   rt   rv   r
   r
   r
   r   r   F  s    r   ))ÚreÚstringrp   Ú__all__r   r„   ri   r‚   Ú	Exceptionr   Úascii_lettersÚdigitsZ_LegalCharsZ_UnescapedCharsrV   ÚrangeÚmapÚordr   rO   ÚcompileÚescapeÚ	fullmatchr   r   Úsubr"   r   r#   Z_weekdaynameZ
_monthnamer*   r:   r+   Z_LegalKeyCharsZ_LegalValueCharsÚASCIIÚVERBOSErŒ   r   r   r
   r
   r
   r   Ú<module>   sX   &]ÿþ 6ýýôô
ï 