3 \ŽSã @sxddlZddlZdddgZdjZdjZdjZdd „ZGd d„deƒZ ej ej d Z e d Z d d„eedƒƒeeee ƒƒDƒZejedƒdedƒdiƒejdeje ƒƒjZdd„ZejdƒZejdƒZdd„Zdddddd d!gZdd"d#d$d%d&d'd(d)d*d+d,d-g Zdeefd.d/„ZGd0d1„d1eƒZ d2Z!e!d3Z"ejd4e!d5e"d6ej#ej$BƒZ%Gd7d„deƒZ&Gd8d„de&ƒZ'dS)9éNÚ CookieErrorÚ BaseCookieÚ SimpleCookieÚz; ú cCs$ddl}d|}|j|tdd�dS)NrzvThe .%s setter is deprecated. The attribute will be read-only in future releases. Please use the set() method instead.é)Ú stacklevel)ÚwarningsÚwarnÚDeprecationWarning)Úsetterr Úmsg©rú$/usr/lib64/python3.6/http/cookies.pyÚ_warn_deprecated_setter�src@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__rrrrr–sz!#$%&'*+-.^_`|~:z ()/<=>?@[]{}cCsi|]}d||“qS)z\%03or)Ú.0Únrrrú ªsréú"z\"ú\z\\z[%s]+cCs*|dkst|ƒr|Sd|jtƒdSdS)Nr)Ú _is_legal_keyÚ translateÚ _Translator)ÚstrrrrÚ_quote³srz\\[0-3][0-7][0-7]z[\\].cCsT|dkst|ƒdkr|S|ddks0|ddkr4|S|dd…}d}t|ƒ}g}xúd|kod|kn�rJtj||ƒ}tj||ƒ}| r¤| r¤|j||d…ƒPd }}|rº|jdƒ}|rÈ|jdƒ}|oØ| sÜ||k�r |j|||…ƒ|j||dƒ|d}qR|j|||…ƒ|jtt||d|d…dƒƒƒ|d}qRWt|ƒS) Nérrééééÿÿÿÿr#r#) ÚlenÚ _OctalPattÚsearchÚ _QuotePattÚappendÚstartÚchrÚintÚ _nulljoin)rÚirÚresZo_matchZq_matchÚjÚkrrrÚ_unquoteÃs6       $ r1ZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecc CsRddlm}m}|ƒ}|||ƒ\ }}}} } } } } }d|| ||||| | | fS)Nr)ÚgmtimeÚtimez#%s, %02d %3s %4d %02d:%02d:%02d GMT)r3r2)ZfutureZ weekdaynameZ monthnamer2r3ZnowZyearZmonthZdayZhhZmmZssZwdÚyÚzrrrÚ_getdateûs r6c @sþeZdZddddddddd œZd d hZd d „Zedd„ƒZejdd„ƒZedd„ƒZ e jdd„ƒZ edd„ƒZ e jdd„ƒZ dd„Z d3dd„Z dd„Z ejZdd„Zd d!„Zd"d#„Zefd$d%„Zd&d'„Zd(d)„Zd4d+d,„ZeZd-d.„Zd5d/d0„Zd6d1d2„ZdS)7ÚMorselÚexpiresZPathÚCommentZDomainzMax-AgeZSecureZHttpOnlyZVersion)r8ÚpathÚcommentZdomainzmax-ageÚsecureÚhttponlyÚversionr<r=cCs4d|_|_|_x|jD]}tj||dƒqWdS)Nr)Ú_keyÚ_valueÚ _coded_valueÚ _reservedÚdictÚ __setitem__)ÚselfÚkeyrrrÚ__init__&s zMorsel.__init__cCs|jS)N)r?)rErrrrF.sz Morsel.keycCstdƒ||_dS)NrF)rr?)rErFrrrrF2scCs|jS)N)r@)rErrrÚvalue7sz Morsel.valuecCstdƒ||_dS)NrH)rr@)rErHrrrrH;scCs|jS)N)rA)rErrrÚ coded_value@szMorsel.coded_valuecCstdƒ||_dS)NrI)rrA)rErIrrrrIDscCs2|jƒ}||jkr td|fƒ‚tj|||ƒdS)NzInvalid attribute %r)ÚlowerrBrrCrD)rEÚKÚVrrrrDIs zMorsel.__setitem__NcCs.|jƒ}||jkr td|fƒ‚tj|||ƒS)NzInvalid attribute %r)rJrBrrCÚ setdefault)rErFÚvalrrrrMOs zMorsel.setdefaultcCs>t|tƒstStj||ƒo<|j|jko<|j|jko<|j|jkS)N)Ú isinstancer7ÚNotImplementedrCÚ__eq__r@r?rA)rEÚmorselrrrrQUs     z Morsel.__eq__cCs$tƒ}tj||ƒ|jj|jƒ|S)N)r7rCÚupdateÚ__dict__)rErRrrrÚcopy_s z Morsel.copycCsVi}x@t|ƒjƒD]0\}}|jƒ}||jkr:td|fƒ‚|||<qWtj||ƒdS)NzInvalid attribute %r)rCÚitemsrJrBrrS)rEÚvaluesÚdatarFrNrrrrSes  z Morsel.updatecCs|jƒ|jkS)N)rJrB)rErKrrrÚ isReservedKeynszMorsel.isReservedKeycCsh|tkr ddl}|jdtdd�|jƒ|jkr)Ú __class__rr`)rErrrÚ__repr__”szMorsel.__repr__cCsd|j|ƒjddƒS)Nz— rz\")r`Úreplace)rErarrrÚ js_output—szMorsel.js_outputcCs(g}|j}|d|j|jfƒ|dkr,|j}t|jƒƒ}xæ|D]Þ\}}|dkrPq>||krZq>|dkrˆt|tƒrˆ|d|j|t|ƒfƒq>|dkr²t|tƒr²|d|j||fƒq>|dkràt|t ƒrà|d|j|t |ƒfƒq>||j k�r|�r|t |j|ƒƒq>|d|j||fƒq>Wt |ƒS)Nz%s=%srr8zmax-agez%s=%dr;) r(rFrIrBÚsortedrVrOr+r6rrÚ_flagsÚ_semispacejoin)rEraÚresultr(rVrFrHrrrr`¡s,  zMorsel.OutputString)N)Nr_)N)N)rrrrBrirGÚpropertyrFr rHrIrDrMrQÚobjectÚ__ne__rUrSrYrZr[r\r^rcÚ__str__rergr`rrrrr7s>        r7z,\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=z\[\]zŒ \s* # Optional whitespace at start of cookie (?P # Start of group 'key' [a ]+? # Any word of at least one letter ) # End of group 'key' ( # Optional group: there may not be a value. \s*=\s* # Equal Sign (?P # Start of group 'val' "(?:[^\\"]|\\.)*" # Any doublequoted string | # or \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT # Special case for "expires" attr | # or [a-]* # Any word or empty string ) # End of group 'val' )? # End of optional value group \s* # Any number of spaces. (\s+|;|$) # Ending either at space, semicolon, or EOS. c@sjeZdZdd„Zdd„Zddd„Zdd „Zd d „Zddd„ZeZ dd„Z ddd„Z dd„Z e fdd„ZdS)rcCs||fS)Nr)rErNrrrÚ value_decodeèszBaseCookie.value_decodecCst|ƒ}||fS)N)r)rErNÚstrvalrrrÚ value_encodeñszBaseCookie.value_encodeNcCs|r|j|ƒdS)N)Úload)rEÚinputrrrrGúszBaseCookie.__init__cCs.|j|tƒƒ}|j|||ƒtj|||ƒdS)N)Úgetr7r[rCrD)rErFZ real_valuerIÚMrrrZ__setþszBaseCookie.__setcCs:t|tƒrtj|||ƒn|j|ƒ\}}|j|||ƒdS)N)rOr7rCrDrrÚ_BaseCookie__set)rErFrHÚrvalÚcvalrrrrDs zBaseCookie.__setitem__ú Set-Cookie:ú cCs>g}t|jƒƒ}x"|D]\}}|j|j||ƒƒqW|j|ƒS)N)rhrVr(rcÚjoin)rErarbÚseprkrVrFrHrrrrc s  zBaseCookie.outputcCsNg}t|jƒƒ}x(|D] \}}|jd|t|jƒfƒqWd|jjt|ƒfS)Nz%s=%sz<%s: %s>)rhrVr(ÚreprrHrdrÚ _spacejoin)rEÚlrVrFrHrrrres  zBaseCookie.__repr__cCs:g}t|jƒƒ}x |D]\}}|j|j|ƒƒqWt|ƒS)N)rhrVr(rgr,)rErarkrVrFrHrrrrgs  zBaseCookie.js_outputcCs8t|tƒr|j|ƒnx|jƒD]\}}|||<q WdS)N)rOrÚ_BaseCookie__parse_stringrV)rEZrawdatarFrHrrrrs&s    zBaseCookie.loadcCspd}t|ƒ}g}d}d}d}�xd|ko2|kn�r|j||ƒ} | sLP| jdƒ| jdƒ} } | jdƒ}| ddkr˜|s~q |j|| dd…| fƒq | jƒtjkrò|s®dS| dkrÜ| jƒtjkrÖ|j|| dfƒqðdSn|j|| t | ƒfƒq | dk �r|j|| |j | ƒfƒd}q dSq Wd} xF|D]>\} } } | |k�rH| | | <n| \}}|j | ||ƒ|| } �q*WdS) NrFr rrFrNú$T) r$ÚmatchÚgroupÚendr(rJr7rBrir1rprw)rErZpattr-rZ parsed_itemsZ morsel_seenZTYPE_ATTRIBUTEZ TYPE_KEYVALUErƒrFrHrvÚtprxryrrrZ__parse_string4sF      zBaseCookie.__parse_string)N)Nrzr{)N)rrrrprrrGrwrDrcrorergrsÚ_CookiePatternr�rrrrrås    c@seZdZdd„Zdd„ZdS)rcCs t|ƒ|fS)N)r1)rErNrrrrpxszSimpleCookie.value_decodecCst|ƒ}|t|ƒfS)N)rr)rErNrqrrrrr{szSimpleCookie.value_encodeN)rrrrprrrrrrrqs)(ÚreÚstringÚ__all__r|r,rjrrÚ ExceptionrZ ascii_lettersZdigitsrZZ_UnescapedCharsr[ÚrangeÚmapÚordrrSÚcompileÚescapeÚ fullmatchrrr%r'r1Z _weekdaynameZ _monthnamer6rCr7Z_LegalKeyCharsZ_LegalValueCharsÚASCIIÚVERBOSEr‡rrrrrrÚ„sD    2 J