ZճcnddlZddlZddlZddlT ejjZn#e$r ejZYnwxYwejdZ dZ dej zej zZ eje dZejejdej zej zejejd zd Zejd e Zed eZeejd zeezzZejejejeZ ed Z!e!e dedzzZ"e Z#ejeje"Z$ddZ%ddZ&dS)N)*z\\(.)cTtd|dddS)Nz\1rr) UNQUOTE_PAIRSsub)slts //usr/lib/python3/dist-packages/httplib2/auth.pyr s"-++E1Q4":>>z!#$%&'*+-.^_`|~tokenz-._~+/=token68z quoted-stringzauth-param-nameschemeparamsauthentication-infoc||d}|siS t|}n&#tj$r}t |d}~wwxYw|S)z(https://tools.ietf.org/html/rfc7615 N)getstripauthentication_info parseStringppParseExceptionMalformedHeaderasDict)headers headernameheaderparsedexs r _parse_authentication_infor$%s[[R ( ( . . 0 0F  *$0088 ***j)))* ==??A A,A''A,www-authenticatec||d}|siS t|}n&#tj$r}t |d}~wwxYwd|D}|S)z?Returns a dictionary of dictionaries, one dict per auth_scheme.rNci|]P}|dd|vr|dnd|diQS)rrr)lowerrr).0 challenges r z+_parse_www_authenticate..?ss  (!!## y &/x%8%?%?%A%A%Ay}}W-- .r)rrwww_authenticaterrrr)rr r!r"r#retvals r _parse_www_authenticater/4s [[R ( ( . . 0 0F  *!--f55 ***j)))* F Mr%)r)r&)'base64re pyparsingrerrorcommondowncaseTokensAttributeErrorcompilerunquotenumsalphastcharWordsetNamerCombineOptionalleaveWhitespacerdblQuotedStringcopysetParseAction quoted_stringaddParseActionauth_param_nameSuppress auth_paramDict delimitedListGrouprrr+rr-r$r/rr rMsQ 'Y-NN'''&NNN' 8$$ > > BG#bi/w'' "*WRWX/");<<{r{727SV<