FC?]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\8Abstracting over an encrypted value with gpgme and gnupg(c) Justin Le 2017MIT justin@jle.imunstableportableNone5LhAn  a abstracts over a encrypted a. Has a useful BinaryI instance, which allows type-safe deserialization into encrypted values.A variation of  that allows the user to also return a value produced from the decrypted value. Re-encrypts the changed value using the given GnuPG key.'Modify an encrypted value with a given  a -> IO af function, re-encrypting it with the given GnuPG key. The decrypted value never leaves the closure.Extract a value from an 3, using a compatible key in the GnuPG environment.Wrap a value into an , using a given GnuPG key.Utilty functions(c) Justin Le 2017MIT justin@jle.imunstableportableNoneTf Default settings for haskeline. /Pad and decode a base32-encoded value from its Text prepresentation.    Options for the otp-auth executable(c) Justin Le 2017MIT justin@jle.imunstableportableNone!"5L[ A command to exercute. See Authenticator.Actions.&Should the data dump be yaml, or json?GReturn command, visible password entry, vault filepath, and fingerprint]/is str from optparse-applicative 0.14 and above^_`abcdefghi jk]    ^_`abcdefghi  jk]!Secrets and storage for OTP keys.(c) Justin Le 2017MIT justin@jle.imunstableportableNone!"$%&+,/259;DLOQRT[fOTP generation mode Counter-based Time-based5A list of secrets and their states, of various modes."A # coupled with its .%, existentially quantified over its .#A standards-compliant secret key type. Well, almost. It doesn't include configuration for the time period if it's time-based.*)Which OTP-approved hash algorithm to use?.<A data family consisting of the state required by each mode.l Generate the  cryptonite m instance.23Parse a hash algorithm string into the appropriate *.36Print out the metadata (account name and issuer) of a #.4BGenerate an HTOP (counter-based) code, returning a modified state.5=(Purely) generate a TOTP (time-based) code, for a given time.6=Generate a TOTP (time-based) code in IO for the current time.7Abstract over both 4 and 6.8-Some sort of RankN lens and traversal over a  SomeSecret6. Allows you to traverse (effectfully map) over the . in a ", with access to the # as well._With this you can implement getters and setters. It's also used by the library to update the . in IO.9"A RankN traversal over all of the #s and .s in a .:A lens into the list of "s in a D. Should be an Iso but we don't want a lens dependency now, do we.;A parser for a otpauth URI.<3Parse a valid otpauth URI and initialize its state.See Bhttps://github.com/google/google-authenticator/wiki/Key-Uri-FormatnFor & (time-based) mode, there is no state.oFor 8 (counter-based) mode, the state is the current counter.: !"#$%&'()*+,-./01pqrstul2v chunk size3456789:;<=>?@ABCDEFGHnoIJw'st !"#$%&'()*+,-.qpr/0123456789:;<"/10*+,-2#$%&'()." !:4657893;<( !"#$%&'()*+,-./01ul2v3456789:;<=>?@ABCDEFGHnpoqrIJwstSimple CLI actions for s.(c) Justin Le 2017MIT justin@jle.imunstableportableNoneQRT[fX3View secrets, generating codes for time-based keys.YAdd a secret, interactively.ZHGenerate a secret code, forcing a new HOTP code if it is counter-based.[/Edit a secret's metadata (account name, issuer)\Delete a secret.X/List key names only; do not generate any codes.3Filter by ID or possibly by account name and issuerYEcho back password entryIf x, add via otpauth protocol URIZID # of secret to generate[ID # of secret to edit\ID # of secret to deleteyzXYZ[\XYZ[\XYZ[\yz{       !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghhijklmnopqrstuvwxyz{|}~0otp-authenticator-0.1.0.1-6m9CjvDGB2e3igWXZqP3sUAuthenticator.Vault EncryptedAuthenticator.CommonAuthenticator.OptionsAuthenticator.Actions%singletons-2.2-6Xhmhx7QYPTLwUVmYMqwoMData.SingletonsSingEncencByteswithEncoverEncgetEncmkEnc $fBinaryEnc $fGenericEnc hlSettings decodePadCmdAddViewGenEditDeleteDumpDumpTypeDTYamlDTJSON getOptions$fToJSONConfig$fFromJSONConfig$fGenericConfigModeHOTPTOTP $fGenericMode $fShowModeVault vaultListSomeSecretStateSecretSec secAccount secIssuersecAlgo secDigitssecKeyHashAlgoHASHA1HASHA256HASHA512 ModeStateSModeTOTPSym0HOTPSym0 parseAlgodescribeSecrethotptotp_totpotp someSecret vaultSecrets_Vault secretURIparseSecretURI $fToJSONVault $fBinaryVault $fToJSONDSum $fBinaryDSum$fToJSONSecret$fBinarySecret$fToJSONHashAlgo$fBinaryHashAlgo$fToJSONModeState$fToJSONModeState0$fBinaryModeState$fBinaryModeState0 $fToJSONMode $fBinaryMode$fSingIModeTOTP$fSingIModeHOTP$fSingKindMode$fGenericModeState$fShowModeState$fGenericModeState0$fShowModeState0$fGenericHashAlgo$fShowHashAlgo$fGenericSecret $fShowSecret$fGenericVault $fFunctor:.: viewVault addSecret genSecret editSecret deleteSecretstrConfigConf cFingerprintcVaultOpts oFingerprintoVaultoConfigoGPG oEchoPassoCmd confJsonOpts parseOptshashAlgo&cryptonite-0.24-DhnLWw1NZ49JEfiqZcLVedCrypto.Hash.Types HashAlgorithmD:R:ModeStateTOTP0D:R:ModeStateHOTP0 TOTPState HOTPState hotpCounterSHOTPSTOTPmodeStateBinary formatKeyD:R:DemoteRepModeghc-prim GHC.TypesTruemkSecret mkSecretFrom