o LÜ€anã@sPddlZddlZddlZddlTzejjZWn ey"ejZYnwe d¡Z dd„Z dej ej Z e e ¡ d¡Ze e d ej ej ¡e e d ¡ ¡¡¡ d ¡Zej ¡ d ¡ e ¡Ze ¡ d ¡ e¡Zee d ¡eeBZe e e e¡¡¡Z edƒZ!e!e dƒedƒBZ"e  ¡Z#e e e"¡¡Z$ddd„Z%ddd„Z&dS)éNé)Ú*z\\(.)cCst d|ddd…¡S)Nz\1rréÿÿÿÿ)Ú UNQUOTE_PAIRSÚsub)ÚsÚlÚt©r ú//usr/lib/python3/dist-packages/httplib2/auth.pyÚsr z!#$%&'*+-.^_`|~Útokenz-._~+/ú=Útoken68z quoted-stringzauth-param-nameÚschemeÚparamsúauthentication-infoc CsP| |d¡ ¡}|s iSz t |¡}W| ¡Stjy'}zt|ƒ‚d}~ww)z(https://tools.ietf.org/html/rfc7615 ÚN)ÚgetÚstripÚauthentication_infoÚ parseStringÚppÚParseExceptionÚMalformedHeaderÚasDict)ÚheadersÚ headernameÚheaderÚparsedÚexr r r Ú_parse_authentication_info%s ü€þr!úwww-authenticatec Cs\| |d¡ ¡}|s iSzt |¡}Wntjy$}zt|ƒ‚d}~wwdd„|Dƒ}|S)z?Returns a dictionary of dictionaries, one dict per auth_scheme.rNcSs8i|]}|d ¡d|vr|d ¡nd| d¡i“qS)rrr )Úlowerrr)Ú.0Ú challenger r r Ú ?s ý ÿ ýz+_parse_www_authenticate..)rrÚwww_authenticaterrrr)rrrrr Úretvalr r r Ú_parse_www_authenticate4s€þür))r)r")'Úbase64ÚreÚ pyparsingrÚerrorÚcommonÚdowncaseTokensÚAttributeErrorÚcompilerÚunquoteÚnumsÚalphasÚtcharÚWordÚsetNamer ÚCombineÚOptionalÚleaveWhitespacerÚdblQuotedStringÚcopyÚsetParseActionÚ quoted_stringÚaddParseActionÚauth_param_nameÚSuppressÚ auth_paramÚDictÚ delimitedListÚGrouprrr%rr'r!r)r r r r Ús4   ÿ 0ÿ