NLZ3JXLOOIL37O3RRQWXHNPNSNEOOLPD6MCB754BEBECQB3KGR2AC 6L5BK5EHPAOQX3JCKUJ273UDNAC23LPQL4HIJGM4AV3P3QK5OKIQC 7HPY3QPFPN35PSPUBVNW2GTFB3CBQZBST4J2BAVJ7QMXLIUN52JAC 64C6AWH66FDKU6UE6Z6JPX2J2GBM2JOPTH2GL6LHKAIUBGNGDZ5AC 2XQD6KKKD6QVHFHAEMVE3XXY7X2T7BLTLL7XIILZAXNJJH2YONUQC EMVTF2IWNQGRL44FC4JNG5FYYQTZSFPNM6SOM7IAEH6T7PPK2NVAC TZQJVHBAMDNWDBYCDE3SDVGBG2T5FOE3J5JAD6NENRW36XBHUUFQC QMRKFEPGFBCEWAIXPEIG5ILKAJ2JH5L3TOITHR4HNJXK5FN3KXBQC IZEVQF627FA7VV25KJAWYWGGC35LZUUBBQRPN5ZAINTQLPEDRTEAC 4U7F3CPIDTK6JSEDMNMHVKSR7HOQDLZQD2PPVMDLHO5SFSIMUXZAC A6HKMINBNGQLLX4QJMYWKQ4JAEHVJ4HIRVDKPPDI3FJUO2AAB7OQC W35DDBFYF6Z4ZPCFEO5RPAONZLYCSNTXUSTS6FIUUVZHCI6Q7GHAC Z7KS5XHHC6PAMTVBHXY7KUSS3BWAOU6FSYIITUCFOOJZU4OUJHBAC O5FVTOM6YFBLEPF3S576K6IMT6ZZ5VQCSB3YVXNS4CKBITKCRZ7AC GCVQD44VRPQVKPZEPIC4AOIXLJIG2ZMV3QI2Y7KALUT6NVUBSGSAC XTBSG4C7SCZUFOU2BTNFR6B6TCGYI35BWUV4PVTS3N7KNH5VEARQC PBD7LZYQHXAA3KLH2ZUX5GW4UFML6BQ32KXZF4KZ6OYFASUYFJ5QC import qualified Data.ByteString.Char8 as Cimport Data.Dataimport Data.List.NonEmpty as Limport Data.Map.Strict as MS
import qualified Data.ByteString.Char8 as Cimport Data.Dataimport Data.List.NonEmpty as Limport Data.Map.Strict as MS
addrText <- x .: "btcAddr"maybe(fail $ show addrText <> "is not a valid BTC address")(pure . AddressChange t)
addrText <- x .: "btcAddr"maybe(fail $ show addrText <> "is not a valid BTC address")(pure . AddressChange t)
import Control.Lensimport Data.Aeson as Aimport Data.Attoparsec.ByteString (takeByteString)import Data.Thyme.Clock as Cimport Network.Mail.SMTP as SMTPimport Network.Mail.Mimeimport System.IO (FilePath)import Text.StringTemplate
import Control.Lensimport Data.Aeson as Aimport Data.Attoparsec.ByteString (takeByteString)import Data.Thyme.Clock as Cimport Network.Mail.Mimeimport Network.Mail.SMTP as SMTPimport System.IO (FilePath)import Text.StringTemplate
import Aftokimport Aftok.Databaseimport Aftok.QConfigimport Aftok.Snapletimport Aftok.Snaplet.Auth
import Aftokimport Aftok.Databaseimport Aftok.QConfigimport Aftok.Snapletimport Aftok.Snaplet.Auth