!j3 ,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+ None,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None=>?k`immCNewtype wrapper to prettyprint a key uniquely identifying an objectbimmInfix operator for Fv  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_`abcdefghijklmnopqrstuv`abcdefghijklmnopqrstu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_None=>?@A vyxzw{|~} {|~}vyxzwNone=>?#imm$Handle to perform GET HTTP requests.immSimple wrapper around " that also logs the requested URI.None &'.1=?SUVX$imm8Feed reference: either its URI, or its UID from databaseNone%None1=>?@AHSVX&immGeneric database table""None "#>HVk+pimm'Singleton type to represent feeds tableimmNewtype wrapper to provide  and  instances for immNewtype wrapper to provide  and  instances for immUnique key in feeds table##None7k07imm`All information passed to external programs about a new feed item, are stored in this structure.imm+External program run for each feed element.A = is passed to this program through stdin, serialized in JSON. None0Mvwzxy}~Mvwzxy}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmnopqqrstuvwxyz{|}~x      !"#$%&'()* +,-. /0 /1 23 24 5 6 7,-8 9: 9; <= >? >@ >A B CD CE CF CG CH CI CJ CK CL CM CN CO,PQ,PR,PS TU TV TW TX TY TZ T[ T\ T] T^ T_ T` Ta Tb Tc Td Te Tf 9g 9h 9i 9j 9k 9l 9m 9n 9o 9p 9q 9r s t u v w x y z{ z| z} z~ z z z z,P,P,P,P,P,P,P,P  9 9 T T T T T T T T T T T T 9 9 9 9 9 9                                    ,,,,,,,,,        ,,,, 9 9,,       ,,, ,          !"#$"#%&'(&')&*+&,-&,.&,/&01&02&03&04&56&57&58&59&5:&5;&5<&5=&>?&>@&>A&>B&CD&CE&CF&CG&CH&CI&CJ&CK&LM&LN&LO&LP&LQ&LR&LS&LT&LU&LV&WX&YZ&Y[&Y\&Y]&^_&^`&^a&^b&cd&ce&cf&cg&ch&ci&cj&ck&cl&cm&cn&co&cp&cq&cr&cs&ct&cu&cv&wx&wy&wz&w{&w|&w}&w~&w&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&""""""""""""""           """""#"#"#"""""" !"!#!$,P%,P&,P' () () *+ , - . / 0 1 2 3 4 5 6 7 89 z: ;< 2= 2> 2? @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 [\ 9] 9^ 9_ 9` 9a 9b 9c 9d e f g hi hj hk lm no p q r st su sv sw sx yz y{ |} |} ~ ~ ~                    Q             * * * * * * * * * * * * * * * * * * * * * * *                            ( ( ( (                         < < < < < < < < < < < <                                    ! " ># $% $% $& $' $( $) *+ *, *- ./ ./ .0 12 12 13 14 14 15 16 16 17 18 19 1: 1; 1< 1= 1> 1? 1@ 1A B C CD CE F G H I J K L M 1N 1N 1O PQ nR&ST UVWXVYZ[\]^"imm-1.8.0.0-3KJgANDlBg8HTFp2MM2hFp Imm.Pretty Imm.LoggerImm.HTTPImm.FeedImm.XML Imm.DatabaseImm.Database.FeedTable Imm.CallbackPreludeImmbaseGHC.Base<>*prettyprinter-1.6.1-KjG1sEzf1n21EgCkj9uNVa"Data.Text.Prettyprint.Doc.InternalDoc'Data.Text.Prettyprint.Doc.Symbols.Asciipipeequals backslashslashdotspacecommacolonsemirbracelbracerbracketlbracketranglelanglerparenlparendquotesquotebracesbracketsanglesparensdquotessquotes layoutCompact layoutSmart layoutPrettydefaultLayoutOptionsremoveTrailingWhitespacefusealterAnnotationsS reAnnotateS unAnnotateSalterAnnotations reAnnotate unAnnotateannotatesurroundencloseplural fillBreakfill pageWidthnestingcolumn punctuatecatfillCatvcathcatsepfillSepvsephsep concatWith<+>tupled encloseSepindenthangalignflatAltgrouphardline softline'softlineline'linenestemptyDoc unsafeViaShowviaShow prettyListprettyPrettyDeepShallow FusionDepthSAnnPopSAnnPushSLineSTextSCharSEmptySFailSimpleDocStream UnboundedAvailablePerLine PageWidthlayoutPageWidth LayoutOptions:prettyprinter-ansi-terminal-1.1.1.2-HR8gzEoTreRFqR7LFOAG3A2Data.Text.Prettyprint.Doc.Render.Terminal.Internal AnsiStyle PrettyKey<++> prettyTree prettyTime prettyPerson prettyLinkprettyAtomText prettyElement prettyNode prettyContent prettyEntry prettyItem prettyURI prettyGuidprettyAtomContentmagentayellowredgreencyanboldLogLevelDebugInfoWarningErrorHandlelog getLogLevel setLogLevelsetColorizeLogs flushLogs$fPrettyLogLevel $fEqLogLevel $fOrdLogLevel$fReadLogLevel$fShowLogLevelhttpGetgetFeedURI FeedElement RssElement AtomElementFeedRssAtomFeedRefByUIDByURI sameURIType withFeedURI renderFeedrenderFeedElement parseFeedparseFeedElementremoveElements getFeedTitle getElementsgetDategetTitle getContentgetLinkgetId$fPrettyFeedRef$fEqFeedElement$fOrdFeedElement$fPrettyPrettyKey $fOrdFeedURI $fEqFeedURI $fEqFeedRef $fOrdFeedRef $fShowFeedRef$fEqFeed $fOrdFeed $fShowFeed$fShowFeedElement $fShowFeedURIparseXmlDatabaseException NotCommitted NotDeletedNotFound NotInserted NotPurged NotUpdatedUnableFetchAll_describeDatabase _fetchList _fetchAll_update _insertList _deleteList_purge_commitTableKeyEntryrepreadOnlyfetch fetchListfetchAllupdateinsert insertListdelete deleteListpurgecommittable$fPrettyDatabaseException$fExceptionDatabaseException$fShowDatabaseException$fEqDatabaseExceptionDatabase FeedStatusUnknownNew LastUpdate FeedTable DatabaseEntryentryURI entryTagsentryReadHashes entryFeed entryItemsentryLastUpdate JsonElement unwrapElementJsonURI _unwrapURIFeedID prettyFeedID getHashesprettyShortDatabaseEntryprettyDatabaseEntrynewDatabaseEntryregister getStatusmarkAsProcessedmarkAsUnprocessedlistUnprocessedElementsisRead$fPrettyFeedID$fToJSONJsonURI$fFromJSONJsonURI$fToJSONFeedID$fFromJSONFeedID$fToJSONKeyJsonElement$fToJSONJsonElement$fFromJSONKeyJsonElement$fFromJSONJsonElement$fToJSONDatabaseEntry$fFromJSONDatabaseEntry$fTableFeedTable$fPrettyFeedTable$fPrettyFeedStatus $fEqFeedID $fOrdFeedID $fShowFeedID$fEqJsonElement$fOrdJsonElement$fEqDatabaseEntry$fShowDatabaseEntry $fEqFeedTable$fOrdFeedTable$fReadFeedTable$fShowFeedTable $fEqDatabase$fShowDatabaseMessageCallback _executable _arguments$fPrettyCallback$fFromDhallCallback$fMessagePackMessage $fEqCallback$fGenericCallback $fOrdCallback$fReadCallback$fShowCallback $fEqMessage$fGenericMessage $fOrdMessage $fShowMessage++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.ExtsIsListfromList fromListNjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexpsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnFunctorfmap<$GHC.NumNum+*-negate fromIntegerabssignumOrd>=compareminmax><<=GHC.ReadReadReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicativepure<*>*><*liftA2 Data.FoldableFoldabletoListfoldrfoldlengthfoldMapnullfoldl'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGeneric GHC.TypeNatsKnownNatGHC.OverloadedLabelsIsLabel fromLabel SemigroupsconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleD#FloatF#IntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.NaturalNatural GHC.MaybeMaybeNothingJustOrderingLTEQGTRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightType ConstraintNatCmpNat CoercibleGHC.Stack.Types CallStackStringbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$>'hashable-1.2.7.0-2SI038axTEd7AEZJ275kpiData.Hashable.ClassHashable hashWithSalt text-1.2.3.1Data.Text.InternalTextconst.id4unordered-containers-0.2.10.0-LgoTL3wbBEY5bZIDJiyxW4Data.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMapGHC.IO.Handle.FDstdout stm-2.5.0.0Control.Concurrent.STM.TVar modifyTVar'Data.Text.Encoding decodeUtf8'decodeUtf8WithData.Text.Encoding.Error lenientDecode strictDecodeOnError OnDecodeErrorUnicodeExceptiontransformers-0.5.5.0Control.Monad.Trans.MaybeexceptToMaybeTmaybeToExceptT$relude-0.6.0.0-LMPqa8438CqAJJujB2D1JRelude.Applicativepass appliedToRelude.FunctionidentityRelude.Functor.Fmap<<$>>flap??Relude.Lifted.ExitexitWith exitFailure exitSuccessdieRelude.Lifted.IORefnewIORef readIORef writeIORef modifyIORef modifyIORef'atomicModifyIORefatomicModifyIORef'atomicWriteIORefRelude.List.ReexportheadinitlasttailRelude.Monad.Maybe?:whenJust whenJustM whenNothing whenNothing_ whenNothingM whenNothingM_ mapMaybeMRelude.Monad.Trans usingReaderT usingReader usingStateT usingStateevaluatingStateTevaluatingStateexecutingStateTexecutingState hoistMaybe hoistEither Relude.Monoid maybeToMonoid Relude.NubordNubhashNubsortNub unstableNubRelude.String.ReexportlinesunlineswordsunwordsRelude.String.Conversion LazyStricttoStricttoLazyToStringtoStringToLTexttoLTextToTexttoText ConvertUtf8 encodeUtf8 decodeUtf8decodeUtf8Strict LByteStringLText readEithershowfromLazy fromStrict Relude.PrintputText putTextLnputLText putLTextLnputBSputBSLnputLBSputLBSLnRelude.Lifted.FilereadFile writeFile appendFile Relude.File readFileText writeFileTextappendFileText readFileLTextwriteFileLTextappendFileLText readFileBS writeFileBS appendFileBS readFileLBS writeFileLBS appendFileLBS Relude.Debug Undefinedtrace traceShow traceShowIdtraceM traceShowMtraceIderror undefinedRelude.Monad.Either leftToMaybe rightToMaybe maybeToRight maybeToLeftwhenLeft whenLeft_ whenLeftM whenLeftM_ whenRight whenRight_ whenRightM whenRightM_ Relude.Monad chainedToRelude.List.NonEmpty viaNonEmpty whenNotNull whenNotNullMRelude.ExceptionBugExcbugRelude.DeepSeq evaluateWHNF evaluateWHNF_ evaluateNF evaluateNF_Relude.Bool.GuardwhenMunlessMifMguardMguarded&&^||^Relude.NumericintegerToBoundedintegerToNaturalRelude.Container.OneOneOneItemone Relude.List!!?Relude.Lifted.Concurrent newEmptyMVarnewMVarputMVarreadMVarswapMVartakeMVar tryPutMVar tryReadMVar tryTakeMVar atomically newTVarIO readTVarIORelude.Foldable.Fold flipfoldl'asumMapfoldMapAfoldMapMsumproductelemnotElemandMorMallManyMRelude.Lifted.TerminalgetLineprintputStrputStrLnData.HashSet.BaseHashSet Control.Monad.Trans.State.Strict execStateT evalStateT withState execState evalStaterunStateStateControl.Monad.Trans.Reader withReaderT withReader runReaderReaderControl.Monad.Trans.Except runExceptT mtl-2.2.2Control.Monad.Reader.Class MonadReaderasklocalreaderasksControl.Monad.State.Classmodifymodify'getsControl.Monad.Trans.Identity IdentityT runIdentityT MonadStateputstatedeepseq-1.4.4.0Control.DeepSeqNFDatarnfdeepseq$!!Data.Set.InternalSetData.Sequence.InternalSeqData.IntSet.InternalIntSetData.IntMap.InternalIntMapControl.Monad.Trans.Class MonadTransliftExceptTMaybeT runMaybeTReaderT runReaderTStateT runStateTData.ByteString.Short.InternaltoShortShortByteString fromShortnot||&&GHC.Exception.Type SomeExceptionData.Semigroup.InternalstimesIdempotentMonoid HasCallStack getCallStackNonEmpty:|<**>liftA3=<<whenordflip$!asTypeOf GHC.Stack.CCScurrentCallStacksubtractGHC.MVarMVarcurryuncurryswap Data.MaybemaybeisJust isNothing fromMaybe maybeToList listToMaybe catMaybesmapMaybeunconsscanlscanriteraterepeat replicatecycle takeWhile dropWhiletakedropsplitAtbreakreversezip3zipWithunzipunzip3GHC.Charchr numerator denominatorevenodd^^^gcdlcm<&>$>void Data.Functionfixon& Data.Boolbool Data.BitstoIntegralSized byteSwap16 byteSwap32 byteSwap64 GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeControl.Category<<<>>> Data.ProxyProxyData.OrdDown comparingeitherleftsrightspartitionEithersisLeftisRightfromLeft fromRight Text.Readreads readMaybe Data.OldList isPrefixOf intersperse intercalate transpose genericLength genericTake genericDropgenericSplitAtgenericReplicateinitstails subsequences permutationssortsortBysortOnunfoldrSomeNatnatVal someNatValAltgetAltProduct getProductSumgetSumAnygetAnyAllgetAllEndoappEndoDualgetDualstimesIdempotent stimesMonoid Data.MonoidApgetApLastgetLastFirstgetFirstfoldlM traverse_for_mapM_forM_ sequenceA_ sequence_asumconcat concatMapandoranyallfindData.Functor.ConstConstgetConst Exception toException fromExceptiondisplayException GHC.Exception prettySrcLocprettyCallStackGHC.IOFilePath GHC.IORefIORef GHC.Conc.SyncTVarSTMnewTVarreadTVar writeTVar GHC.Stack callStackwithFrozenCallStackstdinstderr System.IOwithFileData.Functor.IdentityIdentity runIdentityControl.ApplicativeZipList getZipListoptionalforM mapAccumL mapAccumRfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIOGHC.ExecutionStack getStackTraceshowStackTraceData.List.NonEmptynonEmptyData.Bifunctor BifunctorfirstsecondbimapData.Bifoldable Bifoldablebifold bifoldMapbifoldrbifoldlbifoldr'bifoldrMbifoldl'bifoldlM bitraverse_bifor_ bisequence_biasumbiListbinullbilengthbielembiandbiorbianybiallbifindData.Bitraversable Bitraversable bitraverse bisequencebifor bimapDefaultbifoldMapDefaultsortWithData.SemigroupOption getOption WrappedMonoidcycle1 mtimesDefault Data.VoidVoidabsurdvacuousData.Functor.ComposeCompose getComposeData.Functor.ContravariantOpgetOp EquivalencegetEquivalence Comparison getComparison Contravariant contramap>$phantom$<>$<>$$<defaultComparisondefaultEquivalencecomparisonEquivalenceminIntmaxIntboundedEnumFromboundedEnumFromThen MonadPlusmzeromplus Alternativeempty<|>somemany Predicate getPredicate Control.Arrow&&&xorRelude.Extra.Maplookupio$aeson-1.4.7.0-GBTTFVtUp11AZvw4keiiClData.Aeson.Types.FromJSONFromJSONData.Aeson.Types.ToJSONToJSON,uri-bytestring-0.3.2.2-pwVhPKQfoOKZnPJvmNBxtURI.ByteString.TypesURI