! a      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                        ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                           None"#.127=>?@AHMUVXr:happstack-authenticatethe  type is used to represent errors in a language agnostic manner. The errors are translated into human readable form via the I18N translations.happstack-authenticate}when creating JSON field names, drop the first character. Since we are using lens, the leading character should always be _.-happstack-authenticateIan arbitrary, but unique string that the user uses to identify themselves0happstack-authenticate"convert a value to a JSON encoded 1happstack-authenticate"convert a value to a JSON encoded 2happstack-authenticate#convert an error to a JSON encoded  FIXME: I18N=happstack-authenticatean =% address. No validation in performed.Khappstack-authenticate A unique Knhappstack-authenticateFVarious configuration options that apply to all authentication methodsphappstack-authenticate0can user administrate the authentication system?qhappstack-authenticate-enforce username policies, valid email, etc. $ == ok, 'Just Text' == error messagerhappstack-authenticate?require use to supply an email address when creating an accountshappstack-authenticate(From: line for emails sent by the serverthappstack-authenticate,Reply-To: line for emails sent by the serveruhappstack-authenticate0path to sendmail if it is not /usr/sbin/sendmailwhappstack-authenticateThe shared secret is used to encrypt a users data on a per-user basis. We can invalidate a JWT value by changing the shared secret.happstack-authenticatea very basic policy for userAcceptable Enforces:- can not be emptyhappstack-authenticate^This value is used to configure the type of new user registrations permitted for this system.happstack-authenticate'new users can create their own accountshappstack-authenticatejnew users can apply to create their own accounts, but a moderator must approve them before they are activehappstack-authenticate'only the admin can create a new accounthappstack-authenticateA map which stores the w for each happstack-authenticate Generate a Salt from 128 bits of data from  /dev/urandomV, with the system RNG as a fallback. This is the function used to generate salts by  makePassword.happstack-authenticate Generate a w from  /dev/urandom.see: happstack-authenticate Generate a w from .see: happstack-authenticate An empty happstack-authenticateNthis acid-state value contains the state common to all authentication methodshappstack-authenticate#default session time out in secondshappstack-authenticatea reasonable initial happstack-authenticateset the w for ! overwritten any previous secret.happstack-authenticateget the w for happstack-authenticate3set the default inactivity timeout for new sessionshappstack-authenticate3set the default inactivity timeout for new sessionshappstack-authenticateset the happstack-authenticateget the happstack-authenticate Create a new K. This will allocate a new . The returned K value will have the updated .happstack-authenticate Create a new K. This will allocate a new . The returned K value will have the updated .happstack-authenticateUpdate an existing K. Must already have a valid .happstack-authenticateDelete K with the specified happstack-authenticate look up a K by their -happstack-authenticate look up a K by their happstack-authenticate look up a K by their =MNOTE: if the email is associated with more than one account this will return happstack-authenticate&get the entire AuthenticateState valuehappstack-authenticateThe = type represents the encrypted data used to identify a user.happstack-authenticateget the w for *. Generate one if they don't have one yet.happstack-authenticateb is used by the routing system to select which authentication backend should handle this request.happstack-authenticate is the encrypted form of the 4 which is passed between the server and the client.happstack-authenticate create a  for KThe  isAuthAdmin? paramater is a function which will be called to determine if o is a user who should be given Administrator privileges. This includes the ability to things such as set the OpenId+ realm, change the registeration mode, etc.happstack-authenticatedecode and verify the . If successful, return the  otherwise .happstack-authenticate name of the  used to hold the happstack-authenticate create a  for K and add a  to the  see also: happstack-authenticate delete the  happstack-authenticateget, decode, and verify the  from the .happstack-authenticateget, decode, and verify the  from the  Authorization HTTP headerhappstack-authenticateget, decode, and verify the  looking first in the  Authorization header and then in . see also: , happstack-authenticateget the calls  but returns only the #happstack-authenticatea  for AuthenicateURL$happstack-authenticateLhelper function which converts a URL for an authentication backend into an .happstack-authenticate,default timout in seconds (should be >= 180)happstack-authenticatethe user -./012<=>?@KLMNOP[\]^_`abcnopqrstuwxyz{|}~!"#$nopqrstuz{012-./<@=>?PKLMNObca`_wxy[\]^ !"|}~#$Nonew&'&'None27UVx(*)123(*)213None"#.27=?@AHUVx 59876:ABCDEF :59876DCBAEFNone 27@AHV~rhappstack-authenticate.Get the OpenId realm to use for authenticationshappstack-authenticate,set the realm used for OpenId AuthenticationIMPORTANT: Changing this value after users have registered is likely to invalidate existing OpenId tokens resulting in users no longer being able to access their old accounts."HIJKVWXabdcemnopqrsuvwxyz{|}~"HIJKVWXeabdcnmopqrs~|}z{xyuvwNone 27=?@AUVx  NoneNoneT None27UV None"#.27=?@AHUV None"#.127=?@AHV  happstack-authenticatehash a password stringhappstack-authenticateverify a passwordhappstack-authenticateset the password for happstack-authenticatedelete the password for happstack-authenticateIverify that the supplied password matches the stored hashed password for %happstack-authenticate3verify that the supplied username/password is valid6happstack-authenticate JSON record for new account dataGhappstack-authenticate$JSON record for change password dataWhappstack-authenticate JSON record for new account data]happstack-authenticateaccount handlerfhappstack-authenticate JSON record for new account datalhappstack-authenticaterequest reset passwordmhappstack-authenticateissueResetToken happstack-authenticatepassword in plain texthappstack-authenticatesalted and hashedhappstack-authenticatepassword in plain texthappstack-authenticatehashed version of passwordhappstack-authenticateUserIdhappstack-authenticatethe hashed passwordhappstack-authenticateUserIdhappstack-authenticateUserIdhappstack-authenticateplain-text passwordT      !"#$%67:98;<=GHKJILMNWXYZ[\]fgjihklmnwxyz{T     #$!" %<;=67:98NMLGHKJI\[Z]WXYklmnfgjihyxwz{ None 27=?@AUV~~ NoneNoneNone=?M !"#$$%&'()*+,-./0123456789:;<=>??@ABCDEFGHIJKLMNNOPQRSTUVWXYZ[[\]^_`abcdefghijjklmnopqrstuvwxyz{||}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZZ[\]^_`abcdefghijklmmnooppqqrrstuvwxyz{|}~1 #        & ' ( )        . /             1             <                                                                                                            ! " # $ % % & ' ( ) * + , - . / 0 1 2 3 4 4 5 6 7 8 9 : ; < = > ? @ A B B C D E F G H I J K L M N O P Q R S T U V W X  Y Z [ \ ] ^ _ ` a b c d 1   e f g h i j    k lmnopqrstuvwxyz{|}~r3happstack-authenticate-2.4.0-JI9F2VMBOu032PC7Od4mywHappstack.Authenticate.Core!Happstack.Authenticate.Controller)Happstack.Authenticate.OpenId.PartialsURL!Happstack.Authenticate.OpenId.URL"Happstack.Authenticate.OpenId.Core&Happstack.Authenticate.OpenId.Partials)Happstack.Authenticate.OpenId.Controllers#Happstack.Authenticate.OpenId.Route+Happstack.Authenticate.Password.PartialsURL#Happstack.Authenticate.Password.URL$Happstack.Authenticate.Password.Core(Happstack.Authenticate.Password.Partials+Happstack.Authenticate.Password.Controllers%Happstack.Authenticate.Password.RouteHappstack.Authenticate.RouteSystemRandom%userid-0.1.3.3-Ce2SkL8DWGXCt3auk5IeVE Data.UserId succUserIdrUserIdunUserId _unUserIdUserId CoreErrorHandlerNotFoundURLDecodeFailedUsernameAlreadyExistsAuthorizationRequired ForbiddenJSONDecodeFailed InvalidUserIdUsernameNotAcceptable InvalidEmail TextErrorHappstackAuthenticateI18N jsonOptions$fToJExprCoreError$fFromJSONCoreError$fToJSONCoreError $fEqCoreError$fOrdCoreError$fReadCoreError$fShowCoreError$fDataCoreError$fGenericCoreError$fSafeCopyCoreError1$fRenderMessageHappstackAuthenticateI18NCoreError $fEqStatus $fOrdStatus $fReadStatus $fShowStatus $fDataStatus$fGenericStatus$fSafeCopyStatus$fFromJSONStatus$fToJSONStatus$fEqJSONResponse$fReadJSONResponse$fShowJSONResponse$fDataJSONResponse$fGenericJSONResponseUsername _unUsernametoJSONResponse toJSONSuccess toJSONError$fFromJSONJSONResponse$fToJSONJSONResponse $fEqUsername $fOrdUsername$fReadUsername$fShowUsername$fDataUsername$fGenericUsername$fSafeCopyUsername unUsernameEmail_unEmail rUsername$fPathInfoUsername$fFromJSONUsername$fToJSONUsername $fEqEmail $fOrdEmail $fReadEmail $fShowEmail $fDataEmail$fGenericEmail$fSafeCopyEmailUser_userId _username_emailunEmail$fPathInfoEmail$fFromJSONEmail $fToJSONEmail$fEqUser $fOrdUser $fReadUser $fShowUser $fDataUser $fGenericUser$fSafeCopyUser SimpleAddress_saName_saEmailIxUserUserIxsemailuserIdusername$fFromJSONUser $fToJSONUser$fIndexable:User$fEqSimpleAddress$fOrdSimpleAddress$fReadSimpleAddress$fShowSimpleAddress$fDataSimpleAddress$fGenericSimpleAddress$fSafeCopySimpleAddressAuthenticateConfig _isAuthAdmin_usernameAcceptable _requireEmail_systemFromAddress_systemReplyToAddress_systemSendmailPath$fGenericAuthenticateConfig SharedSecret_unSharedSecret isAuthAdmin requireEmailsystemFromAddresssystemReplyToAddresssystemSendmailPathusernameAcceptableusernamePolicy$fEqSharedSecret$fOrdSharedSecret$fReadSharedSecret$fShowSharedSecret$fDataSharedSecret$fGenericSharedSecret$fSafeCopySharedSecretNewAccountModeOpenRegistrationModeratedRegistrationClosedRegistration SharedSecretsunSharedSecretgenSharedSecretgenSharedSecretDevURandomgenSharedSecretSysRandominitialSharedSecrets$fEqNewAccountMode$fShowNewAccountMode$fGenericNewAccountModeAuthenticateState_sharedSecrets_users _nextUserId_defaultSessionTimeout_newAccountMode$fSafeCopyNewAccountMode$fEqAuthenticateState$fShowAuthenticateState$fGenericAuthenticateState$fSafeCopyAuthenticateStatedefaultSessionTimeoutnewAccountMode nextUserId sharedSecretsusersinitialAuthenticateStateToken _tokenUser_tokenIsAuthAdminGetAuthenticateStateGetUserByEmailGetUserByUserIdGetUserByUsername DeleteUser UpdateUserCreateAnonymousUser CreateUserGetNewAccountModeSetNewAccountModeGetSharedSecretSetSharedSecretGetDefaultSessionTimeoutSetDefaultSessionTimeoutgetOrGenSharedSecret%$fUpdateEventSetDefaultSessionTimeout $fMethodSetDefaultSessionTimeout"$fSafeCopySetDefaultSessionTimeout$$fQueryEventGetDefaultSessionTimeout $fMethodGetDefaultSessionTimeout"$fSafeCopyGetDefaultSessionTimeout$fUpdateEventSetSharedSecret$fMethodSetSharedSecret$fSafeCopySetSharedSecret$fQueryEventGetSharedSecret$fMethodGetSharedSecret$fSafeCopyGetSharedSecret$fUpdateEventSetNewAccountMode$fMethodSetNewAccountMode$fSafeCopySetNewAccountMode$fQueryEventGetNewAccountMode$fMethodGetNewAccountMode$fSafeCopyGetNewAccountMode$fUpdateEventCreateUser$fMethodCreateUser$fSafeCopyCreateUser $fUpdateEventCreateAnonymousUser$fMethodCreateAnonymousUser$fSafeCopyCreateAnonymousUser$fUpdateEventUpdateUser$fMethodUpdateUser$fSafeCopyUpdateUser$fUpdateEventDeleteUser$fMethodDeleteUser$fSafeCopyDeleteUser$fQueryEventGetUserByUsername$fMethodGetUserByUsername$fSafeCopyGetUserByUsername$fQueryEventGetUserByUserId$fMethodGetUserByUserId$fSafeCopyGetUserByUserId$fQueryEventGetUserByEmail$fMethodGetUserByEmail$fSafeCopyGetUserByEmail $fQueryEventGetAuthenticateState$fMethodGetAuthenticateState$fSafeCopyGetAuthenticateState$fIsAcidicAuthenticateState $fEqToken $fOrdToken $fReadToken $fShowToken $fDataToken$fGenericTokenAuthenticationMethod_unAuthenticationMethod TokenTexttokenIsAuthAdmin tokenUser issueTokendecodeAndVerifyTokenauthCookieNameaddTokenCookiedeleteTokenCookiegetTokenCookiegetTokenHeadergetToken getUserId$fFromJSONToken $fToJSONToken$fEqAuthenticationMethod$fOrdAuthenticationMethod$fReadAuthenticationMethod$fShowAuthenticationMethod$fDataAuthenticationMethod$fGenericAuthenticationMethod$fPathInfoAuthenticationMethod$fSafeCopyAuthenticationMethodunAuthenticationMethodAuthenticateURLAuthenticationMethods ControllersAuthenticationHandlersAuthenticationHandlerrAuthenticationMethod$fFromJSONAuthenticationMethod$fToJSONAuthenticationMethod$fEqAuthenticateURL$fOrdAuthenticateURL$fReadAuthenticateURL$fShowAuthenticateURL$fDataAuthenticateURL$fGenericAuthenticateURLrAuthenticationMethods rControllersauthenticateURLnestAuthenticationMethod$fPathInfoAuthenticateURLauthenticateCtrlauthenticateCtrlJs PartialURL UsingYahoo RealmForm$fEqPartialURL$fOrdPartialURL$fDataPartialURL$fGenericPartialURL$fReadPartialURL$fShowPartialURL rUsingYahoo rRealmForm partialURL$fPathInfoPartialURL OpenIdURLPartial BeginDanceReturnToRealmopenIdAuthenticationMethod $fEqOpenIdURL$fOrdOpenIdURL$fDataOpenIdURL$fGenericOpenIdURL$fReadOpenIdURL$fShowOpenIdURLrPartial rBeginDance rReturnTorRealm openIdURL nestOpenIdURL$fPathInfoOpenIdURL OpenIdErrorUnknownIdentifieropenIdErrorMessageE$fSafeCopyIdentifier$fToJExprOpenIdError$fFromJSONOpenIdError$fToJSONOpenIdError$fEqOpenIdError$fOrdOpenIdError$fReadOpenIdError$fShowOpenIdError$fDataOpenIdError$fGenericOpenIdError OpenIdState_1_identifiers_13$fRenderMessageHappstackAuthenticateI18NOpenIdError$fEqOpenIdState_1$fOrdOpenIdState_1$fReadOpenIdState_1$fShowOpenIdState_1$fDataOpenIdState_1$fGenericOpenIdState_1$fSafeCopyOpenIdState_1 OpenIdState _identifiers _openIdRealm identifiers_1$fEqOpenIdState$fOrdOpenIdState$fReadOpenIdState$fShowOpenIdState$fDataOpenIdState$fGenericOpenIdState$fSafeCopyOpenIdState identifiers openIdRealminitialOpenIdStateidentifierToUserIdassociateIdentifierWithUserIdgetOpenIdRealmsetOpenIdRealm$fMigrateOpenIdState SetRealmData_srOpenIdRealmSetOpenIdRealmGetOpenIdRealmAssociateIdentifierWithUserIdIdentifierToUserId$fQueryEventIdentifierToUserId$fMethodIdentifierToUserId$fSafeCopyIdentifierToUserId*$fUpdateEventAssociateIdentifierWithUserId%$fMethodAssociateIdentifierWithUserId'$fSafeCopyAssociateIdentifierWithUserId$fQueryEventGetOpenIdRealm$fMethodGetOpenIdRealm$fSafeCopyGetOpenIdRealm$fUpdateEventSetOpenIdRealm$fMethodSetOpenIdRealm$fSafeCopySetOpenIdRealm$fIsAcidicOpenIdState$fEqSetRealmData$fOrdSetRealmData$fReadSetRealmData$fShowSetRealmData$fDataSetRealmData$fGenericSetRealmData srOpenIdRealmrealm getIdentifiertoken$fFromJSONSetRealmData$fToJSONSetRealmData PartialMsgs UsingYahooMsg SetRealmMsgOpenIdRealmMsgPartial' routePartial usingYahoo realmForm$fEmbedAsAttrRouteTAttr$fEmbedAsChildRouteTPartialMsgs3$fRenderMessageHappstackAuthenticateI18NPartialMsgs openIdCtrl openIdCtrlJs routeOpenId initOpenId LoginInlineLoginLogoutSignupPasswordChangePasswordRequestResetPasswordFormResetPasswordForm rLoginInlinerLoginrLogoutrSignupPasswordrChangePasswordrRequestResetPasswordFormrResetPasswordForm AccountURLPasswordpasswordAuthenticationMethod$fEqAccountURL$fOrdAccountURL$fReadAccountURL$fShowAccountURL$fDataAccountURL$fGenericAccountURL PasswordURLAccountPasswordRequestReset PasswordResetUsernamePasswordCtrl rPassword accountURL$fPathInfoAccountURL$fEqPasswordURL$fOrdPasswordURL$fDataPasswordURL$fGenericPasswordURLrTokenrAccountrPasswordRequestResetrPasswordResetrUsernamePasswordCtrl passwordURLnestPasswordURL$fPathInfoPasswordURLPasswordConfig _resetLink_domain_passwordAcceptable$fGenericPasswordConfig PasswordErrorNotAuthenticated NotAuthorizedInvalidUsernameInvalidPasswordInvalidUsernamePasswordNoEmailAddressMissingResetTokenInvalidResetTokenPasswordMismatchUnacceptablePasswordpasswordErrorMessageMsgpasswordErrorMessageEdomainpasswordAcceptable resetLink$fToJExprPasswordError$fFromJSONPasswordError$fToJSONPasswordError$fEqPasswordError$fOrdPasswordError$fReadPasswordError$fShowPasswordError$fDataPasswordError$fGenericPasswordError HashedPass _unHashedPass5$fRenderMessageHappstackAuthenticateI18NPasswordError$fEqHashedPass$fOrdHashedPass$fReadHashedPass$fShowHashedPass$fDataHashedPass$fGenericHashedPass$fSafeCopyHashedPass PasswordState _passwords unHashedPass mkHashedPassverifyHashedPass$fEqPasswordState$fOrdPasswordState$fReadPasswordState$fShowPasswordState$fDataPasswordState$fGenericPasswordState$fSafeCopyPasswordState passwordsinitialPasswordState setPassworddeletePasswordverifyPasswordForUserIdUserPass_user _passwordVerifyPasswordForUserIdDeletePassword SetPasswordverifyPassword$fUpdateEventSetPassword$fMethodSetPassword$fSafeCopySetPassword$fUpdateEventDeletePassword$fMethodDeletePassword$fSafeCopyDeletePassword#$fQueryEventVerifyPasswordForUserId$fMethodVerifyPasswordForUserId!$fSafeCopyVerifyPasswordForUserId$fIsAcidicPasswordState $fEqUserPass $fOrdUserPass$fReadUserPass$fShowUserPass$fDataUserPass$fGenericUserPassNewAccountData_naUser _naPassword_naPasswordConfirmpassworduser$fToJExprUserPass$fFromJSONUserPass$fToJSONUserPass$fEqNewAccountData$fOrdNewAccountData$fReadNewAccountData$fShowNewAccountData$fDataNewAccountData$fGenericNewAccountDataChangePasswordData_cpOldPassword_cpNewPassword_cpNewPasswordConfirm naPasswordnaPasswordConfirmnaUser$fFromJSONNewAccountData$fToJSONNewAccountData$fEqChangePasswordData$fOrdChangePasswordData$fReadChangePasswordData$fShowChangePasswordData$fDataChangePasswordData$fGenericChangePasswordDataRequestResetPasswordData _rrpUsername cpNewPasswordcpNewPasswordConfirm cpOldPasswordaccount$fFromJSONChangePasswordData$fToJSONChangePasswordData$fEqRequestResetPasswordData$fOrdRequestResetPasswordData$fReadRequestResetPasswordData$fShowRequestResetPasswordData$fDataRequestResetPasswordData!$fGenericRequestResetPasswordDataResetPasswordData _rpPassword_rpPasswordConfirm _rpResetToken rrpUsernamepasswordRequestResetissueResetTokensendResetEmail"$fFromJSONRequestResetPasswordData $fToJSONRequestResetPasswordData$fEqResetPasswordData$fOrdResetPasswordData$fReadResetPasswordData$fShowResetPasswordData$fDataResetPasswordData$fGenericResetPasswordData rpPasswordrpPasswordConfirm rpResetToken passwordResetdecodeAndVerifyResetToken$fFromJSONResetPasswordData$fToJSONResetPasswordData UsernameMsgEmailMsg PasswordMsgPasswordConfirmationMsg SignUpMsg SignInMsg LogoutMsgOldPasswordMsgNewPasswordMsgNewPasswordConfirmationMsgChangePasswordMsgRequestPasswordResetMsgsignupPasswordFormusernamePasswordForm logoutFormchangePasswordFormrequestResetPasswordFormresetPasswordFormusernamePasswordCtrlusernamePasswordCtrlJs routePassword initPasswordrouteinitAuthentication$fIntegerSupplyRouteT/happstack-server-7.5.1.3-7vwxTDAwp179eGdDSHGMMYHappstack.Server.Internal.TypesResponsebase GHC.MaybeNothingsetSharedSecretgetSharedSecretsetDefaultSessionTimeoutgetDefaultSessionTimeoutsetNewAccountModegetNewAccountMode createUsercreateAnonymousUser updateUser deleteUsergetUserByUsernamegetUserByUserIdgetUserByEmailgetAuthenticateState Happstack.Server.Internal.CookieCookie4web-routes-boomerang-0.28.4.2-K3H6Q9A6MUqLoRzsz32ydyWeb.Routes.BoomerangRouter