
    )Jf+                        d gZ ddlZddlZddlZddlmZmZ ddlmZ ddl	m
Z
 ddlZddlmZmZ ej        d eej        eef         ej        ej        eef                  f         Ze
 G d d	                      Z ej        d
ej                  Z ej        dej                  Z G d d ej        eef                   ZdS )Cookies    N)Cookie	CookieJar)urlparse)	dataclass   )CookieConflictRequestsErrorc                       e Zd ZU eed<   eed<   dZeed<   dZeed<   dZeed<   dZ	eed	<   d
Z
eed<   dZeed<   ed             Zed             Zedefd            Zd Zedefd            ZdefdZdS )
CurlMorselnamevalue hostnameF
subdomains/pathsecurer   expires	http_onlyc                     | dk    S )NTRUE ss    ]/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/curl_cffi/requests/cookies.py
parse_boolzCurlMorsel.parse_bool!   s    F{    c                     | rdndS )Nr   FALSEr   r   s    r   	dump_boolzCurlMorsel.dump_bool%   s    'vv'r   set_cookie_linec           
      *   |                                                     d          \  }}}}}}}|r|d         dk    rd}	|dd          }
nd}	|}
 | |
|                     |          ||                     |          t          |          |||	          S )N	r   #T
   F)r   r   r   r   r   r   r   r   )decodesplitr   int)clsr"   r   r   r   r   r   r   r   r   domains              r   from_curl_formatzCurlMorsel.from_curl_format)   s     ""$$**400	
 	s**Ibcc]FFIFs~~j11>>&))LL	
 	
 	
 		
r   c           	      N   | j         s-t          d                    | j        | j                            d                    | j         |                     | j                  | j        |                     | j	                  t          | j                  | j        | j        g          S )Nz!Domain not found for cookie {}={}r$   )r   r
   formatr   r   joinr!   r   r   r   strr   selfs    r   to_curl_formatzCurlMorsel.to_curl_formatF   s    } 	3::49djQQ   yyt//	t{++DL!!	


 

 
	
r   cookiec                      | |j         |j        pd|j        |j        |j        |j        t          |j        pd          d          S )Nr   r   F)r   r   r   r   r   r   r   r   )r   r   r+   domain_initial_dotr   r   r)   r   )r*   r4   s     r   from_cookiejar_cookiez CurlMorsel.from_cookiejar_cookieW   sT    s,$"]0=+!,,	
 	
 	
 		
r   returnc           
         t          di ddd| j        d| j        dd ddd| j        d	d
dt	          | j                            d                    d| j        dt	          | j                  d| j        d| j        dk    rd n| j        d| j        dk    rd
nddd dd dt          | j
                  ddS )Nversionr   r   r   portport_specifiedFr+   domain_specifiedTr6   .r   path_specifiedr   r   discardcommentcomment_urlrest)r   rfc2109r   )r   r   r   r   bool
startswithr   r   r   dictr   r1   s    r   to_cookiejar_cookiezCurlMorsel.to_cookiejar_cookied   s<     
 
 
A

 **
 	

 !5
 ==
 "T
  $DM$<$<S$A$ABBB
 
  	???
 ;;
 !LA--DD4<
 !LA--DD5
 D
  !
" ////#
$ E%
 	
r   N)__name__
__module____qualname__r0   __annotations__r   r   rE   r   r   r   r)   r   staticmethodr   r!   classmethodbytesr,   r3   r   r7   rH   r   r   r   r   r      s1        
IIIJJJHcJD#OOOFDGSIt  \ ( ( \( 
u 
 
 
 [
8
 
 
" 

6 

 

 

 [


V 
 
 
 
 
 
r   r   z:\d+$z\.\d+$c                   V   e Zd ZdZddej        e         ddfdZdefdZ	dej
        e         fdZdej
        e         fd	Z	 ddededededdf
dZ	 	 	 d dedej        e         dej        e         dej        e         dej        e         f
dZ	 	 d!dedej        e         dej        e         ddfdZ	 d!dej        e         dej        e         ddfdZddej        e         ddfdZdededdfdZdedefdZdeddfdZdefdZdej        e         fdZdefdZdefdZdS )"r   z-
    HTTP Cookies, as a mutable mapping.
    Ncookiesr8   c                 &   |t          |t                    r\t                      | _        t          |t                    r0|                                D ]\  }}|                     ||           d S d S t          |t                    r3t                      | _        |D ]\  }}|                     ||           d S t          |t                    r9t                      | _        |j        D ]}| j                            |           d S || _        d S N)	
isinstancerG   r   jaritemssetlistr   
set_cookie)r2   rQ   keyr   r4   s        r   __init__zCookies.__init__   s'   ?j$77? {{DH'4(( )")--// ) )JCHHS%(((() )) )&& 		 {{DH% % %
Ue$$$$% %)) 	 {{DH!+ , ,##F++++, , DHHHr   c                 L   t          |j                  d         }|dk    r|j                            dd          }t                              d|d          }|                                }|                    d          dk    rt          	                    |          s|dz  }|S )z
        Almost equivalent to the eff_request_host function in:
            https://github.com/python/cpython/blob/3.11/Lib/http/cookiejar.py#L636
        r   r   Hostr>   z.local)
r   urlheadersgetcut_port_resublowerfindIPV4_REsearch)r2   requesthosts      r   _eff_request_hostzCookies._eff_request_host   s    
 $$Q'2::?&&vr22D r4++zz||99S>>Rt(<(<HDr   c                     | j         j                                         g }	 t          t	          j                              x| j         j        _        | _        | j         D ]R}t                              |          }|j	        s| 
                    |          |_	        |                    |           S	 | j         j                                         n## | j         j                                         w xY w| j                                          |S )zMthe process is similar to `cookiejar.add_cookie_header`, but load all cookies)rU   _cookies_lockacquirer)   time_policy_nowr   r7   r   rj   appendreleaseclear_expired_cookies)r2   rh   morselsr4   morsels        r   get_cookies_for_curlzCookies.get_cookies_for_curl   s    &&(((	-03DIKK0@0@@DH!DI( ' '#99&AA F&*&<&<W&E&EFOv&&&&	' H"**,,,,DH"**,,,,&&(((s   BC  C2rt   c                     |D ]0}|                                 }| j                            |           1| j                                         d S rS   )rH   rU   rY   rs   )r2   rt   ru   r4   s       r   update_cookies_from_curlz Cookies.update_cookies_from_curl   sU     	( 	(F//11FH''''&&(((((r   r   r   Fr   r   r+   r   c                    |                     d          r|du rt          j        d           d}n;|                     d          r&|du s|s|dk    rt          j        d           d}d}d}i d	d
d|d|ddddd|dt          |          d|                     d          d|dt          |          d|dddddddddddidd}t	          di |}| j                            |           dS )zU
        Set a cookie value by name. May optionally include domain and path.
        z	__Secure-Fz9`secure` changed to True for `__Secure-` prefixed cookiesTz__Host-r   z^`host` changed to True, `domain` removed, `path` changed to `/` for `__Host-` prefixed cookiesr   r:   r   r   r   r;   Nr<   r+   r=   r6   r>   r   r?   r   r   r@   rA   rB   rC   HttpOnlyrD   r   )rF   warningswarnrE   r   rU   rY   )r2   r   r   r+   r   r   kwargsr4   s           r   rW   zCookies.set   s    ??;'' 
	FeOOMUVVVFF__Y'' 	Vu___$RU++M1   FFD
q
D
 U
 D	

 e
 f
 V
 !&"3"3C"8"8
 D
 d4jj
 f
 t
 t
 t
 4
  Z&!
" u#
& !!&!!F#####r   defaultc                 n   d}d}| j         D ]}|j        |k    r||j        |k    r||j        |k    r}|k|                    |j                  sQt          |j                                      |          s*||j        k    rd| d| d|j         }t          |          |j        }|j        pd}||S |S )z
        Get a cookie by name. May optionally include domain and path
        in order to specify exactly which cookie to retrieve.
        Nr   z!Multiple cookies exist with name=z on z and )rU   r   r+   r   endswithr0   r   r	   )	r2   r   r~   r+   r   r   matched_domainr4   messages	            r   ra   zCookies.get   s	    h 	= 	=F{d"">V]f%<%<|v{d':': "-$2$;$;FM$J$J .$'$6$6$?$?$O$O . !& 5 5!HD !H !H#1!H !H8>!H !H $ #1"9"99 &)/)<"=Nr   c                     | j                                       S fd| j         D             }|D ]-}| j                             |j        |j        |j                   .dS )z
        Delete a cookie by name. May optionally include domain and path
        in order to specify exactly which cookie to delete.
        Nc                 ^    g | ])}|j         k    r|j        k    r|j        k    '|*S rS   )r   r+   r   ).0r4   r+   r   r   s     r   
<listcomp>z"Cookies.delete.<locals>.<listcomp>  sT     
 
 
{d""6=F#:#:!4!4	  "5!4!4r   )rU   clearr+   r   r   )r2   r   r+   r   remover4   s    ```  r   deletezCookies.delete  s     $"28>>&$555
 
 
 
 
 
(
 
 
  	D 	DFHNN6=&+v{CCCC	D 	Dr   c                     g }||                     |           ||J |                     |            | j        j        |  dS )z
        Delete all cookies. Optionally include a domain and path in
        order to only delete a subset of all the cookies.
        N)rq   rU   r   )r2   r+   r   argss       r   r   zCookies.clear#  s\     KK%%%KKr   c                 l    t          |          }|j        D ]}| j                            |           d S rS   )r   rU   rY   )r2   rQ   r4   s      r   updatezCookies.update2  sC    '""k 	( 	(FH''''	( 	(r   c                 .    |                      ||          S rS   )rW   r2   r   r   s      r   __setitem__zCookies.__setitem__7  s    xxe$$$r   c                 R    |                      |          }|t          |          |S rS   )ra   KeyErrorr   s      r   __getitem__zCookies.__getitem__:  s'    =4.. r   c                 ,    |                      |          S rS   )r   )r2   r   s     r   __delitem__zCookies.__delitem__@  s    {{4   r   c                 *    t          | j                  S rS   )lenrU   r1   s    r   __len__zCookies.__len__C  s    48}}r   c                 $    d | j         D             S )Nc              3   $   K   | ]}|j         V  d S rS   )r   r   r4   s     r   	<genexpr>z#Cookies.__iter__.<locals>.<genexpr>G  s$      33333333r   rU   r1   s    r   __iter__zCookies.__iter__F  s    33$(3333r   c                     | j         D ]} dS dS )NTFr   )r2   _s     r   __bool__zCookies.__bool__I  s     	 	A44ur   c                 V    d                     d | j        D                       }d| dS )Nz, c           	      D    g | ]}d |j          d|j         d|j         dS )z<Cookie =z for z />)r   r   r+   r   s     r   r   z$Cookies.__repr__.<locals>.<listcomp>P  sJ        O6;NNNNFMNNN  r   z	<Cookies[z]>)r/   rU   )r2   cookies_reprs     r   __repr__zCookies.__repr__N  sF    yy "h  
 
 ,<++++r   rS   )r   r   F)NNN)NN)rI   rJ   rK   __doc__typingOptionalCookieTypesr[   r0   rj   Listr   rv   rx   rW   ra   r   r   r   r   r   r   r)   r   Iteratorr   rE   r   r   r   r   r   r   r      s          <     "C     v{:/F    ")J0G ) ) ) ) PU&$ &$&$ #&$-0&$=@&$	&$ &$ &$ &$V )-'+%)" "" %" $	"
 oc"" 
	" " " "N (,%)	D DD $D oc"	D
 
D D D D2 QU oc*9?9M	   ( (fok: (d ( ( ( (
% %C %D % % % %     ! ! ! ! ! !    4&/#. 4 4 4 4$    
,# , , , , , ,r   )__all__rern   r   http.cookiejarr   r   urllib.parser   dataclassesr   r{   errorsr	   r
   UnionDictr0   r   Tupler   r   compileASCIIrb   rf   MutableMappingr   r   r   r   <module>r      sn  
 + 				   , , , , , , , , ! ! ! ! ! ! ! ! ! ! ! !  1 1 1 1 1 1 1 1ly&+c3h/V\#s(=S1TT
 d
 d
 d
 d
 d
 d
 d
 d
N bj28,,
"*Y
)
)T, T, T, T, T,f#CH- T, T, T, T, T,r   