
    2\h.                       	 g d 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Zdad ZdZdZ eej        j                  Z ej        d          Zd	Zd
Zd ZdZd Zg dZg dZ d e D             Z!dKdZ"dKdZ#dddddZ$ ej        dej%                  Z&d Z'd Z( ej        dej%                  Z) ej        dej*        ej%        z            Z+ ej        dej,        ej%        z            Z-d Z. ej        dej,        ej%        z            Z/d Z0d Z1 ej        d          Z2 ej        d          Z3 ej        d           Z4 ej        d!          Z5d" Z6 ej        d#          Z7d$ Z8d% Z9d& Z: ej        d'ej%                  Z;d( Z<d) Z=d* Z>d+ Z? ej        d,ej%                  Z@d- ZAd. ZBd/ ZCd0 ZDd1ZE ej        d2          ZFd3 ZGd4 ZHd5 ZId6 ZJ G d7 d8          ZK G d9 d:          ZL G d; d<eL          ZMd= ZN G d> d?          ZO G d@ dA          ZP G dB dCeQ          ZR G dD dEeP          ZSdF ZT G dG dHeS          ZU G dI dJeS          ZVdS )L)Cookie	CookieJarCookiePolicyDefaultCookiePolicyFileCookieJarLWPCookieJar	LoadErrorMozillaCookieJar    N)timegmFc                  p    t           sd S t          sdd l}|                    d          at          j         |  S )Nr
   zhttp.cookiejar)debugloggerlogging	getLogger)argsr   s     8/opt/python-3.11.14/usr/lib/python3.11/http/cookiejar.py_debugr   ,   sA      5""#344<    HTTPOnlyz
#HttpOnly_z#( Netscape)? HTTP Cookie FilezQa filename was not supplied (nor was the CookieJar instance initialised with one)zr# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file!  Do not edit.

c                      dd l } dd l}dd l}|                                 }|                    d |           |                                }|                    d|z  d           d S )Nr
   zhttp.cookiejar bug!
%s   )
stacklevel)iowarnings	tracebackStringIO	print_excgetvaluewarn)r   r   r   fmsgs        r   _warn_unhandled_exceptionr"   B   sz     #"""""""""""
Aa   
**,,CMM+c1aM@@@@@r   i  c                     | d d         \  }}}}}}|t           k    r_d|cxk    rdk    rRn nOd|cxk    rdk    rBn n?d|cxk    rdk    r2n n/d|cxk    rdk    r"n nd|cxk    rdk    rn nt          |           S d S )	N            r
      ;   =   )
EPOCH_YEARr   )ttyearmonthmdayhourminsecs          r   _timegmr3   Q   s    (*2A2%D%tS#			!u"2"2"2"2"2"2"2"2"2db	
dbqC~~~~2~~~~~ANNNNNNNNNbzztr   )MonTueWedThuFriSatSun)JanFebMarAprMayJunJulAugSepOctNovDecc                 6    g | ]}|                                 S  )lower).0r.   s     r   
<listcomp>rK   \   s     222%222r   c                     	 | t           j                                         }nt           j                             |           }d|j        |j        |j        |j        |j        |j        fz  S )Nz%04d-%02d-%02d %02d:%02d:%02dZ)	datetimeutcnowutcfromtimestampr-   r.   dayr0   minutesecondtdts     r   	time2isozrV   ^   sh    
 	y%%''//22+
2627BIry/B B Br   c                 .   	 | t           j                                         }nt           j                             |           }dt          |                                         |j        t          |j        dz
           |j        |j	        |j
        |j        fz  S )Nz#%s, %02d-%s-%04d %02d:%02d:%02d GMTr%   )rM   rN   rO   DAYSweekdayrP   MONTHSr.   r-   r0   rQ   rR   rS   s     r   time2netscaper[   q   s~    	 	y%%''//220RZZ\\BFF28A:$6
")RY40 0 0r   )GMTUTCUTZz^([-+])?(\d\d?):?(\d\d)?$c                 V   d }| t           v rd}nt                              |           }|r~dt          |                    d                    z  }|                    d          r(|dt          |                    d                    z  z   }|                    d          dk    r| }|S )Nr
   i  r      <   r%   -)	UTC_ZONESTIMEZONE_REsearchintgroup)tzoffsetms      r   offset_from_tz_stringrl      s    F	Yr"" 	!C

OO+Fwwqzz 7"s1771::"66wwqzzS   Mr   c           	      .   t          |          }|t          j        k    rd S 	 t                              |                                          dz   }nI# t          $ r< 	 t          |          }n# t          $ r Y Y d S w xY wd|cxk    rdk    rn n|}nY d S Y nw xY w|d}|d}|d}t          |           } t          |          }t          |          }t          |          }|dk     rct          j        t          j                              d         }|dz  }	|}
||z   |	z
  }|	|
z
  }	t          |	          dk    r|	dk    r|dz   }n|dz
  }t          ||| ||||f          }|0|d}|                                }t          |          }|d S ||z
  }|S )Nr%   r&   r
   i  d   2   r]   )rg   rM   MAXYEARMONTHS_LOWERindexrI   
ValueErrortime	localtimeabsr3   upperrl   )rP   monyrhrr1   r2   ri   imoncur_yrrk   tmprT   rj   s                r   	_str2timer~      s   	RB	Ht  --a/ 	 	 		s88DD 	 	 	444	?????????CC44 C	 
z2
{!C
{!C
c((C	RB
c((C
c((C	Dyy	,,Q/SL&[1_Gq66B;;1uu28bbCx" 	S#r3R011A}:BXXZZ&r**>4JHs5   /A 
BA.-B.
A=8B<A==BBzV^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$z+^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*a  ^
    (\d\d?)            # day
       (?:\s+|[-\/])
    (\w+)              # month
        (?:\s+|[-\/])
    (\d+)              # year
    (?:
          (?:\s+|:)    # separator before clock
       (\d\d?):(\d\d)  # hour:min
       (?::(\d\d))?    # optional seconds
    )?                 # optional clock
       \s*
    (?:
       ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+) # timezone
       \s*
    )?
    (?:
       \(\w+\)         # ASCII representation of timezone in parens.
       \s*
    )?$c           	         	 t                               |           }|r|                                }t                              |d                                                   dz   }t          |d                   |t          |d                   t          |d                   t          |d                   t          |d                   f}t          |          S | 	                                } t                              d| d          } d gdz  \  }}}}}}	}
t                              |           }||                                \  }}}}}}	}
nd S t          ||||||	|
          S )	Nr%   r   r
   ra             )STRICT_DATE_RErf   groupsrq   rr   rI   rg   floatr3   lstrip
WEEKDAY_REsubLOOSE_HTTP_DATE_REr~   )textrk   grx   r,   rP   ry   rz   r1   r2   ri   s              r   	http2timer      s?   : 	d##A HHJJ  1..2!A$iic!A$ii!A$iiQqTE!A$KK1r{{
 ;;==D>>"dA&&D '+VAX"Cb"c3 	!!$''A})*&S"b#sBBtS#r2sC444r   a  ^
    (\d{4})              # year
       [-\/]?
    (\d\d?)              # numerical month
       [-\/]?
    (\d\d?)              # day
   (?:
         (?:\s+|[-:Tt])  # separator before clock
      (\d\d?):?(\d\d)    # hour:min
      (?::?(\d\d(?:\.\d*)?))?  # optional seconds (and fractional)
   )?                    # optional clock
      \s*
   (?:
      ([-+]?\d\d?:?(:?\d\d)?
       |Z|z)             # timezone  (Z is "zero meridian", i.e. GMT)
      \s*
   )?$c           	          	 |                                  } d gdz  \  }}}}}}}t                              |           }||                                \  }}}}}}}}	nd S t	          |||||||          S )Nr   )r   ISO_DATE_RErf   r   r~   )
r   rP   rx   ry   rz   r1   r2   ri   rk   _s
             r   iso2timer   2  s    
 ;;==D '+VAX"Cb"c3 	4  A} -.HHJJ)Cb#sBtS#r2sC444r   c                 r    	 |                      d          \  }}| j        d |         | j        |d          z   S )Nr
   )spanstring)matchstartends      r   	unmatchedr   S  s9    3AJE3<STT 222r   z^\s*([^=\s;,]+)z&^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"z^\s*=\s*([^\s;,]*)z\\(.)c                 b   	 g }| D ]}|}g }|rt                               |          }|rt          |          }|                    d          }t                              |          }|r@t          |          }|                    d          }t
                              d|          }nWt                              |          }|r9t          |          }|                    d          }|                                }nd }|	                    ||f           nx|
                                                    d          r6|
                                dd          }|r|	                    |           g }nt          j        dd|          \  }}	|}||r|	                    |           |S )Nr%   z\1,z^[=\s;]*r   )HEADER_TOKEN_RErf   r   rh   HEADER_QUOTED_VALUE_REHEADER_ESCAPE_REr   HEADER_VALUE_RErstripappendr   
startswithresubn)
header_valuesresultr   	orig_textpairsrk   namevaluenon_junknr_junk_charss
             r   split_header_wordsr   \  s   +Z F #' #'	 	 &&t,,A   ||wwqzz*11$77 %$Q<<DGGAJJE,00>>EE'..t44A %(|| !

 % !%dE]++++))#..  {{}}QRR(.&--... +-'+r4*H*H'-  ?  	 @ &&--&&&Mr   ([\"\\])c                 J   	 g }| D ]}g }|D ]X\  }}|<t          j        d|          s t                              d|          }d|z  }|d|}|                    |           Y|r(|                    d                    |                     d                    |          S )Nz^\w+$\\\1z"%s"=; , )r   rf   HEADER_JOIN_ESCAPE_REr   r   join)listsheadersr   attrkvs         r   join_header_wordsr     s    
 G 	1 	1 	 	DAq}y1-- #-11'1==A
A qq!!$KKNNNN0		$00099Wr   c                     |                      d          r
| dd          } |                     d          r
| d d         } | S )N"r%   )r   endswithr   s    r   strip_quotesr     sI    s ABBx}}S CRCyKr   c                    	 d}g }| D ]6}g }d}t          |                    d                    D ]\  }}|                                }|                    d          \  }}	}
|                                }|s	|dk    r nQ|	r|
                                nd }
|dk    rX|                                }||v r|}|dk    r|
t          |
          }
d}n$|dk    r|
t          t          |
                    }
|                    ||
f           |r,|s|                    d	           |                    |           8|S )
N)expiresdomainpathsecureversionportmax-ageF;r   r
   r   Tr   )r   0)	enumeratesplitstrip	partitionrI   r   r   r   )
ns_headersknown_attrsr   	ns_headerr   version_setiiparamkeysepvallcs               r   parse_ns_headersr     s|   1K F +! +!	 #9??3#7#788 	% 	%IBKKMME!OOC00MCc))++C 77E "%.#))+++$CQwwYY[[$$C)##*3//"&KKI%%'S(9(9::LL#s$$$$ 	! /-...MM%   Mr   z\.\d+$c                     	 t                               |           rdS | dk    rdS | d         dk    s| d         dk    rdS dS )NFr   r
   .r   TIPV4_RErf   r   s    r   is_HDNr     sQ    4 ~~d urzzuAw#~~bSu4r   c                 0   	 |                                  } |                                 }| |k    rdS t          |           sdS |                     |          }|dk    s|dk    rdS |                    d          sdS t          |dd                    sdS dS )NTFr   r
   r   r%   )rI   r   rfindr   )ABis      r   domain_matchr   &  s    , 	
		A			AAvvt!99 u	

ABww!q&&u<< u!ABB%== u4r   c                 @    	 t                               |           rdS dS NFTr   r   s    r   liberal_is_HDNr   M  s'    
 ~~d u4r   c                    	 |                                  } |                                 }t          |           rt          |          s
| |k    rdS dS |                    d          }|r|                     |          rdS |s| |k    rdS dS )NTFr   )rI   r   r   r   )r   r   initial_dots      r   user_domain_matchr   W  s    
 	
		A			A1 ."3"3 664u,,s##K qzz!}} t 166t5r   z:\d+$c                    	 |                                  }t          j                            |          d         }|dk    r|                     dd          }t
                              d|d          }|                                S )Nr%   r   Host)get_full_urlurllibparseurlparse
get_headercut_port_rer   rI   )requesturlhosts      r   request_hostr   l  sw     


 
 C<  %%a(Drzz!!&"-- ??2tQ''D::<<r   c                     	 t          |           x}}|                    d          dk    rt                              |          s|dz   }||fS )Nr   r   .local)r   findr   rf   )r   erhnreq_hosts      r   eff_request_hostr   |  sW    
 #7+++D8}}SRx(@(@("T>r   c                     	 |                                  }t          j                            |          }t	          |j                  }|                    d          sd|z   }|S )N/)r   r   r   urlsplitescape_pathr   r   )r   r   partsr   s       r   request_pathr    s\    @



 
 CL!!#&&Euz""D??3 TzKr   c                     | j         }|                    d          }|dk    r?||dz   d          }	 t          |           n(# t          $ r t	          d|           Y d S w xY wt
          }|S )N:r
   r%   znonnumeric port: '%s')r   r   rg   rs   r   DEFAULT_HTTP_PORT)r   r   r   r   s       r   request_portr    s    <D		#AAvvAaCDDz	IIII 	 	 	*D11144	 !Ks   A AAz%/;:@&=+$,!~*'()z%([0-9a-fA-F][0-9a-fA-F])c                 V    d|                      d                                          z  S )Nz%%%sr%   )rh   rw   )r   s    r   uppercase_escaped_charr    s#    EKKNN((****r   c                     	 t           j                            | t                    } t                              t          |           } | S N)r   r   quoteHTTP_PATH_SAFEESCAPED_CHAR_REr   r  )r   s    r   r   r     s9    O <dN33D5t<<DKr   c                     	 |                      d          }|dk    rB| |dz   d          }|                     d          }t          |           r|dk    s|dk    rd|z   S | S )Nr   r
   r%   local)r   r   )hr   bs      r   reachr    sm    2 	
sAAvvacddGFF3KK!99 	!q&&ALLq5LHr   c                 n    	 t          |           }t          |t          | j                            sdS dS NTF)r   r   r  origin_req_host)r   r   s     r   is_third_partyr    s=     G$$H%(?"@"@AA tur   c                   B    e Zd Z	 	 d
dZd ZddZd ZddZd Zd	 Z	dS )r   Fc                    |t          |          }|t          t          |                    }||du rt          d          || _        || _        || _        || _        || _        |                                | _	        || _
        || _        |	| _        |
| _        || _        || _        || _        || _        || _        || _        t)          j        |          | _        d S )NTz-if port is None, port_specified must be false)rg   r   rs   r   r   r   r   port_specifiedrI   r   domain_specifieddomain_initial_dotr   path_specifiedr   r   discardcommentcomment_urlrfc2109copy_rest)selfr   r   r   r   r  r   r  r  r   r  r   r   r  r  r  restr   s                     r   __init__zCookie.__init__  s     #g,,#eGnn*=*=<Nd22LMMM	
	,llnn 0
 #5	,&Yt__


r   c                     || j         v S r
  r"  )r#  r   s     r   has_nonstandard_attrzCookie.has_nonstandard_attr#  s    tz!!r   Nc                 8    | j                             ||          S r
  )r"  get)r#  r   defaults      r   get_nonstandard_attrzCookie.get_nonstandard_attr%  s    z~~dG,,,r   c                     || j         |<   d S r
  r'  )r#  r   r   s      r   set_nonstandard_attrzCookie.set_nonstandard_attr'  s     
4r   c                 X    |t          j                     }| j        | j        |k    rdS dS r  )rt   r   )r#  nows     r   
is_expiredzCookie.is_expired*  s/    ;dikkL$4<3+>+>4ur   c                     | j         d}n
d| j         z   }| j        |z   | j        z   }| j        | j        d| j        }n| j        }d|d|dS )Nr   r  r   z<Cookie z for >)r   r   r   r   r   )r#  plimit	namevalues       r   __str__zCookie.__str__0  sf    9"aadi-aa$)+:!#'999djj9II	I'0yy%%%88r   c                 p   g }dD ]9}t          | |          }|                    |dt          |                     :|                    dt          | j                  z             |                    dt          | j                  z             | j        j        dd                    |          dS )N)r   r   r   r   r  r   r  r  r   r  r   r   r  r  r  r   zrest=%sz
rfc2109=%s(r   ))getattrr   reprr"  r   	__class____name__r   )r#  r   r   r   s       r   __repr__zCookie.__repr__:  s     	6 	6D 4&&DKK444d45555ITZ 0 00111L4#5#55666>222DIIdOOOODDr   )Fr
  )
r>  
__module____qualname__r%  r(  r,  r.  r1  r7  r?  rH   r   r   r   r     s        6 (% (% (% (%T" " "- - - -! ! !   9 9 9E E E E Er   r   c                   (    e Zd Z	 d Zd Zd Zd ZdS )r   c                      	 t                      r
  NotImplementedErrorr#  cookier   s      r   set_okzCookiePolicy.set_okR  s    	 "###r   c                      	 t                      r
  rD  rF  s      r   	return_okzCookiePolicy.return_ok[  s    O!###r   c                     	 dS NTrH   )r#  r   r   s      r   domain_return_okzCookiePolicy.domain_return_ok_      	tr   c                     	 dS rL  rH   )r#  r   r   s      r   path_return_okzCookiePolicy.path_return_okd  rN  r   N)r>  r@  rA  rH  rJ  rM  rP  rH   r   r   r   r   I  sU        $ $ $$ $ $  
    r   r   c                       e Zd Z	 dZdZdZdZeez  Zdddddddddedddfd	Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS ) r   r%   r   r   r
   NTF)httpswssc                    	 || _         || _        || _        || _        || _        || _        |	| _        |
| _        || _        || _	        || _
        |t          |          | _        nd| _        |t          |          }|| _        d S )NrH   )netscaperfc2965rfc2109_as_netscapehide_cookie2strict_domainstrict_rfc2965_unverifiablestrict_ns_unverifiablestrict_ns_domainstrict_ns_set_initial_dollarstrict_ns_set_pathsecure_protocolstuple_blocked_domains_allowed_domains)r#  blocked_domainsallowed_domainsrU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  s                 r   r%  zDefaultCookiePolicy.__init__t  s     	P #6 (*+F(&<# 0,H)"4 0&$)/$:$:D!!$&D!&#O44O /r   c                     	 | j         S r
  )ra  r#  s    r   rc  z#DefaultCookiePolicy.blocked_domains  s    B$$r   c                 0    	 t          |          | _        d S r
  )r`  ra  )r#  rc  s     r   set_blocked_domainsz'DefaultCookiePolicy.set_blocked_domains  s    2 %o 6 6r   c                 @    | j         D ]}t          ||          r dS dS r  )ra  r   )r#  r   blocked_domains      r   
is_blockedzDefaultCookiePolicy.is_blocked  s7    "3 	 	N 88 ttur   c                     	 | j         S r
  )rb  rf  s    r   rd  z#DefaultCookiePolicy.allowed_domains  s    K$$r   c                 8    	 |t          |          }|| _        d S r
  )r`  rb  )r#  rd  s     r   set_allowed_domainsz'DefaultCookiePolicy.set_allowed_domains  s&    ;&#O44O /r   c                 R    | j         dS | j         D ]}t          ||          r dS dS r   )rb  r   )r#  r   allowed_domains      r   is_not_allowedz"DefaultCookiePolicy.is_not_allowed  sE     (5"3 	 	N 88 uutr   c                     	 t          d|j        |j                   dD ]&}d|z   }t          | |          } |||          s dS 'dS )N - checking cookie %s=%s)r   verifiabilityr   r   r   r   set_ok_FTr   r   r   r;  r#  rG  r   nfn_namefns         r   rH  zDefaultCookiePolicy.set_ok  sq    	 	)6;EEE N 	 	AkGw''B2fg&& uu tr   c                     |j         t          d|j        |j                   dS |j         dk    r| j        st          d           dS |j         dk    r| j        st          d           dS dS )Nz0   Set-Cookie2 without version attribute (%s=%s)Fr
   $   RFC 2965 cookies are switched off$   Netscape cookies are switched offT)r   r   r   r   rV  rU  rF  s      r   set_ok_versionz"DefaultCookiePolicy.set_ok_version  s    >! E;. . .5>Adl9:::5^q   9:::5tr   c                     |j         rUt          |          rF|j        dk    r| j        rt	          d           dS |j        dk    r| j        rt	          d           dS dS Nr
   z>   third-party RFC 2965 cookie during unverifiable transactionFz>   third-party Netscape cookie during unverifiable transactionTunverifiabler  r   rZ  r   r[  rF  s      r   set_ok_verifiabilityz(DefaultCookiePolicy.set_ok_verifiability  s     	N7$;$; 	~!!d&F! 8 9 9 9u1$$)D$ 8 9 9 9utr   c                     |j         dk    r8| j        r1|j                            d          rt	          d|j                   dS dS )Nr
   $z'   illegal name (starts with '$'): '%s'FT)r   r]  r   r   r   rF  s      r   set_ok_namezDefaultCookiePolicy.set_ok_name  sN     NaD$EK""3''  <fkJJJ5tr   c                     |j         r_t          |          }|j        dk    s|j        dk    r:| j        r3|                     |j        |          st          d|j        |           dS dS )Nr
   z7   path attribute %s is not a prefix of request path %sFT)r  r  r   r^  rP  r   r   )r#  rG  r   req_paths       r   set_ok_pathzDefaultCookiePolicy.set_ok_path  s~      	#G,,H!##.A%%$*A%''W== & !"(+x9 9 9utr   c                 |   |                      |j                  rt          d|j                   dS |                     |j                  rt          d|j                   dS |j        rQt          |          \  }}|j        }| j        r|                    d          dk    r|                    d          }|                    dd|          }|dk    rU||dz   d          }||dz   |         }	|		                                dv r%t          |          dk    rt          d	|           dS |                    d          r|dd          }
n|}
|
                    d          dk    }|s'|                    d
          st          d|           dS |j        dk    rm|                    |          sX|                    |
 d
          s@|                    d          s+d|z                       |          st          d||           dS |j        dk    s| j        | j        z  r#t#          ||          st          d||           dS |j        dk    s| j        | j        z  r^|d t          |                    }|                    d          dk    r-t&                              |          st          d||           dS dS )N"   domain %s is in user block-listF&   domain %s is not in user allow-listr   r   r
   r%   )coaccomeduorgnetgovmilrg   aerobizcatcoopinfojobsmobimuseumr   protraveleuz&   country-code second level domain %sr   z/   non-local domain %s contains no embedded dotzO   effective request-host %s (even with added initial dot) does not end with %sz5   effective request-host %s does not domain-match %sz.   host prefix %s for domain %s contains a dotT)rk  r   r   rq  r  r   rY  countr   rI   lenr   r   r   r   r\  DomainRFC2965Matchr   DomainStrictNoDotsr   rf   )r#  rG  r   r   r   r   r   jtldsldundotted_domainembedded_dotshost_prefixs                r   set_ok_domainz!DefaultCookiePolicy.set_ok_domain  s   ??6=)) 	7GGG5v}-- 	;V]KKK5" 2	!-g66NHd]F! %v||C'8'8A'='= LL%%LLa++66 1,C 1Q-Cyy{{ '' ' ' ,/s88q==GPPP$u  %% )"(*"(,11#66!;M  x)@)@ H  u~""v.. !/'A'A'ABB!--! d(,,V44!  ?) ) ) !5""&)@@ ##D&11 !  !%v/ / / 5""&)@@ #&}V}5$$S))Q..x00 /K&0 0 0 5tr   c                 :   |j         rt          |          }|d}nt          |          }|j                            d          D ]=}	 t          |           n"# t          $ r t          d|           Y  dS w xY w||k    r n>t          d||j                   dS dS )N80r   z   bad port %s (not numeric)Fz$   request port (%s) not found in %sT)r  r  strr   r   rg   rs   r   r#  rG  r   req_portr4  s        r   set_ok_portzDefaultCookiePolicy.set_ok_port3  s      	#G,,Hx==[&&s++  !FFFF! ! ! !91=== 555! ==E ! =. . .uts   AA76A7c                     	 t          d|j        |j                   dD ]&}d|z   }t          | |          } |||          s dS 'dS )Nrs  )r   rt  r   r   r   r   
return_ok_FTrv  rw  s         r   rJ  zDefaultCookiePolicy.return_okH  sl    	 	)6;EEER 	 	A"1nGw''B2fg&& uutr   c                     |j         dk    r| j        st          d           dS |j         dk    r| j        st          d           dS dS )Nr
   r|  Fr}  T)r   rV  r   rU  rF  s      r   return_ok_versionz%DefaultCookiePolicy.return_ok_versionZ  sW    >Adl9:::5^q   9:::5tr   c                     |j         rUt          |          rF|j        dk    r| j        rt	          d           dS |j        dk    r| j        rt	          d           dS dS r  r  rF  s      r   return_ok_verifiabilityz+DefaultCookiePolicy.return_ok_verifiabilityc  s     	N7$;$; 	~!!d&F! % & & &u1$$)D$ % & & &utr   c                 R    |j         r|j        | j        vrt          d           dS dS )Nz(   secure cookie with non-secure requestFT)r   typer_  r   rF  s      r   return_ok_securez$DefaultCookiePolicy.return_ok_secureo  s4    = 	W\1FFF=>>>5tr   c                 \    |                     | j                  rt          d           dS dS )Nz   cookie expiredFT)r1  _nowr   rF  s      r   return_ok_expiresz%DefaultCookiePolicy.return_ok_expiresu  s3    TY'' 	&'''5tr   c                     |j         rPt          |          }|d}|j                             d          D ]
}||k    r nt          d||j                    dS dS )Nr  r   z0   request port %s does not match cookie port %sFT)r   r  r   r   r  s        r   return_ok_portz"DefaultCookiePolicy.return_ok_port{  s~    ; 
	#G,,H[&&s++  ==E ! I. . .utr   c                    t          |          \  }}|j        }|r|                    d          sd|z   }n|}|j        dk    r-| j        | j        z  r|j        s||k    rt          d           dS |j        dk    r#t          ||          st          d||           dS |j        dk    r+d|z   	                    |          st          d||           dS dS )Nr   r
   zQ   cookie with unspecified domain does not string-compare equal to request domainFzQ   effective request-host name %s does not domain-match RFC 2965 cookie domain %sz;   request-host %s does not match Netscape cookie domain %sT)
r   r   r   r   r\  DomainStrictNonDomainr  r   r   r   )r#  rG  r   r   r   r   	dotdomains          r   return_ok_domainz$DefaultCookiePolicy.return_ok_domain  s    )'22$ 	&++C00 	fIII Na"T%??  '  ,2dNN - . . .5>Al4&@&@ /04f> > >5>QD':':9'E'E !6+ + +5tr   c                    t          |          \  }}|                    d          sd|z   }|                    d          sd|z   }|r|                    d          sd|z   }n|}|                    |          s|                    |          sdS |                     |          rt	          d|           dS |                     |          rt	          d|           dS dS )Nr   Fr  r  T)r   r   r   rk  r   rq  )r#  r   r   r   r   r  s         r   rM  z$DefaultCookiePolicy.domain_return_ok  s	    *'22$""3'' 	$8|Hs## 	t8D 	&++C00 	fIII!!),, 	i0H0H 	 5??6"" 	7@@@5v&& 	;VDDD5tr   c                    t          d|           t          |          }t          |          }||k    rdS |                    |          r(|                    d          s|||dz            dk    rdS t          d||           dS )Nz- checking cookie path=%sTr   r%   z  %s does not path-match %sF)r   r  r  r   r   )r#  r   r   r  pathlens        r   rP  z"DefaultCookiePolicy.path_return_ok  s    *D111((d))t4!!$'' 	}}S!!	%-ggai.?%@C%G%G4,h===ur   )r>  r@  rA  r  r  r  DomainLiberalDomainStrictr%  rc  rh  rk  rd  rn  rq  rH  r~  r  r  r  r  r  rJ  r  r  r  r  r  r  rM  rP  rH   r   r   r   r   j  s       LM%&;;L "&t%)#$-1(-"/.3$)"2!0 !0 !0 !0F% % %7 7 7  % % %0 0 0    &  
 
 
  	 	 	: : :x  *  $  
 
 
        6  4    r   r   c              #      K   	 t          |                                           D ]:}d} 	 |j         d} t          |          E d {V  n# t          $ r Y nw xY w| s|V  ;d S r   )listvaluesitems
deepvaluesAttributeError)mappingobjs     r   r  r    s      3GNN$$%% 
 
	'II G!#&&&&&&&&	  	 	 	D	
  	III
 
s   A		
AAc                       e Zd ZdS )AbsentNr>  r@  rA  rH   r   r   r  r              r   r  c                   ^   e Zd Z	  ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z	 ej        dej
                  ZddZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Z dS )r   z\Wr   z\.?[^.]*z[^.]*z^\.+z^\#LWP-Cookies-(\d+\.\d+)Nc                 r    |t                      }|| _        t          j                    | _        i | _        d S r
  )r   _policy
_threadingRLock_cookies_lock_cookiesr#  policys     r   r%  zCookieJar.__init__  s5    >(**F'-//r   c                     || _         d S r
  )r  r  s     r   
set_policyzCookieJar.set_policy  s    r   c                    g }| j                             ||          sg S t          d|           | j        |         }|                                D ]}| j                             ||          s||         }|                                D ]Q}| j                             ||          st          d           -t          d           |                    |           R|S )Nz!Checking %s for cookies to returnz   not returning cookiez   it's a match)	r  rM  r   r  keysrP  r  rJ  r   )r#  r   r   cookiescookies_by_pathr   cookies_by_namerG  s           r   _cookies_for_domainzCookieJar._cookies_for_domain  s    |,,VW== 	I2F;;;-/#((** 		' 		'D<..tW== -d3O)0022 ' '|--fg>> 4555()))v&&&&' r   c                     	 g }| j                                         D ]+}|                    |                     ||                     ,|S r
  )r  r  extendr  )r#  r   r  r   s       r   _cookies_for_requestzCookieJar._cookies_for_request
  sS    @m((** 	F 	FFNN433FGDDEEEEr   c                 @   	 |                     d d           d}g }|D ]|}|j        }|s d}|dk    r|                    d|z             |j        F| j                            |j                  r'|dk    r!| j                            d|j                  }n|j        }|j        |                    |j                   n|                    |j        d|           |dk    r|j	        r|                    d	|j
        z             |j                            d
          rE|j        }|j        s|                    d
          r
|dd          }|                    d|z             |j        +d}|j        r|d|j        z  z   }|                    |           ~|S )Nc                 *    t          | j                  S r
  )r  r   )as    r   <lambda>z)CookieJar._cookie_attrs.<locals>.<lambda>  s    3qv;; r   T)r   reverseFr
   z$Version=%sr   r   z
$Path="%s"r   r%   z$Domain="%s"z$Portz="%s")sortr   r   r   non_word_rerf   quote_rer   r   r  r   r   r   r  r   r  )	r#  r  r   attrsrG  r   r   r   r4  s	            r   _cookie_attrszCookieJar._cookie_attrs  s   	 	..=== (	$ (	$F nG :"Q;;LL!8999
 ) ''55 *:AA++))'6<@@ |#V[))))UU;<<<{{( =LL!;<<<=++C00 :#]F"5 ,))#..,!'LL&!8999;*A, 86;!67LLOOOr   c                    	 t          d           | j                                         	 t          t	          j                              x| j        _        | _        |                     |          }|                     |          }|r>|	                    d          s)|
                    dd                    |                     | j        j        rI| j        j        s=|	                    d          s(|D ]%}|j        dk    r|
                    dd            n&| j                                         n# | j                                         w xY w|                                  d S )Nadd_cookie_headerr   r   Cookie2r%   z$Version="1")r   r  acquirerg   rt   r  r  r  r  
has_headeradd_unredirected_headerr   rV  rX  r   releaseclear_expired_cookies)r#  r   r  r  rG  s        r   r  zCookieJar.add_cookie_headerL  sx   	
 	"###""$$$	),/	,<,<<DL	//88G&&w//E 4))(33 433 $))E"2"24 4 4 $ T\-F &&y11%  F~**77	>RRR +
 &&((((D&&((((""$$$$$s   C0D5 5Ec                 x   	 g }d}d}|D ].}|d         \  }}d}d}	i }
i }|dd          D ]\  }}|                                 }||v s||v r|}||v r|d}||
v r0|dk    r)|t          d           d}	 n|                                 }|d	k    r|rh|t          d
           z|dk    rAd}	 t          |          }n"# t          $ r t          d           d}	Y  n@w xY wd	}| j        |z   }||v s||v r"||dvrt          d|z             d}	 n||
|<   |||<   |	r|                    |||
|f           0|S )N)r  r   )r   r   r   r   r   r   r  
commenturlr
   Fr%   Tr   z%   missing value for domain attributer   zM   missing or invalid value for expires attribute: treating as session cookier   z?   missing or invalid (non-numeric) value for max-age attribute)r   r  r  z!   missing value for %s attribute)rI   r   rg   rs   r  r   )r#  	attrs_setcookie_tuplesboolean_attrsvalue_attrscookie_attrsr   r   max_age_set
bad_cookiestandardr$  r   r   r   s                  r   _normalized_cookie_tuplesz#CookieJar._normalized_cookie_tuplesm  s   	 +0
 & H	@ H	@L&q/KD%  KJHD$QRR( 2  2 1WWYY$$m(;(;A%%!) A====yFGGG%)
		A	>>" ! y  F G G G 	>>"&KFF%     2 3 3 3%)
	 "A	AA$$!}*<*<	!BBBBQFGGG%)
"#HQKKDGG   $x!>????s   -B==CCc                 2   |\  }}}}|                     dt                    }|                     dt                    }|                     dt                    }	|                     dt                    }
|                     dd           }|"	 t          |          }n# t          $ r Y d S w xY w|                     dd          }|                     dd          }|                     d	d           }|                     d
d           }|t          ur|dk    rd}t	          |          }n_d}t          |          }|                    d          }|dk    r|dk    r|d |         }n|d |dz            }t          |          dk    rd}|t          u}d}|r"t          |	                    d                    }|t          u rt          |          \  }}|}n|	                    d          sd|z   }d}|	t          ur+|	t          |          }	nd}t          j        dd|	          }	nd }	|
t          u rd }
d}nH|
| j        k    r=	 |                     |||           n# t           $ r Y nw xY wt#          d|||           d S t%          ||||	||||||||
||||          S )Nr   r   r   r   r   r   Fr  r  r  r   Tr   r   r
   r%   r   z\s+z2Expiring cookie, domain='%s', path='%s', name='%s')r*  r  rg   rs   r   r  r   r  boolr   r   r  r   r   r  clearKeyErrorr   r   )r#  tupr   r   r   r  r$  r   r   r   r   r   r   r  r  r  r  r   r  r  r   r   r  s                          r   _cookie_from_cookie_tuplez#CookieJar._cookie_from_cookie_tuple  s    '*#eXth//||FF++||FF++,,y&11 ,,y$//g,,   tth..,,y%00,,y$//ll<66 v$"**!Nt$$DD"N((D

3ABwwa<<8DD1:D4yyA~~ct "/" 	>!%f&7&7&<&<!=!=V-g66NHdFF""3'' 	 ZF v| $G,,!%vfb$// D fGGG	!!

64....   G4' ' '4gEN.0BN!
 
 
	s$   B 
B+*B+?I 
I$#I$c                     |                      |          }g }|D ]/}|                     ||          }|r|                    |           0|S r
  )r  r
  r   )r#  r  r   r  r  r	  rG  s          r   _cookies_from_attrs_setz!CookieJar._cookies_from_attrs_set*  s[    66yAA  	. 	.C33CAAF-w~~f---r   c                     t          | j        dd           }|| j        j         }|D ]}|j        dk    rd|_        |rd|_        d S )NrW  r%   Tr
   )r;  r  rV  r   r   )r#  r  rfc2109_as_nsrG  s       r   _process_rfc2109_cookiesz"CookieJar._process_rfc2109_cookies3  sh    .CTJJ  $ 44M 	' 	'F~""!%  ' &'FN	' 	'r   c                    	 |                                 }|                    dg           }|                    dg           }t          t          j                              x| j        _        | _        | j        j        }| j        j        }|s|r|s|r|s|r|s|sg S 	 |                     t          |          |          }n # t          $ r t                       g }Y nw xY w|r|r	 |                     t          |          |          }	n # t          $ r t                       g }	Y nw xY w|                     |	           |r3i }
|D ]}d |
|j        |j        |j        f<   |
fd}t#          ||	          }	|	r|                    |	           |S )NzSet-Cookie2z
Set-Cookiec                 2    | j         | j        | j        f}||vS r
  )r   r   r   )	ns_cookielookupr   s      r   no_matching_rfc2965z3CookieJar.make_cookies.<locals>.no_matching_rfc2965l  s     #*ININJCf,,r   )r  get_allrg   rt   r  r  rV  rU  r  r   	Exceptionr"   r   r  r   r   r   filterr  )r#  responser   r   rfc2965_hdrsns_hdrsrV  rU  r  
ns_cookiesr  rG  r  s                r   make_cookieszCookieJar.make_cookies?  s   O--//}b99//,33(+DIKK(8(88DI,&<( 	g 		!(		&.	 	 #*	 I	22"<00'; ;GG 	 	 	%'''GGG	  	+x 	+ !99$W--w8 8

      )+++


  ))*555  E% M MFHLFFM6;DEE:@ - - - - $$7DD
 +z***s$   #C CC'#D D('D(c                 l   	 | j                                          	 t          t          j                              x| j        _        | _        | j                            ||          r|                     |           | j                                          d S # | j                                          w xY wr
  )	r  r  rg   rt   r  r  rH  
set_cookier  rF  s      r   set_cookie_if_okzCookieJar.set_cookie_if_okv  s    ;""$$$	),/	,<,<<DL	|""6733 (''' &&(((((D&&((((s   A!B B3c                 L   	 | j         }| j                                         	 |j        |vr
i ||j        <   ||j                 }|j        |vr
i ||j        <   ||j                 }|||j        <   | j                                         d S # | j                                         w xY wr
  )r  r  r  r   r   r   r  )r#  rG  cc2c3s        r   r  zCookieJar.set_cookie  s    MM""$$$	)}A%%"q'76=!B{"$$boFKB$Bv{O&&(((((D&&((((s   A
B B#c                    	 t          d|                                           | j                                         	 |                     ||          D ]B}| j                            ||          r%t          d|           |                     |           C	 | j                                         d S # | j                                         w xY w)Nzextract_cookies: %sz setting cookie: %s)	r   r  r  r  r  r  rH  r  r  )r#  r  r   rG  s       r   extract_cookieszCookieJar.extract_cookies  s    O$hmmoo666""$$$	)++Hg>> , ,<&&vw77 ,0&999OOF+++,
 &&(((((D&&((((s   AB3 3Cc                     	 |)||t          d          | j        |         |         |= d S |!|t          d          | j        |         |= d S |
| j        |= d S i | _        d S )Nz8domain and path must be given to remove a cookie by namez.domain must be given to remove cookies by path)rs   r  )r#  r   r   r   s       r   r  zCookieJar.clear  s    
	 DL NP P Pf%d+D111~ DF F Ff%d+++f%%%DMMMr   c                    	 | j                                          	 | D ]/}|j        r&|                     |j        |j        |j                   0	 | j                                          d S # | j                                          w xY wr
  )r  r  r  r  r   r   r   r  )r#  rG  s     r   clear_session_cookieszCookieJar.clear_session_cookies  s    	 	""$$$	) H H> HJJv}fk6;GGGH &&(((((D&&((((s   2A* *Bc                 R   	 | j                                          	 t          j                    }| D ]=}|                    |          r&|                     |j        |j        |j                   >	 | j                                          d S # | j                                          w xY wr
  )	r  r  rt   r1  r  r   r   r   r  )r#  r0  rG  s      r   r  zCookieJar.clear_expired_cookies  s    	 	""$$$	))++C H H$$S)) HJJv}fk6;GGGH &&(((((D&&((((s   AB B&c                 *    t          | j                  S r
  )r  r  rf  s    r   __iter__zCookieJar.__iter__  s    $-(((r   c                      	 d}| D ]}|dz   }|S )Nr
   r%   rH   )r#  r   rG  s      r   __len__zCookieJar.__len__  s$    1%%FAAAr   c                     g }| D ]$}|                     t          |                     %d| j        j        dd                    |          dS N<[r   z]>)r   r<  r=  r>  r   r#  rrG  s      r   r?  zCookieJar.__repr__  sS    22FAHHT&\\22222!^444diillllCCr   c                     g }| D ]$}|                     t          |                     %d| j        j        dd                    |          dS r/  )r   r  r=  r>  r   r2  s      r   r7  zCookieJar.__str__  sS    11FAHHS[[11111!^444diillllCCr   r
  )NNN)!r>  r@  rA  r   compiler  r  strict_domain_re	domain_redots_reASCIImagic_rer%  r  r  r  r  r  r  r
  r  r  r  r  r  r%  r  r(  r  r+  r-  r?  r7  rH   r   r   r   r     s        "*U##Krz+&&H!rz+..
8$$Ibj!!Grz6AAH       $  9 9 9v% % %B_ _ _BZ Z Zx  
' 
' 
'5 5 5n) ) )) ) )
) 
) 
)   6) ) )) ) )&) ) )  D D D
D D D D Dr   r   c                       e Zd ZdS )r   Nr  rH   r   r   r   r     r  r   r   c                   4    e Zd Z	 ddZddZddZ	 	 ddZdS )	r   NFc                     	 t                               | |           |t          j        |          }|| _        t          |          | _        d S r
  )r   r%  osfspathfilenamer  	delayload)r#  r@  rA  r  s       r   r%  zFileCookieJar.__init__  sL    	
 	4(((y**H ir   c                      	 t                      r
  rD  )r#  r@  ignore_discardignore_expiress       r   savezFileCookieJar.save  s    %!###r   c                     	 |#| j         | j         }nt          t                    t          |          5 }|                     ||||           d d d            d S # 1 swxY w Y   d S r
  )r@  rs   MISSING_FILENAME_TEXTopen_really_loadr#  r@  rC  rD  r    s        r   loadzFileCookieJar.load  s    '}(T](("#8999(^^ 	Kqa>>JJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   AA #A c                    	 |#| j         | j         }nt          t                    | j                                         	 t          j        | j                  }i | _        	 |                     |||           n# t          $ r	 || _         w xY w	 | j        
                                 d S # | j        
                                 w xY wr
  )r@  rs   rG  r  r  r!  deepcopyr  rK  OSErrorr  )r#  r@  rC  rD  	old_states        r   revertzFileCookieJar.revert  s    	 }(T](("#8999""$$$	)dm44IDM		(NNCCCC    ) D &&(((((D&&((((s$    B, "A: 9B, :BB, ,C)NFNNFF)r>  r@  rA  r%  rE  rK  rP  rH   r   r   r   r     ss        @
) 
) 
) 
)$ $ $ $K K K K #49) ) ) ) ) )r   r   c                    	 | j         | j        fd| j        fd| j        fg}| j        |                    d| j        f           | j        r|                    d           | j        r|                    d           | j        r|                    d           | j	        r|                    d           | j
        r6|                    dt          t          | j
                            f           | j        r|                    d	           | j        r|                    d
| j        f           | j        r|                    d| j        f           t!          | j                                                  }|D ]1}|                    |t'          | j        |                   f           2|                    dt'          | j                  f           t+          |g          S )Nr   r   r   )	path_specN)	port_specN)
domain_dotN)r   Nr   )r  Nr  r  r   )r   r   r   r   r   r   r  r  r  r   r   rV   r   r  r  r  sortedr"  r  r  r   r   )rG  r  r  r   s       r   lwp_cookie_strrW  '  s   
 +v|	$
&+	
FM	"	$A {&&+)> ? ? ?;ahh':;;;;ahh':;;; @!((+?"@"@"@}0ahh/000~ Bqxx(v~)>)>??!A B B B~2qxx 1222~<qxxFN ;<<<G188\63E$FGGG&,##%%&&D , ,	!Sa))*++++HHiV^,,-...aS!!!r   c                   &    e Zd Z	 ddZddZd ZdS )	r   Tc                     	 t          j                     }g }| D ]I}|s|j        r|s|                    |          r$|                    dt	          |          z             Jd                    |dgz             S )NzSet-Cookie3: %s
r   )rt   r  r1  r   rW  r   )r#  rC  rD  r0  r3  rG  s         r   
as_lwp_strzLWPCookieJar.as_lwp_strP  s    	
 ikk 	A 	AF! fn ! f&7&7&<&< HH&)?)??@@@@yyB4   r   NFc                    |#| j         | j         }nt          t                    t          j        t          j        |t          j        t          j        z  t          j        z  d          d          5 }|	                    d           |	                    | 
                    ||                     d d d            d S # 1 swxY w Y   d S )N  wz#LWP-Cookies-2.0
)r@  rs   rG  r>  fdopenrH  O_CREATO_WRONLYO_TRUNCwriter[  rJ  s        r   rE  zLWPCookieJar.save`  s	   }(T](("#8999YGHbj2;6CUKK
 
 	E  GG()))GGDOONNCCDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   3?B??CCc                    |                                 }| j                            |          sd|z  }t          |          t	          j                    }d}d}	d}
	 	 |                                 }|dk    rd S |                    |          s3|t          |          d                                          }t          |g          D ]f}|d         \  }}i }i }|	D ]}d||<   |dd          D ]E\  }}||	                                }nd }||
v s||	v r|}||	v r
|d	}|||<   6||
v r|||<   @|||<   F|j
        } |d
          } |d          }|t          |          }|d	} |d          }|                    d          }t           |d          || |d           |d          || |d           |d           |d           |d          || |d           |d          |          }|s	|j        r8|s|                    |          rQ|                     |           h# t           $ r  t"          $ r$ t%                       t          d|d|          w xY w)Nz5%r does not look like a Set-Cookie3 (LWP) format filezSet-Cookie3:)rT  rS  rU  r   r  )r   r   r   r   r   r  r  r%   r   r
   FTr   r  r   r   r   r   rT  rU  r   rS  r   r  r  z invalid Set-Cookie3 format file : )readliner:  rf   r   rt   r   r  r   r   rI   r*  r   r   r  r1  r  rN  r  r"   )r#  r    r@  rC  rD  magicr!   r0  headerr  r  linedatar   r   r  r$  r   r   r   r  r   r  r   r  r!  s                             r   rI  zLWPCookieJar._really_loado  s%   

}##E** 	!$%CC.. ikk.0
;	.4'zz||2::uuv.. CKKLL)//11.v66 -' -'D"&q'KD%!HD* , ,&+ $QRR ( (1=!"BB!%B+--23F3F "A-- yd!*+HQKK+--*+HQKK&'DGG Aa	llGa	llG*"*7"3"3"&Qx[[F'-'8'8'='=$qq||T5 qyy!!K..%'7< qyy!!K.. q{{&& q|| q#	% 	%A * !ai ! ) !all3.?.? ! OOA&&&&i4'j  	 	 	 	. 	. 	.%''')%XXtt- . . .	.s   H3 :F9H3 38I+)TTrQ  )r>  r@  rA  r[  rE  rI  rH   r   r   r   r   C  sY        
! ! ! ! E E E EL. L. L. L. L.r   r   c                       e Zd Z	 d ZddZdS )r	   c                    t          j                     }t                              |                                          st	          d|z            	 	 |                                }i }|dk    rd S |                    t                    r&d|t          <   |t          t                    d          }|	                    d          r
|d d         }|
                                                    d          s|
                                dk    r|                    d          \  }}	}
}}}}|dk    }|	dk    }	|dk    r|}d }|                    d	          }d
}|dk    rd }d}t          d||d d
||	||
d
|||d d |          }|s	|j        r;|s|                    |          rT|                     |           j# t           $ r  t"          $ r$ t%                       t	          d|d|          w xY w)Nz4%r does not look like a Netscape format cookies filer%   r   rZ  r   )#r  	TRUEr   FTr
   z%invalid Netscape format cookies file re  )rt   NETSCAPE_MAGIC_RGXr   rf  r   r   HTTPONLY_PREFIXHTTPONLY_ATTRr  r   r   r   r   r  r1  r  rN  r  r"   )r#  r    r@  rC  rD  r0  ri  r$  r   r  r   r   r   r   r   r   r  r!  s                     r   rI  zMozillaCookieJar._really_load  sf   ikk!''

55 	F  ?	.7#zz||2::uu
 ???33 7*,D'O 4 4 5 56D ==&&8tCRCy JJLL++J77 JJLLB&& 

4(( M($u F*$4$> 2:: !D E$//44  b=="G"G 1dE!#3[!""	! 	! & !) % !,,s*;*; """o7#r  	 	 	 	. 	. 	.%''')%XXtt- . . .	.s   F> 2EF> >8G6NFc                 P   |#| j         | j         }nt          t                    t          j        t          j        |t          j        t          j        z  t          j        z  d          d          5 }|	                    t                     t          j                    }| D ]}|j        }|s|j        r|s|                    |          r+|j        rd}nd}|                    d          rd}	nd}	|j        t%          |j                  }
nd}
|j        
d}|j        }n|j        }|j        }|                    t,                    r
t.          |z   }|	                    d                    ||	|j        ||
||g          dz              	 d d d            d S # 1 swxY w Y   d S )	Nr]  r^  ro  FALSEr   r   rn  rZ  )r@  rs   rG  r>  r_  rH  r`  ra  rb  rc  NETSCAPE_HEADER_TEXTrt   r   r  r1  r   r   r   r  r   r   r(  rr  rq  r   r   )r#  r@  rC  rD  r    r0  rG  r   r   r   r   r   r   s                r   rE  zMozillaCookieJar.save'  s   }(T](("#8999YGHbj2;6CUKK
 
 "	 GG())))++C  % &. % &*;*;C*@*@ = '6&&&f$$S)) ,;;$+k>-!&.11GG G<' D"KEE!;D"LE..}== 6,v5FIIv{FK%we= > >   3"	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	 "	s   3DFF"FrQ  )r>  r@  rA  rI  rE  rH   r   r   r	   r	     s@        >G. G. G.R' ' ' ' ' 'r   r	   r
  )W__all__r>  r!  rM   r   rt   urllib.parser   urllib.request	threadingr  http.clienthttpcalendarr   r   r   r   rr  rq  r  client	HTTP_PORTr  r5  rp  rG  ru  r"   r+   r3   rX   rZ   rq   rV   r[   rd   r9  re   rl   r~   r   Ir   Xr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r  r  r   r   r   r  r  r   rN  r   r   rW  r   r	   rH   r   r   <module>r     s  6M M M 
			   				  # # # # # # # #              	   C-.. RZ @AA :  A A A 
   988
4 
4 
4226222B B B B&0 0 0 0( T==	bj5rx@@  6 6 6p ,-/X7 7 RZ2BD28OE E
RZ& D28O)  *65 65 65p bj
  4")# $5 5 5B3 3 3
 $$677#$MNN #$9::2:h'' S S Sj #
;//   2  A A AH "*Y
)
)  % % %N    ( bj28,,   	 	 	      $"*9::+ + +  ! ! !F  "_E _E _E _E _E _E _E _ED       B_ _ _ _ _, _ _ _B  "        LD LD LD LD LD LD LD LD`        4) 4) 4) 4) 4)I 4) 4) 4)n" " "8x. x. x. x. x.= x. x. x.vP P P P P} P P P P Pr   