úÎG/@Ýp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoNone6Í)Authorization Code Grant Error Responses  3https://tools.ietf.org/html/rfc6749#section-4.1.2.1! Implicit Grant Error Responses 3https://tools.ietf.org/html/rfc6749#section-4.2.2.1 None6KNg !type synonym of post body content Is either p containing an error or q containg a resultThe gained Access Token. Use Data.Aeson.decode to decode string to  AccessToken. The  refreshToken" is special in some cases, e.g. 2https://developers.google.com/accounts/docs/OAuth2(Query Parameter Representation1aPrepare the authorization URL. Redirect to this URL asking for user interactive authentication.2HPrepare the URL and the request body query for fetching an access token.3cPrepare the URL and the request body query for fetching an access token, with optional grant type.4jUsing a Refresh Token. Obtain a new access token by sending a refresh token to the Authorization server.5For GET method API.6Create   with given access token value.=Parse JSON data into 2(access code gained via authorization URL/access token request URL plus the request body.3(access code gained via authorization URL Grant Type/access token request URL plus the request body.4*refresh token gained via authorization URL0refresh token request URL plus the request body.5Base URIAuthorized Access TokenCombined Result/  !"#$%&'().-,+*/0123456789:;3()*+,-.%&'"#$ !=<?>/0 123456789:; !"#$%&'()*+,-.None6ÒSToken Error Responses /https://tools.ietf.org/html/rfc6749#section-5.2SXVUYWT [ZSTUVWXYSTUVWXYNone<V=`_)Request (via POST method) "OAuth2 Token".`oRequest a new AccessToken with the Refresh Token. TODO: seems more approporate to rename to refreshAccessTokena1Conduct post request and return response as JSON.bAConduct post request and return response as JSON or Query String.cConduct post request.d>Conduct an authorized GET request and return response as JSON.e"Conduct an authorized GET request.fsame to e; but set access token to query parameter rather than headerg1Conduct POST request and return response as JSON.hConduct POST request.iHConduct POST request with access token in the request body rather headerjZSend an HTTP request including the Authorization header with the specified access token.k Parses a Response to to  OAuth2Resultl Parses a OAuth2Result BSL.ByteString into FromJSON a => ar Parses a OAuth2Result BSL.ByteString* that contains not JSON but a Query StringmTry l and rn0Set several header values: + userAgennt : hoauth2 + accept : `application/json` + authorization : Bearer xxxxx if % provided.oSet the HTTP method to use. _HTTP connection manager OAuth DataOAuth 2 Tokens Access Token`HTTP connection manager. OAuth context(refresh token gained after authorizationaHTTP connection manager. OAuth optionsThe URL request bodyResponse as JSONbHTTP connection manager. OAuth optionsThe URL request bodyResponse as ByteStringcHTTP connection manager. OAuth optionsURL Request body.Response as ByteStringdHTTP connection manager.Response as JSONeHTTP connection manager.Response as ByteStringfHTTP connection manager.Response as ByteStringgHTTP connection manager.Response as JSONhHTTP connection manager.Response as ByteStringiHTTP connection manager.Response as ByteStringjRequest to performModify request before sendingHTTP connection manager._`abcdefghijklmno_`abcdefghijklmno OAuth2 client(c) 2012 Haisheng Wu BSD-style (see the file LICENSE)Haisheng Wu <freizl@gmail.com>alphaportableNone?×@  !"#$%&'()*+,-./0123456789:;_`abcdefghijklmnos       !""#$$%&&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST UVWXYZ[\]^_`abcdefghfgijk$hoauth2-1.6.3-EuEagU37TWBImM093MKlll)Network.OAuth.OAuth2.AuthorizationRequestNetwork.OAuth.OAuth2.Internal!Network.OAuth.OAuth2.TokenRequestNetwork.OAuth.OAuth2.HttpClientNetwork.OAuth.OAuth2ErrorsInvalidRequestUnauthorizedClient AccessDeniedUnsupportedResponseType InvalidScope ServerErrorTemporarilyUnavailable$fToJSONErrors$fFromJSONErrors $fShowErrors $fEqErrors$fGenericErrors QueryParamsPostBody OAuth2Result OAuth2ErrorerrorerrorDescriptionerrorUri OAuth2Token accessToken refreshToken expiresIn tokenTypeidToken ExchangeTokenextokenIdTokenidtoken RefreshTokenrtoken AccessTokenatokenOAuth2 oauthClientIdoauthClientSecretoauthOAuthorizeEndpointoauthAccessTokenEndpoint oauthCallbackparseOAuth2ErrormkDecodeOAuth2ErrorauthorizationUrlaccessTokenUrlaccessTokenUrl'refreshAccessTokenUrlappendAccessTokenaccessTokenToParamappendQueryParams uriToRequest requestToUrihostLensportLens$fToJSONOAuth2Token$fFromJSONOAuth2Token$fToJSONOAuth2Error$fFromJSONOAuth2Error $fShowOAuth2 $fEqOAuth2$fShowAccessToken$fFromJSONAccessToken$fToJSONAccessToken$fShowRefreshToken$fFromJSONRefreshToken$fToJSONRefreshToken $fShowIdToken$fFromJSONIdToken$fToJSONIdToken$fShowExchangeToken$fFromJSONExchangeToken$fToJSONExchangeToken$fShowOAuth2Token$fGenericOAuth2Token$fShowOAuth2Error$fEqOAuth2Error$fGenericOAuth2Error InvalidClient InvalidGrantUnsupportedGrantTypefetchAccessTokenfetchRefreshTokendoJSONPostRequestdoFlexiblePostRequestdoSimplePostRequest authGetJSON authGetBS authGetBS' authPostJSON authPostBS authPostBS' authRequesthandleResponseparseResponseJSONparseResponseFlexibleupdateRequestHeaders setMethodbase Data.EitherLeftRightparseResponseString