§
    ;xÅj~›  ã                   ó„  — U 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	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mZ d dl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#m$Z$ dd
l%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/ dZ0ee1df         Z2e3e1e1f         Z4e3e1e1e1f         Z5e3de6e5f         Z7dZ8e5e9d<   dj:        Z;dj:        Z<dZ= e¦   «         Z>dZ?dZ@dZAdZBdZCdZD eEd¦  «        ZF eGd¦  «        ZH G d„ de
jI        ¦  «        ZJ G d„ de&¦  «        ZK G d „ d!eK¦  «        ZL G d"„ d#e&¦  «        ZMdS )$é    N)Údefaultdict)ÚIterableÚIteratorÚMappingÚSequence)Ú
BaseCookieÚMorselÚSimpleCookie©ÚMappingProxyType)ÚUnionÚcast)ÚURLé   )Ú_COOKIE_CTL_REÚ_encoded_lengthÚparse_set_cookie_headersÚ preserve_morsel_with_coded_value)ÚAbstractCookieJarÚClearCookiePredicate)Úis_ip_address)Úinternal_logger)ÚLooseCookiesÚPathLikeÚStrOrURL)Ú	CookieJarÚDummyCookieJarúMorsel[str])Ú r   r   Ú_UNLIMITED_COOKIE_KEYz{}/{}z{1}.{0}éd   é´   é–   iä  é¸  iþ  s   Cookie: )úmax-ageÚexpiresc                   ór   ‡ — e Zd ZU dZ eh d£¦  «        Zeeeef                  ed<   dedede	fˆ fd„Z
ˆ xZS )Ú_RestrictedCookieUnpicklera@  A restricted unpickler that only allows cookie-related types.

    This prevents arbitrary code execution when loading pickled cookie data
    from untrusted sources. Only types that are expected in a serialized
    CookieJar are permitted.

    Subclasses :class:`pickle._Unpickler` (the pure-Python implementation)
    rather than :class:`pickle.Unpickler` because the accelerated unpickler
    on some implementations (notably PyPy) does not dispatch through
    :meth:`find_class` overrides.

    See: https://docs.python.org/3/library/pickle.html#restricting-globals
    >   ©ÚbuiltinsÚset©r*   Údict©r*   Útuple©r*   Ú	frozenset©Úcollectionsr   ©úhttp.cookiesr	   ©r5   r
   Ú_ALLOWED_CLASSESÚmoduleÚnameÚreturnc                 ó”   •— ||f| j         vrt          j        d|› d|› d�¦  «        ‚t          ¦   «                              ||¦  «        S )NzForbidden class: ú.z‡. CookieJar.load() only allows cookie-related types for security. See https://docs.python.org/3/library/pickle.html#restricting-globals)r7   ÚpickleÚUnpicklingErrorÚsuperÚ
find_class)Úselfr8   r9   Ú	__class__s      €úBC:\Projects\Historical\venv\Lib\site-packages\aiohttp/cookiejar.pyr@   z%_RestrictedCookieUnpickler.find_classb   sn   ø€ Ø�Dˆ> Ô!6Ð6Ð6ÝÔ(ðX Fð Xð X¨Tð Xð Xð Xñô ð õ
 ‰wŒw×!Ò! &¨$Ñ/Ô/Ð/ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   r7   r/   ÚstrÚ__annotations__Útyper@   Ú__classcell__©rB   s   @rC   r(   r(   D   sŸ   ø€ € € € € € ðð ð 4=°9ð	
ð 	
ð 	
ñ4ô 4Ð�i  c¨3 h¤Ô0ð ð ñ ð0 ð 0¨Cð 0°Dð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0rD   r(   c                   óÂ  ‡ — e Zd 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$ 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         z  dz  dej         dz  ddf
ˆ fd„Z!e"defd„¦   «         Z#e"defd„¦   «         Z$e"de%e&         fd„¦   «         Z'e"de(e)e*e*f         e+f         fd„¦   «         Z,e"de%e)e*e*e*f                  fd„¦   «         Z-de.ddfd„Z/de.ddfd„Z0dMd„Z1dNd„Z2d e3e*e3e*e3e*e*ez  e4z  f         f         f         ddfd!„Z5dOd"e6dz  ddfd#„Z7d$e*ddfd%„Z8dPd'„Z9defd(„Z:dQd)„Z;d*e<e=         ddfd+„Z>d$e*d,edefd-„Z?dQd.„Z@d/e4d$e*d0e*d1e*ddf
d2„ZA e&¦   «         fd3eBd4e&ddfd5„ZCd6eDe*         d4e&ddfd7„ZEddd8œd3eBd4e&d9ed:e4dz  d;eddfd<„ZF e&¦   «         fd=e&dd>fd?„ZGd@e3e*eHf         dAe*dd>fdB„ZIeJdCeKe*         defdD„¦   «         ZLdEeMd1e*dCeKe*         deHfdF„ZNdGeDe=         ddfdH„ZOdCeKe*         deKe*         fdI„ZPeJd$e*dAe*defdJ„¦   «         ZQeRdKe*dedz  fdL„¦   «         ZSˆ xZTS )Rr   z/Implements cookie storage adhering to RFC 6265.Tz][\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   )	r$   é   é   é   é;   rS   éÿÿÿÿrT   rT   iÿÿÿFN©ÚunsafeÚquote_cookieÚtreat_as_secure_originÚlooprV   rW   rX   rY   r:   c                ó¼  •— t          ¦   «                              |¬¦  «         t          t          ¦  «        | _        t          t
          ¦  «        | _        t          ¦   «         | _        || _	        || _
        |€t          ¦   «         | _        n¥t          |t          ¦  «        r(t          |                     ¦   «         h¦  «        | _        nht          |t           ¦  «        r5t          t          |¦  «                             ¦   «         h¦  «        | _        nt          d„ |D ¦   «         ¦  «        | _        g | _        i | _        i | _        d| _        i | _        d| _        d S )N©rY   c                 ó¢   — h | ]L}t          |t          ¦  «        r!t          |¦  «                             ¦   «         n|                     ¦   «         ’ŒMS © )Ú
isinstancerI   r   Úorigin)Ú.0Úurls     rC   ú	<setcomp>z%CookieJar.__init__.<locals>.<setcomp>­   sT   € ð ð ð àõ *4°C½Ñ)=Ô)=ÐO•C˜‘H”H—O’OÑ%Ô%Ð%À3Ç:Â:Á<Ä<ðð ð rD   r   )r?   Ú__init__r   r
   Ú_cookiesr-   Ú_morsel_cacher+   Ú_host_only_cookiesÚ_unsafeÚ_quote_cookier1   Ú_treat_as_secure_originr^   r   r_   rI   Ú_expire_heapÚ_expirationsÚ_access_generationsÚ_next_access_generationÚ_domain_countsÚ_cookie_count)rA   rV   rW   rX   rY   rB   s        €rC   rc   zCookieJar.__init__’   sY  ø€ õ 	‰Œ×Ò˜dÐÑ#Ô#Ð#Ý<GÍÑ<UÔ<UˆŒÝLWÝñM
ô M
ˆÔõ 47±5´5ˆÔØˆŒØ)ˆÔØ!Ð)Ý;D¹;¼;ˆDÔ(Ð(ÝÐ.µÑ4Ô4ð 	Ý+4Ð6L×6SÒ6SÑ6UÔ6UÐ5VÑ+WÔ+WˆDÔ(Ð(ÝÐ.µÑ4Ô4ð 
	Ý+4ÝÐ+Ñ,Ô,×3Ò3Ñ5Ô5Ð6ñ,ô ,ˆDÔ(Ð(õ ,5ðð à5ðñ ô ñ,ô ,ˆDÔ(ð =?ˆÔØ57ˆÔØ:<ˆÔ Ø'(ˆÔ$Ø.0ˆÔØˆÔÐÐrD   c                 ó   — | j         S ©N)rg   ©rA   s    rC   rV   zCookieJar.unsafe¹   s
   € àŒ|ÐrD   c                 ó   — | j         S rq   )rh   rr   s    rC   rW   zCookieJar.quote_cookie½   s   € àÔ!Ð!rD   c                 ó   — | j         S )zAReturn origins considered secure even over cleartext connections.)ri   rr   s    rC   rX   z CookieJar.treat_as_secure_originÁ   s   € ð Ô+Ð+rD   c                 ó*   — t          | j        ¦  «        S )z&Return the cookies stored in this jar.)r   rd   rr   s    rC   ÚcookieszCookieJar.cookiesÆ   s   € õ   ¤Ñ.Ô.Ð.rD   c                 ó*   — t          | j        ¦  «        S )z0Return the host-only cookies stored in this jar.)r1   rf   rr   s    rC   Úhost_only_cookieszCookieJar.host_only_cookiesË   s   € õ ˜Ô0Ñ1Ô1Ð1rD   Ú	file_pathc                 ó:  — t          j        |¦  «        }i }| j                             ¦   «         D ]¦\  \  }}}|› d|› �}i ||<   |                     ¦   «         D ]}\  }}|j        |j        |j        dœ}	|j        D ]}
|
t          v rŒ||
         }|r||	|
<   Œ|||f| j	        v rd|	d<   | j
                             |||f¦  «        x}�||	d<   |	||         |<   Œ~Œ§t          |ddd	„ ¬
¦  «        5 }t          j        ||d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z¸Save cookies to a file using JSON format.

        :param file_path: Path to file where cookies will be serialized,
            :class:`str` or :class:`pathlib.Path` instance.
        ú|©ÚkeyÚvalueÚcoded_valueTÚ	host_onlyNÚexpires_timestampÚwúutf-8c                 ó.   — t          j        | |d¦  «        S )Ni€  )ÚosÚopen)ÚpathÚflagss     rC   ú<lambda>z CookieJar.save.<locals>.<lambda>ö   s   € ¥r¤w¨t°U¸EÑ'BÔ'B€ rD   )ÚmodeÚencodingÚopeneré   )Úindent)ÚpathlibÚPathrd   Úitemsr}   r~   r   Ú	_reservedÚ_RELATIVE_EXPIRY_ATTRSrf   rk   Úgetr†   ÚjsonÚdump)rA   ry   ÚdataÚdomainr‡   Úcookier}   r9   ÚmorselÚmorsel_dataÚattrÚattr_valÚexpÚfs                 rC   ÚsavezCookieJar.saveÐ   sÒ  € õ ”L Ñ+Ô+ˆ	ØDFˆØ&*¤m×&9Ò&9Ñ&;Ô&;ð 	.ð 	.Ñ"‰NˆV�T˜FØÐ$Ð$˜dÐ$Ð$ˆCØˆD�‰IØ &§¢¡¤ð .ð .‘��fà!œ:Ø#œ\Ø#)Ô#5ð>ð >�ð #Ô,ð 5ð 5�DØÕ5Ð5Ð5Ø Ø% dœ|�HØð 5Ø,4˜ DÑ)øà˜D $Ð'¨4Ô+BÐBÐBØ/3�K Ñ,ØÔ,×0Ò0°&¸$ÀÐ1EÑFÔFÐF�CÐSØ7:�KÐ 3Ñ4Ø"-��S”	˜$‘�ð%.õ. ØØØØBÐBð	
ñ 
ô 
ð 	)ð
 ÝŒI�d˜A aÐ(Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   Ã+DÄDÄDc                 ó  — t          j        |¦  «        }	 |                     dd¬¦  «        5 }t          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   |                      |¦  «         dS # t          j        t          t          f$ r Y nw xY w|                     d¬¦  «        5 }t          |¦  «                             ¦   «         }ddd¦  «         n# 1 swxY w Y   |  
                    ¦   «         }|                     ¦   «         D ]b\  \  }}}|rt          j        d|¬¦  «        nt          ¦   «         }	|                     ¦   «         D ]\  }
}|                     |
|i|	d	¬
¦  «         Œ Œc|                      |¦  «         dS )a)  Load cookies from a file.

        Tries to load JSON format first. Falls back to loading legacy
        pickle format (using a restricted unpickler) for backward
        compatibility with existing cookie files.

        Replaces the current jar contents; loaded cookies pass through the
        same acceptance rules as :meth:`update_cookies`. A malformed file
        raises and leaves the jar unchanged.

        :param file_path: Path to file from where cookies will be
            imported, :class:`str` or :class:`pathlib.Path` instance.
        Úrrƒ   )rŠ   r‹   NÚrb)rŠ   Úhttps©ÚschemeÚhostF©Úcopy_morsels)r�   r�   r†   r•   ÚloadÚ_load_json_dataÚJSONDecodeErrorÚUnicodeDecodeErrorÚ
ValueErrorr(   Ú_new_loading_jarr‘   r   ÚbuildÚ_update_cookiesÚ_replace_contents)rA   ry   rŸ   r—   ÚpickledÚloadedr˜   Ú_rv   Úresponse_urlr9   rš   s               rC   rª   zCookieJar.loadú   s  € õ ”L Ñ+Ô+ˆ	ð	Ø—’ S°7�Ñ;Ô;ð $¸qÝ”y ‘|”|�ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð
 × Ò  Ñ&Ô&Ð&ØˆFøõ	 Ô$Õ&8½*ÐEð 	ð 	ð 	ØˆDð	øøøð �^Š^ ˆ^Ñ&Ô&ð 	;¨!Ý0°Ñ3Ô3×8Ò8Ñ:Ô:ˆGð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;à×&Ò&Ñ(Ô(ˆØ$+§M¢M¡O¤Oð 	Yð 	YÑ ‰KˆV�Q˜ØEKÐV�3œ9¨G¸&ÐAÑAÔAÐAÕQTÑQVÔQVˆLØ '§¢¡¤ð Yð Y‘��fØ×&Ò&¨¨f ~°|ÐRWÐ&ÑXÔXÐXÐXðYà×Ò˜vÑ&Ô&Ð&Ð&Ð&sF   –A0 ­AÁA0 ÁAÁA0 ÁAÁA0 Á0BÂBÂ("CÃCÃCc                 óP   — t          | j        | j        | j        | j        ¬¦  «        S )NrU   )r   rg   rh   ri   Ú_looprr   s    rC   r¯   zCookieJar._new_loading_jar  s/   € ÝØ”<ØÔ+Ø#'Ô#?Ø”ð	
ñ 
ô 
ð 	
rD   r´   c                 ó¼   — | j         }|                     ¦   «          |                     |j         ¦  «         | j                             |j        ¦  «         || _         d S rq   )rd   ÚclearÚupdateÚ__dict__)rA   r´   rv   s      rC   r²   zCookieJar._replace_contents$  sM   € à”-ˆØ�Š‰ŒˆØ�Š�v”Ñ'Ô'Ð'ØŒ×Ò˜Vœ_Ñ-Ô-Ð-ØˆŒˆˆrD   r—   c           
      ób  — |                       ¦   «         }|                     ¦   «         D �]o\  }}|                     dd¦  «        \  }}|                     ¦   «         D �]:\  }}d}	|                     d¦  «        x}
�j	 t	          |
¦  «        }	t          j        |	¦  «        st          |	¦  «        ‚n6# t          t          t          f$ r}t          d|›d|›d�¦  «        |‚d}~ww xY wt          ¦   «         }|                     |d         |d	         |d
         dœ¦  «         |j        D ]}||v r|dvr||         ||<   Œ|                     d¦  «        rd|d<   |rt          j        d|¬¦  «        nt          ¦   «         }|                     ||i|d|	¬¦  «         �Œ<�Œq|                      |¦  «         dS )z<Replace contents, routing cookies through _update_cookies().r{   r   Nr�   zCookie z in z.: expiration timestamp must be a finite numberr}   r~   r   r|   r€   r   r˜   r¤   r¥   F)r©   Ú
expiration)r¯   r‘   Úsplitr”   ÚfloatÚmathÚisfiniter®   ÚOverflowErrorÚ	TypeErrorr	   Ú__setstate__r’   r   r°   r±   r²   )rA   r—   r´   Úcompound_keyÚcookie_datar˜   r‡   r9   r›   r¾   Úraw_expirationÚexcrš   rœ   r¶   s                  rC   r«   zCookieJar._load_json_data,  sE  € ð ×&Ò&Ñ(Ô(ˆØ)-¯ª©¬ð +	ñ +	Ñ%ˆL˜+Ø'×-Ò-¨c°1Ñ5Ô5‰LˆF�DØ%0×%6Ò%6Ñ%8Ô%8ð )ñ )Ñ!��kØ+/�
Ø&1§o¢oÐ6IÑ&JÔ&JÐJ�NÐWð#Ý%*¨>Ñ%:Ô%:˜
Ý#œ}¨ZÑ8Ô8ð 9Ý",¨ZÑ"8Ô"8Ð8ð9øå)­9µjÐAð #ð #ð #Ý(ðK dð Kð K°,ð Kð Kð Kñô ð  #ð#øøøøð#øøøõ
 '-¡h¤h�ð ×#Ò#à*¨5Ô1Ø!,¨WÔ!5Ø'2°=Ô'Aðð ñô ð ð #Ô,ð 9ð 9�DØ˜{Ð*Ð*¨tð <ð 0ð 0ð
 (3°4Ô'8˜˜t™øà—?’? ;Ñ/Ô/ð *Ø')�F˜8Ñ$à>DÐO•C”I W°6Ð:Ñ:Ô:Ð:Í#É%Ì%ð ð ×&Ò&Ø˜6�NØ Ø!&Ø)ð	 'ñ ô ð ñ ñI)ðT 	×Ò˜vÑ&Ô&Ð&Ð&Ð&s   Á<2B/Â/C"ÃCÃC"Ú	predicatec                 ó*  ‡ ‡‡‡— ‰€¸‰ j                              ¦   «          ‰ j                             ¦   «          ‰ j                             ¦   «          ‰ j                             ¦   «          ‰ j                             ¦   «          ‰ j                             ¦   «          ‰ j                             ¦   «          d‰ _        d S t          j	        ¦   «         Šˆˆˆˆ fd„‰ j         
                    ¦   «         D ¦   «         }|r‰                      |¦  «         d S d S )Nr   c                 ó¨   •— g | ]N\  \  }}}|                      ¦   «         D ]1\  }}|||fxŠ‰	j        v r‰	j        ‰         ‰k    s ‰|¦  «        ¯/‰‘Œ2ŒOS r]   )r‘   rk   )
r`   r˜   r‡   r™   r9   rš   r}   ÚnowrÊ   rA   s
         €€€€rC   ú
<listcomp>z#CookieJar.clear.<locals>.<listcomp>n  s�   ø€ ð 	
ð 	
ð 	
á&‘�˜ Ø &§¢¡¤ð	
ð 	
ñ ��fà  tÐ,Ð,�°Ô1BÐBÐBØÔ% cÔ*¨cÒ1Ð1àˆy˜Ñ Ô ð 2ð ð
 2Ð1Ð1Ð1rD   )rj   rº   rd   re   rf   rk   rl   rn   ro   Útimer‘   Ú_delete_cookies)rA   rÊ   Úto_delr}   rÍ   s   `` @@rC   rº   zCookieJar.cleara  s)  øøøø€ ØÐØÔ×#Ò#Ñ%Ô%Ð%ØŒM×ÒÑ!Ô!Ð!ØÔ×$Ò$Ñ&Ô&Ð&ØÔ#×)Ò)Ñ+Ô+Ð+ØÔ×#Ò#Ñ%Ô%Ð%ØÔ$×*Ò*Ñ,Ô,Ð,ØÔ×%Ò%Ñ'Ô'Ð'Ø!"ˆDÔØˆFåŒi‰kŒkˆð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
à*.¬-×*=Ò*=Ñ*?Ô*?ð	
ñ 	
ô 	
ˆð ð 	)Ø× Ò  Ñ(Ô(Ð(Ð(Ð(ð	)ð 	)rD   r˜   c                 ó<   ‡ ‡— ‰                       ˆˆ fd„¦  «         d S )Nc                 ó<   •— ‰                      ‰| d         ¦  «        S )Nr˜   )Ú_is_domain_match)Úxr˜   rA   s    €€rC   r‰   z(CookieJar.clear_domain.<locals>.<lambda>|  s   ø€ ˜T×2Ò2°6¸1¸X¼;ÑGÔG€ rD   )rº   ©rA   r˜   s   ``rC   Úclear_domainzCookieJar.clear_domain{  s)   øø€ Ø�
Š
ÐGÐGÐGÐGÐGÑHÔHÐHÐHÐHrD   úIterator[Morsel[str]]c              #   óž   K  — |                       ¦   «          | j                             ¦   «         D ]}|                     ¦   «         E d {V —† Œd S rq   )Ú_do_expirationrd   Úvalues)rA   Úvals     rC   Ú__iter__zCookieJar.__iter__~  sb   è è € Ø×ÒÑÔÐØ”=×'Ò'Ñ)Ô)ð 	$ð 	$ˆCØ—z’z‘|”|Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð	$ð 	$rD   c                 ó   — | j         S )zReturn number of cookies.

        This function does not iterate self to avoid unnecessary expiration
        checks.
        )ro   rr   s    rC   Ú__len__zCookieJar.__len__ƒ  s   € ð Ô!Ð!rD   c                 ó$  ‡ — t          ‰ j        ¦  «        x}sdS |t          k    rL|t          ‰ j        ¦  «        dz  k    r1ˆ fd„‰ j        D ¦   «         ‰ _        t	          j        ‰ j        ¦  «         t          j        ¦   «         }g }‰ j        rj‰ j        d         \  }}||k    rnSt	          j        ‰ j        ¦  «         ‰ j                             |¦  «        |k    r| 	                    |¦  «         ‰ j        °j|r‰  
                    |¦  «         dS dS )zRemove expired cookies.Nr�   c                 óh   •— g | ].}‰j                              |d          ¦  «        |d         k    ¯,|‘Œ/S )r   r   )rk   r”   )r`   ÚentryrA   s     €rC   rÎ   z,CookieJar._do_expiration.<locals>.<listcomp>�  sG   ø€ ð !ð !ð !àØÔ$×(Ò(¨¨q¬Ñ2Ô2°e¸A´hÒ>Ð>ð à>Ð>Ð>rD   r   )Úlenrj   Ú _MIN_SCHEDULED_COOKIE_EXPIRATIONrk   ÚheapqÚheapifyrÏ   Úheappopr”   ÚappendrÐ   )rA   Úexpire_heap_lenrÍ   rÑ   ÚwhenÚ
cookie_keys   `     rC   rÚ   zCookieJar._do_expiration‹  sC  ø€ å#& tÔ'8Ñ#9Ô#9Ð9�ð 	ØˆFð Õ>Ò>Ð>Ø¥# dÔ&7Ñ"8Ô"8¸1Ñ"<Ò<Ð<ð!ð !ð !ð !à!Ô.ð!ñ !ô !ˆDÔõ
 ŒM˜$Ô+Ñ,Ô,Ð,åŒi‰kŒkˆØ#%ˆàÔð 
	*Ø#Ô0°Ô3ÑˆD�*Ø�cŠzˆzØÝŒM˜$Ô+Ñ,Ô,Ð,ð
 Ô ×$Ò$ ZÑ0Ô0°DÒ8Ð8Ø—’˜jÑ)Ô)Ð)ð Ôð 
	*ð ð 	)Ø× Ò  Ñ(Ô(Ð(Ð(Ð(ð	)ð 	)rD   rÑ   c                 ó(  — |D �]\  }}}|||f}||f}| j                              |¦  «         | j                             |¦  «        x}�U|                     |d ¦  «        �5| xj        dz  c_        | j        |         dz
  x}r|| j        |<   n| j        |= |s| j        |= | j                             |¦  «        x}	� |	                     |d ¦  «         |	s| j        |= | j                             |d ¦  «         | j	                             |d ¦  «         �Œd S )Nr   )
rf   Údiscardrd   r”   Úpopro   rn   re   rk   rl   )
rA   rÑ   r˜   r‡   r9   rë   Újar_keyrv   Údomain_countÚmorselss
             rC   rÐ   zCookieJar._delete_cookies¶  sP  € Ø"(ð 	;ñ 	;ÑˆF�D˜$Ø  $¨Ð-ˆJØ˜t�nˆGØÔ#×+Ò+¨JÑ7Ô7Ð7Øœ=×,Ò,¨WÑ5Ô5Ð5�ÐBØ—;’;˜t TÑ*Ô*Ð6ØÐ&Ô&¨!Ñ+Ð&Ô&Ø'+Ô':¸6Ô'BÀQÑ'FÐF�|ð 8Ø6B˜Ô+¨FÑ3Ð3à Ô/°Ð7Øð /Øœ gÐ.ØÔ-×1Ò1°'Ñ:Ô:Ð:�ÐGØ—’˜D $Ñ'Ô'Ð'Øð 4ØÔ*¨7Ð3ØÔ×!Ò! *¨dÑ3Ô3Ð3ØÔ$×(Ò(¨°TÑ:Ô:Ð:Ñ:ð%	;ð 	;rD   Úsecurec                 ó  — | j                              |d¦  «        t          k    �rJ|                      ¦   «          | j                              |d¦  «        }|t          z
  dz   x}dk    rdS g }g }| j                             ¦   «         D ]j\  \  }}}	||k    rŒ|	                     ¦   «         D ]F\  }
}|||
f}| j                             |d¦  «        |f}|d         r|n|                     |¦  «         ŒGŒk|x}s|t          k     rdS |sdS |}| 	                    ¦   «          |d|…         }|  
                    d„ |D ¦   «         ¦  «         t          j        dt          |¦  «        |t          ¦  «         n|                      ¦   «          dS )	a  Evict for a new cookie like Firefox; False drops the new cookie.

        Mirrors AddCookie and FindStaleCookies: expired, then non-secure,
        cookies go first, least recently used first; secure cookies are only
        evicted for another secure cookie.
        r   r   Trò   FNc                 ó   — g | ]\  }}|‘ŒS r]   r]   )r`   rµ   r}   s      rC   rÎ   z(CookieJar._make_room.<locals>.<listcomp>é  s   € Ð!<Ð!<Ð!<©&¨!¨S #Ð!<Ð!<Ð!<rD   z;Evicted %d cookie(s) for %s over the %d-cookie domain limit)rn   r”   Ú_MAX_COOKIES_PER_DOMAINrÚ   Ú_COOKIE_QUOTA_PER_DOMAINrd   r‘   rl   rè   ÚsortrÐ   r   Údebugrã   Ú_purge_cookies)rA   r˜   rò   ÚcountÚexcessÚ
non_secureÚsecure_keysÚcookie_domainr‡   rv   r9   r™   rë   râ   Ú
candidatesÚevicteds                   rC   Ú
_make_roomzCookieJar._make_roomË  s×  € ð Ô×"Ò" 6¨1Ñ-Ô-Õ1HÒHÑHØ×ÒÑ!Ô!Ð!ØÔ'×+Ò+¨F°AÑ6Ô6ˆEàÕ":Ñ:¸QÑ>Ð>�À1ÒDÐDØ�tØ79ˆJØ8:ˆKØ26´-×2EÒ2EÑ2GÔ2Gð Tð TÑ.Ñ%�  wØ  FÒ*Ð*ØØ$+§M¢M¡O¤Oð Tð T‘L�D˜&Ø"(¨$°Ð!5�JØ!Ô5×9Ò9¸*ÀaÑHÔHÈ*ÐU�EØ$*¨8Ô$4ÐD�[�[¸*×LÒLÈUÑSÔSÐSÐSðTð #-Ð,�Jð )ØÕ2Ò2Ð2Ø˜4Øð !Ø ˜5Ø(�
Ø�OŠOÑÔÐØ   & Ô)ˆGØ× Ò Ð!<Ð!<°GÐ!<Ñ!<Ô!<Ñ=Ô=Ð=ÝÔ!ØMÝ�G‘”ØÝ'ñ	ô ð ð ð ×ÒÑ!Ô!Ð!ØˆtrD   c                 ó  — |                       ¦   «          | j        t          z
  x}dk    rdS | j        }|                      t          ||j        ¬¦  «        d|…         ¦  «         t          j        d|t          ¦  «         dS )zCEvict expired, then least recently used, cookies down to the total.r   N)r}   z3Evicted %d cookie(s) over the %d-cookie total limit)
rÚ   ro   Ú_COOKIE_QUOTA_TOTALrl   rÐ   ÚsortedÚ__getitem__r   rø   Ú_MAX_COOKIES_TOTAL)rA   rû   Úgenerationss      rC   rù   zCookieJar._purge_cookiesô  s�   € à×ÒÑÔÐØÔ(Õ+>Ñ>Ð>ˆFÀ1ÒDÐDØˆFØÔ.ˆØ×Ò�V K°[Ô5LÐMÑMÔMÈgÈvÈgÔVÑWÔWÐWÝÔØAØÝñ	
ô 	
ð 	
ð 	
ð 	
rD   rê   r‡   r9   c                 óœ   — |||f}| j                              |¦  «        |k    rd S t          j        | j        ||f¦  «         || j         |<   d S rq   )rk   r”   rå   Úheappushrj   )rA   rê   r˜   r‡   r9   rë   s         rC   Ú_expire_cookiezCookieJar._expire_cookie  s\   € Ø˜d DÐ)ˆ
ØÔ× Ò  Ñ,Ô,°Ò4Ð4àˆFÝŒ�tÔ(¨4°Ð*<Ñ=Ô=Ð=Ø(,ˆÔ˜*Ñ%Ð%Ð%rD   rv   r¶   c                 ó6   — |                       ||d¬¦  «         dS )zUpdate cookies.Tr¨   N)r±   ©rA   rv   r¶   s      rC   Úupdate_cookieszCookieJar.update_cookies	  s#   € à×Ò˜W lÀÐÑFÔFÐFÐFÐFrD   Úheadersc                 ó¤   — |j         }| j        st          |¦  «        rdS |r,t          |¦  «        x}r|                      ||dd¬¦  «         dS dS dS )z+Update cookies from raw Set-Cookie headers.NF)r©   Úcheck_sendable)Úraw_hostrg   r   r   r±   )rA   r  r¶   ÚhostnameÚcookies_to_updates        rC   Úupdate_cookies_from_headersz%CookieJar.update_cookies_from_headers  s‘   € ð  Ô(ˆØŒ|ð 	¥¨hÑ 7Ô 7ð 	àˆFØð 		Õ-EÀgÑ-NÔ-NÐNÐ)ð 		ð × Ò Ø!ØØ"Ø$ð	 !ñ ô ð ð ð ð			ð 		ð 		ð 		rD   )r¾   r  r©   r¾   r  c                ó´  — |j         }| j        st          |¦  «        rd S t          |t          ¦  «        r|                     ¦   «         }|D �]÷\  }}t          |t          ¦  «        st          ¦   «         }	||	|<   |	|         }n$|r"t          d| 	                    ¦   «         ¦  «        }|d         }
|
r|
d         dk    rd}
|d= |
r|
d         dk    r|
dd …         }
|
|d<   |
r|r|  
                    |
|¦  «        sŒ®|d         }|r|d         d	k    rD|j        }|                     d	¦  «        sd	}n d	|d|                     d	¦  «        …         z   }||d<   |                     d	¦  «        }|
s|�d
}|}
nd}d }|�|}n |d         x}rm	 t          |¦  «        }|dk    rd}n>t!          || j        ¦  «        }t!          t%          j        ¦   «         |z   | j        ¦  «        }n># t&          $ r d|d<   Y n-w xY w|d         x}r|                      |¦  «        x}r|}nd|d<   |r4| j        r-|                      |¦  «        st/          j        d||
¦  «         �Œ|
|f}|
||f}| j                             |¦  «        }|€d n|                     |¦  «        }|€•| j        rŽ| j                             |
d¦  «        t8          k    s| j        t<          k    rZ|�|t%          j        ¦   «         k    rA|                      |
tA          |d         ¦  «        ¦  «        st/          j        d||
¦  «         �ŒØ|r | j!         "                    |¦  «         |
|d<   n| j!         #                    |¦  «         |�|  $                    ||
||¦  «         n"| j%        r| j%         &                    |d ¦  «         ||k    rz|€6| xj        dz  c_        | j                             |
d¦  «        dz   | j        |
<   || j        |         |<   | j'                             |¦  «        x}�| &                    |d ¦  «         | j        r| xj(        dz  c_(        | j(        | j)        |<   �Œù|  *                    ¦   «          d S )Nr   r˜   rT   r<   r   r   r   r‡   ú/TFr%   g        r&   z=Dropped cookie %r for %s: it can't be sent in a Cookie headerrò   z>Dropped cookie %r for %s: its domain is full of Secure cookies)+r  rg   r   r^   r   r‘   r	   r
   r   ÚcopyrÔ   r‡   Ú
startswithÚrfindÚrstripÚintÚminÚMAX_TIMErÏ   r®   Ú_parse_dateÚ_limits_enabledÚ	_can_sendr   rø   rd   r”   rn   rõ   ro   r  r  Úboolrf   Úaddrí   r
  rk   rî   re   rm   rl   rÚ   )rA   rv   r¶   r©   r¾   r  r  r9   r™   Útmpr˜   r‡   r€   ÚdeadlineÚmax_ageÚdelta_secondsr&   Úexpire_timer}   rë   ÚbucketÚstoredrñ   s                          rC   r±   zCookieJar._update_cookies   s;  € ð  Ô(ˆàŒ|ð 	¥¨hÑ 7Ô 7ð 	àˆFå�g�wÑ'Ô'ð 	&Ø—m’m‘o”oˆGà#ð y	Tñ y	T‰LˆD�&Ý˜f¥fÑ-Ô-ð <Ý"‘n”n�Ø"��D‘	Ø˜Tœ��Øð <å˜m¨V¯[ª[©]¬]Ñ;Ô;�à˜HÔ%ˆFð ð %˜& œ*¨Ò+Ð+Ø�Ø˜8Ð$àð *˜& œ) sÒ*Ð*à   œ�Ø#)��xÑ àð ˜(ð ¨4×+@Ò+@ÀÈÑ+RÔ+Rð àà˜&”>ˆDØð &˜4 œ7 cš>˜>à#Ô(�Ø—’ sÑ+Ô+ð ;Ø�D�Dð   a¨$¯*ª*°S©/¬/Ð&9Ô!:Ñ:�DØ!%��v‘Ø—;’;˜sÑ#Ô#ˆDàð "˜hÐ2Ø �	Ø!��à!�	à%)ˆHØÐ%à%��Ø" 9Ô-Ð-�ð +ð
+Ý$'¨¡L¤L�Mà$¨Ò)Ð)Ø#&˜˜õ ),¨M¸4¼=Ñ(IÔ(I˜Ý#&¥t¤y¡{¤{°]Ñ'BÀDÄMÑ#RÔ#R˜øøÝ!ð +ð +ð +Ø(*�F˜9Ñ%Ð%Ð%ð+øøøð # 9Ô-Ð-�ð +Ø"&×"2Ò"2°7Ñ";Ô";Ð;�;ð +Ø*�H�Hà(*�F˜9Ñ%àð  $Ô"6ð ¸t¿~º~ÈfÑ?UÔ?Uð ÝÔ%ØSØØñô ð ñ
 à˜4�.ˆCØ  $¨Ð-ˆJØ”]×&Ò& sÑ+Ô+ˆFØ#˜^�T�T°·²¸DÑ1AÔ1AˆFà�ØÔ(ð ð Ô'×+Ò+¨F°AÑ6Ô6Õ:QÒQÐQØÔ)Õ-?Ò?Ð?ð Ð%¨µD´I±K´KÒ)?Ð)?ØŸš¨µ°V¸HÔ5EÑ0FÔ0FÑGÔGð *@õ  Ô%ØTØØñô ð ñ
 àð <ØÔ'×+Ò+¨JÑ7Ô7Ð7Ø#)��xÑ Ð ð Ô'×/Ò/°
Ñ;Ô;Ð;ØÐ#Ø×#Ò# H¨f°d¸DÑAÔAÐAÐAØÔ"ð 8àÔ!×%Ò% j°$Ñ7Ô7Ð7à˜ÒÐð �>ØÐ&Ô&¨!Ñ+Ð&Ô&Ø26Ô2E×2IÒ2IÈ&ÐRSÑ2TÔ2TÐWXÑ2X�DÔ'¨Ñ/Ø+1�”˜cÔ" 4Ñ(Ø#Ô1×5Ò5°cÑ:Ô:Ð:�GÐGØ—K’K  dÑ+Ô+Ð+ØÔ#ð TàÐ,Ô,°Ñ1Ð,Ô,Ø7;Ô7S�Ô(¨Ñ4ùà×ÒÑÔÐÐÐs   ÆAGÇG.Ç-G.Úrequest_urlúBaseCookie[str]c                 óø  — t          ¦   «         }| j        s|S |                      ¦   «          | j        s|S t          |¦  «        t          ur;t          j        dt          |¦  «        › �t          d¬¦  «         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}i }d}|| j        v ru| j        |         }| j        |                              ¦   «         D ]H\  }	}
|r	|
d         rŒ|                     |	¦  «        x}€|                      ||	|
¦  «        x}||	<   |||	<   ŒIt'          |¦  «        s;t)          j        t-          |                     d	¦  «        ¦  «        t0          ¦  «        }n| j        r|f}nd
}t)          j        |j                             d¦  «        t6          ¦  «        }t)          j        ||¦  «        }t;          |j        ¦  «        }|D ]Ó}|dk    s	|| j        vrŒ| j        |         }| j        |                              ¦   «         D ]”\  }	}
|
d         }||k    r||	fz   | j        v rŒ!t;          |
d         ¦  «        |k    rŒ;|r	|
d         rŒF|                     |	¦  «        x}€|                      ||	|
¦  «        x}||	<   |                     |	d¦  «         |||	<   Œ•ŒÔ| j         rµtB          dz
  dt;          |¦  «        z  z   }|tE          d„ | #                    ¦   «         D ¦   «         ¦  «        z  }t;          |¦  «        tH          k    s|tJ          k    r|  &                    ||¦  «        S |  '                    d„ | #                    ¦   «         D ¦   «         ¦  «         tP           )                    |d„ |                     ¦   «         D ¦   «         ¦  «         |S )z8Returns this jar's cookies filtered by their attributes.zQfilter_cookies expects yarl.URL instances only,and will stop working in 4.x, got r�   )Ú
stacklevelr   )r¤   ÚwssN)r   r   rò   r<   r]   r  r˜   r‡   c              3   ó&   K  — | ]}|d          V — ŒdS )r   Nr]   ©r`   râ   s     rC   ú	<genexpr>z+CookieJar.filter_cookies.<locals>.<genexpr>  s&   è è € Ð IÐ I¨e  q¤Ð IÐ IÐ IÐ IÐ IÐ IrD   c                 ó   — g | ]
}|d          ‘ŒS ©r�   r]   r0  s     rC   rÎ   z,CookieJar.filter_cookies.<locals>.<listcomp>  s   € Ð IÐ IÐ I¨e  q¤Ð IÐ IÐ IrD   c                 ó&   — i | ]\  }}||d          “ŒS )r   r]   )r`   r9   râ   s      rC   ú
<dictcomp>z,CookieJar.filter_cookies.<locals>.<dictcomp>  s"   € ÐRÐRÐR±+°$¸˜t U¨1¤XÐRÐRÐRrD   )*r   rd   rÚ   rK   r   ÚwarningsÚwarnÚDeprecationWarningr  r¦   ri   Ú
contextlibÚsuppressr®   r_   re   r‘   r”   Ú_morsel_entryr   Ú	itertoolsÚ
accumulateÚreversedr¿   Ú_FORMAT_DOMAIN_REVERSEDrg   r‡   Ú_FORMAT_PATHÚproductrã   rf   rî   r  Ú_COOKIE_HEADER_PREFIX_LENGTHÚsumrÛ   Ú_MAX_COOKIES_PER_REQUESTÚ_MAX_COOKIE_HEADER_LENGTHÚ_filter_cookies_within_limitsÚ_touch_cookiesr-   r»   )rA   r*  Úfilteredr  Úis_not_secureÚrequest_originÚselectedr}   rñ   r9   r™   râ   ÚdomainsÚpathsÚpairsÚpath_lenÚpr˜   Úheader_lengths                      rC   Úfilter_cookieszCookieJar.filter_cookies¯  s˜  € õ
 %/¡L¤LˆØŒ}ð 	àˆOØ×ÒÑÔÐØŒ}ð 	àˆOÝ�ÑÔ¥CÐ'Ð'ÝŒMðIÝ59¸+Ñ5FÔ5FðIð Iå"Øð	ñ ô ð õ ˜kÑ*Ô*ˆKØÔ'Ð-¨2ˆà#Ô*Ð2BÐBˆØð 	O˜TÔ9ð 	OÝ ™UœUˆNÝÔ$¥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ÐNˆMð -/ˆð ˆØ�$”-ÐÐØÔ(¨Ô-ˆGØ $¤¨cÔ 2× 8Ò 8Ñ :Ô :ð 'ð '‘��fØ ð  V¨HÔ%5ð ØØ$Ÿ[š[¨Ñ.Ô.Ð.�EÐ7Ø,0×,>Ò,>¸sÀDÈ&Ñ,QÔ,QÐQ�E˜G D™MØ!&�˜‘�å˜XÑ&Ô&ð 	å%.Ô%9Ý˜Ÿš¨Ñ,Ô,Ñ-Ô-Õ/Fñ&ô &ˆGˆGð Œ\ð 	Ø�kˆGˆGàˆGõ Ô$ [Ô%5×%;Ò%;¸CÑ%@Ô%@Å,ÑOÔOˆåÔ! '¨5Ñ1Ô1ˆå�{Ô'Ñ(Ô(ˆàð 	'ð 	'ˆAØ�HŠ}ˆ} ¨¬Ð 6Ð 6ØØÔ(¨Ô+ˆGØ $¤¨aÔ 0× 6Ò 6Ñ 8Ô 8ð 'ð '‘��fØ Ô)�à˜XÒ%Ð%¨!¨t¨g©+¸Ô9PÐ*PÐ*PØõ �v˜f”~Ñ&Ô&¨Ò1Ð1Øà ð  V¨HÔ%5ð Øà$Ÿ[š[¨Ñ.Ô.Ð.�EÐ7Ø,0×,>Ò,>¸qÀ$ÈÑ,OÔ,OÐO�E˜G D™Mð —’˜T 4Ñ(Ô(Ð(Ø!&�˜‘�ð%'ð( Ôð 		Kå8¸1Ñ<¸qÅ3ÀxÁ=Ä=Ñ?PÑPˆMØ�SÐ IÐ I°x·²Ñ7HÔ7HÐ IÑ IÔ IÑIÔIÑIˆMå�H‘”Õ 8Ò8Ð8Ø Õ#<Ò<Ð<à×9Ò9¸(ÀHÑMÔMÐMØ×ÒÐ IÐ I°x·²Ñ7HÔ7HÐ IÑ IÔ IÑJÔJÐJå�Š�HÐRÐRÀÇÂÑAQÔAQÐRÑRÔRÑSÔSÐSØˆs   ÃC)Ã)C-Ã0C-rK  r  c                 ó`  — t           dz
  }g }t          |                     ¦   «         ¦  «        D ]\\  }}t          |¦  «        t          k    r n>|dz   |d         z   t
          k    rŒ7|d|d         z   z  }|                     ||f¦  «         Œ]t          ¦   «         }t          |¦  «        D ]'\  }}t           	                    |||d         ¦  «         Œ(|  
                    d„ |D ¦   «         ¦  «         t          j        dt          |¦  «        t          |¦  «        z
  |t          t
          ¦  «         |S )zBAdmit the most specific cookies first so a host's own cookies win.r�   r   r   c                 ó$   — g | ]\  }}|d          ‘ŒS r3  r]   )r`   rµ   râ   s      rC   rÎ   z;CookieJar._filter_cookies_within_limits.<locals>.<listcomp>#  s    € Ð?Ð?Ð?©(¨!¨U˜U 1œXÐ?Ð?Ð?rD   zNOmitted %d cookie(s) for %s over the %d-cookie or %d-octet Cookie header limit)rB  r>  r‘   rã   rD  rE  rè   r   r-   Ú__setitem__rG  r   rø   )rA   rK  r  rQ  Úadmittedr9   râ   rH  s           rC   rF  z'CookieJar._filter_cookies_within_limits  s;  € õ 5°qÑ8ˆØ35ˆÝ# H§N¢NÑ$4Ô$4Ñ5Ô5ð 	+ð 	+‰KˆD�%Ý�8‰}Œ}Õ 8Ò8Ð8Ø�Ø˜qÑ  5¨¤8Ñ+Õ.GÒGÐGØØ˜Q  q¤™\Ñ)ˆMØ�OŠO˜T 5˜MÑ*Ô*Ð*Ð*å$.¡L¤LˆÝ# HÑ-Ô-ð 	7ð 	7‰KˆD�%Ý×Ò˜X t¨U°1¬XÑ6Ô6Ð6Ð6Ø×ÒÐ?Ð?°hÐ?Ñ?Ô?Ñ@Ô@Ð@ÝÔð/å�‰MŒM�C ™MœMÑ)ØÝ$Ý%ñ	
ô 	
ð 	
ð ˆrD   r™   c                 ó€   — | j         › d| j        › | j        › �}t          j        |¦  «        du ot          |¦  «        duS )z<Return whether the cookie can be written to a Cookie header.ú=N)r}   r~   r   r   Úsearchr   )r™   Útexts     rC   r   zCookieJar._can_send.  sL   € ð
 ”*ÐAÐA˜vœ|ÐA¨VÔ-?ÐAÐAˆÝÔ$ TÑ*Ô*¨dÐ2ÐXµÀtÑ7LÔ7LÐTXÐ7XÐXrD   rï   c                 ó‚   — |                       |¦  «        }t          |j        › d|j        › �¦  «        }|€J ‚||||fz   fS )z>Build the morsel to send with its length in the Cookie header.rX  )Ú_build_morselr   r}   r   )rA   rï   r9   r™   rš   Úlengths         rC   r;  zCookieJar._morsel_entry6  sW   € ð ×#Ò# FÑ+Ô+ˆÝ  F¤JÐ!EÐ!E°Ô1CÐ!EÐ!EÑFÔFˆØÐ!Ð!Ð!Ø�v˜w¨$¨Ñ0Ð0Ð0rD   Úcookie_keysc                 óV   — | xj         dz  c_         | j         }| j        }|D ]}|||<   ŒdS )zERecord one access generation for cookies used together, like Firefox.r   N)rm   rl   )rA   r^  Ú
generationr  rë   s        rC   rG  zCookieJar._touch_cookies?  sL   € àÐ$Ô$¨Ñ)Ð$Ô$ØÔ1ˆ
ØÔ.ˆØ%ð 	1ð 	1ˆJØ&0ˆK˜
Ñ#Ð#ð	1ð 	1rD   c                 ó   — | j         r'|j        r |j        d         dk    rt          |¦  «        S t          ¦   «         }| j         r#t                               |j        ¦  «        \  }}n	|j        x}}|                     |j        ||dœ¦  «         |S )z<Build a morsel for sending, respecting quote_cookie setting.r   ú"r|   )	rh   r   r   r	   Ú_SIMPLE_COOKIEÚvalue_encoder~   rÅ   r}   )rA   r™   rš   r~   r   s        rC   r\  zCookieJar._build_morselG  s›   € àÔð 	< &Ô"4ð 	<¸Ô9KÈAÔ9NÐRUÒ9UÐ9UÝ3°FÑ;Ô;Ð;Ý$™hœhˆØÔð 	/Ý!/×!<Ò!<¸V¼\Ñ!JÔ!JÑˆE�;�;à"(¤,Ð.ˆK˜%ð
 	×Ò F¤J¸È{Ð[Ð[Ñ\Ô\Ð\ØˆrD   c                 ó¾   — || k    rdS |                      | ¦  «        sdS |dt          | ¦  «         …         }|                      d¦  «        sdS t          |¦  «         S )z0Implements domain matching adhering to RFC 6265.TFNr<   )Úendswithrã   r   )r˜   r  Únon_matchings      rC   rÔ   zCookieJar._is_domain_matchW  sq   € ð �vÒÐØ�4à× Ò  Ñ(Ô(ð 	Ø�5à ¥3 v¡;¤; , Ô/ˆà×$Ò$ SÑ)Ô)ð 	Ø�5å  Ñ*Ô*Ð*Ð*rD   Ú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  )r`   Úss     rC   r1  z(CookieJar._parse_date.<locals>.<genexpr>~  s(   è è € Ð+PÐ+P°q­C°©F¬FÐ+PÐ+PÐ+PÐ+PÐ+PÐ+PrD   éF   éc   il  éE   iÐ  r   rQ   iA  rR   rS   rT   )Ú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)Úclsrh  Ú
found_timeÚ	found_dayÚfound_monthÚ
found_yearÚhourÚminuteÚsecondÚdayÚmonthÚyearÚtoken_matchrj  Ú
time_matchÚ	day_matchÚmonth_matchÚ
year_matchs                     rC   r  zCookieJar._parse_dateg  sg  € ð ð 	Ø�4àˆ
Øˆ	ØˆØˆ
à!"Ð"ˆÐ"ˆv˜ØˆØˆØˆàÔ-×6Ò6°xÑ@Ô@ð 	3ñ 	3ˆKØ×%Ò% gÑ.Ô.ˆEàð Ø Ô1×7Ò7¸Ñ>Ô>�
Øð Ø!%�JØ+PÐ+P¸J×<MÒ<MÑ<OÔ<OÐ+PÑ+PÔ+PÑ(�D˜& &Øàð ØÔ4×:Ò:¸5ÑAÔA�	Øð Ø $�IÝ˜iŸošoÑ/Ô/Ñ0Ô0�CØàð Ø!Ô/×5Ò5°eÑ<Ô<�Øð Ø"&�KØ&Ô0Ð<Ð<Ð<Ø'Ô1�EØàð 3Ø Ô-×3Ò3°EÑ:Ô:�
Øð 3Ø!%�JÝ˜z×/Ò/Ñ1Ô1Ñ2Ô2�Dùà�ÐÐÒÐ˜ÒÐÐÐÐØ�D‰LˆDˆDØ�$ˆ_ˆ_Š_ˆ_˜"Š_ˆ_ˆ_ˆ_ˆ_Ø�D‰LˆDà�Y ¨Z¸ÐDÐDÐDØ�4à�Cˆ~ˆ~Š~ˆ~˜2Š~ˆ~ˆ~ˆ~Ø�4à�$Š;ˆ;˜$ š)˜) v°¢{ {°f¸r²k°kØ�4åŒ  e¨S°$¸ÀÈÈBÐPRÐSÑTÔTÐTrD   )r:   r   )r´   r   r:   Nrq   ©r:   rØ   )r:   N)UrE   rF   rG   rH   r  ÚreÚcompilerp  rs  rv  ÚIrw  ry  r  ÚdatetimeÚmaxÚreplaceÚtimezoneÚutcÚ	timestampr  rz  r{  rÏ   ÚgmtimeÚOSErrorrÃ   ÚSUB_MAX_TIMEr!  r   r   ÚasyncioÚAbstractEventLooprc   ÚpropertyrV   rW   r1   r   rX   r   r/   rI   r
   rv   rx   r   r    rª   r¯   r²   r-   rÀ   r«   r   rº   r×   rÝ   rß   rÚ   ÚlistÚ
_CookieKeyrÐ   r  rù   r
  r   r  r   r  r±   rR  Ú_MorselEntryrF  Ústaticmethodr	   r   Ú_JarKeyr;  rG  r\  rÔ   Úclassmethodr  rL   rM   s   @rC   r   r   l   s>  ø€ € € € € Ø9Ð9à€Oà�R”Zð	>ñô €Nð
 "�r”zÐ"BÑCÔCÐà%˜2œ: lÑ3Ô3Ðà�B”JØQØ
Œñô €Mð
 �2”:˜lÑ+Ô+€Lð
 	ˆˆHÔÔ!×)Ò)°Ô1BÔ1FÐ)ÑGÔG×QÒQÑSÔSÑTÔTÐWXÑXð ðØˆŒ˜˜œ HÑ-Ô-Ñ.Ô.Ð.Ð.øØð Kð Kð Kð #�8”?Ð#IÑJÔJˆˆˆØð ð ð àˆˆˆðøøøð ˜a‘<€Lð
 Ø!ØGKØ15ð%ð %ð %ð ð%ð ð	%ð
 !)¨8°HÔ+=Ñ =ÀÑ Dð%ð Ô'¨$Ñ.ð%ð 
ð%ð %ð %ð %ð %ð %ðN ð˜ð ð ð ñ „Xðð ð"˜dð "ð "ð "ñ „Xð"ð ð,¨	°#¬ð ,ð ,ð ,ñ „Xð,ð ð/Ð)¨%°°S°¬/¸<Ð*GÔHð /ð /ð /ñ „Xð/ð ð2 9¨U°3¸¸S°=Ô-AÔ#Bð 2ð 2ð 2ñ „Xð2ð()˜hð ()¨4ð ()ð ()ð ()ð ()ðT '˜hð  '¨4ð  'ð  'ð  'ð  'ðD
ð 
ð 
ð 
ð ð  ð  ð  ð3'Ø˜˜d 3¨¨S°#¸±*¸uÑ2DÐ-DÔ(EÐ#EÔFÐFÔGð3'à	ð3'ð 3'ð 3'ð 3'ðj)ð )Ð3°dÑ:ð )Àdð )ð )ð )ð )ð4I 3ð I¨4ð Ið Ið Ið Ið$ð $ð $ð $ð
"˜ð "ð "ð "ð "ð))ð ))ð ))ð ))ðV; d¨:Ô&6ð ;¸4ð ;ð ;ð ;ð ;ð*' ð '¨dð '°tð 'ð 'ð 'ð 'ðR
ð 
ð 
ð 
ð- 5ð -°#ð -¸Sð -Èð -ÐPTð -ð -ð -ð -ð ILÈÉÌð Gð G lð GÀ#ð GÐRVð Gð Gð Gð GðØ ”}ðØ47ðà	ðð ð ð ð2 $(Ø#ðMð Mð MàðMð ðMð
 ðMð ˜D‘LðMð ðMð 
ðMð Mð Mð Mð^ 14°±´ð að a¨#ð aÐ:Kð að að að aðFØ˜S ,Ð.Ô/ðØ;>ðà	ðð ð ð ð8 ðY˜& œ+ð Y¨$ð Yð Yð Yñ „\ðYð1Øð1Ø&)ð1Ø39¸#´;ð1à	ð1ð 1ð 1ð 1ð1¨(°:Ô*>ð 1À4ð 1ð 1ð 1ð 1ð F¨3¤Kð °F¸3´Kð ð ð ð ð  ð+ ð +°ð +¸ð +ð +ð +ñ „\ð+ð ð<U 3ð <U¨3°©:ð <Uð <Uð <Uñ „[ð<Uð <Uð <Uð <Uð <Us   Â)C ÃC(ÃC(Ã'C(r   c                   ó:   — e Zd ZdZdZdededee         defd„Z	dS )	Ú_UnlimitedCookieJarzAJar for per-request cookies, which the jar limits don't apply to.Frï   r9   r™   r:   c                 ó<   — |                       |¦  «        dt          fS ©Nr   )r\  r    )rA   rï   r9   r™   s       rC   r;  z!_UnlimitedCookieJar._morsel_entry¬  s    € ð
 ×!Ò! &Ñ)Ô)¨1Õ.CÐCÐCrD   N)
rE   rF   rG   rH   r  r   rI   r	   rž  r;  r]   rD   rC   r£  r£  §  sa   € € € € € ØKÐKà€OðDØðDØ&)ðDØ39¸#´;ðDà	ðDð Dð Dð Dð Dð DrD   r£  c                   ó„  ‡ — e Zd ZdZddœdej        dz  ddfˆ fd„Zdd„Zdefd	„Z	e
defd
„¦   «         Ze
defd„¦   «         Ze
deeeef         ef         fd„¦   «         Ze
deeeeef                  fd„¦   «         Zddedz  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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[   rY   r:   c                óL   •— t          ¦   «                              |¬¦  «         d S )Nr[   )r?   rc   )rA   rY   rB   s     €rC   rc   zDummyCookieJar.__init__»  s$   ø€ Ý‰Œ×Ò˜dÐÑ#Ô#Ð#Ð#Ð#rD   rØ   c              #   ó
   K  — d S rq   r]   rr   s    rC   rÝ   zDummyCookieJar.__iter__¾  s   è è € ð	ð 	rD   c                 ó   — dS r¥  r]   rr   s    rC   rß   zDummyCookieJar.__len__Â  s   € ØˆqrD   c                 ó   — dS )NFr]   rr   s    rC   rV   zDummyCookieJar.unsafeÅ  s   € àˆurD   c                 ó   — dS )NTr]   rr   s    rC   rW   zDummyCookieJar.quote_cookieÉ  s   € àˆtrD   c                 ó    — t          i ¦  «        S )zReturn an empty mapping.r   rr   s    rC   rv   zDummyCookieJar.cookiesÍ  s   € õ   Ñ#Ô#Ð#rD   c                 ó   — t          ¦   «         S )zReturn an empty frozenset.)r1   rr   s    rC   rx   z DummyCookieJar.host_only_cookiesÒ  s   € õ ‰{Œ{ÐrD   rÊ   c                 ó   — d S rq   r]   )rA   rÊ   s     rC   rº   zDummyCookieJar.clear×  ó   € ØˆrD   r˜   c                 ó   — d S rq   r]   rÖ   s     rC   r×   zDummyCookieJar.clear_domainÚ  r¯  rD   rv   r¶   c                 ó   — d S rq   r]   r  s      rC   r  zDummyCookieJar.update_cookiesÝ  r¯  rD   r  c                 ó   — dS )z2Ignore raw Set-Cookie fields without parsing them.Nr]   )rA   r  r¶   s      rC   r  z*DummyCookieJar.update_cookies_from_headersà  s   € € € rD   r*  r+  c                 ó   — t          ¦   «         S rq   )r
   )rA   r*  s     rC   rR  zDummyCookieJar.filter_cookieså  s   € Ý‰~Œ~ÐrD   rŒ  rq   )rE   rF   rG   rH   r™  rš  rc   rÝ   r  rß   r›  r!  rV   rW   r   r/   rI   r
   rv   r1   rx   r   rº   r×   r   r   r  r   r  rR  rL   rM   s   @rC   r   r   ´  sA  ø€ € € € € ðð ð DHð $ð $ð $ Ô 9¸DÑ @ð $ÈDð $ð $ð $ð $ð $ð $ðð ð ð ð˜ð ð ð ð ð ð˜ð ð ð ñ „Xðð ð˜dð ð ð ñ „Xðð ð$Ð)¨%°°S°¬/¸<Ð*GÔHð $ð $ð $ñ „Xð$ð ð 9¨U°3¸¸S°=Ô-AÔ#Bð ð ð ñ „Xððð Ð3°dÑ:ð Àdð ð ð ð ð 3ð ¨4ð ð ð ð ð ILÈÉÌð ð  lð À#ð ÐRVð ð ð ð ðAØ ”}ðAØ47ðAà	ðAð Að Að Að
¨#ð Ð2Cð ð ð ð ð ð ð ð rD   r   )Nr™  rz  r9  r�  rå   r<  r•   rÁ   r…   r�   r=   r�  rÏ   r6  r3   r   Úcollections.abcr   r   r   r   Úhttp.cookiesr   r	   r
   Útypesr   Útypingr   r   Úyarlr   Ú_cookie_helpersr   r   r   r   Úabcr   r   Úhelpersr   Úlogr   Útypedefsr   r   r   Ú__all__rI   Ú
CookieItemr/   r   r�  r  rž  r    rJ   Úformatr@  r?  rä   rc  rõ   rö   r  r  rD  rE  rã   rB  r1   r“   Ú
_Unpicklerr(   r   r£  r   r]   rD   rC   ú<module>rÂ     sG  ðØ €€€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à
)€ð �3˜Ð%Ô&€
Ø
��S�Œ/€Ø�3˜˜S�=Ô!€
à�] C¨Ð3Ô4€Ø$0Ð �zÐ 0Ð 0Ñ 0ð Œ~€Ø#Ô*Ð ð
 $'Ð  Ø�‘”€ð Ð ØÐ ØÐ ØÐ ØÐ Ø Ð Ø"˜s ;Ñ/Ô/Ð ð #˜Ð#9Ñ:Ô:Ð ð%0ð %0ð %0ð %0ð %0 Ô!2ñ %0ô %0ð %0ðPxUð xUð xUð xUð xUÐ!ñ xUô xUð xUðv
Dð 
Dð 
Dð 
Dð 
D˜)ñ 
Dô 
Dð 
Dð2ð 2ð 2ð 2ð 2Ð&ñ 2ô 2ð 2ð 2ð 2rD   