
    bf6                     :   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ ddlm Z m!Z! dd	l"m#Z# dd
l$m%Z%m&Z&m'Z' dZ(ee)df         Z* G d de           Z+ G d de           Z,dS )    N)defaultdict)
BaseCookieMorselSimpleCookie)ceil)DefaultDictDictIterableIteratorListMappingOptionalSetTupleUnioncast)URL   )AbstractCookieJarClearCookiePredicate)is_ip_address)LooseCookiesPathLikeStrOrURL)	CookieJarDummyCookieJarMorsel[str]c                       e Zd ZdZ ej        d          Z ej        d          Z ej        d          Z ej        dej	                  Z
 ej        d          Z eej        j                            ej        j                                                            dz
  Z	  ej         ej        e                     n%# eef$ r  ej        d	          ZY ne$ r d
ZY nw xY wedz
  Zddddddededeeee         df         de e!j"                 ddf
 fdZ#de$ddfdZ%de$ddfdZ&d1de e'         ddfdZ(de)ddfdZ*d2dZ+defdZ,d3dZ-d e.de)d!e)d"e)ddf
d#Z/ e0            fd$e1d%e0ddfd&Z2 e0            fd'e0dd(fd)Z3e4de)d*e)defd+            Z5e4d,e)d-e)defd.            Z6e7d/e)de e         fd0            Z8 xZ9S )4r   z/Implements cookie storage adhering to RFC 6265.z][\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*(?P<token>[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)z(\d{1,2}):(\d{1,2}):(\d{1,2})z	(\d{1,2})zG(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)z	(\d{2,4}))tzinfor   )	i           ;   r#   r$   r$   iFTN)unsafequote_cookietreat_as_secure_originloopr%   r&   r'   r(   returnc                   t                                          |           t          t                    | _        t                      | _        || _        || _        |g }not          |t                    r|                                g}nDt          |t                    r#t          |                                          g}nd |D             }|| _        t          t          j                              | _        i | _        d S )Nr(   c                     g | ]L}t          |t                    r!t          |                                          n|                                MS  )
isinstancestrr   origin).0urls     K/var/www/html/Alfredo/env/lib/python3.11/site-packages/aiohttp/cookiejar.py
<listcomp>z&CookieJar.__init__.<locals>.<listcomp>b   sT     & & & &0S%9%9KC!!!szz||& & &    )super__init__r   r   _cookiesset_host_only_cookies_unsafe_quote_cookier.   r   r0   r/   _treat_as_secure_originr   time_next_expiration_expirations)selfr%   r&   r'   r(   	__class__s        r3   r7   zCookieJar.__init__L   s    	d###DOE
 E
 9<)!)%'"".44 	&<&C&C&E&E%F"".44 	&)*@&A&A&H&H&J&J%K""& &1& & &" (>$'+DIKK'8'8?Ar5   	file_pathc                     t          j        |          }|                    d          5 }t          j        | j        |t          j                   d d d            d S # 1 swxY w Y   d S )Nwbmode)pathlibPathopenpickledumpr8   HIGHEST_PROTOCOLrA   rC   fs      r3   savezCookieJar.savej   s    L++	^^^&& 	C!Kq&*ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   &AA"%A"c                     t          j        |          }|                    d          5 }t          j        |          | _        d d d            d S # 1 swxY w Y   d S )NrbrF   )rH   rI   rJ   rK   loadr8   rN   s      r3   rS   zCookieJar.loado   s    L++	^^^&& 	+!"KNNDM	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   AAA	predicatec                 P   |rt          t          j                              | _        | j                                         | j                                         | j                                         d S g }t          j                    }| j                                        D ]a\  \  }}}|                                D ]D\  }}|||f}	|	| j        v r| j        |	         |k    s ||          r|                    |	           Eb|D ]^\  }}}| j        	                    ||f           |||f}	|	| j        v r| j        |||f= | j        ||f         
                    |d            _| j        r-t          g | j                                        | j        R  dz   n| j        | _        d S )Nr   )r   r>   r?   r8   clearr:   r@   itemsappenddiscardpopminvaluesSUB_MAX_TIMEMAX_TIME)
rA   rT   to_delnowdomainpathcookienamemorselkeys
             r3   rV   zCookieJar.cleart   s   $($5$5D!M!!!#))+++##%%%Fikk&*m&9&9&;&; 	' 	'"NVTF & ' 'ftT*4,,,1B31G31N1NYv&& 2OMM#&&&' #) 	: 	:FD$#++VTN;;;4&Cd'''%vtT&:;M64.)--dD9999  C?"))++?T->???!CC 	r5   ra   c                 <                            fd           d S )Nc                 <                         | d                   S )Nra   )_is_domain_match)xra   rA   s    r3   <lambda>z(CookieJar.clear_domain.<locals>.<lambda>   s    T2261X;GG r5   rV   rA   ra   s   ``r3   clear_domainzCookieJar.clear_domain   s)    

GGGGGHHHHHr5   Iterator[Morsel[str]]c              #      K   |                                   | j                                        D ]}|                                E d {V  d S N)_do_expirationr8   r\   )rA   vals     r3   __iter__zCookieJar.__iter__   sb      ='')) 	$ 	$Czz||########	$ 	$r5   c                 4    t          d | D                       S )Nc              3      K   | ]}d V  dS )r   Nr-   )r1   is     r3   	<genexpr>z$CookieJar.__len__.<locals>.<genexpr>   s"      ##1######r5   )sumrA   s    r3   __len__zCookieJar.__len__   s    ##d######r5   c                 2    |                      d            d S )Nc                     dS )NFr-   )rj   s    r3   rk   z*CookieJar._do_expiration.<locals>.<lambda>   s    U r5   rl   rz   s    r3   rr   zCookieJar._do_expiration   s    

??#####r5   whenrb   rd   c                 T    t          | j        |          | _        || j        |||f<   d S rq   )r[   r?   r@   )rA   r~   ra   rb   rd   s        r3   _expire_cookiezCookieJar._expire_cookie   s1     #D$94 @ @2664.///r5   cookiesresponse_urlc                    |j         }| j        st          |          rdS t          |t                    r|                                }|D ]\  }}t          |t                    st                      }|||<   ||         }|d         }|                    d          rd}|d= |s%|#| j	        
                    ||f           |x}|d<   |                    d          r|dd         }||d<   |r|                     ||          s|d         }|r|                    d          sD|j        }|                    d          sd}n d|d|                    d                   z   }||d<   |d         }	|	rg	 t          |	          }
t!          t#          j                    |
z   | j                  }|                     ||||           nT# t(          $ r d|d<   Y nCw xY w|d	         }|r5|                     |          }|r|                     ||||           nd|d	<   || j        ||f         |<   |                                  dS )
zUpdate cookies.Nra   . r   rb   /zmax-ageexpires)raw_hostr;   r   r.   r   rW   r   r   endswithr:   add
startswithri   rb   rfindintr[   r>   r^   r   
ValueError_parse_dater8   rr   )rA   r   r   hostnamerd   rc   tmpra   rb   max_agedelta_secondsmax_age_expirationr   expire_times                 r3   update_cookieszCookieJar.update_cookies   s   (| 	h 7 7 	Fgw'' 	&mmooG# 9	9 9	9LD&ff-- #"nn"D	TH%F s## %8$ 5h2 '++Xt,<===,44)  %% *#)x   5 5fh G G &>D &ts33 &#(s++ ;DD a$**S//&9!::D!%vY'G /+$'LLM),TY[[=-H$-)X)X&''(:FD$OOOO! + + +(*F9%%%+ !+ /"&"2"27";";K" /++KtLLLL,.y)28DM64.)$//s   5AGGGrequest_urlBaseCookie[str]c           	         | j         rt                      nt                      }| j        s|S |                                  | j        s|S t          |          }|j        pd}|j        dv}|rc| j        r\t                      }t          j
        t                    5  |                                }ddd           n# 1 swxY w Y   || j        v}t          | d           D ]}|j        }|d         }|s|j        ||<   | j        st#          |          r5||f| j        v r||k    rGn|                     ||          s_|                     |j        |d                   s|r	|d         rt-          d	|                    |j        t1                                          }	|	                    |j        |j        |j                   |	||<   |S )
z8Returns this jar's cookies filtered by their attributes.r   )httpswssNc                 ,    t          | d                   S )Nrb   )len)cs    r3   rk   z*CookieJar.filter_cookies.<locals>.<lambda>  s    QvY r5   )rf   ra   rb   securer   )r<   r   r   r8   rr   r   r   schemer=   
contextlibsuppressr   r0   sortedrf   valuer;   r   r:   ri   _is_path_matchrb   r   getr   r9   coded_value)
rA   r   filteredr   is_not_securerequest_originrc   rd   ra   mrsl_vals
             r3   filter_cookieszCookieJar.filter_cookies   sM    #0BLNNNjll 	 } 	O} 	O+&&'-2#*2BB 	OT9 	O UUN$Z00 6 6!,!3!3!5!56 6 6 6 6 6 6 6 6 6 6 6 6 6 6*$2NNM T'?'?@@@ 	& 	&F:DH%F  !'< M($;$; ~!888X%% &**68<< &&{'7HH  !1  M6::fj&((+K+KLLHLLV\63EFFF%HTNNs   B<<C C r   c                     || k    rdS |                     |           sdS |dt          |                     }|                     d          sdS t          |           S )z0Implements domain matching adhering to RFC 6265.TFNr   )r   r   r   )ra   r   non_matchings      r3   ri   zCookieJar._is_domain_match$  sq     v4  (( 	53v;;,/$$S)) 	5 ****r5   req_pathcookie_pathc                     |                      d          sd} | |k    rdS |                      |          sdS |                    d          rdS | t          |          d         }|                     d          S )z.Implements path matching adhering to RFC 6265.r   TFN)r   r   r   )r   r   r   s      r3   r   zCookieJar._is_path_match4  s     ""3'' 	H{""4"";// 	5$$ 	4K 0 0 2 23&&s+++r5   date_strc                    |sdS d}d}d}d}dx}x}}d}	d}
d}| j                             |          D ]}|                    d          }|sA| j                            |          }|r%d}d |                                D             \  }}}[|s@| j                            |          }|r$d}t          |                                          }	|s/| j                            |          }|rd}|j	        J |j	        }
|s?| j
                            |          }|r#d}t          |                                          }d|cxk    rdk    r	n n|d	z  }nd|cxk    rd
k    rn n|dz  }d||||fv rdS d|	cxk    rdk    sn dS |dk     s|dk    s|dk    s|dk    rdS t          j        ||
|	|||dddf	          S )z4Implements date string parsing adhering to RFC 6265.NFr   tokenTc              3   4   K   | ]}t          |          V  d S rq   )r   )r1   ss     r3   rx   z(CookieJar._parse_date.<locals>.<genexpr>_  s(      +P+PqCFF+P+P+P+P+P+Pr5   F   c   il  E   i  r   r!   iA  r"   r#   r$   )DATE_TOKENS_REfinditergroupDATE_HMS_TIME_REmatchgroupsDATE_DAY_OF_MONTH_REr   DATE_MONTH_RE	lastindexDATE_YEAR_REcalendartimegm)clsr   
found_time	found_dayfound_month
found_yearhourminuteseconddaymonthyeartoken_matchr   
time_match	day_matchmonth_match
year_matchs                     r3   r   zCookieJar._parse_dateG  sg     	4
	
!"""v-66x@@ 	3 	3K%%g..E  177>>
 !%J+P+PJ<M<M<O<O+P+P+P(D&& 4::5AA	  $Iioo//00C !/55e<< "&K&0<<<'1E 3 -33E::
 3!%Jz//1122DDLDD$____"_____DLDYZDDD4C~~~~2~~~~4$;;$))v{{frkk4eS$BPRSTTTr5   rq   r)   ro   )r)   N):__name__
__module____qualname____doc__recompiler   r   r   Ir   r   r   datetimemaxreplacetimezoneutc	timestampr^   r   r   r>   gmtimeOSErrorr   OverflowErrorr]   boolr   r   r   r   asyncioAbstractEventLoopr7   r   rP   rS   r   rV   r/   rn   rt   r{   rr   floatr   r   r   r   r   staticmethodri   r   classmethodr   __classcell__rB   s   @r3   r   r   '   s"       99RZ	> N
 "rz"BCC%2:l33BJT
 M
 2:l++L
 	H!))1B1F)GGQQSSTTWXX 	H--....Z  K K K #8?#IJJ    a<L
 !HL48B B B B 	B
 !&hX&D EB w01B 
B B B B B B<Ch C4 C C C C
+h +4 + + + +

 
x(<= 
 
 
 
 
>I3 I4 I I I I$ $ $ $
$ $ $ $ $$ $ $ $75 7# 7S 7 7PT 7 7 7 7 IL F Fl F# FRV F F F FP 14 5 5# 5:K 5 5 5 5n + + + + + + \+ , ,3 ,4 , , , \,$ =U3 =U8C= =U =U =U [=U =U =U =U =Us   'C C(C('C(r   c                        e Zd ZdZdddeej                 ddf fdZddZde	fd	Z
dd
ee         ddfdZdeddfdZ e            fdededdfdZdeddfdZ xZS )r   zxImplements a dummy cookie storage.

    It can be used with the ClientSession when no cookie processing is needed.

    Nr+   r(   r)   c                L    t                                          |           d S )Nr+   )r6   r7   )rA   r(   rB   s     r3   r7   zDummyCookieJar.__init__  s$    d#####r5   ro   c              #   
   K   d S rq   r-   rz   s    r3   rt   zDummyCookieJar.__iter__  s      	 	r5   c                     dS )Nr   r-   rz   s    r3   r{   zDummyCookieJar.__len__  s    qr5   rT   c                     d S rq   r-   )rA   rT   s     r3   rV   zDummyCookieJar.clear      r5   ra   c                     d S rq   r-   rm   s     r3   rn   zDummyCookieJar.clear_domain  r   r5   r   r   c                     d S rq   r-   )rA   r   r   s      r3   r   zDummyCookieJar.update_cookies  r   r5   r   r   c                     t                      S rq   )r   )rA   r   s     r3   r   zDummyCookieJar.filter_cookies  s    ~~r5   r   rq   )r   r   r   r   r   r   r   r7   rt   r   r{   r   rV   r/   rn   r   r   r   r   r   r   s   @r3   r   r     sK         GK $ $ $)B C $t $ $ $ $ $ $        x(<=     3 4     IL  l # RV    # 2C        r5   r   )-r   r   r   r   osrH   rK   r   r>   collectionsr   http.cookiesr   r   r   mathr   typingr   r	   r
   r   r   r   r   r   r   r   r   yarlr   abcr   r   helpersr   typedefsr   r   r   __all__r/   
CookieItemr   r   r-   r5   r3   <module>r     s           				   				  # # # # # # 9 9 9 9 9 9 9 9 9 9                                      8 8 8 8 8 8 8 8 " " " " " " 6 6 6 6 6 6 6 6 6 6
) 3%&
^U ^U ^U ^U ^U! ^U ^U ^UB    &     r5   