Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó k]Œjc@sÖdZddlZddlZddlZddlZddlZddlZddlZddlm Z dddddd d d d d ddddddddddddddddddgZ d Z d!Z ejd"krødd#lmZmZn:ejd$kr dd#lmZmZnd%„Zd&„Zeaeed'„Zeeed(„Zd)„ZyddlZWn eZnXeZd*efd+„ƒYZiZdfd,„ƒYZdefd-„ƒYZ ea!d.„Z"ea#d/„Z$ea%d0„Z&ea'd1„Z(d2fd3„ƒYZ)d4fd5„ƒYZ*d6e*fd7„ƒYZ+d8e*fd9„ƒYZ,d:e*fd;„ƒYZ-ye.Wne/k r•d<„Z0n Xd=„Z0d>„Z1d?„Z2ea3d@„Z4ea5dA„Z6ea7dB„Z8ea9dC„Z:ea;dD„Z<ea=ddE„Z>ea?dF„Z@eaAdG„ZBdH„ZCeaDdI„ZEdJZFeGdK„eFDƒƒZHejIdLƒZJdM„ZKdN„ZLdOZMiZNxfeOePdPƒeQeRePdPƒƒƒƒD]=\ZSZTeSdQkoÖeTeMkrßeTn dRjUeSƒeNeTtd|ƒ}ntsVtƒ}|ant}|dkru|j|ƒS|j||ƒSdS(s=Create a file-like object for the specified URL to read from.iÿÿÿÿ(twarnpy3ksMurllib.urlopen() has been removed in Python 3.0 in favor of urllib2.urlopen()t stacklevelitproxiesN(twarningsR tNoneRt _urlopenertopen(turltdataR"R topener((s/usr/lib64/python2.7/urllib.pyRHs      cCs(tstƒantj||||ƒS(N(R%Rtretrieve(R'tfilenamet reporthookR(((s/usr/lib64/python2.7/urllib.pyRZs cCs+trtjƒntjƒtjƒdS(N(R%tcleanupt _safe_quoterstcleartftpcache(((s/usr/lib64/python2.7/urllib.pyR_s  tContentTooShortErrorcBseZd„ZRS(cCstj||ƒ||_dS(N(tIOErrort__init__tcontent(tselftmessageR4((s/usr/lib64/python2.7/urllib.pyR3os(t__name__t __module__R3(((s/usr/lib64/python2.7/urllib.pyR1nscBsáeZdZdZdeZdd„Zd„Zd„Z d„Z d„Z dd„Z dd„Z dd „Zdddd „Zdd „Zdd „Zd „Zer¸dd„Znd„Zd„Zd„Zdd„ZRS(s,Class to open URLs. This is a class rather than just a subroutine because we may need more than one set of global protocol-specific options. Note -- this is a base class for those who don't want the automatic handling of errors type 302 (relocated) and 401 (authorization needed).sPython-urllib/%scKs |dkrtƒ}nt|dƒs3tdƒ‚||_|jdƒ|_|jdƒ|_d|jfg|_ g|_ t j |_ d|_t|_dS(Nthas_keysproxies must be a mappingtkey_filet cert_files User-Agent(R$RthasattrtAssertionErrorR"tgetR:R;tversiont addheaderst_URLopener__tempfilestostunlinkt_URLopener__unlinkt tempcacheR0(R5R"tx509((s/usr/lib64/python2.7/urllib.pyR3�s      cCs|jƒdS(N(tclose(R5((s/usr/lib64/python2.7/urllib.pyt__del__˜scCs|jƒdS(N(R-(R5((s/usr/lib64/python2.7/urllib.pyRG›scCsi|jrLx6|jD]+}y|j|ƒWqtk r=qXqW|j2n|jre|jjƒndS(N(RARDtOSErrorRER/(R5tfile((s/usr/lib64/python2.7/urllib.pyR-žs    cGs|jj|ƒdS(sdAdd a header to be used by the HTTP interface only e.g. u.addheader('Accept', 'sound/basic')N(R@tappend(R5targs((s/usr/lib64/python2.7/urllib.pyt addheader¬scCsÃtt|ƒƒ}t|ddƒ}|jrn||jkrn|j|\}}t|dƒ}t|||ƒSt|ƒ\}}|s�d}n||jkrÞ|j|}t|ƒ\}} t| ƒ\} } | |f}nd }d|} ||_ | j ddƒ} t || ƒ s%| dkrQ|r>|j |||ƒS|j||ƒSny9|d krst|| ƒ|ƒSt|| ƒ||ƒSWn2tjk r¾} td | ftjƒd ‚nXd S( s6Use URLopener().open(file) instead of open(file, 'r').tsafes%/:=&?~#+!$,;'@()*[]|trbRJtopen_t-t_topen_local_files socket erroriN(RttoBytesRRER&t addinfourlRR"RR$ttypetreplaceR<topen_unknown_proxyt open_unknowntgetattrtsocketterrorR2tsystexc_info(R5tfullurlR(R+theaderstfpturltypeR'tproxyt proxyhostthosttselectortnametmsg((s/usr/lib64/python2.7/urllib.pyR&²s8     cCs(t|ƒ\}}tdd|f‚dS(s/Overridable interface to open unknown URL type.s url errorsunknown url typeN(RR2(R5R_R(RVR'((s/usr/lib64/python2.7/urllib.pyRYØscCs,t|ƒ\}}tdd||f‚dS(s/Overridable interface to open unknown URL type.s url errorsinvalid proxy for %sN(RR2(R5RcR_R(RVR'((s/usr/lib64/python2.7/urllib.pyRXÝsc Csått|ƒƒ}|jr5||jkr5|j|St|ƒ\}}|dkrÀ| sf|dkrÀyC|j|ƒ}|jƒ}|jƒtt |ƒdƒ|fSWqÀt k r¼qÀXn|j ||ƒ}zÍ|jƒ} |rùt |dƒ} n³ddl } t|ƒ\} } t | p#dƒ\} } t | p;dƒ\} } t| pSdƒ\} } tjj| ƒd}| j|ƒ\}}|jj|ƒtj|dƒ} zä|| f}|jdk rÚ||j|Default error handler: close the connection and raise IOError.s http errorN(RGR2(R5R'RaR›RœR`((s/usr/lib64/python2.7/urllib.pyRž|s cCs=ddl}d}d}t|tƒrit|ƒ\}}|r`t|ƒ\}}t|ƒ}n|}n |\}}t|ƒ\}}t|ƒ\} } | }d}| jƒdkrÀd}nIt| ƒ\}} |rít|ƒ\}}n|r d| || f}n|st d‚n|rEt|ƒ}t j |ƒj ƒ} nd} |rut|ƒ}t j |ƒj ƒ} nd} |j |dd|jd |jƒ} |dk rè| jd |ƒ| jd d ƒ| jd dt|ƒƒn| jd|ƒ| r| jdd| ƒn| r2| jdd| ƒn|rK| jd|ƒnx|jD]}| j|ŒqUW| j|ƒ| jƒ\}}}| jƒ}|dkrÅ|r¹|jƒnt d‚nd|koÜdknrøt||d||ƒS|dkr|j|||||ƒS|j||||||ƒSdS(sUse HTTPS protocol.iÿÿÿÿNthttpss %s://%s%ss https errors no host giveniR:R;R�s Content-Types!application/x-www-form-urlencodedsContent-Lengths%dR‚sProxy-AuthorizationsBasic %sRƒR„shttp protocol errorsgot a bad status lineiÈi,shttps:(s https errors no host given(shttp protocol errorisgot a bad status lineN(R…R$R†R‡RRRRRˆR2RŠR‹RŒtHTTPSR:R;RŽR�RsR@R�R‘R’RGRUR“(R5R'R(R…R”R•ReRfR–RbR—R˜R™RšRLR›RœR`Ra((s/usr/lib64/python2.7/urllib.pyt open_https‚s|                 cCsut|tƒstd ‚n|d dkrd|dd!dkrd|dd!jƒdkrd|j|ƒS|j|ƒSd S( s/Use local file or FTP depending on form of URL.s file errors9proxy support for file protocol currently not implementedis//it/i s localhost/N(s file errors9proxy support for file protocol currently not implemented(R†R‡R2Rˆtopen_ftpRS(R5R'((s/usr/lib64/python2.7/urllib.pyt open_fileÊs  < cCsddl}ddl}ddl}yddlm}Wn!tk r[ddlm}nXt|ƒ\}}t|ƒ}ytj |ƒ} Wn.t k r½} t | j | j | jƒ‚nX| j} |jj| jdtƒ} |j|ƒd} |j|d| p d| | fƒƒ}|s‚|}|d d krFd |}n#|d d kritd |ƒ‚ntt|dƒ||ƒSt|ƒ\}}| røtj|ƒtƒtƒfkrø|}|d d krßd |}ntt|dƒ||ƒSt d‚dS(sUse local file.iÿÿÿÿN(tStringIOtusegmtis6Content-Type: %s Content-Length: %d Last-modified: %s s text/plainiR£sfile://is./sAlocal file url may start with / or file:. Unknown url of type: %sROslocal file errorsnot on local host(slocal file errorsnot on local host(t mimetypest mimetoolst email.utilst cStringIOR¦t ImportErrorRR RBtstatRIR2terrnotstrerrorR+tst_sizetutilst formatdatetst_mtimetTruet guess_typetMessaget ValueErrorRUR&RR[t gethostbynameRR(R5R'R¨R©temailR¦ReRJt localnametstatsteR}tmodifiedtmtypeR`turlfiletport((s/usr/lib64/python2.7/urllib.pyRSÓsD$      !  c Cs¤t|tƒstd‚nddl}ddl}yddlm}Wn!tk rjddlm}nXt|ƒ\}}|s�td‚nt |ƒ\}}t |ƒ\}}|rÎt |ƒ\}} nd} t |ƒ}|péd}| põd} tj|ƒ}|s%ddl} | j}n t|ƒ}t|ƒ\}} t |ƒ}|jdƒ} | d | d} } | r‘| d  r‘| d } n| r¯| d  r¯d| d cBs¶eZdZd„Zd„Zdd„Zd„Zdd„Zdd„Z dd„Z dd„Z dd „Z dd „Z dd „Zdd „Zdd „Zdd„Zd„ZRS(s?Derived class with handlers for errors we can handle (perhaps).cOs2tj|||Ži|_d|_d|_dS(Nii (RR3t auth_cachettriestmaxtries(R5RLtkwargs((s/usr/lib64/python2.7/urllib.pyR3gs  cCst||d||ƒS(s3Default error handling -- don't raise an exception.shttp:(RU(R5R'RaR›RœR`((s/usr/lib64/python2.7/urllib.pyRžmsc Cs˜|jd7_|jrm|j|jkrmt|dƒrE|j}n |j}d|_|||dd|ƒS|j||||||ƒ}d|_|S(s%Error 302 -- relocated (temporarily).ithttp_error_500iiôs)Internal Server Error: Redirect Recursion(RêRëR<RíRžtredirect_internal( R5R'RaR›RœR`R(tmethR{((s/usr/lib64/python2.7/urllib.pythttp_error_302qs       c CsÀd|kr|d}nd|kr2|d}ndS|jƒt|jd||ƒ}|jƒ}|jdƒp�|jdƒp�|jdƒs³td||d||ƒ‚n|j|ƒS( Ntlocationturit:shttp://shttps://sftp://sredirect errors) - Redirection to url '%s' is not allowed(RGRRVRˆt startswithR2R&( R5R'RaR›RœR`R(tnewurlt newurl_lower((s/usr/lib64/python2.7/urllib.pyRî�s         cCs|j||||||ƒS(s*Error 301 -- also relocated (permanently).(Rð(R5R'RaR›RœR`R(((s/usr/lib64/python2.7/urllib.pythttp_error_301™scCs|j||||||ƒS(s;Error 303 -- also relocated (essentially identical to 302).(Rð(R5R'RaR›RœR`R(((s/usr/lib64/python2.7/urllib.pythttp_error_303�scCsE|dkr(|j||||||ƒS|j|||||ƒSdS(s1Error 307 -- relocated, but turn POST into error.N(R$RðRž(R5R'RaR›RœR`R(((s/usr/lib64/python2.7/urllib.pythttp_error_307¡s c Cs d|kr+tj||||||ƒn|d}ddl}|jd|ƒ} | sxtj||||||ƒn| jƒ\} } | jƒdkr»tj||||||ƒnd|jd} |dkrît|| ƒ|| ƒSt|| ƒ|| |ƒSdS(s_Error 401 -- authentication required. This function supports Basic authentication only.swww-authenticateiÿÿÿÿNs![ ]*([^ ]+)[ ]+realm="([^"]*)"tbasictretry_t _basic_auth( RRžtretmatchtgroupsRˆRVR$RZ( R5R'RaR›RœR`R(tstuffRýRþtschemetrealmRg((s/usr/lib64/python2.7/urllib.pythttp_error_401¨s"    c Cs d|kr+tj||||||ƒn|d}ddl}|jd|ƒ} | sxtj||||||ƒn| jƒ\} } | jƒdkr»tj||||||ƒnd|jd} |dkrît|| ƒ|| ƒSt|| ƒ|| |ƒSdS(seError 407 -- proxy authentication required. This function supports Basic authentication only.sproxy-authenticateiÿÿÿÿNs![ ]*([^ ]+)[ ]+realm="([^"]*)"Rút retry_proxy_Rü( RRžRýRþRÿRˆRVR$RZ( R5R'RaR›RœR`R(RRýRþRRRg((s/usr/lib64/python2.7/urllib.pythttp_error_407¾s"    cCs t|ƒ\}}d||}|jd}t|ƒ\}} t| ƒ\} } | jdƒd} | | } |j| || ƒ\} } | p’| s™dSt| ddƒdt| ddƒd| } d| | |jd<|dkrõ|j|ƒS|j||ƒSdS(Nshttp://R€t@iRNRjRó(RR"Rtfindtget_user_passwdR$RR&(R5R'RR(ReRfRõRcRbRdt proxyselectorRÅRÐRÑ((s/usr/lib64/python2.7/urllib.pytretry_proxy_http_basic_authÔs   .  cCs t|ƒ\}}d||}|jd}t|ƒ\}} t| ƒ\} } | jdƒd} | | } |j| || ƒ\} } | p’| s™dSt| ddƒdt| ddƒd| } d| | |jd<|dkrõ|j|ƒS|j||ƒSdS(Nshttps://R RiRNRjRó(RR"RRRR$RR&(R5R'RR(ReRfRõRcRbRdR RÅRÐRÑ((s/usr/lib64/python2.7/urllib.pytretry_proxy_https_basic_authås   .  c CsÃt|ƒ\}}|jdƒd}||}|j|||ƒ\}}|pS|sZdSt|ddƒdt|ddƒd|}d||} |dkr¯|j| ƒS|j| |ƒSdS(NRiRNRjRóshttp://(RRRR$RR&( R5R'RR(ReRfRÅRÐRÑRõ((s/usr/lib64/python2.7/urllib.pytretry_http_basic_authös  .  c CsÃt|ƒ\}}|jdƒd}||}|j|||ƒ\}}|pS|sZdSt|ddƒdt|ddƒd|}d||} |dkr¯|j| ƒS|j| |ƒSdS(NRiRNRjRóshttps://(RRRR$RR&( R5R'RR(ReRfRÅRÐRÑRõ((s/usr/lib64/python2.7/urllib.pytretry_https_basic_auths  .  icCsˆ|d|jƒ}||jkrD|r6|j|=qD|j|Sn|j||ƒ\}}|sh|r~||f|j|¿st__iter__tnext(RaRrtreadlineR<R:R;R=R>(R5Ra((s/usr/lib64/python2.7/urllib.pyR3·s  cCs d|jjt|ƒ|jfS(Ns<%s at %r whose fp = %r>(t __class__R7tidRa(R5((s/usr/lib64/python2.7/urllib.pyt__repr__Ås cCsJd|_d|_d|_d|_|jr=|jjƒnd|_dS(N(R$RrR?R:R;RaRG(R5((s/usr/lib64/python2.7/urllib.pyRGÉs     (R7R8RæR3RBRG(((s/usr/lib64/python2.7/urllib.pyR9´s  R-cBs eZdZd„Zd„ZRS(s*Class to add a close hook to an open file.cGs&tj||ƒ||_||_dS(N(R9R3t closehookthookargs(R5RaRCRD((s/usr/lib64/python2.7/urllib.pyR3Ôs cCs?|jr.|j|jŒd|_d|_ntj|ƒdS(N(RCRDR$R9RG(R5((s/usr/lib64/python2.7/urllib.pyRGÙs    (R7R8RæR3RG(((s/usr/lib64/python2.7/urllib.pyR-Ñs taddinfocBs eZdZd„Zd„ZRS(s.class to add an info() method to an open file.cCstj||ƒ||_dS(N(R9R3R`(R5RaR`((s/usr/lib64/python2.7/urllib.pyR3ãscCs|jS(N(R`(R5((s/usr/lib64/python2.7/urllib.pyRkçs(R7R8RæR3Rk(((s/usr/lib64/python2.7/urllib.pyREàs RUcBs5eZdZdd„Zd„Zd„Zd„ZRS(s9class to add info() and geturl() methods to an open file.cCs/tj||ƒ||_||_||_dS(N(R9R3R`R'tcode(R5RaR`R'RF((s/usr/lib64/python2.7/urllib.pyR3ís  cCs|jS(N(R`(R5((s/usr/lib64/python2.7/urllib.pyRkóscCs|jS(N(RF(R5((s/usr/lib64/python2.7/urllib.pytgetcodeöscCs|jS(N(R'(R5((s/usr/lib64/python2.7/urllib.pytgeturlùsN(R7R8RæR$R3RkRGRH(((s/usr/lib64/python2.7/urllib.pyRUês    cCsdS(Ni((tx((s/usr/lib64/python2.7/urllib.pyt _is_unicodescCs t|tƒS(N(R†tunicode(RI((s/usr/lib64/python2.7/urllib.pyRJscCsTt|ƒrPy|jdƒ}WqPtk rLtdt|ƒdƒ‚qPXn|S(stoBytes(u"URL") --> 'URL'.tASCIIsURL s contains non-ASCII characters(RJtencodet UnicodeErrortrepr(R'((s/usr/lib64/python2.7/urllib.pyRTs  cCsi|jƒ}|d dkrB|ddkrB|dd!jƒ}n|d dkre|djƒ}n|S(s8unwrap('') --> 'type://host/path'.itisURL:(RŒ(R'((s/usr/lib64/python2.7/urllib.pyR!s   cCsvtdkr*ddl}|jdƒantj|ƒ}|rl|jdƒ}|jƒ|t|ƒdfSd|fS(s:splittype('type:opaquestring') --> 'type', 'opaquestring'.iÿÿÿÿNs ^([^/:]+):i(t _typeprogR$RýtcompileRþtgroupRˆRs(R'RýRþR((s/usr/lib64/python2.7/urllib.pyR*s  cCsŽtdkr$tjdtjƒantj|ƒ}|r„|jdƒ}|jdƒ}|rz|jdƒ rzd|}n||fSd|fS(s;splithost('//host[:port]/path') --> 'host[:port]', '/path'.s//([^/#?]*)(.*)iiR£N(t _hostprogR$RýRStDOTALLRþRTRô(R'Rþt host_portRm((s/usr/lib64/python2.7/urllib.pyR8s   cCsYtdkr*ddl}|jdƒantj|ƒ}|rO|jddƒSd|fS(sJsplituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.iÿÿÿÿNs ^(.*)@(.*)$ii(t _userprogR$RýRSRþRT(ReRýRþ((s/usr/lib64/python2.7/urllib.pyRHs  cCs_tdkr0ddl}|jd|jƒantj|ƒ}|rU|jddƒS|dfS(s/splitpasswd('user:passwd') -> 'user', 'passwd'.iÿÿÿÿNs^([^:]*):(.*)$ii(t _passwdprogR$RýRStSRþRT(RÐRýRþ((s/usr/lib64/python2.7/urllib.pyRTs  cCsYtdkr*ddl}|jdƒantj|ƒ}|rO|jddƒS|dfS(s*splitport('host:port') --> 'host', 'port'.iÿÿÿÿNs^(.*):([0-9]+)$ii(t _portprogR$RýRSRþRT(ReRýRþ((s/usr/lib64/python2.7/urllib.pyRas  cCs§tdkr*ddl}|jdƒantj|ƒ}|r�|jddƒ\}}y"|sltd‚nt|ƒ}Wntk r’d}nX||fS||fS(sÛSplit host and port, returning numeric port. Return given default port if no ':' found; defaults to -1. Return numerical port if a valid number are found after ':'. Return None if ':' but not a valid number.iÿÿÿÿNs ^(.*):(.*)$iis no digits(t _nportprogR$RýRSRþRTR·Rq(RetdefportRýRþRÀtnport((s/usr/lib64/python2.7/urllib.pyRms      cCsYtdkr*ddl}|jdƒantj|ƒ}|rO|jddƒS|dfS(s/splitquery('/path?query') --> '/path', 'query'.iÿÿÿÿNs^(.*)\?([^?]*)$ii(t _queryprogR$RýRSRþRT(R'RýRþ((s/usr/lib64/python2.7/urllib.pyRƒs  cCsYtdkr*ddl}|jdƒantj|ƒ}|rO|jddƒS|dfS(s)splittag('/path#tag') --> '/path', 'tag'.iÿÿÿÿNs^(.*)#([^#]*)$ii(t_tagprogR$RýRSRþRT(R'RýRþ((s/usr/lib64/python2.7/urllib.pyR �s  cCs!|jdƒ}|d|dfS(sksplitattr('/path;attr1=value1;attr2=value2;...') -> '/path', ['attr1=value1', 'attr2=value2', ...].RÛii(RÉ(R'twords((s/usr/lib64/python2.7/urllib.pyRšscCsYtdkr*ddl}|jdƒantj|ƒ}|rO|jddƒS|dfS(s-splitvalue('attr=value') --> 'attr', 'value'.iÿÿÿÿNs^([^=]*)=(.*)$ii(t _valueprogR$RýRSRþRT(R×RýRþ((s/usr/lib64/python2.7/urllib.pyR¡s  t0123456789ABCDEFabcdefccs?|]5}tD](}||tt||dƒƒfVq qdS(iN(t_hexdigtchrRq(t.0RÃtb((s/usr/lib64/python2.7/urllib.pys ±ss([-]+)cCsOt|ƒr¦d|kr|Stj|ƒ}|dg}|j}xUtdt|ƒdƒD];}|tt||ƒƒjdƒƒ|||dƒqZWdj |ƒS|jdƒ}t|ƒdkrË|S|dg}|j}x^|dD]R}y$|t |d ƒ||dƒWqìt k r=|dƒ||ƒqìXqìWdj |ƒS(s"unquote('abc%20def') -> 'abc def'.t%iiitlatin1Rj( RJt_asciireRÉRKtrangeRsRR‡tdecodeRÊt _hextochrtKeyError(tstbitstresRKRÅtitem((s/usr/lib64/python2.7/urllib.pyRµs.    #     cCs|jddƒ}t|ƒS(s%unquote('%7e/abc+def') -> '~/abc def't+t (RWR(Ro((s/usr/lib64/python2.7/urllib.pyR ÑssAABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-ii€s%{:02X}R£cCs×|s%|dkr!tdƒ‚n|S|tf}yt|\}}Wnftk r­tjƒ}|jg|D]}||f^qnƒ|j}t|}||ft| 'abc%20def' Each part of a URL, e.g. the path info, the query, etc., has a different set of reserved characters that must be quoted. RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax lists the following reserved characters. reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," Each of these characters is reserved in some component of a URL, but not necessarily in all of them. By default, the quote function is intended for quoting the path section of a URL. Thus, it will not encode '/'. This character is reserved, but in typical usage the quote function is being called on a path where the existing slash characters are used as reserved characters. sNone object cannot be quotedRjN( R$t TypeErrort always_safeR.Rnt _safe_maptcopytupdatet __getitem__trstripRÊtmap(RoRNtcachekeytquotertsafe_maptc((s/usr/lib64/python2.7/urllib.pyRÞs     &  RjcCs<d|kr/t||dƒ}|jddƒSt||ƒS(s9Quote the query fragment of a URL; replacing ' ' with '+'RtRs(RRW(RoRN((s/usr/lib64/python2.7/urllib.pyRs ic Csÿt|dƒr|jƒ}nby-t|ƒrJt|dtƒ rJt‚nWn2tk rtjƒ\}}}td|‚nXg}|sßxc|D]E\}}tt |ƒƒ}tt |ƒƒ}|j |d|ƒq“Wnx|D]\}}tt |ƒƒ}t|t ƒr7t|ƒ}|j |d|ƒqæt |ƒrst|j ddƒƒ}|j |d|ƒqæyt|ƒWn8tk r»tt |ƒƒ}|j |d|ƒqæXx/|D]'}|j |dtt |ƒƒƒqÃWqæWdj |ƒS(svEncode a sequence of two-element tuples or dictionary into a URL query string. If any values in the query arg are sequences and doseq is true, each sequence element is converted to a separate parameter. If the query arg is a sequence of two-element tuples, the order of the parameters in the output will match the order of parameters in the input. titemsis1not a valid non-string sequence or mapping objectRÜRLRWt&(R<R�RsR†ttupleRuR]R^RR‡RKRJRMRÊ( tquerytdoseqttytvattbtlRÕRÖtelt((s/usr/lib64/python2.7/urllib.pyR s<        )cCsi}xPtjjƒD]?\}}|jƒ}|r|ddkr|||d proxy server URL mappings. Scan the environment for variables named _proxy; this seems to be the standard convention. If you need a different way, you can pass a proxies dictionary to the [Fancy]URLopener constructor. iúÿÿÿt_proxytREQUEST_METHODR€N(RBtenvironR�RˆtpopR$(R"RgRØ((s/usr/lib64/python2.7/urllib.pytgetproxies_environmentLs  cCs±tjjddƒp'tjjddƒ}|dkr:dSt|ƒ\}}g|jdƒD]}|jƒ^q\}x6|D].}|r{|j|ƒs¥|j|ƒr{dSq{WdS(sÏTest if proxies should not be used for a particular host. Checks the environment for a variable named no_proxy, which should be a list of DNS suffixes separated by commas, or '*' for all hosts. tno_proxyRjtNO_PROXYt*iRÚi(RBR�R>RRÉRŒtendswith(ReR�thostonlyRÀRct no_proxy_listRg((s/usr/lib64/python2.7/urllib.pytproxy_bypass_environmentes* ( $tdarwin(t_get_proxy_settingst _get_proxiesc Cs�ddl}ddl}ddlm}t|ƒ\}}d„}tƒ}d|kri|dritSnd}x'|jdd ƒD]} | s”q‚n|jd| ƒ} | dk r‚|dkrúy|j |ƒ}||ƒ}Wqú|j k röq‚qúXn|| j d ƒƒ} | j d ƒ} | dkrMd | j d ƒj dƒd } nt | d ƒ} d | } || ?| | ?kr•tSq‚||| ƒr‚tSq‚WtS(s¼ Return True iff this host shouldn't be accessed using a proxy This function uses the MacOSX framework SystemConfiguration to fetch the proxy information. iÿÿÿÿN(tfnmatchcSsy|jdƒ}tt|ƒ}t|ƒdkrM|ddddgd }n|dd>|dd>B|dd>B|d BS( Nt.iiiiiiii(RÉR|RqRs(tipAddrtparts((s/usr/lib64/python2.7/urllib.pytip2numŠs R›texclude_simplet exceptionss(\d+(?:\.\d+)*)(/\d+)?iiii ((RýR[RšRR˜R´R$R>RþR¸R\RTtcountRqR6( ReRýR[RšR”RÀRžtproxy_settingsthostIPRØtmtbasetmask((s/usr/lib64/python2.7/urllib.pytproxy_bypass_macosx_sysconf}s@          # cCstƒS(s±Return a dictionary of scheme -> proxy server URL mappings. This function uses the MacOSX framework SystemConfiguration to fetch the proxy information. (R™(((s/usr/lib64/python2.7/urllib.pytgetproxies_macosx_sysconf¸scCs!tƒrt|ƒSt|ƒSdS(N(R�R–R§(Re((s/usr/lib64/python2.7/urllib.pyR‰Às  cCstƒptƒS(N(R�R¨(((s/usr/lib64/python2.7/urllib.pyRÆsc Csmi}yddl}Wntk r*|SXy!|j|jdƒ}|j|dƒd}|rAt|j|dƒdƒ}d|kr÷x´|jdƒD]Y}|jdd ƒ\}}ddl}|jd |ƒsæd ||f}n||| proxy server URL mappings. Win32 uses the registry to store proxies. iÿÿÿÿNs;Software\Microsoft\Windows\CurrentVersion\Internet Settingst ProxyEnableit ProxyServerRÜRÛis ^([^/:]+)://s%s://%sishttp:R€s http://%ss https://%sR sftp://%sR!( t_winregR¬tOpenKeytHKEY_CURRENT_USERt QueryValueExR‡RÉRýRþtCloset WindowsErrorR·Ru( R"R«tinternetSettingst proxyEnablet proxyServertptprotocoltaddressRý((s/usr/lib64/python2.7/urllib.pytgetproxies_registryÊs:         cCstƒptƒS(s¥Return a dictionary of scheme -> proxy server URL mappings. Returns settings gathered from the environment, if specified, or the registry. (R�R·(((s/usr/lib64/python2.7/urllib.pyRøsc Csðyddl}ddl}Wntk r0dSXyK|j|jdƒ}|j|dƒd}t|j|dƒdƒ}Wntk r�dSX| sŸ| r£dSt|ƒ\}}|g}y/t j |ƒ}||krì|j |ƒnWnt j k rnXy/t j |ƒ} | |kr2|j | ƒnWnt j k rInX|jdƒ}x�|D]ˆ} | dkr…d|kr…d Sn| jdd ƒ} | jd d ƒ} | jd dƒ} x*|D]"} |j| | |jƒrÂd SqÂWq`WdS(Niÿÿÿÿis;Software\Microsoft\Windows\CurrentVersion\Internet SettingsR©t ProxyOverrideRÛsR›is\.R’s.*t?(R«RýR¬R¬R­R®R‡R°RR[R¸RKR\tgetfqdnRÉRWRþRÂ( ReR«RýR±R²t proxyOverridetrawHostRÀtaddrtfqdnttesttval((s/usr/lib64/python2.7/urllib.pytproxy_bypass_registrysT                cCs!tƒrt|ƒSt|ƒSdS(s¥Return a dictionary of scheme -> proxy server URL mappings. Returns settings gathered from the environment, if specified, or the registry. N(R�R–RÁ(Re((s/usr/lib64/python2.7/urllib.pyR‰5s  cCs¶d}x$tdƒD]}|t|ƒ}qW|d}tjƒ}t|ƒ}t|ƒ}tjƒ}||kr{dGHnt|ƒGHt|ƒGHt|ƒGHt||dƒGdGHdS(NRjiisWrong!itsec(RkReRÞRRROtround(RoRÅtt0tqstuqstt1((s/usr/lib64/python2.7/urllib.pyttest1Gs         cCsd|||fGHdS(Ns0Block number: %d, Block size: %d, Total size: %d((R~t blocksizet totalsize((s/usr/lib64/python2.7/urllib.pyR,Ws(hRætstringR[RBRÞR]RŠRýturlparseRRt__all__RçRËRgt nturl2pathR R t rourl2pathR$R%RRRtsslR6RèR´R2R1R0RRRRRRRRRRRÍR9R-RERURKt NameErrorRJRTRRRRRURRXRRYRR[RR\RR_RR`R RRbRRdtdictRmRSRjRR RvRwtziptxrangeR‡t bytearrayRÅR€tformatR.RRR R�R–tplatformt_scproxyR˜R™R§R¨R‰RR·RÁRÈR,(((s/usr/lib64/python2.7/urllib.pytsÖ               ÿñÇ    _ "                 45 '  @   ;    . 4