!F8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Nonelniv:Efficiently prettify and serialize a JSON value as a lazy  and write it to a file.SafeNone;M_    NoneNone%_nivTODO: Error instead of T.Text?nivTGet the latest revision for owner, repo and branch. TODO: explain no error handlingnivownernivreponivbranch !"#$% !"#$%None %&',4=?PSX_,nivKWhether the value is new or was retrieved (or derived) from old attributesJnivRun an <* and return the new attributes and result.Qniv'Runs an update, trying to evaluate the *es as little as possible. This is a hairy piece of code, apologies _(0)_/ In most cases I just picked the first implementation that compiledTnivRenders the template. Returns L if some of the attributes are missing. renderTemplate ("foo" -> "bar") " foo:" -> pure (Just "bar") renderTemplate ("foo" -> "bar") " baz" -> pure Nothing[nivLike Z but forces evaluation7&(')*+,-.0/132487659:;<HGEDBF?>@A=CIJKLMNOPQRSTUVWXYZ[\7I<HGEDBF?>@A=C:;JKLM948765132.0/N*+,-)OP&('QRSTUVWXYZ[\None;M_&4 kniv,All the released versions of nix/sources.nixnivWhere to find the sources.jsonniv"use the default (nix/sources.json)nivuse the specified file pathnivSimply discards the &nivnix/sources.json or pointed at by nivA user friendly versionniv6Find a version based on the md5 of the nix/sources.nixniv#The MD5 sum of a particular versionnivThe MD5 sum of .nix sources.nixniv nix/sources.nixniv&Glue code between nix and sources.jsonnivEmpty JSON map/kxwvutsrqpnmolyz{|}~/|}~yz{kxwvutsrqpnmolNone)nivDEnsure that the sources.nix we ship is tracked as the latest version None%._+nivXThe GitHub update function TODO: fetchers for: * npm * hackage * docker * ... ?nivprefetchnivlatest revisionnivget repo None_,! NoneSX, None%P_h-nivThe IO (real) github update None%PX0nivThe "real" (IO) updatenivRun the "git" executableniv latest revnivlatest rev and default refnivthe repositorynivthe ref/branchnivthe repository None1NoneX1 None2\Safe2None%;MP_7qnivMonly used in shortcuts (niv add foo/bar ...) because PACKAGE is NOT optionalnivonly used in command (niv add  cmd! ...) because PACKAGE is optionalniv;Checks if content is different than default and if it does not contain a comment line with niv: no_update## !"#$%&'()**+,-./0123456789:;<<=>?@AB?CADEFGHIJKLIMNOPQRSKTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~         niv-0.2.7-C92i3gq9HpXMa0ps9nHGIData.Aeson.ExtendedData.HashMap.Strict.Extended Niv.LoggerData.Text.ExtendedNiv.GitHub.API Niv.Update Niv.SourcesNiv.Sources.Test Niv.GitHubNiv.GitHub.TestNiv.CmdNiv.GitHub.Cmd Niv.Git.Cmd Niv.Git.TestNiv.Update.TestNiv.TestNiv.Cli Paths_nivencodeFilePretty forWithKeyM forWithKeyM_ mapWithKeyM mapWithKeyM_jobtsaysaygreentgreenyellowtyellowbluetblueredtredboldtboldfainttfaintbugtshowabort GithubReporepoDescription repoHomepagerepoDefaultBranch githubRepoabortCouldNotFetchGitHubRepodefaultRequestgithubLatestRevabortCouldNotGetRev githubHost githubApiPort githubApiHost githubSecure githubPathFreedomLockedFree BoxedAttrsBoxboxNewboxOp UpdateReady UpdateSuccess UpdateFailed UpdateResUpdateNeedMore FailNoSuchKeyFailZero FailCheck FailTemplateJSONComposeCompose'UpdateIdArrFirstZeroPlusCheckLoadUseOrSetRunTemplateAttrs runUpdate execUpdate evalUpdate tryEvalUpdaterunBox unboxAttrsboxAttrs runUpdate' decodeBox decodeValuerenderTemplatetemplatecheckloaduseOrSetupdaterunrun'dirty $fIsStringBox$fSemigroupBox$fApplicativeBox $fShowUpdate$fCategoryTYPEUpdate $fArrowUpdate$fArrowPlusUpdate$fArrowZeroUpdate$fShowUpdateFailed $fFunctorBox $fEqFreedom $fShowFreedom$fFunctorUpdateReady$fFunctorUpdateResSourcesNixVersionV1V2V3V4V5V6V7V8V9V10V11V12V13 PackageSpec unPackageSpec PackageName unPackageNameSources unSources SourcesErrorSourcesDoesntExistSourceIsntJSON SpecIsntAMapFindSourcesJsonAutoAtPathgetSourcesEither getSources setSources attrsToSpecpathNixSourcesJsonabortSourcesDoesntExistabortSourcesIsntJSONabortSpecIsntAMapsourcesVersionToTextlatestVersionMD5md5ToSourcesVersionsourcesVersionToMD5 sourcesNixMD5pathNixSourcesNixwarnIfOutdatedinitNixSourcesNixContentinitNixSourcesJsonContent$fEqPackageName$fHashablePackageName$fFromJSONKeyPackageName$fToJSONKeyPackageName$fShowPackageName$fFromJSONPackageSpec$fToJSONPackageSpec$fShowPackageSpec$fSemigroupPackageSpec$fMonoidPackageSpec$fFromJSONSources$fToJSONSources$fBoundedSourcesNixVersion$fEnumSourcesNixVersion$fEqSourcesNixVersiontest_shippedSourcesNixIsLatest githubUpdategithubURLTemplatetest_githubInitsProperlytest_githubUpdatestest_githubDoesntOverrideRevtest_githubURLFallbacktest_githubUpdatesOnceCmd descriptionparseCmdShortcutparsePackageSpec updateCmdname githubCmdgitCmdparseGitShortcutparseGitPackageSpec describeGit gitUpdate gitUpdate' latestRevdefaultRefAndHEAD abortNoRev abortNoRefrunGitisRevabortGitFailuretests simplyRuns picksFirstloadssurvivesChecks isNotTooEagerdirtyForcesUpdateshouldNotRunWhenNoChangestemplatesExpandconstBoxtestNIOrunNIOgetFindSourcesJsonlicli parseCommandparsePackageName parsePackage parseCmdInitcmdInit parseCmdAddparseShortcutArgs parseCmdArgscmdAdd parseCmdShowcmdShow showPackageparseCmdUpdatespecToFreeAttrsspecToLockedAttrs cmdUpdatepartitionEithersHMSparseCmdModify cmdModify parseCmdDropcmdDropshouldUpdateNixSourcesNixabortCannotAddPackageExistsabortCannotUpdateNoSuchPackageabortCannotModifyNoSuchPackageabortCannotDropNoSuchPackageabortCannotShowNoSuchPackage&abortCannotAttributesDropNoSuchPackageabortUpdateFailed$fMonadUnliftIONIO $fFunctorNIO$fApplicativeNIO $fMonadNIO $fMonadIONIO$fMonadReaderNIObytestring-0.10.8.2Data.ByteString.Lazy.Internal ByteStringbase GHC.MaybeNothing githubUpdate'version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName