ghcup 0.1.17.2 → 0.1.17.3
raw patch · 43 files changed
+21352/−11136 lines, 43 filesdep +yaml-streamlydep −HsYAML-aesondep ~Cabaldep ~aesonPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: yaml-streamly
Dependencies removed: HsYAML-aeson
Dependency ranges changed: Cabal, aeson
API changes (from Hackage documentation)
+ GHCup.Errors: instance GHC.Exception.Type.Exception GHCup.Errors.NotFoundInPATH
+ GHCup.Utils: cleanUpOnError :: (MonadReader env m, HasDirs env, HasSettings env, MonadIO m, MonadMask m, HasLog env, MonadUnliftIO m, MonadFail m, MonadCatch m) => FilePath -> Excepts e m a -> Excepts e m a
+ GHCup.Utils.Prelude: isNotWindows :: Bool
+ GHCup.Utils.Prelude: isWindows :: Bool
+ GHCup.Utils.Prelude: moveFile :: FilePath -> FilePath -> IO ()
+ GHCup.Utils.Prelude: moveFilePortable :: FilePath -> FilePath -> IO ()
+ GHCup.Utils.Prelude: recover :: (MonadIO m, MonadMask m) => m a -> m a
+ GHCup.Utils.Prelude: throwMaybe :: (Exception a, MonadThrow m) => a -> Maybe b -> m b
+ GHCup.Utils.Prelude: throwMaybeM :: (Exception a, MonadThrow m) => a -> m (Maybe b) -> m b
- GHCup: compileGHC :: (MonadMask m, MonadReader env m, HasDirs env, HasPlatformReq env, HasGHCupInfo env, HasSettings env, MonadThrow m, MonadResource m, HasLog env, MonadIO m, MonadUnliftIO m, MonadFail m) => Either GHCTargetVersion GitBranch -> Maybe Version -> Either Version FilePath -> Maybe Int -> Maybe FilePath -> Maybe FilePath -> [Text] -> Maybe String -> Bool -> Maybe FilePath -> Excepts '[AlreadyInstalled, BuildFailed, DigestError, GPGError, DownloadFailed, GHCupSetError, NoDownload, NotFoundInPATH, PatchFailed, UnknownArchive, TarDirDoesNotExist, NotInstalled, DirNotEmpty, ArchiveResult] m GHCTargetVersion
+ GHCup: compileGHC :: (MonadMask m, MonadReader env m, HasDirs env, HasPlatformReq env, HasGHCupInfo env, HasSettings env, MonadThrow m, MonadResource m, HasLog env, MonadIO m, MonadUnliftIO m, MonadFail m) => Either GHCTargetVersion GitBranch -> Maybe Version -> Either Version FilePath -> Maybe Int -> Maybe FilePath -> Maybe FilePath -> [Text] -> Maybe String -> Bool -> Maybe FilePath -> Excepts '[AlreadyInstalled, BuildFailed, DigestError, GPGError, DownloadFailed, GHCupSetError, NoDownload, NotFoundInPATH, PatchFailed, UnknownArchive, TarDirDoesNotExist, NotInstalled, DirNotEmpty, ArchiveResult, FileDoesNotExistError, HadrianNotFound, InvalidBuildConfig, ProcessError, CopyError, BuildFailed] m GHCTargetVersion
- GHCup: installGHCBin :: (MonadFail m, MonadMask m, MonadCatch m, MonadReader env m, HasPlatformReq env, HasGHCupInfo env, HasDirs env, HasSettings env, HasLog env, MonadResource m, MonadIO m, MonadUnliftIO m) => Version -> Maybe FilePath -> Bool -> Excepts '[AlreadyInstalled, BuildFailed, DigestError, GPGError, DownloadFailed, NoDownload, NotInstalled, UnknownArchive, TarDirDoesNotExist, DirNotEmpty, ArchiveResult] m ()
+ GHCup: installGHCBin :: (MonadFail m, MonadMask m, MonadCatch m, MonadReader env m, HasPlatformReq env, HasGHCupInfo env, HasDirs env, HasSettings env, HasLog env, MonadResource m, MonadIO m, MonadUnliftIO m) => Version -> Maybe FilePath -> Bool -> Excepts '[AlreadyInstalled, BuildFailed, DigestError, GPGError, DownloadFailed, NoDownload, NotInstalled, UnknownArchive, TarDirDoesNotExist, DirNotEmpty, ArchiveResult, ProcessError] m ()
- GHCup: installGHCBindist :: (MonadFail m, MonadMask m, MonadCatch m, MonadReader env m, HasDirs env, HasSettings env, HasPlatformReq env, HasLog env, MonadResource m, MonadIO m, MonadUnliftIO m) => DownloadInfo -> Version -> Maybe FilePath -> Bool -> Excepts '[AlreadyInstalled, BuildFailed, DigestError, GPGError, DownloadFailed, NoDownload, NotInstalled, UnknownArchive, TarDirDoesNotExist, DirNotEmpty, ArchiveResult] m ()
+ GHCup: installGHCBindist :: (MonadFail m, MonadMask m, MonadCatch m, MonadReader env m, HasDirs env, HasSettings env, HasPlatformReq env, HasLog env, MonadResource m, MonadIO m, MonadUnliftIO m) => DownloadInfo -> Version -> Maybe FilePath -> Bool -> Excepts '[AlreadyInstalled, BuildFailed, DigestError, GPGError, DownloadFailed, NoDownload, NotInstalled, UnknownArchive, TarDirDoesNotExist, DirNotEmpty, ArchiveResult, ProcessError] m ()
- GHCup: installPackedGHC :: (MonadMask m, MonadCatch m, MonadReader env m, HasDirs env, HasPlatformReq env, HasSettings env, MonadThrow m, HasLog env, MonadIO m, MonadUnliftIO m, MonadFail m) => FilePath -> Maybe TarDir -> FilePath -> Version -> Bool -> Excepts '[BuildFailed, UnknownArchive, TarDirDoesNotExist, DirNotEmpty, ArchiveResult] m ()
+ GHCup: installPackedGHC :: (MonadMask m, MonadCatch m, MonadReader env m, HasDirs env, HasPlatformReq env, HasSettings env, MonadThrow m, HasLog env, MonadIO m, MonadUnliftIO m, MonadFail m) => FilePath -> Maybe TarDir -> FilePath -> Version -> Bool -> Excepts '[BuildFailed, UnknownArchive, TarDirDoesNotExist, DirNotEmpty, ArchiveResult, ProcessError] m ()
- GHCup.Utils: runBuildAction :: (Pretty (V e), Show (V e), PopVariant BuildFailed e, ToVariantMaybe BuildFailed e, MonadReader env m, HasDirs env, HasSettings env, MonadIO m, MonadMask m, HasLog env, MonadUnliftIO m, MonadFail m, MonadCatch m) => FilePath -> Maybe FilePath -> Excepts e m a -> Excepts '[BuildFailed] m a
+ GHCup.Utils: runBuildAction :: (MonadReader env m, HasDirs env, HasSettings env, MonadIO m, MonadMask m, HasLog env, MonadUnliftIO m, MonadFail m, MonadCatch m) => FilePath -> Maybe FilePath -> Excepts e m a -> Excepts e m a
Files
- CHANGELOG.md +217/−0
- README.md +3/−591
- app/ghcup-gen/Main.hs +4/−6
- app/ghcup-gen/Validate.hs +13/−13
- app/ghcup/BrickMain.hs +8/−14
- app/ghcup/GHCup/OptParse.hs +303/−0
- app/ghcup/GHCup/OptParse/ChangeLog.hs +150/−0
- app/ghcup/GHCup/OptParse/Common.hs +513/−0
- app/ghcup/GHCup/OptParse/Compile.hs +517/−0
- app/ghcup/GHCup/OptParse/Config.hs +186/−0
- app/ghcup/GHCup/OptParse/DInfo.hs +119/−0
- app/ghcup/GHCup/OptParse/GC.hs +143/−0
- app/ghcup/GHCup/OptParse/Install.hs +464/−0
- app/ghcup/GHCup/OptParse/List.hs +263/−0
- app/ghcup/GHCup/OptParse/Nuke.hs +99/−0
- app/ghcup/GHCup/OptParse/Prefetch.hs +219/−0
- app/ghcup/GHCup/OptParse/Rm.hs +232/−0
- app/ghcup/GHCup/OptParse/Set.hs +349/−0
- app/ghcup/GHCup/OptParse/ToolRequirements.hs +82/−0
- app/ghcup/GHCup/OptParse/UnSet.hs +205/−0
- app/ghcup/GHCup/OptParse/Upgrade.hs +150/−0
- app/ghcup/GHCup/OptParse/Whereis.hs +319/−0
- app/ghcup/Main.hs +280/−3092
- data/metadata/ghcup-0.0.4.yaml +0/−1932
- data/metadata/ghcup-0.0.5.yaml +0/−2235
- data/metadata/ghcup-0.0.6.yaml +0/−2534
- docs/CHANGELOG.md +0/−210
- docs/HACKING.md +0/−75
- docs/RELEASING.md +0/−21
- ghcup.cabal +36/−15
- lib/GHCup.hs +118/−113
- lib/GHCup/Download.hs +5/−7
- lib/GHCup/Errors.hs +2/−0
- lib/GHCup/Types/JSON.hs +2/−2
- lib/GHCup/Utils.hs +91/−122
- lib/GHCup/Utils/Dirs.hs +75/−88
- lib/GHCup/Utils/Posix.hs +14/−0
- lib/GHCup/Utils/Prelude.hs +59/−65
- lib/GHCup/Utils/Prelude/Posix.hs +20/−0
- lib/GHCup/Utils/Prelude/Windows.hs +17/−0
- lib/GHCup/Utils/Windows.hs +48/−0
- lib/GHCup/Version.hs +1/−1
- test/golden/GHCupInfo.json +16026/−0
+ CHANGELOG.md view
@@ -0,0 +1,217 @@+# Revision history for ghcup++## 0.1.17.3 -- 2021-10-27++* clean up during unpack failures as well+* migrate te aeson-2.0.1.0+* switch to yaml-streamly to fix performance regression wrt [#270](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/270)+* use [github.com/haskell/ghcup-metadata](https://github.com/haskell/ghcup-metadata) for metadata file download (better caching)++## 0.1.17.2 -- 2021-09-30++* Honour GHC bootstrap compiler during git clone stages wrt [#250](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/250)+* Speed up `unset` command+* Fix `--overwrite-version` for `ghcup compile ghc` wrt [#253](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/253)+* Apply patches before bootstrap++## 0.1.17.1 -- 2021-09-26++* Fix `NO_COLOR`+* Fix `ghcup list -t` for hls/stack, wrt [#244](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/244)+* Get rid of concurrent-output+* Improve cli interface with partial versions (e.g. `ghcup install ghc 8`)+* Fix HLS compilation builds+* Implement `ghcup gc` (garbage collection) command++## 0.1.17 -- 2021-09-20++* Add `--force` option to install/compile wrt [#210](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/210) by Arjun Kathuria+* Implement compiling HLS from source wrt [#201](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/201)+* Implement experimental GPG verification of the metadata file (see README) wrt [#263](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/236)+* Add `ghcup unset` command wrt [#145](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/145)+* Add `ghcup whereis bindir` etc wrt [#221](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/221)+* Greatly reduce dependency footprint wrt [#212](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/212)+* Add `ghcup --plan-json`+* Improve `--patchdir` option for GHC compilation wrt [#226](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/226)+* Try to improve logging and failure modes, especially during downloads+* Add descriptive warnings when HLS and GHC versions are incompatible+* Improve curl header parsing wrt [#213](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/213)++## 0.1.16.2 -- 2021-08-12++* Add isolated installations wrt [#141](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/141) by Arjun Kathuria+* Implement config cli MVP wrt [#134](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/134) by Oleksii Dorozhkin+* Fix `ghcup compile ghc --flavor`+* Fix minor installation bug causing increased disk space wrt [#139](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/139)+* Improved error handling wrt [#136](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/136)+* Various improvements to metadata download when using `file://` and `--offline` wrt [#137](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/137)++## 0.1.16.1 -- 2021-07-29++* Add 'nuke' subcommand wrt [#135](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/135), implemented by Arjun Kathuria+* Add uninstallation powershell script on windows wrt [#150](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/150)+* Improve logging+* Fix building GHC cross compiler wrt [#180](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/180)+* Allow to use hadrian as build system (for git based versions only) wrt [#35](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/35)+* Allow passing `--flavor` to `ghcup compile ghc`+* Support new GHC `bin/` directory format wrt [ghc/ghc#20074](https://gitlab.haskell.org/ghc/ghc/-/issues/20074#note_363720)+* Implement `whereis` subcommand wrt [#173](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/173)+* Add `--offline` switch and `prefetch` subcommand wrt [#186](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/186)+* Implement ETAGs hashing for metadata downloads to speed up `ghcup list` wrt [#193](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/193)+* Avoid unnecessary fetching of ghcup metadata in some commands+* Avoid unnecessary update checks for some commands+* Preserve mtimes on unpacked GHC tarballs on windows wrt [#187](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/187), fixing issues with `ghc-pkg`+* Fix lesser bug in `ghcup list` for stray stack versions wrt [#183](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/183)+* Major redo on how file removal on windows works, avoiding partial removals etc, wrt [#165](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/165)+* Improve ghcup tui for screen readers wrt [github/#4](https://github.com/haskell/ghcup-hs/pull/4), thanks to Mario Lang++## 0.1.15.2 -- 2021-06-13++* Remove legacy handling of cabal binary and be more graceful about binaries not installed by ghcup (e.g. stack)+* Fix GHC compilation from git+* Fix 'ghcup upgrade' on windows+* Allow to skip update checks via `GHCUP_SKIP_UPDATE_CHECK`+* Use libarchive on windows as well, fixing unpack errors wrt [#147](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/147)++## 0.1.15.1 -- 2021-06-11++* Add Apple Silicon support+* Add windows support wrt [#130](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/130)+* Add stack support+* Warn when /tmp doesn't have 5GB or more of disk space+* Allow to compile GHC from git repo wrt [#126](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/126)+* Allow to set custom ghc version when running 'ghcup compile ghc' wrt [#136](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/136)+* Add date to GHC bindist names created by ghcup++## 0.1.14.2 -- 2021-05-12++* Remove dead dependency on ascii-string++## 0.1.14.1 -- 2021-04-11++* Make internal symlink target parser more lax, fixes [#119](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/119)+* Prepare for hackage release++## 0.1.14 -- 2021-03-07++* Major bugfix: fix handling of stray versions wrt [#116](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/116)+* Fix error messages and overhaul pretty printing wrt [#115](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/115)++## 0.1.13 -- 2021-02-26++* Support ARMv7/AARCH64+* Add command line completions for installed and available versions wrt [MR #70](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/70)+* Allow to cycle through set tools wrt [#114](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/114)+* Fix item selection with unavailable versions wrt [#107](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/107)+* Allow for dynamic post-install, post-remove and pre-compile msgs wrt [MR #68](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/68)+* Alert user if upgraded ghcup is shadowed by old ghcup wrt [#111](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/111)+* Fix to `ghcup` directory creation and placement for the XDG install mode ([MR #49](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/49))+* Do 755 permissions on executables, wrt #97+* Add [NO_COLOR](https://no-color.org/) support wrt [MR #47](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/47)++## 0.1.12 -- 2020-11-21++* Fix disappearing HLS symlinks wrt #91+* improve TUI:+ - separators between tools sections+ - reverse list order so latest is on top+ - expand the blues selected bar+ - show new latest versions in bright white+* allow configuration file and setting TUI hotkeys wrt #41+ - see https://gitlab.haskell.org/haskell/ghcup-hs#configuration for a more in-depth explanation+* add a `--set` switch to `ghcup install ghc` to automatically set as default after install+* emit warnings when CC/LD is set wrt #82+* add support for version ranges in distro specifiers wrt #84+ - e.g. `"(>= 19 && <= 20) || ==0.2.2"` is a valid version key for distro++## 0.1.11 -- 2020-09-23++* Add support for installing haskell-language-server, wrt #65+* When compiling GHC from source create a bindist first, store that bindist in `~/.ghcup/cache` and install it, wrt #51+* Allow to compile over existing version (`ghcup compile ghc -v 8.6.5 -b 8.6.5`) and replace it wrt #59+* simplify installing from custom bindist wrt #60+ - `ghcup install ghc -u <url> <version>`+* fix bug when cabal isn't marked executable in bindist+* fix bug when `~/.ghcup` is a valid symlink wrt #49+* Drop support for compiling cabal from source (the old bootstrap script is discontinued)++## 0.1.10 -- 2020-08-14++* Show stray Cabals (useful for pre-releases or compiled ones)++## 0.1.9 -- 2020-08-14++* Fix bug when uninstalling all cabal versions+* Fix bug when setting a non-installed ghc version as current default+* Use yaml instead of generated json for download info for ease of adding new GHC versions #44+* Allow pre-release versions of GHC/cabal+* Add XDG dirs support (set `GHCUP_USE_XDG_DIRS`) wrt #39+* Allow to specify regex for tarball subdir (e.g. `ghc-.*`)+* Allow installing arbitrary bindists more seamlessly:+ - e.g. installing GHC HEAD: `ghcup -n install ghc -u '{"dlHash": "", "dlSubdir": { "RegexDir": "ghc-.*"}, "dlUri": "https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27" }' head`+* Avoid duplicate edits to .bashrc/.zshrc wrt #43++## 0.1.8 -- 2020-07-21++* Fix bug in logging thread dying on newlines+* Allow to install from arbitrary bindists: `ghcup -n install ghc -u '{"dlHash": "", "dlSubdir": "ghc-8.10.1", "dlUri": "https://github.com/commercialhaskell/ghc/releases/download/ghc-8.10.1-release/ghc-8.10.1-x86_64-deb9-linux.tar.xz"}' 8.10.1`++## 0.1.7 -- 2020-07-20++* Fix a bug in libarchive not unpacking some uncleanly packed bindists+* Improved fish support in bootstrap-haskell+* Only check for upgrades when not upgrading+* Fix platform detection for i386 docker images+* Improve alpine support+ - more/proper bindists+ - don't fall back to glibc based bindists+ - install bindists with `--disable-ld-override` to avoid ld.gold bugs++## 0.1.6 -- 2020-07-13++* Create a new curses (brick) based TUI, accessible via `ghcup tui` #24+* Support multiple installed versions of cabal #23+* Improvements to `ghcup list` (show unavailable bindists for platform)+* Fix redhat downloads #29+* Support for hadrian bindists (fixes alpine-8.10.1) #31+* Add FreeBSD bindists 8.6.5 and 8.8.3+* Fix memory leak during unpack++## 0.1.5 -- 2020-04-30++* Fix errors when PATH variable contains path components that are actually files+* Add `--version` and `--numeric-version` options+* Add `changelog` command+* Also check for available GHC and Cabal updates on start+* Add base versions as tags for every GHC version (these are "installable" tags and the latest GHC version matching the tag will be picked)+* Added `--format-raw` to list subcommand+* Allow to install X.Y versions (e.g.: ghcup install 8.8)+* Implement `--keep=<always|errors|never>` to control temporary build directories cleanup+* Add proper shell completions to the repo+* Fix building of documentation+* Allow to work in offline mode and use cached files if possible+* Allow to set the downloader via `--downloader=<curl|wget>`+* Support for compiling and installing a cross GHC (see README). This is experimental.++## 0.1.4 -- 2020-04-16++* build on all platforms with curl (as a binary), wrt https://gitlab.haskell.org/haskell/ghcup-hs/issues/6+* Fix unlinking of ghc symlinks after new installation, wrt https://gitlab.haskell.org/haskell/ghcup-hs/issues/7++## 0.1.3 -- 2020-04-15++* Fix lesser bug when skipping ghcup update++## 0.1.2 -- 2020-04-15++* Fix bug when removing the set GHC version+* Fix use of undocumented `GHCUP_INSTALL_BASE_PREFIX` variable+* skip upgrade if ghcup is already latest version++## 0.1.1 -- 2020-04-15++* fix awful fdopendir bug on mac bug by updating hpath-posix++## 0.1.0++* First version. Released on an unsuspecting world.
README.md view
@@ -1,10 +1,4 @@-`ghcup` makes it easy to install specific versions of `ghc` on GNU/Linux,-macOS (aka Darwin), FreeBSD and Windows and can also bootstrap a fresh Haskell developer environment from scratch.-It follows the unix UNIX philosophy of [do one thing and do it well](https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well).--Similar in scope to [rustup](https://github.com/rust-lang-nursery/rustup.rs), [pyenv](https://github.com/pyenv/pyenv) and [jenv](http://www.jenv.be).--## Table of Contents+## The GHCup Haskell installer [](https://kiwiirc.com/nextclient/irc.libera.chat/?nick=Guest%7C?#haskell,#haskell-ghcup) [](https://app.element.io/#/room/#haskell-tooling:matrix.org)@@ -12,588 +6,6 @@ [](https://gitter.im/haskell/ghcup?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) <a href="https://opencollective.com/ghcup#category-CONTRIBUTE"><img src="https://opencollective.com/webpack/donate/button@2x.png?color=blue" alt="Donate" width="150"></a> - * [Installation](#installation)- * [Supported platforms](#supported-platforms)- * [Manual install](#manual-install)- * [Vim integration](#vim-integration)- * [Usage](#usage)- * [Configuration](#configuration)- * [GPG verification](#gpg-verification)- * [Manpages](#manpages)- * [Shell-completion](#shell-completion)- * [Compiling GHC from source](#compiling-ghc-from-source)- * [XDG support](#xdg-support)- * [Env variables](#env-variables)- * [Installing custom bindists](#installing-custom-bindists)- * [Isolated Installs](#isolated-installs)- * [CI](#ci)- * [Tips and tricks](#tips-and-tricks)- * [Design goals](#design-goals)- * [How](#how)- * [Known users](#known-users)- * [Known problems](#known-problems)- * [FAQ](#faq)--## Installation--Most users should follow the instructions at [https://www.haskell.org/ghcup/](https://www.haskell.org/ghcup/).-Advanced users may want to perform a [manual installation](#manual-install).--### Supported platforms--This list may not be exhaustive and specifies support for bindists only.--| Platform | Architecture | ghcup | GHC | cabal | HLS | stack | -| ------ | ------ | ------ | ------ | ------ | ------ | ------ |-| Windows 7 | amd64 | ❔ | ✅ | ✅ | ✅ | ✅ |-| Windows 10 | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| Windows Server 2016 | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| Windows Server 2019 | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| Windows Server 2022 | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| Windows WSL1 | amd64 | ❌ | ❔ | ❔ | ❔ | ❔ |-| Windows WSL2 | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| MacOS >=13 | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| MacOS <13 | amd64 | ❌ | ❔ | ❔ | ❔ | ❔ |-| MacOS | aarch64 | ✅ | ✅ | ✅ | ⚠️ | ❌ |-| FreeBSD | amd64 | ✅ | ⚠️ | ✅ | ⚠️ | ❌ |-| Linux generic | x86 | ✅ | ✅ | ✅ | ✅ | ✅ |-| Linux generic | amd64 | ✅ | ✅ | ✅ | ✅ | ✅ |-| Linux generic | aarch64 | ✅ | ⚠️ | ✅ | ⚠️ | ❌ |-| Linux generic | armv7 | ✅ | ⚠️ | ✅ | ⚠️ | ❌ |--#### Windows 7--May or may not work, several issues:--* https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/140-* https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/197--#### WSL1--Unsupported. GHC may or may not work. Upgrade to WSL2.--#### MacOS <13--Not supported. Would require separate binaries, since >=13 binaries are incompatible.-Please upgrade.--#### MacOS aarch64--HLS bindists are still experimental. Stack is theoretically supported, but has no binaries yet.--#### FreeBSD--Lacks some upstream bindists and may need compat libs, since most bindists are built on FreeBSD-12.-HLS bindists are experimental.--#### Linux ARMv7/AARCH64--Lower availability of bindists. HLS only has experimental ones. Stack not supported currently.--### Manual install--Download the binary for your platform at [https://downloads.haskell.org/~ghcup/](https://downloads.haskell.org/~ghcup/)-and place it into your `PATH` anywhere.--Then adjust your `PATH` in `~/.bashrc` (or similar, depending on your shell) like so:--```sh-export PATH="$HOME/.cabal/bin:$HOME/.ghcup/bin:$PATH"-```--### Vim integration--See [ghcup.vim](https://github.com/hasufell/ghcup.vim).--## Usage--See `ghcup --help`.--For the simple interactive TUI, run:--```sh-ghcup tui-```--For the full functionality via cli:--```sh-# list available ghc/cabal versions-ghcup list--# install the recommended GHC version-ghcup install ghc--# install a specific GHC version-ghcup install ghc 8.2.2--# set the currently "active" GHC version-ghcup set ghc 8.4.4--# install cabal-install-ghcup install cabal--# update ghcup itself-ghcup upgrade-```--GHCup works very well with [`cabal-install`](https://hackage.haskell.org/package/cabal-install), which-handles your haskell packages and can demand that [a specific version](https://cabal.readthedocs.io/en/latest/nix-local-build.html#cfg-flag---with-compiler) of `ghc` is available, which `ghcup` can do.--### Configuration--A configuration file can be put in `~/.ghcup/config.yaml`. The default config file-explaining all possible configurations can be found in this repo: [config.yaml](./data/config.yaml).--Partial configuration is fine. Command line options always override the config file settings.--### GPG verification--GHCup supports verifying the GPG signature of the metadata file. The metadata file then contains SHA256 hashes of all downloads, so-this is cryptographically secure.--First, obtain the gpg key:--```sh-gpg --batch --keyserver keys.openpgp.org --recv-keys 7784930957807690A66EBDBE3786C5262ECB4A3F-```--Then verify the gpg key in one of these ways:--1. find out where I live and visit me to do offline key signing-2. figure out my mobile phone number and call me to verify the fingerprint-3. more boring: contact me on Libera IRC (`maerwald`) and verify the fingerprint--Once you've verified the key, you have to figure out if you trust me.--If you trust me, then you can configure gpg in `~/.ghcup/config.yaml`:--```yml-gpg-setting: GPGLax # GPGStrict | GPGLax | GPGNone-```--In `GPGStrict` mode, ghcup will fail if verification fails. In `GPGLax` mode it will just print a warning.-You can also pass the mode via `ghcup --gpg <strict|lax|none>`.--### Manpages--For man pages to work you need [man-db](http://man-db.nongnu.org/) as your `man` provider, then issue `man ghc`. Manpages only work for the currently set ghc.-`MANPATH` may be required to be unset.--### Shell-completion--Shell completions are in [scripts/shell-completions](./scripts/shell-completions) directory of this repository.--For bash: install `shell-completions/bash`-as e.g. `/etc/bash_completion.d/ghcup` (depending on distro)-and make sure your bashrc sources the startup script-(`/usr/share/bash-completion/bash_completion` on some distros).--### Compiling GHC from source--Compiling from source is supported for both source tarballs and arbitrary git refs. See `ghcup compile ghc --help`-for a list of all available options.--If you need to overwrite the existing `build.mk`, check the default files-in [data/build_mk](./data/build_mk), copy them somewhere, adjust them and-pass `--config path/to/build.mk` to `ghcup compile ghc`.-Common `build.mk` options are explained [here](https://gitlab.haskell.org/ghc/ghc/-/wikis/building/using#build-configuration).--Make sure your system meets all the [prerequisites](https://gitlab.haskell.org/ghc/ghc/-/wikis/building/preparation).--#### Cross support--ghcup can compile and install a cross GHC for any target. However, this-requires that the build host has a complete cross toolchain and various-libraries installed for the target platform.--Consult the GHC documentation on the [prerequisites](https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling#tools-to-install).-For distributions with non-standard locations of cross toolchain and-libraries, this may need some tweaking of `build.mk` or configure args.-See `ghcup compile ghc --help` for further information.--### XDG support--To enable XDG style directories, set the environment variable `GHCUP_USE_XDG_DIRS` to anything.--Then you can control the locations via XDG environment variables as such:--* `XDG_DATA_HOME`: GHCs will be unpacked in `ghcup/ghc` subdir (default: `~/.local/share`)-* `XDG_CACHE_HOME`: logs and download files will be stored in `ghcup` subdir (default: `~/.cache`)-* `XDG_BIN_HOME`: binaries end up here (default: `~/.local/bin`)-* `XDG_CONFIG_HOME`: the config file is stored in `ghcup` subdir as `config.yaml` (default: `~/.config`)--**Note that `ghcup` makes some assumptions about structure of files in `XDG_BIN_HOME`. So if you have other tools-installing e.g. stack/cabal/ghc into it, this will likely clash. In that case consider disabling XDG support.**--### Env variables--This is the complete list of env variables that change GHCup behavior:--* `GHCUP_USE_XDG_DIRS`: see [XDG support](#xdg-support) above-* `TMPDIR`: where ghcup does the work (unpacking, building, ...)-* `GHCUP_INSTALL_BASE_PREFIX`: the base of ghcup (default: `$HOME`)-* `GHCUP_CURL_OPTS`: additional options that can be passed to curl-* `GHCUP_WGET_OPTS`: additional options that can be passed to wget-* `GHCUP_GPG_OPTS`: additional options that can be passed to gpg-* `GHCUP_SKIP_UPDATE_CHECK`: Skip the (possibly annoying) update check when you run a command-* `CC`/`LD` etc.: full environment is passed to the build system when compiling GHC via GHCup--### Installing custom bindists--There are a couple of good use cases to install custom bindists:--1. manually built bindists (e.g. with patches)- - example: `ghcup install ghc -u 'file:///home/mearwald/tmp/ghc-eff-patches/ghc-8.10.2-x86_64-deb10-linux.tar.xz' 8.10.2-eff`-2. GHC head CI bindists- - example: `ghcup install ghc -u 'https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27' head`-3. DWARF bindists- - example: `ghcup install ghc -u 'https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb10-linux-dwarf.tar.xz' 8.10.2-dwarf`--Since the version parser is pretty lax, `8.10.2-eff` and `head` are both valid versions-and produce the binaries `ghc-8.10.2-eff` and `ghc-head` respectively.-GHCup always needs to know which version the bindist corresponds to (this is not automatically-detected).--### Isolated installs--Ghcup also enables you to install a tool (GHC, Cabal, HLS, Stack) at an isolated location of your choosing.-These installs, as the name suggests, are separate from your main installs and DO NOT conflict with them.---- No symlinks are made to these isolated installed tools, you'd have to manually point to them wherever you intend to use them.--- These installs, can also NOT be deleted from ghcup, you'd have to go and manually delete these.--You need to use the `--isolate` or `-i` flag followed by the directory path.--Examples:---1. install an isolated GHC version at location /home/user/isolated_dir/ghc/ - - `ghcup install ghc 8.10.5 --isolate /home/user/isolated_dir/ghc`--2. isolated install Cabal at a location you desire - - `ghcup install cabal --isolate /home/username/my_isolated_dir/`--3. do an isolated install with a custom bindist - - `ghcup install ghc --isolate /home/username/my_isolated_dir/ -u 'https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27' head`--4. isolated install HLS - - `ghcup install hls --isolate /home/username/dir/hls/`--5. you can even compile ghc to an isolated location. - - `ghcup compile ghc -j 4 -v 9.0.1 -b 8.10.5 -i /home/username/my/dir/ghc` - --- --### CI--On windows, ghcup can be installed automatically on a CI runner like so:--```ps-Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $false,$true,$true,$false,$false,$false,$false,"C:\"-```--On linux/darwin/freebsd, run the following on your runner:--```sh-curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_MINIMAL=1 sh-```--This will just install `ghcup` and on windows additionally `msys2`.--#### Example github workflow--On github workflows you can use https://github.com/haskell/actions/--If you want to install ghcup manually though, here's an example config:--```yml-name: Haskell CI--on:- push:- branches: [ master ]- pull_request:- branches: [ master ]--jobs:- build-cabal:-- runs-on: ${{ matrix.os }}- strategy:- fail-fast: false- matrix:- os: [ubuntu-latest, macOS-latest, windows-latest]- ghc: ['8.10.7', '9.0.1']- cabal: ['3.4.0.0']-- steps:- - uses: actions/checkout@v2-- - if: matrix.os == 'windows-latest'- name: Install ghcup on windows- run: Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $false,$true,$true,$false,$false,$false,$false,"C:\"-- - if: matrix.os == 'windows-latest'- name: Add ghcup to PATH- run: echo "/c/ghcup/bin" >> $GITHUB_PATH- shell: bash-- - if: matrix.os != 'windows-latest'- name: Install ghcup on non-windows- run: curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_MINIMAL=1 sh-- - name: Install ghc/cabal- run: |- ghcup install ghc ${{ matrix.ghc }}- ghcup install cabal ${{ matrix.cabal }}- shell: bash-- - name: Update cabal index- run: cabal update- shell: bash-- - name: Build- run: cabal build --enable-tests --enable-benchmarks- shell: bash-- - name: Run tests- run: cabal test- shell: bash-```- -### Tips and tricks--#### with_ghc wrapper (e.g. for HLS)--Due to some HLS [bugs](https://github.com/mpickering/hie-bios/issues/194) it's necessary that the `ghc` in PATH-is the one defined in `cabal.project`. With some simple shell functions, we can start our editor with the appropriate-path prepended.--For bash, in e.g. `~/.bashrc` define:--```sh-with_ghc() {- local np=$(ghcup --offline whereis -d ghc $1 || { ghcup --cache install ghc $1 && ghcup whereis -d ghc $1 ;})- if [ -e "${np}" ] ; then- shift- PATH="$np:$PATH" "$@"- else- >&2 echo "Cannot find or install GHC version $1"- return 1- fi-}-```--For fish shell, in e.g. `~/.config/fish/config.fish` define:--```fish-function with_ghc- set --local np (ghcup --offline whereis -d ghc $argv[1] ; or begin ghcup --cache install ghc $argv[1] ; and ghcup whereis -d ghc $argv[1] ; end)- if test -e "$np"- PATH="$np:$PATH" $argv[2..-1]- else- echo "Cannot find or install GHC version $argv[1]" 1>&2- return 1- end-end-```--Then start a new shell and issue:--```sh-# replace 'code' with your editor-with_ghc 8.10.5 code path/to/haskell/source-```--Cabal and HLS will now see `8.10.5` as the primary GHC, without the need to-run `ghcup set` all the time when switching between projects.--## Design goals--1. simplicity-2. non-interactive-3. portable (eh)-4. do one thing and do it well (UNIX philosophy)--### Non-goals--1. invoking `sudo`, `apt-get` or *any* package manager-2. handling system packages-3. handling cabal projects-4. being a stack alternative--## How--Installs a specified GHC version into `~/.ghcup/ghc/<ver>`, and places `ghc-<ver>` symlinks in `~/.ghcup/bin/`.--Optionally, an unversioned `ghc` link can point to a default version of your choice.--This uses precompiled GHC binaries that have been compiled on fedora/debian by [upstream GHC](https://www.haskell.org/ghc/download_ghc_8_6_1.html#binaries).--Alternatively, you can also tell it to compile from source (note that this might fail due to missing requirements).--In addition this script can also install `cabal-install`.--## Known users--* Github actions:- - [actions/virtual-environments](https://github.com/actions/virtual-environments)- - [haskell/actions/setup](https://github.com/haskell/actions/tree/main/setup)-* mirrors:- - [sjtug](https://mirror.sjtu.edu.cn/docs/ghcup)-* tools:- - [vabal](https://github.com/Franciman/vabal)--## Known problems--### Custom ghc version names--When installing ghc bindists with custom version names as outlined in-[installing custom bindists](#installing-custom-bindists), then cabal might-be unable to find the correct `ghc-pkg` (also see [#73](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/73))-if you use `cabal build --with-compiler=ghc-foo`. Instead, point it to the full path, such as:-`cabal build --with-compiler=$HOME/.ghcup/ghc/<version-name>/bin/ghc` or set that GHC version-as the current one via: `ghcup set ghc <version-name>`.--This problem doesn't exist for regularly installed GHC versions.--### Limited distributions supported--Currently only GNU/Linux distributions compatible with the [upstream GHC](https://www.haskell.org/ghc/download_ghc_8_6_1.html#binaries) binaries are supported.--### Precompiled binaries--Since this uses precompiled binaries you may run into-several problems.--#### Missing libtinfo (ncurses)--You may run into problems with *ncurses* and **missing libtinfo**, in case-your distribution doesn't use the legacy way of building-ncurses and has no compatibility symlinks in place.--Ask your distributor on how to solve this or-try to compile from source via `ghcup compile <version>`.--#### Libnuma required--This was a [bug](https://ghc.haskell.org/trac/ghc/ticket/15688) in the build system of some GHC versions that lead to-unconditionally enabled libnuma support. To mitigate this you might have to install the libnuma-package of your distribution. See [here](https://gitlab.haskell.org/haskell/ghcup/issues/58) for a discussion.--### Compilation--Although this script can compile GHC for you, it's just a very thin-wrapper around the build system. It makes no effort in trying-to figure out whether you have the correct toolchain and-the correct dependencies. Refer to [the official docs](https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Linux)-on how to prepare your environment for building GHC.--### Stack support--There may be a number of bugs when trying to make ghcup installed GHC versions work with stack,-such as:--- https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/188--Further, stack's upgrade procedure may break/confuse ghcup. There are a number of integration-issues discussed here:--- https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/153--### Windows support--Windows support is in early stages. Since windows doesn't support symbolic links properly,-ghcup uses a [shimgen wrapper](https://github.com/71/scoop-better-shimexe). It seems to work-well, but there may be unknown issues with that approach.--Windows 7 and Powershell 2.0 aren't well supported at the moment, also see:--- https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/140-- https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/197--## FAQ--### Why reimplement stack?--GHCup is not a reimplementation of stack. The only common part is automatic installation of GHC,-but even that differs in scope and design.--### Why should I use ghcup over stack?--GHCup is not a replacement for stack. Instead, it supports installing and managing stack versions.-It does the same for cabal, GHC and HLS. As such, It doesn't make a workflow choice for you.--### Why should I let ghcup manage stack?--You don't need to. However, some users seem to prefer to have a central tool that manages cabal and stack-at the same time. Additionally, it can allow better sharing of GHC installation across these tools.-Also see:--* https://docs.haskellstack.org/en/stable/yaml_configuration/#system-ghc-* https://github.com/commercialhaskell/stack/pull/5585--### Why does ghcup not use stack code?--Oddly, this question has been asked a couple of times. For the curious, here are a few reasons:--1. GHCup started as a shell script. At the time of rewriting it in Haskell, the authors didn't even know that stack exposes *some* of its [installation API](https://hackage.haskell.org/package/stack-2.5.1.1/docs/Stack-Setup.html)-2. Even if they did, it doesn't seem it would have satisfied their needs- - it didn't support cabal installation, which was the main motivation behind GHCup back then- - depending on a codebase as big as stack for a central part of one's application without having a short contribution pipeline would likely have caused stagnation or resulted in simply copy-pasting the relevant code in order to adjust it- - it's not clear how GHCup would have been implemented with the provided API. It seems the codebases are fairly different. GHCup does a lot of symlink handling to expose a central `bin/` directory that users can easily put in PATH, without having to worry about anything more. It also provides explicit removal functionality, GHC cross-compilation, a TUI, etc etc.-3. GHCup is built around unix principles and supposed to be simple.--### Why not unify...--#### ...stack and Cabal and do away with standalone installers--GHCup is not involved in such decisions. cabal-install and stack might have a-sufficiently different user experience to warrant having a choice.--#### ...installer implementations and have a common library--This sounds like an interesting goal. However, GHC installation isn't a hard engineering problem-and the shared code wouldn't be too exciting. For such an effort to make sense, all involved-parties would need to collaborate and have a short pipeline to get patches in.--It's true this would solve the integration problem, but following unix principles, we can-do similar via **hooks**. Both cabal and stack can support installation hooks. These hooks-can then call into ghcup or anything else, also see:--* https://github.com/haskell/cabal/issues/7394-* https://github.com/commercialhaskell/stack/pull/5585--#### ...installers (like, all of it)--So far, there hasn't been an **open** discussion about this. Is this even a good idea?-Sometimes projects converge eventually if their overlap is big enough, sometimes they don't.--While unification sounds like a simplification of the ecosystem, it also takes away choice.-Take `curl` and `wget` as an example.--How bad do we need this?--### Why not support windows?--Windows is supported since GHCup version 0.1.15.1.--### Why the haskell reimplementation?--GHCup started as a portable posix shell script of maybe 50 LOC. GHC installation itself can be carried out in-about ~3 lines of shell code (download, unpack , configure+make install). However, much convenient functionality-has been added since, as well as ensuring that all operations are safe and correct. The shell script ended up with-over 2k LOC, which was very hard to maintain.--The main concern when switching from a portable shell script to haskell was platform/architecture support.-However, ghcup now re-uses GHCs CI infrastructure and as such is perfectly in sync with all platforms that-GHC supports.--### Is GHCup affiliated with the Haskell Foundation?--There has been some collaboration: Windows and Stack support were mainly requested by the Haskell Foundation-and those seemed interesting features to add.+GHCup is an installer for the general purpose language [Haskell](https://www.haskell.org/). -Other than that, GHCup is dedicated only to its users and is supported by haskell.org through hosting and CI-infrastructure.+Visit the [documentation](https://www.haskell.org/ghcup/) for installation instructions.
app/ghcup-gen/Main.hs view
@@ -1,10 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} @@ -17,6 +14,7 @@ import GHCup.Utils.Logger import GHCup.Types.JSON ( ) +import Control.Exception ( displayException ) import Control.Monad.Trans.Reader ( runReaderT ) import Control.Monad.IO.Class import Data.Char ( toLower )@@ -37,7 +35,7 @@ import qualified Data.Text.IO as T import qualified Data.Text as T import qualified Data.ByteString as B-import qualified Data.YAML.Aeson as Y+import qualified Data.Yaml.Aeson as Y data Options = Options@@ -150,8 +148,8 @@ ValidateYAMLOpts { vInput = Just (FileInput file) } -> B.readFile file >>= valAndExit f valAndExit f contents = do- (GHCupInfo _ av gt) <- case Y.decode1Strict contents of+ (GHCupInfo _ av gt) <- case Y.decodeEither' contents of Right r -> pure r- Left (_, e) -> die (color Red $ show e)+ Left e -> die (color Red $ displayException e) f av gt >>= exitWith
app/ghcup-gen/Validate.hs view
@@ -91,23 +91,23 @@ checkHasRequiredPlatforms t v tags arch pspecs = do let v' = prettyVer v arch' = prettyShow arch- when (notElem (Linux UnknownLinux) pspecs) $ do+ when (Linux UnknownLinux `notElem` pspecs) $ do lift $ logError $ "Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' addError- when ((notElem Darwin pspecs) && arch == A_64) $ do+ when ((Darwin `notElem` pspecs) && arch == A_64) $ do lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' addError- when ((notElem FreeBSD pspecs) && arch == A_64) $ lift $ logWarn $+ when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $ "FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'- when (notElem Windows pspecs && arch == A_64) $ do+ when (Windows `notElem` pspecs && arch == A_64) $ do lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' addError -- alpine needs to be set explicitly, because -- we cannot assume that "Linux UnknownLinux" runs on Alpine -- (although it could be static)- when (notElem (Linux Alpine) pspecs) $+ when (Linux Alpine `notElem` pspecs) $ case t of GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError Cabal | v > [vver|2.4.1.0|]@@ -117,7 +117,7 @@ _ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch) checkUniqueTags tool = do- let allTags = join $ fmap _viTags $ M.elems $ availableToolVersions dls tool+ let allTags = _viTags =<< M.elems (availableToolVersions dls tool) let nonUnique = fmap fst . filter (\(_, b) -> not b)@@ -155,8 +155,8 @@ -- a tool must have at least one of each mandatory tags checkMandatoryTags tool = do- let allTags = join $ fmap _viTags $ M.elems $ availableToolVersions dls tool- forM_ [Latest, Recommended] $ \t -> case elem t allTags of+ let allTags = _viTags =<< M.elems (availableToolVersions dls tool)+ forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of False -> do lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool) addError@@ -202,7 +202,7 @@ let dlis = either (const []) (\tool -> nubOrd $ dls ^.. each %& indices (maybe (const True) (==) tool) %> each %& indices (matchTest versionRegex . T.unpack . prettyVer) % (viSourceDL % _Just `summing` viArch % each % each % each)) etool let gdlis = nubOrd $ gt ^.. each let allDls = either (const gdlis) (const dlis) etool- when (null allDls) $ logError "no tarballs selected by filter" *> (flip runReaderT ref addError)+ when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref forM_ allDls (downloadAll ref) -- exit@@ -260,7 +260,7 @@ when (basePath /= prel) $ do logError $ "Subdir doesn't match: expected " <> T.pack prel <> ", got " <> T.pack basePath- (flip runReaderT ref addError)+ runReaderT addError ref Just (RegexDir regexString) -> do logInfo $ "verifying subdir (regex): " <> T.pack regexString@@ -268,13 +268,13 @@ compIgnoreCase execBlank regexString- when (not (match regex basePath)) $ do+ unless (match regex basePath) $ do logError $ "Subdir doesn't match: expected regex " <> T.pack regexString <> ", got " <> T.pack basePath- (flip runReaderT ref addError)+ runReaderT addError ref Nothing -> pure () VRight Nothing -> pure () VLeft e -> do logError $ "Could not download (or verify hash) of " <> T.pack (show dli) <> ", Error was: " <> T.pack (prettyShow e)- (flip runReaderT ref addError)+ runReaderT addError ref
app/ghcup/BrickMain.hs view
@@ -2,10 +2,7 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-}-{-# LANGUAGE ViewPatterns #-} {-# LANGUAGE RankNTypes #-} module BrickMain where@@ -368,10 +365,7 @@ selectLatest :: Vector ListResult -> Int-selectLatest v =- case V.findIndex (\ListResult {..} -> lTool == GHC && Latest `elem` lTag) v of- Just ix -> ix- Nothing -> 0+selectLatest = fromMaybe 0 . V.findIndex (\ListResult {..} -> lTool == GHC && Latest `elem` lTag) -- | Replace the @appState@ or construct it based on a filter function@@ -398,14 +392,14 @@ filterVisible v t e | lInstalled e = True | v , not t- , not (elem (lTool e) hiddenTools) = True+ , lTool e `notElem` hiddenTools = True | not v , t- , not (elem Old (lTag e)) = True+ , Old `notElem` lTag e = True | v , t = True- | otherwise = not (elem Old (lTag e)) &&- not (elem (lTool e) hiddenTools)+ | otherwise = (Old `notElem` lTag e) &&+ (lTool e `notElem` hiddenTools) install' :: (MonadReader AppState m, MonadIO m, MonadThrow m, MonadFail m, MonadMask m, MonadUnliftIO m)@@ -434,6 +428,7 @@ , NoUpdate , TarDirDoesNotExist , FileAlreadyExistsError+ , ProcessError ] run (do@@ -506,7 +501,7 @@ ) >>= \case VRight vi -> do- forM_ (join $ fmap _viPostRemove vi) $ \msg ->+ forM_ (_viPostRemove =<< vi) $ \msg -> logInfo msg pure $ Right () VLeft e -> pure $ Left (prettyShow e)@@ -593,8 +588,7 @@ r <- flip runReaderT settings . runE @'[DigestError, GPGError, JSONError , DownloadFailed , FileDoesNotExistError]- $ liftE- $ getDownloadsF+ $ liftE getDownloadsF case r of VRight a -> pure $ Right a
+ app/ghcup/GHCup/OptParse.hs view
@@ -0,0 +1,303 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+++module GHCup.OptParse (+ module GHCup.OptParse.Common+ , module GHCup.OptParse.Install+ , module GHCup.OptParse.Set+ , module GHCup.OptParse.UnSet+ , module GHCup.OptParse.Rm+ , module GHCup.OptParse.Compile+ , module GHCup.OptParse.Config+ , module GHCup.OptParse.Whereis+ , module GHCup.OptParse.List+ , module GHCup.OptParse.Upgrade+ , module GHCup.OptParse.ChangeLog+ , module GHCup.OptParse.Prefetch+ , module GHCup.OptParse.GC+ , module GHCup.OptParse.DInfo+ , module GHCup.OptParse.Nuke+ , module GHCup.OptParse.ToolRequirements+ , module GHCup.OptParse+) where+++import GHCup.OptParse.Common+import GHCup.OptParse.Install+import GHCup.OptParse.Set+import GHCup.OptParse.UnSet+import GHCup.OptParse.Rm+import GHCup.OptParse.Compile+import GHCup.OptParse.Config+import GHCup.OptParse.Whereis+import GHCup.OptParse.List+import GHCup.OptParse.Upgrade+import GHCup.OptParse.ChangeLog+import GHCup.OptParse.Prefetch+import GHCup.OptParse.GC+import GHCup.OptParse.DInfo+import GHCup.OptParse.ToolRequirements+import GHCup.OptParse.Nuke++import GHCup.Types++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Data.Bifunctor+import Data.Either+import Data.Functor+import Data.Maybe+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import URI.ByteString++import qualified Data.ByteString.UTF8 as UTF8++++data Options = Options+ {+ -- global options+ optVerbose :: Maybe Bool+ , optCache :: Maybe Bool+ , optUrlSource :: Maybe URI+ , optNoVerify :: Maybe Bool+ , optKeepDirs :: Maybe KeepDirs+ , optsDownloader :: Maybe Downloader+ , optNoNetwork :: Maybe Bool+ , optGpg :: Maybe GPGSetting+ -- commands+ , optCommand :: Command+ }++data Command+ = Install (Either InstallCommand InstallOptions)+ | InstallCabalLegacy InstallOptions+ | Set (Either SetCommand SetOptions)+ | UnSet UnsetCommand+ | List ListOptions+ | Rm (Either RmCommand RmOptions)+ | DInfo+ | Compile CompileCommand+ | Config ConfigCommand+ | Whereis WhereisOptions WhereisCommand+ | Upgrade UpgradeOpts Bool+ | ToolRequirements+ | ChangeLog ChangeLogOptions+ | Nuke+#if defined(BRICK)+ | Interactive+#endif+ | Prefetch PrefetchCommand+ | GC GCOptions++++opts :: Parser Options+opts =+ Options+ <$> invertableSwitch "verbose" 'v' False (help "Enable verbosity (default: disabled)")+ <*> invertableSwitch "cache" 'c' False (help "Cache downloads in ~/.ghcup/cache (default: disabled)")+ <*> optional+ (option+ (eitherReader parseUri)+ ( short 's'+ <> long "url-source"+ <> metavar "URL"+ <> help "Alternative ghcup download info url"+ <> internal+ )+ )+ <*> (fmap . fmap) not (invertableSwitch "verify" 'n' True (help "Disable tarball checksum verification (default: enabled)"))+ <*> optional (option+ (eitherReader keepOnParser)+ ( long "keep"+ <> metavar "<always|errors|never>"+ <> help+ "Keep build directories? (default: errors)"+ <> hidden+ ))+ <*> optional (option+ (eitherReader downloaderParser)+ ( long "downloader"+#if defined(INTERNAL_DOWNLOADER)+ <> metavar "<internal|curl|wget>"+ <> help+ "Downloader to use (default: internal)"+#else+ <> metavar "<curl|wget>"+ <> help+ "Downloader to use (default: curl)"+#endif+ <> hidden+ ))+ <*> invertableSwitch "offline" 'o' False (help "Don't do any network calls, trying cached assets and failing if missing.")+ <*> optional (option+ (eitherReader gpgParser)+ ( long "gpg"+ <> metavar "<strict|lax|none>"+ <> help+ "GPG verification (default: none)"+ ))+ <*> com+ where+ parseUri s' =+ first show $ parseURI strictURIParserOptions (UTF8.fromString s')+++com :: Parser Command+com =+ subparser+#if defined(BRICK)+ ( command+ "tui"+ ( (\_ -> Interactive)+ <$> info+ helper+ ( progDesc "Start the interactive GHCup UI"+ )+ )+ <> command+#else+ ( command+#endif+ "install"+ ( Install+ <$> info+ (installParser <**> helper)+ ( progDesc "Install or update GHC/cabal/HLS/stack"+ <> footerDoc (Just $ text installToolFooter)+ )+ )+ <> command+ "set"+ (info+ (Set <$> setParser <**> helper)+ ( progDesc "Set currently active GHC/cabal version"+ <> footerDoc (Just $ text setFooter)+ )+ )+ <> command+ "unset"+ (info+ (UnSet <$> unsetParser <**> helper)+ ( progDesc "Unset currently active GHC/cabal version"+ <> footerDoc (Just $ text unsetFooter)+ )+ )+ <> command+ "rm"+ (info+ (Rm <$> rmParser <**> helper)+ ( progDesc "Remove a GHC/cabal/HLS/stack version"+ <> footerDoc (Just $ text rmFooter)+ )+ )++ <> command+ "list"+ (info (List <$> listOpts <**> helper)+ (progDesc "Show available GHCs and other tools")+ )+ <> command+ "upgrade"+ (info+ ( (Upgrade <$> upgradeOptsP <*> switch+ (short 'f' <> long "force" <> help "Force update")+ )+ <**> helper+ )+ (progDesc "Upgrade ghcup")+ )+ <> command+ "compile"+ ( Compile+ <$> info (compileP <**> helper)+ (progDesc "Compile a tool from source")+ )+ <> command+ "whereis"+ (info+ ( (Whereis+ <$> (WhereisOptions <$> switch (short 'd' <> long "directory" <> help "return directory of the binary instead of the binary location"))+ <*> whereisP+ ) <**> helper+ )+ (progDesc "Find a tools location"+ <> footerDoc ( Just $ text whereisFooter ))+ )+ <> command+ "prefetch"+ (info+ ( (Prefetch+ <$> prefetchP+ ) <**> helper+ )+ (progDesc "Prefetch assets"+ <> footerDoc ( Just $ text prefetchFooter ))+ )+ <> command+ "gc"+ (info+ ( (GC+ <$> gcP+ ) <**> helper+ )+ (progDesc "Garbage collection"+ <> footerDoc ( Just $ text gcFooter ))+ )+ <> commandGroup "Main commands:"+ )+ <|> subparser+ ( command+ "debug-info"+ ((\_ -> DInfo) <$> info helper (progDesc "Show debug info"))+ <> command+ "tool-requirements"+ ( (\_ -> ToolRequirements)+ <$> info helper+ (progDesc "Show the requirements for ghc/cabal")+ )+ <> command+ "changelog"+ (info+ (fmap ChangeLog changelogP <**> helper)+ ( progDesc "Find/show changelog"+ <> footerDoc (Just $ text changeLogFooter)+ )+ )+ <> command+ "config"+ ( Config+ <$> info (configP <**> helper)+ (progDesc "Show or set config" <> footerDoc (Just $ text configFooter))+ )+ <> commandGroup "Other commands:"+ <> hidden+ )+ <|> subparser+ ( command+ "install-cabal"+ (info+ ((InstallCabalLegacy <$> installOpts (Just Cabal)) <**> helper)+ ( progDesc "Install or update cabal"+ <> footerDoc (Just $ text installCabalFooter)+ )+ )+ <> internal+ )+ <|> subparser+ (command+ "nuke"+ (info (pure Nuke <**> helper)+ (progDesc "Completely remove ghcup from your system"))+ <> commandGroup "Nuclear Commands:"+ <> hidden+ )
+ app/ghcup/GHCup/OptParse/ChangeLog.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.ChangeLog where+++import GHCup.Types+import GHCup.Utils.Logger+import GHCup.OptParse.Common+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import GHCup.Types.Optics+import GHCup.Utils+import Data.Versions+import URI.ByteString (serializeURIRef')+import GHCup.Utils.Prelude+import GHCup.Utils.File (exec)+import Data.Char (toLower)++++ ---------------+ --[ Options ]--+ ---------------+++data ChangeLogOptions = ChangeLogOptions+ { clOpen :: Bool+ , clTool :: Maybe Tool+ , clToolVer :: Maybe ToolVersion+ }+++++ ---------------+ --[ Parsers ]--+ ---------------++ +changelogP :: Parser ChangeLogOptions+changelogP =+ (\x y -> ChangeLogOptions x y)+ <$> switch (short 'o' <> long "open" <> help "xdg-open the changelog url")+ <*> optional+ (option+ (eitherReader+ (\s' -> case fmap toLower s' of+ "ghc" -> Right GHC+ "cabal" -> Right Cabal+ "ghcup" -> Right GHCup+ "stack" -> Right Stack+ e -> Left e+ )+ )+ (short 't' <> long "tool" <> metavar "<ghc|cabal|ghcup>" <> help+ "Open changelog for given tool (default: ghc)"+ )+ )+ <*> optional (toolVersionArgument Nothing Nothing)++++ --------------+ --[ Footer ]--+ --------------+++changeLogFooter :: String+changeLogFooter = [s|Discussion:+ By default returns the URI of the ChangeLog of the latest GHC release.+ Pass '-o' to automatically open via xdg-open.|]++++ ------------------+ --[ Entrypoint ]--+ ------------------++++changelog :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => ChangeLogOptions+ -> (forall a . ReaderT AppState m a -> m a)+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+changelog ChangeLogOptions{..} runAppState runLogger = do+ GHCupInfo { _ghcupDownloads = dls } <- runAppState getGHCupInfo+ let tool = fromMaybe GHC clTool+ ver' = maybe+ (Right Latest)+ (\case+ ToolVersion tv -> Left (_tvVersion tv) -- FIXME: ugly sharing of ToolVersion+ ToolTag t -> Right t+ )+ clToolVer+ muri = getChangeLog dls tool ver'+ case muri of+ Nothing -> do+ runLogger+ (logWarn $+ "Could not find ChangeLog for " <> T.pack (prettyShow tool) <> ", version " <> either prettyVer (T.pack . show) ver'+ )+ pure ExitSuccess+ Just uri -> do+ pfreq <- runAppState getPlatformReq+ let uri' = T.unpack . decUTF8Safe . serializeURIRef' $ uri+ cmd = case _rPlatform pfreq of+ Darwin -> "open"+ Linux _ -> "xdg-open"+ FreeBSD -> "xdg-open"+ Windows -> "start"++ if clOpen+ then do+ runAppState $+ exec cmd+ [T.unpack $ decUTF8Safe $ serializeURIRef' uri]+ Nothing+ Nothing+ >>= \case+ Right _ -> pure ExitSuccess+ Left e -> logError (T.pack $ prettyShow e)+ >> pure (ExitFailure 13)+ else liftIO $ putStrLn uri' >> pure ExitSuccess
+ app/ghcup/GHCup/OptParse/Common.hs view
@@ -0,0 +1,513 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}++module GHCup.OptParse.Common where+++import GHCup+import GHCup.Download+import GHCup.Errors+import GHCup.Platform+import GHCup.Types+import GHCup.Types.Optics+import GHCup.Utils+import GHCup.Utils.Logger+import GHCup.Utils.MegaParsec+import GHCup.Utils.Prelude++import Control.Exception.Safe+#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Data.Bifunctor+import Data.Char+import Data.Either+import Data.Functor+import Data.List ( nub, sort, sortBy )+import Data.Maybe+import Data.Text ( Text )+import Data.Versions hiding ( str )+import Data.Void+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import Safe+import System.FilePath+import URI.ByteString++import qualified Data.ByteString.UTF8 as UTF8+import qualified Data.Map.Strict as M+import qualified Data.Text as T+import qualified Text.Megaparsec as MP+import GHCup.Version+++ -------------+ --[ Types ]--+ -------------++data ToolVersion = ToolVersion GHCTargetVersion -- target is ignored for cabal+ | ToolTag Tag++-- a superset of ToolVersion+data SetToolVersion = SetToolVersion GHCTargetVersion+ | SetToolTag Tag+ | SetRecommended+ | SetNext++prettyToolVer :: ToolVersion -> String+prettyToolVer (ToolVersion v') = T.unpack $ tVerToText v'+prettyToolVer (ToolTag t) = show t++toSetToolVer :: Maybe ToolVersion -> SetToolVersion+toSetToolVer (Just (ToolVersion v')) = SetToolVersion v'+toSetToolVer (Just (ToolTag t')) = SetToolTag t'+toSetToolVer Nothing = SetRecommended+++++ --------------+ --[ Parser ]--+ --------------+++-- | same as toolVersionParser, except as an argument.+toolVersionArgument :: Maybe ListCriteria -> Maybe Tool -> Parser ToolVersion+toolVersionArgument criteria tool =+ argument (eitherReader toolVersionEither)+ (metavar (mv tool)+ <> completer (tagCompleter (fromMaybe GHC tool) [])+ <> foldMap (completer . versionCompleter criteria) tool)+ where+ mv (Just GHC) = "GHC_VERSION|TAG"+ mv (Just HLS) = "HLS_VERSION|TAG"+ mv _ = "VERSION|TAG"+++versionParser :: Parser GHCTargetVersion+versionParser = option+ (eitherReader tVersionEither)+ (short 'v' <> long "version" <> metavar "VERSION" <> help "The target version"+ )++versionParser' :: Maybe ListCriteria -> Maybe Tool -> Parser Version+versionParser' criteria tool = argument+ (eitherReader (first show . version . T.pack))+ (metavar "VERSION" <> foldMap (completer . versionCompleter criteria) tool)++versionArgument :: Maybe ListCriteria -> Maybe Tool -> Parser GHCTargetVersion+versionArgument criteria tool = argument (eitherReader tVersionEither) (metavar "VERSION" <> foldMap (completer . versionCompleter criteria) tool)+++-- https://github.com/pcapriotti/optparse-applicative/issues/148++-- | A switch that can be enabled using --foo and disabled using --no-foo.+--+-- The option modifier is applied to only the option that is *not* enabled+-- by default. For example:+--+-- > invertableSwitch "recursive" True (help "do not recurse into directories")+--+-- This example makes --recursive enabled by default, so+-- the help is shown only for --no-recursive.+invertableSwitch+ :: String -- ^ long option+ -> Char -- ^ short option for the non-default option+ -> Bool -- ^ is switch enabled by default?+ -> Mod FlagFields Bool -- ^ option modifier+ -> Parser (Maybe Bool)+invertableSwitch longopt shortopt defv optmod = invertableSwitch' longopt shortopt defv+ (if defv then mempty else optmod)+ (if defv then optmod else mempty)++-- | Allows providing option modifiers for both --foo and --no-foo.+invertableSwitch'+ :: String -- ^ long option (eg "foo")+ -> Char -- ^ short option for the non-default option+ -> Bool -- ^ is switch enabled by default?+ -> Mod FlagFields Bool -- ^ option modifier for --foo+ -> Mod FlagFields Bool -- ^ option modifier for --no-foo+ -> Parser (Maybe Bool)+invertableSwitch' longopt shortopt defv enmod dismod = optional+ ( flag' True ( enmod <> long longopt <> if defv then mempty else short shortopt)+ <|> flag' False (dismod <> long nolongopt <> if defv then short shortopt else mempty)+ )+ where+ nolongopt = "no-" ++ longopt++++ ---------------------+ --[ Either Parser ]--+ ---------------------+++platformParser :: String -> Either String PlatformRequest+platformParser s' = case MP.parse (platformP <* MP.eof) "" (T.pack s') of+ Right r -> pure r+ Left e -> Left $ errorBundlePretty e+ where+ archP :: MP.Parsec Void Text Architecture+ archP = MP.try (MP.chunk "x86_64" $> A_64) <|> (MP.chunk "i386" $> A_32)+ platformP :: MP.Parsec Void Text PlatformRequest+ platformP = choice'+ [ (`PlatformRequest` FreeBSD)+ <$> (archP <* MP.chunk "-")+ <*> ( MP.chunk "portbld"+ *> ( MP.try (Just <$> verP (MP.chunk "-freebsd" <* MP.eof))+ <|> pure Nothing+ )+ <* MP.chunk "-freebsd"+ )+ , (`PlatformRequest` Darwin)+ <$> (archP <* MP.chunk "-")+ <*> ( MP.chunk "apple"+ *> ( MP.try (Just <$> verP (MP.chunk "-darwin" <* MP.eof))+ <|> pure Nothing+ )+ <* MP.chunk "-darwin"+ )+ , (\a d mv -> PlatformRequest a (Linux d) mv)+ <$> (archP <* MP.chunk "-")+ <*> distroP+ <*> ((MP.try (Just <$> verP (MP.chunk "-linux" <* MP.eof)) <|> pure Nothing+ )+ <* MP.chunk "-linux"+ )+ ]+ distroP :: MP.Parsec Void Text LinuxDistro+ distroP = choice'+ [ MP.chunk "debian" $> Debian+ , MP.chunk "deb" $> Debian+ , MP.chunk "ubuntu" $> Ubuntu+ , MP.chunk "mint" $> Mint+ , MP.chunk "fedora" $> Fedora+ , MP.chunk "centos" $> CentOS+ , MP.chunk "redhat" $> RedHat+ , MP.chunk "alpine" $> Alpine+ , MP.chunk "gentoo" $> Gentoo+ , MP.chunk "exherbo" $> Exherbo+ , MP.chunk "unknown" $> UnknownLinux+ ]+++bindistParser :: String -> Either String URI+bindistParser = first show . parseURI strictURIParserOptions . UTF8.fromString+++absolutePathParser :: FilePath -> Either String FilePath+absolutePathParser f = case isValid f && isAbsolute f of+ True -> Right $ normalise f+ False -> Left "Please enter a valid absolute filepath."++isolateParser :: FilePath -> Either String FilePath+isolateParser f = case isValid f of+ True -> Right $ normalise f+ False -> Left "Please enter a valid filepath for isolate dir."++toolVersionEither :: String -> Either String ToolVersion+toolVersionEither s' =+ second ToolTag (tagEither s') <|> second ToolVersion (tVersionEither s')++tagEither :: String -> Either String Tag+tagEither s' = case fmap toLower s' of+ "recommended" -> Right Recommended+ "latest" -> Right Latest+ ('b':'a':'s':'e':'-':ver') -> case pvp (T.pack ver') of+ Right x -> Right (Base x)+ Left _ -> Left $ "Invalid PVP version for base " <> ver'+ other -> Left $ "Unknown tag " <> other+++tVersionEither :: String -> Either String GHCTargetVersion+tVersionEither =+ first (const "Not a valid version") . MP.parse ghcTargetVerP "" . T.pack+++toolParser :: String -> Either String Tool+toolParser s' | t == T.pack "ghc" = Right GHC+ | t == T.pack "cabal" = Right Cabal+ | t == T.pack "hls" = Right HLS+ | t == T.pack "stack" = Right Stack+ | otherwise = Left ("Unknown tool: " <> s')+ where t = T.toLower (T.pack s')+++criteriaParser :: String -> Either String ListCriteria+criteriaParser s' | t == T.pack "installed" = Right ListInstalled+ | t == T.pack "set" = Right ListSet+ | t == T.pack "available" = Right ListAvailable+ | otherwise = Left ("Unknown criteria: " <> s')+ where t = T.toLower (T.pack s')+++toolVersionParser :: Parser ToolVersion+toolVersionParser = verP' <|> toolP+ where+ verP' = ToolVersion <$> versionParser+ toolP =+ ToolTag+ <$> option+ (eitherReader tagEither)+ (short 't' <> long "tag" <> metavar "TAG" <> help "The target tag")+++++keepOnParser :: String -> Either String KeepDirs+keepOnParser s' | t == T.pack "always" = Right Always+ | t == T.pack "errors" = Right Errors+ | t == T.pack "never" = Right Never+ | otherwise = Left ("Unknown keep value: " <> s')+ where t = T.toLower (T.pack s')+++downloaderParser :: String -> Either String Downloader+downloaderParser s' | t == T.pack "curl" = Right Curl+ | t == T.pack "wget" = Right Wget+#if defined(INTERNAL_DOWNLOADER)+ | t == T.pack "internal" = Right Internal+#endif+ | otherwise = Left ("Unknown downloader value: " <> s')+ where t = T.toLower (T.pack s')++gpgParser :: String -> Either String GPGSetting+gpgParser s' | t == T.pack "strict" = Right GPGStrict+ | t == T.pack "lax" = Right GPGLax+ | t == T.pack "none" = Right GPGNone+ | otherwise = Left ("Unknown gpg setting value: " <> s')+ where t = T.toLower (T.pack s')++++ ------------------+ --[ Completers ]--+ ------------------++tagCompleter :: Tool -> [String] -> Completer+tagCompleter tool add = listIOCompleter $ do+ dirs' <- liftIO getAllDirs+ let loggerConfig = LoggerConfig+ { lcPrintDebug = False+ , consoleOutter = mempty+ , fileOutter = mempty+ , fancyColors = False+ }+ let appState = LeanAppState+ (Settings True False Never Curl False GHCupURL True GPGNone False)+ dirs'+ defaultKeyBindings+ loggerConfig++ mGhcUpInfo <- flip runReaderT appState . runE $ getDownloadsF+ case mGhcUpInfo of+ VRight ghcupInfo -> do+ let allTags = filter (/= Old)+ $ _viTags =<< M.elems (availableToolVersions (_ghcupDownloads ghcupInfo) tool)+ pure $ nub $ (add ++) $ fmap tagToString allTags+ VLeft _ -> pure (nub $ ["recommended", "latest"] ++ add)+++versionCompleter :: Maybe ListCriteria -> Tool -> Completer+versionCompleter criteria tool = listIOCompleter $ do+ dirs' <- liftIO getAllDirs+ let loggerConfig = LoggerConfig+ { lcPrintDebug = False+ , consoleOutter = mempty+ , fileOutter = mempty+ , fancyColors = False+ }+ let settings = Settings True False Never Curl False GHCupURL True GPGNone False+ let leanAppState = LeanAppState+ settings+ dirs'+ defaultKeyBindings+ loggerConfig+ mpFreq <- flip runReaderT leanAppState . runE $ platformRequest+ mGhcUpInfo <- flip runReaderT leanAppState . runE $ getDownloadsF+ forFold mpFreq $ \pfreq -> do+ forFold mGhcUpInfo $ \ghcupInfo -> do+ let appState = AppState+ settings+ dirs'+ defaultKeyBindings+ ghcupInfo+ pfreq+ loggerConfig++ runEnv = flip runReaderT appState++ installedVersions <- runEnv $ listVersions (Just tool) criteria+ return $ T.unpack . prettyVer . lVer <$> installedVersions+++++ -----------------+ --[ Utilities ]--+ -----------------+++fromVersion :: ( HasLog env+ , MonadFail m+ , MonadReader env m+ , HasGHCupInfo env+ , HasDirs env+ , MonadThrow m+ , MonadIO m+ , MonadCatch m+ )+ => Maybe ToolVersion+ -> Tool+ -> Excepts+ '[ TagNotFound+ , NextVerNotFound+ , NoToolVersionSet+ ] m (GHCTargetVersion, Maybe VersionInfo)+fromVersion tv = fromVersion' (toSetToolVer tv)++fromVersion' :: ( HasLog env+ , MonadFail m+ , MonadReader env m+ , HasGHCupInfo env+ , HasDirs env+ , MonadThrow m+ , MonadIO m+ , MonadCatch m+ )+ => SetToolVersion+ -> Tool+ -> Excepts+ '[ TagNotFound+ , NextVerNotFound+ , NoToolVersionSet+ ] m (GHCTargetVersion, Maybe VersionInfo)+fromVersion' SetRecommended tool = do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ bimap mkTVer Just <$> getRecommended dls tool+ ?? TagNotFound Recommended tool+fromVersion' (SetToolVersion v) tool = do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ let vi = getVersionInfo (_tvVersion v) tool dls+ case pvp $ prettyVer (_tvVersion v) of -- need to be strict here+ Left _ -> pure (v, vi)+ Right pvpIn ->+ lift (getLatestToolFor tool pvpIn dls) >>= \case+ Just (pvp_, vi') -> do+ v' <- lift $ pvpToVersion pvp_+ when (v' /= _tvVersion v) $ lift $ logWarn ("Assuming you meant version " <> prettyVer v')+ pure (GHCTargetVersion (_tvTarget v) v', Just vi')+ Nothing -> pure (v, vi)+fromVersion' (SetToolTag Latest) tool = do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ bimap mkTVer Just <$> getLatest dls tool ?? TagNotFound Latest tool+fromVersion' (SetToolTag Recommended) tool = do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ bimap mkTVer Just <$> getRecommended dls tool ?? TagNotFound Recommended tool+fromVersion' (SetToolTag (Base pvp'')) GHC = do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ bimap mkTVer Just <$> getLatestBaseVersion dls pvp'' ?? TagNotFound (Base pvp'') GHC+fromVersion' SetNext tool = do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ next <- case tool of+ GHC -> do+ set <- fmap _tvVersion $ ghcSet Nothing !? NoToolVersionSet tool+ ghcs <- rights <$> lift getInstalledGHCs+ (headMay+ . tail+ . dropWhile (\GHCTargetVersion {..} -> _tvVersion /= set)+ . cycle+ . sortBy (\x y -> compare (_tvVersion x) (_tvVersion y))+ . filter (\GHCTargetVersion {..} -> isNothing _tvTarget)+ $ ghcs) ?? NoToolVersionSet tool+ Cabal -> do+ set <- cabalSet !? NoToolVersionSet tool+ cabals <- rights <$> lift getInstalledCabals+ (fmap (GHCTargetVersion Nothing)+ . headMay+ . tail+ . dropWhile (/= set)+ . cycle+ . sort+ $ cabals) ?? NoToolVersionSet tool+ HLS -> do+ set <- hlsSet !? NoToolVersionSet tool+ hlses <- rights <$> lift getInstalledHLSs+ (fmap (GHCTargetVersion Nothing)+ . headMay+ . tail+ . dropWhile (/= set)+ . cycle+ . sort+ $ hlses) ?? NoToolVersionSet tool+ Stack -> do+ set <- stackSet !? NoToolVersionSet tool+ stacks <- rights <$> lift getInstalledStacks+ (fmap (GHCTargetVersion Nothing)+ . headMay+ . tail+ . dropWhile (/= set)+ . cycle+ . sort+ $ stacks) ?? NoToolVersionSet tool+ GHCup -> fail "GHCup cannot be set"+ let vi = getVersionInfo (_tvVersion next) tool dls+ pure (next, vi)+fromVersion' (SetToolTag t') tool =+ throwE $ TagNotFound t' tool+++checkForUpdates :: ( MonadReader env m+ , HasGHCupInfo env+ , HasDirs env+ , HasPlatformReq env+ , MonadCatch m+ , HasLog env+ , MonadThrow m+ , MonadIO m+ , MonadFail m+ )+ => m ()+checkForUpdates = do+ GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo+ lInstalled <- listVersions Nothing (Just ListInstalled)+ let latestInstalled tool = (fmap lVer . lastMay . filter (\lr -> lTool lr == tool)) lInstalled++ forM_ (getLatest dls GHCup) $ \(l, _) -> do+ (Right ghc_ver) <- pure $ version $ prettyPVP ghcUpVer+ when (l > ghc_ver)+ $ logWarn $+ "New GHCup version available: " <> prettyVer l <> ". To upgrade, run 'ghcup upgrade'"++ forM_ (getLatest dls GHC) $ \(l, _) -> do+ let mghc_ver = latestInstalled GHC+ forM mghc_ver $ \ghc_ver ->+ when (l > ghc_ver)+ $ logWarn $+ "New GHC version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install ghc " <> prettyVer l <> "'"++ forM_ (getLatest dls Cabal) $ \(l, _) -> do+ let mcabal_ver = latestInstalled Cabal+ forM mcabal_ver $ \cabal_ver ->+ when (l > cabal_ver)+ $ logWarn $+ "New Cabal version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install cabal " <> prettyVer l <> "'"++ forM_ (getLatest dls HLS) $ \(l, _) -> do+ let mhls_ver = latestInstalled HLS+ forM mhls_ver $ \hls_ver ->+ when (l > hls_ver)+ $ logWarn $+ "New HLS version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install hls " <> prettyVer l <> "'"++ forM_ (getLatest dls Stack) $ \(l, _) -> do+ let mstack_ver = latestInstalled Stack+ forM mstack_ver $ \stack_ver ->+ when (l > stack_ver)+ $ logWarn $+ "New Stack version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install stack " <> prettyVer l <> "'"
+ app/ghcup/GHCup/OptParse/Compile.hs view
@@ -0,0 +1,517 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Compile where+++import GHCup+import GHCup.Errors+import GHCup.Utils.File+import GHCup.Types+import GHCup.Types.Optics+import GHCup.Utils+import GHCup.Utils.Logger+import GHCup.OptParse.Common+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Codec.Archive ( ArchiveResult )+import Control.Concurrent (threadDelay)+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Bifunctor+import Data.Functor+import Data.Maybe+import Data.Versions ( Version, prettyVer, version )+import Data.Text ( Text )+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import System.FilePath (isPathSeparator)+import Text.Read (readEither)+++++ ----------------+ --[ Commands ]--+ ----------------+++data CompileCommand = CompileGHC GHCCompileOptions+ | CompileHLS HLSCompileOptions++++ ---------------+ --[ Options ]--+ ---------------+++data GHCCompileOptions = GHCCompileOptions+ { targetGhc :: Either Version GitBranch+ , bootstrapGhc :: Either Version FilePath+ , jobs :: Maybe Int+ , buildConfig :: Maybe FilePath+ , patchDir :: Maybe FilePath+ , crossTarget :: Maybe Text+ , addConfArgs :: [Text]+ , setCompile :: Bool+ , ovewrwiteVer :: Maybe Version+ , buildFlavour :: Maybe String+ , hadrian :: Bool+ , isolateDir :: Maybe FilePath+ }++data HLSCompileOptions = HLSCompileOptions+ { targetHLS :: Either Version GitBranch+ , jobs :: Maybe Int+ , setCompile :: Bool+ , ovewrwiteVer :: Maybe Version+ , isolateDir :: Maybe FilePath+ , cabalProject :: Maybe FilePath+ , cabalProjectLocal :: Maybe FilePath+ , patchDir :: Maybe FilePath+ , targetGHCs :: [ToolVersion]+ }+++++ ---------------+ --[ Parsers ]--+ ---------------++ +compileP :: Parser CompileCommand+compileP = subparser+ ( command+ "ghc"+ ( CompileGHC+ <$> info+ (ghcCompileOpts <**> helper)+ ( progDesc "Compile GHC from source"+ <> footerDoc (Just $ text compileFooter)+ )+ )+ <> command+ "hls"+ ( CompileHLS+ <$> info+ (hlsCompileOpts <**> helper)+ ( progDesc "Compile HLS from source"+ <> footerDoc (Just $ text compileHLSFooter)+ )+ )+ )+ where+ compileFooter = [s|Discussion:+ Compiles and installs the specified GHC version into+ a self-contained "~/.ghcup/ghc/<ghcver>" directory+ and symlinks the ghc binaries to "~/.ghcup/bin/<binary>-<ghcver>".++ This also allows building a cross-compiler. Consult the documentation+ first: <https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling#configuring-the-build>++ENV variables:+ Various toolchain variables will be passed onto the ghc build system,+ such as: CC, LD, OBJDUMP, NM, AR, RANLIB.++Examples:+ # compile from known version+ ghcup compile ghc -j 4 -v 8.4.2 -b 8.2.2+ # compile from git commit/reference+ ghcup compile ghc -j 4 -g master -b 8.2.2+ # specify path to bootstrap ghc+ ghcup compile ghc -j 4 -v 8.4.2 -b /usr/bin/ghc-8.2.2+ # build cross compiler+ ghcup compile ghc -j 4 -v 8.4.2 -b 8.2.2 -x armv7-unknown-linux-gnueabihf --config $(pwd)/build.mk -- --enable-unregisterised|]++ compileHLSFooter = [s|Discussion:+ Compiles and installs the specified HLS version.+ The last argument is a list of GHC versions to compile for.+ These need to be available in PATH prior to compilation.++Examples:+ ghcup compile hls -v 1.4.0 -j 12 8.10.5 8.10.7 9.0.1|]+++ghcCompileOpts :: Parser GHCCompileOptions+ghcCompileOpts =+ GHCCompileOptions+ <$> ((Left <$> option+ (eitherReader+ (first (const "Not a valid version") . version . T.pack)+ )+ (short 'v' <> long "version" <> metavar "VERSION" <> help+ "The tool version to compile"+ )+ ) <|>+ (Right <$> (GitBranch <$> option+ str+ (short 'g' <> long "git-ref" <> metavar "GIT_REFERENCE" <> help+ "The git commit/branch/ref to build from"+ ) <*>+ optional (option str (short 'r' <> long "repository" <> metavar "GIT_REPOSITORY" <> help "The git repository to build from (defaults to GHC upstream)"))+ )))+ <*> option+ (eitherReader+ (\x ->+ (bimap (const "Not a valid version") Left . version . T.pack $ x) <|> (if isPathSeparator (head x) then pure $ Right x else Left "Not an absolute Path")+ )+ )+ ( short 'b'+ <> long "bootstrap-ghc"+ <> metavar "BOOTSTRAP_GHC"+ <> help+ "The GHC version (or full path) to bootstrap with (must be installed)"+ )+ <*> optional+ (option+ (eitherReader (readEither @Int))+ (short 'j' <> long "jobs" <> metavar "JOBS" <> help+ "How many jobs to use for make"+ )+ )+ <*> optional+ (option+ str+ (short 'c' <> long "config" <> metavar "CONFIG" <> help+ "Absolute path to build config file"+ )+ )+ <*> optional+ (option+ str+ (short 'p' <> long "patchdir" <> metavar "PATCH_DIR" <> help+ "Absolute path to patch directory (applies all .patch and .diff files in order using -p1)"+ )+ )+ <*> optional+ (option+ str+ (short 'x' <> long "cross-target" <> metavar "CROSS_TARGET" <> help+ "Build cross-compiler for this platform"+ )+ )+ <*> many (argument str (metavar "CONFIGURE_ARGS" <> help "Additional arguments to configure, prefix with '-- ' (longopts)"))+ <*> flag+ False+ True+ (long "set" <> help+ "Set as active version after install"+ )+ <*> optional+ (option+ (eitherReader+ (first (const "Not a valid version") . version . T.pack)+ )+ (short 'o' <> long "overwrite-version" <> metavar "OVERWRITE_VERSION" <> help+ "Allows to overwrite the finally installed VERSION with a different one, e.g. when you build 8.10.4 with your own patches, you might want to set this to '8.10.4-p1'"+ )+ )+ <*> optional+ (option+ str+ (short 'f' <> long "flavour" <> metavar "BUILD_FLAVOUR" <> help+ "Set the compile build flavour (this value depends on the build system type: 'make' vs 'hadrian')"+ )+ )+ <*> switch+ (long "hadrian" <> help "Use the hadrian build system instead of make (only git versions seem to be properly supported atm)"+ )+ <*> optional+ (option+ (eitherReader isolateParser)+ ( short 'i'+ <> long "isolate"+ <> metavar "DIR"+ <> help "install in an isolated directory instead of the default one, no symlinks to this installation will be made"+ )+ )++hlsCompileOpts :: Parser HLSCompileOptions+hlsCompileOpts =+ HLSCompileOptions+ <$> ((Left <$> option+ (eitherReader+ (first (const "Not a valid version") . version . T.pack)+ )+ (short 'v' <> long "version" <> metavar "VERSION" <> help+ "The tool version to compile"+ )+ ) <|>+ (Right <$> (GitBranch <$> option+ str+ (short 'g' <> long "git-ref" <> metavar "GIT_REFERENCE" <> help+ "The git commit/branch/ref to build from"+ ) <*>+ optional (option str (short 'r' <> long "repository" <> metavar "GIT_REPOSITORY" <> help "The git repository to build from (defaults to GHC upstream)"))+ )))+ <*> optional+ (option+ (eitherReader (readEither @Int))+ (short 'j' <> long "jobs" <> metavar "JOBS" <> help+ "How many jobs to use for make"+ )+ )+ <*> flag+ False+ True+ (long "set" <> help+ "Set as active version after install"+ )+ <*> optional+ (option+ (eitherReader+ (first (const "Not a valid version") . version . T.pack)+ )+ (short 'o' <> long "overwrite-version" <> metavar "OVERWRITE_VERSION" <> help+ "Allows to overwrite the finally installed VERSION with a different one, e.g. when you build 8.10.4 with your own patches, you might want to set this to '8.10.4-p1'"+ )+ )+ <*> optional+ (option+ (eitherReader isolateParser)+ ( short 'i'+ <> long "isolate"+ <> metavar "DIR"+ <> help "install in an isolated directory instead of the default one, no symlinks to this installation will be made"+ )+ )+ <*> optional+ (option+ str+ (long "cabal-project" <> metavar "CABAL_PROJECT" <> help+ "If relative, specifies the path to cabal.project inside the unpacked HLS tarball/checkout. If absolute, will copy the file over."+ )+ )+ <*> optional+ (option+ (eitherReader absolutePathParser)+ (long "cabal-project-local" <> metavar "CABAL_PROJECT_LOCAL" <> help+ "Absolute path to a cabal.project.local to be used for the build. Will be copied over."+ )+ )+ <*> optional+ (option+ (eitherReader absolutePathParser)+ (short 'p' <> long "patchdir" <> metavar "PATCH_DIR" <> help+ "Absolute path to patch directory (applies all .patch and .diff files in order using -p1)"+ )+ )+ <*> some (toolVersionArgument Nothing (Just GHC))++++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type GHCEffects = '[ AlreadyInstalled+ , BuildFailed+ , DigestError+ , GPGError+ , DownloadFailed+ , GHCupSetError+ , NoDownload+ , NotFoundInPATH+ , PatchFailed+ , UnknownArchive+ , TarDirDoesNotExist+ , NotInstalled+ , DirNotEmpty+ , ArchiveResult+ , FileDoesNotExistError+ , HadrianNotFound+ , InvalidBuildConfig+ , ProcessError+ , CopyError+ , BuildFailed+ ]+type HLSEffects = '[ AlreadyInstalled+ , BuildFailed+ , DigestError+ , GPGError+ , DownloadFailed+ , GHCupSetError+ , NoDownload+ , NotFoundInPATH+ , PatchFailed+ , UnknownArchive+ , TarDirDoesNotExist+ , TagNotFound+ , NextVerNotFound+ , NoToolVersionSet+ , NotInstalled+ , DirNotEmpty+ , ArchiveResult+ ]++++runCompileGHC :: (MonadUnliftIO m, MonadIO m)+ => (ReaderT AppState m (VEither GHCEffects a) -> m (VEither GHCEffects a))+ -> Excepts GHCEffects (ResourceT (ReaderT AppState m)) a+ -> m (VEither GHCEffects a)+runCompileGHC runAppState =+ runAppState+ . runResourceT+ . runE+ @GHCEffects++runCompileHLS :: (MonadUnliftIO m, MonadIO m)+ => (ReaderT AppState m (VEither HLSEffects a) -> m (VEither HLSEffects a))+ -> Excepts HLSEffects (ResourceT (ReaderT AppState m)) a+ -> m (VEither HLSEffects a)+runCompileHLS runAppState =+ runAppState+ . runResourceT+ . runE+ @HLSEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++compile :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => CompileCommand+ -> Settings+ -> (forall eff a . ReaderT AppState m (VEither eff a) -> m (VEither eff a))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+compile compileCommand settings runAppState runLogger = do+ VRight Dirs{ .. } <- runAppState (VRight <$> getDirs)+ case compileCommand of+ (CompileHLS HLSCompileOptions { .. }) -> do+ runCompileHLS runAppState (do+ case targetHLS of+ Left targetVer -> do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ let vi = getVersionInfo targetVer HLS dls+ forM_ (_viPreCompile =<< vi) $ \msg -> do+ lift $ logInfo msg+ lift $ logInfo+ "...waiting for 5 seconds, you can still abort..."+ liftIO $ threadDelay 5000000 -- for compilation, give the user a sec to intervene+ Right _ -> pure ()+ ghcs <- liftE $ forM targetGHCs (\ghc -> fmap (_tvVersion . fst) . fromVersion (Just ghc) $ GHC)+ targetVer <- liftE $ compileHLS+ targetHLS+ ghcs+ jobs+ ovewrwiteVer+ isolateDir+ cabalProject+ cabalProjectLocal+ patchDir+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ let vi = getVersionInfo targetVer HLS dls+ when setCompile $ void $ liftE $+ setHLS targetVer+ pure (vi, targetVer)+ )+ >>= \case+ VRight (vi, tv) -> do+ runLogger $ logInfo+ "HLS successfully compiled and installed"+ forM_ (_viPostInstall =<< vi) $ \msg ->+ runLogger $ logInfo msg+ liftIO $ putStr (T.unpack $ prettyVer tv)+ pure ExitSuccess+ VLeft err@(V (BuildFailed tmpdir _)) -> do+ case keepDirs settings of+ Never -> runLogger $ logError $ T.pack $ prettyShow err+ _ -> runLogger (logError $ T.pack (prettyShow err) <> "\n" <>+ "Check the logs at " <> T.pack logsDir <> " and the build directory "+ <> T.pack tmpdir <> " for more clues." <> "\n" <>+ "Make sure to clean up " <> T.pack tmpdir <> " afterwards.")+ pure $ ExitFailure 9+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 9+ (CompileGHC GHCCompileOptions { hadrian = True, crossTarget = Just _ }) -> do+ runLogger $ logError "Hadrian cross compile support is not yet implemented!"+ pure $ ExitFailure 9+ (CompileGHC GHCCompileOptions {..}) ->+ runCompileGHC runAppState (do+ case targetGhc of+ Left targetVer -> do+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ let vi = getVersionInfo targetVer GHC dls+ forM_ (_viPreCompile =<< vi) $ \msg -> do+ lift $ logInfo msg+ lift $ logInfo+ "...waiting for 5 seconds, you can still abort..."+ liftIO $ threadDelay 5000000 -- for compilation, give the user a sec to intervene+ Right _ -> pure ()+ targetVer <- liftE $ compileGHC+ (first (GHCTargetVersion crossTarget) targetGhc)+ ovewrwiteVer+ bootstrapGhc+ jobs+ buildConfig+ patchDir+ addConfArgs+ buildFlavour+ hadrian+ isolateDir+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ let vi = getVersionInfo (_tvVersion targetVer) GHC dls+ when setCompile $ void $ liftE $+ setGHC targetVer SetGHCOnly+ pure (vi, targetVer)+ )+ >>= \case+ VRight (vi, tv) -> do+ runLogger $ logInfo+ "GHC successfully compiled and installed"+ forM_ (_viPostInstall =<< vi) $ \msg ->+ runLogger $ logInfo msg+ liftIO $ putStr (T.unpack $ tVerToText tv)+ pure ExitSuccess+ VLeft (V (AlreadyInstalled _ v)) -> do+ runLogger $ logWarn $+ "GHC ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install ghc --force " <> prettyVer v <> "'"+ pure ExitSuccess+ VLeft (V (DirNotEmpty fp)) -> do+ runLogger $ logWarn $+ "Install directory " <> T.pack fp <> " is not empty. Use 'ghcup install ghc --isolate " <> T.pack fp <> " --force ..." <> "' to install regardless."+ pure $ ExitFailure 3+ VLeft err@(V (BuildFailed tmpdir _)) -> do+ case keepDirs settings of+ Never -> runLogger $ logError $ T.pack $ prettyShow err+ _ -> runLogger (logError $ T.pack (prettyShow err) <> "\n" <>+ "Check the logs at " <> T.pack logsDir <> " and the build directory "+ <> T.pack tmpdir <> " for more clues." <> "\n" <>+ "Make sure to clean up " <> T.pack tmpdir <> " afterwards.")+ pure $ ExitFailure 9+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 9
+ app/ghcup/GHCup/OptParse/Config.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Config where+++import GHCup.Errors+import GHCup.Types+import GHCup.Utils+import GHCup.Utils.Prelude+import GHCup.Utils.Logger+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Exception ( displayException )+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Exit++import qualified Data.Text as T+import qualified Data.ByteString.UTF8 as UTF8+import qualified Data.Yaml.Aeson as Y+import Control.Exception.Safe (MonadMask)+++++ ----------------+ --[ Commands ]--+ ----------------+++data ConfigCommand+ = ShowConfig+ | SetConfig String (Maybe String)+ | InitConfig++++ ---------------+ --[ Parsers ]--+ ---------------++ +configP :: Parser ConfigCommand+configP = subparser+ ( command "init" initP+ <> command "set" setP -- [set] KEY VALUE at help lhs+ <> command "show" showP+ )+ <|> argsP -- add show for a single option+ <|> pure ShowConfig+ where+ initP = info (pure InitConfig) (progDesc "Write default config to ~/.ghcup/config.yaml")+ showP = info (pure ShowConfig) (progDesc "Show current config (default)")+ setP = info argsP (progDesc "Set config KEY to VALUE (or specify as single json value)" <> footerDoc (Just $ text configSetFooter))+ argsP = SetConfig <$> argument str (metavar "<JSON_VALUE | YAML_KEY>") <*> optional (argument str (metavar "YAML_VALUE"))+++++ --------------+ --[ Footer ]--+ --------------+++configFooter :: String+configFooter = [s|Examples:++ # show current config+ ghcup config++ # initialize config+ ghcup config init++ # set <key> <value> configuration pair+ ghcup config set <key> <value>|]+++configSetFooter :: String+configSetFooter = [s|Examples:+ # disable caching+ ghcup config set cache false++ # switch downloader to wget+ ghcup config set downloader Wget++ # set mirror for ghcup metadata+ ghcup config set '{url-source: { OwnSource: "<url>"}}'|]++++ -----------------+ --[ Utilities ]--+ -----------------+++formatConfig :: UserSettings -> String+formatConfig = UTF8.toString . Y.encode+++updateSettings :: Monad m => UTF8.ByteString -> Settings -> Excepts '[JSONError] m Settings+updateSettings config' settings = do+ settings' <- lE' (JSONDecodeError . displayException) . Y.decodeEither' $ config'+ pure $ mergeConf settings' settings+ where+ mergeConf :: UserSettings -> Settings -> Settings+ mergeConf UserSettings{..} Settings{..} =+ let cache' = fromMaybe cache uCache+ noVerify' = fromMaybe noVerify uNoVerify+ keepDirs' = fromMaybe keepDirs uKeepDirs+ downloader' = fromMaybe downloader uDownloader+ verbose' = fromMaybe verbose uVerbose+ urlSource' = fromMaybe urlSource uUrlSource+ noNetwork' = fromMaybe noNetwork uNoNetwork+ gpgSetting' = fromMaybe gpgSetting uGPGSetting+ in Settings cache' noVerify' keepDirs' downloader' verbose' urlSource' noNetwork' gpgSetting' noColor++++ ------------------+ --[ Entrypoint ]--+ ------------------++++config :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => ConfigCommand+ -> Settings+ -> KeyBindings+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+config configCommand settings keybindings runLogger = case configCommand of+ InitConfig -> do+ path <- getConfigFilePath+ liftIO $ writeFile path $ formatConfig $ fromSettings settings (Just keybindings)+ runLogger $ logDebug $ "config.yaml initialized at " <> T.pack path+ pure ExitSuccess++ ShowConfig -> do+ liftIO $ putStrLn $ formatConfig $ fromSettings settings (Just keybindings)+ pure ExitSuccess++ (SetConfig k (Just v)) ->+ case v of+ "" -> do+ runLogger $ logError "Empty values are not allowed"+ pure $ ExitFailure 55+ _ -> doConfig (k <> ": " <> v <> "\n")++ (SetConfig json Nothing) -> doConfig json++ where+ doConfig val = do+ r <- runE @'[JSONError] $ do+ settings' <- updateSettings (UTF8.fromString val) settings+ path <- liftIO getConfigFilePath+ liftIO $ writeFile path $ formatConfig $ fromSettings settings' (Just keybindings)+ lift $ runLogger $ logDebug $ T.pack $ show settings'+ pure ()++ case r of+ VRight _ -> pure ExitSuccess+ VLeft (V (JSONDecodeError e)) -> do+ runLogger $ logError $ "Error decoding config: " <> T.pack e+ pure $ ExitFailure 65+ VLeft _ -> pure $ ExitFailure 65
+ app/ghcup/GHCup/OptParse/DInfo.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.DInfo where+++++import GHCup+import GHCup.Errors+import GHCup.Version+import GHCup.Types+import GHCup.Utils.Prelude+import GHCup.Utils.Dirs+import GHCup.Utils.Logger++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import GHCup.Utils.File+import Language.Haskell.TH++++ -----------------+ --[ Utilities ]--+ -----------------+++describe_result :: String+describe_result = $( LitE . StringL <$>+ runIO (do+ CapturedProcess{..} <- do+ dirs <- liftIO getAllDirs+ let settings = AppState (Settings True False Never Curl False GHCupURL False GPGNone False)+ dirs+ defaultKeyBindings+ flip runReaderT settings $ executeOut "git" ["describe"] Nothing+ case _exitCode of+ ExitSuccess -> pure . T.unpack . decUTF8Safe' $ _stdOut+ ExitFailure _ -> pure numericVer+ )+ )+++prettyDebugInfo :: DebugInfo -> String+prettyDebugInfo DebugInfo {..} = "Debug Info" <> "\n" <>+ "==========" <> "\n" <>+ "GHCup base dir: " <> diBaseDir <> "\n" <>+ "GHCup bin dir: " <> diBinDir <> "\n" <>+ "GHCup GHC directory: " <> diGHCDir <> "\n" <>+ "GHCup cache directory: " <> diCacheDir <> "\n" <>+ "Architecture: " <> prettyShow diArch <> "\n" <>+ "Platform: " <> prettyShow diPlatform <> "\n" <>+ "Version: " <> describe_result++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type DInfoEffects = '[ NoCompatiblePlatform , NoCompatibleArch , DistroNotFound ]++runDebugInfo :: (ReaderT env m (VEither DInfoEffects a) -> m (VEither DInfoEffects a))+ -> Excepts DInfoEffects (ReaderT env m) a+ -> m (VEither DInfoEffects a)+runDebugInfo runAppState =+ runAppState+ . runE+ @DInfoEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++dinfo :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ , Alternative m+ )+ => (ReaderT AppState m (VEither DInfoEffects DebugInfo)+ -> m (VEither DInfoEffects DebugInfo))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+dinfo runAppState runLogger = do+ runDebugInfo runAppState (liftE getDebugInfo)+ >>= \case+ VRight di -> do+ liftIO $ putStrLn $ prettyDebugInfo di+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 8
+ app/ghcup/GHCup/OptParse/GC.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.GC where+++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)++++++ ---------------+ --[ Options ]--+ ---------------+++data GCOptions = GCOptions+ { gcOldGHC :: Bool+ , gcProfilingLibs :: Bool+ , gcShareDir :: Bool+ , gcHLSNoGHC :: Bool+ , gcCache :: Bool+ , gcTmp :: Bool+ }++++ ---------------+ --[ Parsers ]--+ ---------------++ +gcP :: Parser GCOptions+gcP =+ GCOptions+ <$> + switch+ (short 'o' <> long "ghc-old" <> help "Remove GHC versions marked as 'old'")+ <*> + switch+ (short 'p' <> long "profiling-libs" <> help "Remove profiling libs of GHC versions")+ <*> + switch+ (short 's' <> long "share-dir" <> help "Remove GHC share directories (documentation)")+ <*> + switch+ (short 'h' <> long "hls-no-ghc" <> help "Remove HLS versions that don't have a corresponding installed GHC version")+ <*> + switch+ (short 'c' <> long "cache" <> help "GC the GHCup cache")+ <*> + switch+ (short 't' <> long "tmpdirs" <> help "Remove tmpdir leftovers")++++ --------------+ --[ Footer ]--+ --------------+++gcFooter :: String+gcFooter = [s|Discussion:+ Performs garbage collection. If no switches are specified, does nothing.|]+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type GCEffects = '[ NotInstalled ]+++runGC :: MonadUnliftIO m+ => (ReaderT AppState m (VEither GCEffects a) -> m (VEither GCEffects a))+ -> Excepts GCEffects (ResourceT (ReaderT AppState m)) a+ -> m (VEither GCEffects a)+runGC runAppState =+ runAppState+ . runResourceT+ . runE+ @GCEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++gc :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => GCOptions+ -> (forall a. ReaderT AppState m (VEither GCEffects a) -> m (VEither GCEffects a))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+gc GCOptions{..} runAppState runLogger = runGC runAppState (do+ when gcOldGHC rmOldGHC+ lift $ when gcProfilingLibs rmProfilingLibs+ lift $ when gcShareDir rmShareDir+ lift $ when gcHLSNoGHC rmHLSNoGHC+ lift $ when gcCache rmCache+ lift $ when gcTmp rmTmp+ ) >>= \case+ VRight _ -> do+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 27
+ app/ghcup/GHCup/OptParse/Install.hs view
@@ -0,0 +1,464 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}++module GHCup.OptParse.Install where+++++import GHCup.OptParse.Common++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.File+import GHCup.Utils.Logger+import GHCup.Utils.String.QQ++import Codec.Archive+#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Either+import Data.Functor+import Data.Maybe+import Data.Versions hiding ( str )+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )+import URI.ByteString++import qualified Data.Text as T+++++ ----------------+ --[ Commands ]--+ ----------------+++data InstallCommand = InstallGHC InstallOptions+ | InstallCabal InstallOptions+ | InstallHLS InstallOptions+ | InstallStack InstallOptions+++++ ---------------+ --[ Options ]--+ ---------------+++data InstallOptions = InstallOptions+ { instVer :: Maybe ToolVersion+ , instPlatform :: Maybe PlatformRequest+ , instBindist :: Maybe URI+ , instSet :: Bool+ , isolateDir :: Maybe FilePath+ , forceInstall :: Bool+ }++++ ---------------+ --[ Footers ]--+ ---------------++installCabalFooter :: String+installCabalFooter = [s|Discussion:+ Installs the specified cabal-install version (or a recommended default one)+ into "~/.ghcup/bin", so it can be overwritten by later+ "cabal install cabal-install", which installs into "~/.cabal/bin" by+ default. Make sure to set up your PATH appropriately, so the cabal+ installation takes precedence.|]++++ ---------------+ --[ Parsers ]--+ ---------------++installParser :: Parser (Either InstallCommand InstallOptions)+installParser =+ (Left <$> subparser+ ( command+ "ghc"+ ( InstallGHC+ <$> info+ (installOpts (Just GHC) <**> helper)+ ( progDesc "Install GHC"+ <> footerDoc (Just $ text installGHCFooter)+ )+ )+ <> command+ "cabal"+ ( InstallCabal+ <$> info+ (installOpts (Just Cabal) <**> helper)+ ( progDesc "Install Cabal"+ <> footerDoc (Just $ text installCabalFooter)+ )+ )+ <> command+ "hls"+ ( InstallHLS+ <$> info+ (installOpts (Just HLS) <**> helper)+ ( progDesc "Install haskell-language-server"+ <> footerDoc (Just $ text installHLSFooter)+ )+ )+ <> command+ "stack"+ ( InstallStack+ <$> info+ (installOpts (Just Stack) <**> helper)+ ( progDesc "Install stack"+ <> footerDoc (Just $ text installStackFooter)+ )+ )+ )+ )+ <|> (Right <$> installOpts Nothing)+ where+ installHLSFooter :: String+ installHLSFooter = [s|Discussion:+ Installs haskell-language-server binaries and wrapper+ into "~/.ghcup/bin"++Examples:+ # install recommended HLS+ ghcup install hls|]++ installStackFooter :: String+ installStackFooter = [s|Discussion:+ Installs stack binaries into "~/.ghcup/bin"++Examples:+ # install recommended Stack+ ghcup install stack|]++ installGHCFooter :: String+ installGHCFooter = [s|Discussion:+ Installs the specified GHC version (or a recommended default one) into+ a self-contained "~/.ghcup/ghc/<ghcver>" directory+ and symlinks the ghc binaries to "~/.ghcup/bin/<binary>-<ghcver>".++Examples:+ # install recommended GHC+ ghcup install ghc++ # install latest GHC+ ghcup install ghc latest++ # install GHC 8.10.2+ ghcup install ghc 8.10.2++ # install GHC head fedora bindist+ ghcup install ghc -u https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27 head|]+++installOpts :: Maybe Tool -> Parser InstallOptions+installOpts tool =+ (\p (u, v) b is f -> InstallOptions v p u b is f)+ <$> optional+ (option+ (eitherReader platformParser)+ ( short 'p'+ <> long "platform"+ <> metavar "PLATFORM"+ <> help+ "Override for platform (triple matching ghc tarball names), e.g. x86_64-fedora27-linux"+ )+ )+ <*> ( ( (,)+ <$> optional+ (option+ (eitherReader bindistParser)+ (short 'u' <> long "url" <> metavar "BINDIST_URL" <> help+ "Install the specified version from this bindist"+ )+ )+ <*> (Just <$> toolVersionArgument Nothing tool)+ )+ <|> pure (Nothing, Nothing)+ )+ <*> flag+ False+ True+ (long "set" <> help+ "Set as active version after install"+ )+ <*> optional+ (option+ (eitherReader isolateParser)+ ( short 'i'+ <> long "isolate"+ <> metavar "DIR"+ <> help "install in an isolated dir instead of the default one"+ )+ )+ <*> switch+ (short 'f' <> long "force" <> help "Force install")+ ++++ --------------+ --[ Footer ]--+ --------------+++installToolFooter :: String+installToolFooter = [s|Discussion:+ Installs GHC or cabal. When no command is given, installs GHC+ with the specified version/tag.+ It is recommended to always specify a subcommand (ghc/cabal/hls/stack).|]+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------++type InstallEffects = '[ AlreadyInstalled+ , UnknownArchive+ , ArchiveResult+ , FileDoesNotExistError+ , CopyError+ , NotInstalled+ , DirNotEmpty+ , NoDownload+ , NotInstalled+ , BuildFailed+ , TagNotFound+ , DigestError+ , GPGError+ , DownloadFailed+ , TarDirDoesNotExist+ , NextVerNotFound+ , NoToolVersionSet+ , FileAlreadyExistsError+ , ProcessError+ ]+++runInstTool :: AppState+ -> Maybe PlatformRequest+ -> Excepts InstallEffects (ResourceT (ReaderT AppState IO)) a+ -> IO (VEither InstallEffects a)+runInstTool appstate' mInstPlatform =+ flip runReaderT (maybe appstate' (\x -> appstate'{ pfreq = x } :: AppState) mInstPlatform)+ . runResourceT+ . runE+ @InstallEffects++++ -------------------+ --[ Entrypoints ]--+ -------------------+++install :: Either InstallCommand InstallOptions -> Settings -> IO AppState -> (ReaderT LeanAppState IO () -> IO ()) -> IO ExitCode+install installCommand settings getAppState' runLogger = case installCommand of+ (Right iopts) -> do+ runLogger (logWarn "This is an old-style command for installing GHC. Use 'ghcup install ghc' instead.")+ installGHC iopts+ (Left (InstallGHC iopts)) -> installGHC iopts+ (Left (InstallCabal iopts)) -> installCabal iopts+ (Left (InstallHLS iopts)) -> installHLS iopts+ (Left (InstallStack iopts)) -> installStack iopts+ where+ installGHC :: InstallOptions -> IO ExitCode+ installGHC InstallOptions{..} = do+ s'@AppState{ dirs = Dirs{ .. } } <- liftIO getAppState'+ (case instBindist of+ Nothing -> runInstTool s' instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer GHC+ liftE $ installGHCBin+ (_tvVersion v)+ isolateDir+ forceInstall+ when instSet $ void $ liftE $ setGHC v SetGHCOnly+ pure vi+ Just uri -> do+ runInstTool s'{ settings = settings {noVerify = True}} instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer GHC+ liftE $ installGHCBindist+ (DownloadInfo uri (Just $ RegexDir "ghc-.*") "")+ (_tvVersion v)+ isolateDir+ forceInstall+ when instSet $ void $ liftE $ setGHC v SetGHCOnly+ pure vi+ )+ >>= \case+ VRight vi -> do+ runLogger $ logInfo "GHC installation successful"+ forM_ (_viPostInstall =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft (V (AlreadyInstalled _ v)) -> do+ runLogger $ logWarn $+ "GHC ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install ghc --force " <> prettyVer v <> "'"+ pure ExitSuccess+ VLeft (V (DirNotEmpty fp)) -> do+ runLogger $ logWarn $+ "Install directory " <> T.pack fp <> " is not empty. Use 'ghcup install ghc --isolate " <> T.pack fp <> " --force ..." <> "' to install regardless."+ pure $ ExitFailure 3+ VLeft err@(V (BuildFailed tmpdir _)) -> do+ case keepDirs settings of+ Never -> runLogger (logError $ T.pack $ prettyShow err)+ _ -> runLogger (logError $ T.pack (prettyShow err) <> "\n" <>+ "Check the logs at " <> T.pack logsDir <> " and the build directory " <> T.pack tmpdir <> " for more clues." <> "\n" <>+ "Make sure to clean up " <> T.pack tmpdir <> " afterwards.")+ pure $ ExitFailure 3+ VLeft e -> do+ runLogger $ do+ logError $ T.pack $ prettyShow e+ logError $ "Also check the logs in " <> T.pack logsDir+ pure $ ExitFailure 3+++ installCabal :: InstallOptions -> IO ExitCode+ installCabal InstallOptions{..} = do+ s'@AppState{ dirs = Dirs{ .. } } <- liftIO getAppState'+ (case instBindist of+ Nothing -> runInstTool s' instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer Cabal+ liftE $ installCabalBin+ (_tvVersion v)+ isolateDir+ forceInstall+ pure vi+ Just uri -> do+ runInstTool s'{ settings = settings { noVerify = True}} instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer Cabal+ liftE $ installCabalBindist + (DownloadInfo uri Nothing "")+ (_tvVersion v)+ isolateDir+ forceInstall+ pure vi+ )+ >>= \case+ VRight vi -> do+ runLogger $ logInfo "Cabal installation successful"+ forM_ (_viPostInstall =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft (V (AlreadyInstalled _ v)) -> do+ runLogger $ logWarn $+ "Cabal ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install cabal --force " <> prettyVer v <> "'"+ pure ExitSuccess+ VLeft (V (FileAlreadyExistsError fp)) -> do+ runLogger $ logWarn $+ "File " <> T.pack fp <> " already exists. Use 'ghcup install cabal --isolate " <> T.pack fp <> " --force ..." <> "' if you want to overwrite."+ pure $ ExitFailure 3+ VLeft e -> do+ runLogger $ do+ logError $ T.pack $ prettyShow e+ logError $ "Also check the logs in " <> T.pack logsDir+ pure $ ExitFailure 4++ installHLS :: InstallOptions -> IO ExitCode+ installHLS InstallOptions{..} = do+ s'@AppState{ dirs = Dirs{ .. } } <- liftIO getAppState'+ (case instBindist of+ Nothing -> runInstTool s' instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer HLS+ liftE $ installHLSBin+ (_tvVersion v)+ isolateDir+ forceInstall+ pure vi+ Just uri -> do+ runInstTool s'{ settings = settings { noVerify = True}} instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer HLS+ liftE $ installHLSBindist+ (DownloadInfo uri Nothing "")+ (_tvVersion v)+ isolateDir+ forceInstall+ pure vi+ )+ >>= \case+ VRight vi -> do+ runLogger $ logInfo "HLS installation successful"+ forM_ (_viPostInstall =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft (V (AlreadyInstalled _ v)) -> do+ runLogger $ logWarn $+ "HLS ver "+ <> prettyVer v+ <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install hls --force "+ <> prettyVer v+ <> "'"+ pure ExitSuccess+ VLeft (V (FileAlreadyExistsError fp)) -> do+ runLogger $ logWarn $+ "File " <> T.pack fp <> " already exists. Use 'ghcup install hls --isolate " <> T.pack fp <> " --force ..." <> "' if you want to overwrite."+ pure $ ExitFailure 3+ VLeft e -> do+ runLogger $ do+ logError $ T.pack $ prettyShow e+ logError $ "Also check the logs in " <> T.pack logsDir+ pure $ ExitFailure 4++ installStack :: InstallOptions -> IO ExitCode+ installStack InstallOptions{..} = do+ s'@AppState{ dirs = Dirs{ .. } } <- liftIO getAppState'+ (case instBindist of+ Nothing -> runInstTool s' instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer Stack+ liftE $ installStackBin+ (_tvVersion v)+ isolateDir+ forceInstall+ pure vi+ Just uri -> do+ runInstTool s'{ settings = settings { noVerify = True}} instPlatform $ do+ (v, vi) <- liftE $ fromVersion instVer Stack+ liftE $ installStackBindist+ (DownloadInfo uri Nothing "")+ (_tvVersion v)+ isolateDir+ forceInstall+ pure vi+ )+ >>= \case+ VRight vi -> do+ runLogger $ logInfo "Stack installation successful"+ forM_ (_viPostInstall =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft (V (AlreadyInstalled _ v)) -> do+ runLogger $ logWarn $+ "Stack ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install stack --force " <> prettyVer v <> "'"+ pure ExitSuccess+ VLeft (V (FileAlreadyExistsError fp)) -> do+ runLogger $ logWarn $+ "File " <> T.pack fp <> " already exists. Use 'ghcup install stack --isolate " <> T.pack fp <> " --force ..." <> "' if you want to overwrite."+ pure $ ExitFailure 3+ VLeft e -> do+ runLogger $ do+ logError $ T.pack $ prettyShow e+ logError $ "Also check the logs in " <> T.pack logsDir+ pure $ ExitFailure 4+
+ app/ghcup/GHCup/OptParse/List.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.List where+++++import GHCup+import GHCup.Utils.Prelude+import GHCup.Types+import GHCup.OptParse.Common++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Char+import Data.List ( intercalate, sort )+import Data.Functor+import Data.Maybe+import Data.Versions hiding ( str )+import Data.Void+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import System.Console.Pretty hiding ( color )++import qualified Data.Text as T+import qualified System.Console.Pretty as Pretty+import Control.Exception.Safe (MonadMask)+import qualified Text.Megaparsec as MP+import qualified Text.Megaparsec.Char as MPC+++++++ ---------------+ --[ Options ]--+ ---------------+++data ListOptions = ListOptions+ { loTool :: Maybe Tool+ , lCriteria :: Maybe ListCriteria+ , lRawFormat :: Bool+ }+++++ ---------------+ --[ Parsers ]--+ ---------------++ +listOpts :: Parser ListOptions+listOpts =+ ListOptions+ <$> optional+ (option+ (eitherReader toolParser)+ (short 't' <> long "tool" <> metavar "<ghc|cabal|hls|stack>" <> help+ "Tool to list versions for. Default is all"+ )+ )+ <*> optional+ (option+ (eitherReader criteriaParser)+ ( short 'c'+ <> long "show-criteria"+ <> metavar "<installed|set|available>"+ <> help "Show only installed/set/available tool versions"+ )+ )+ <*> switch+ (short 'r' <> long "raw-format" <> help "More machine-parsable format"+ )+++++ -----------------+ --[ Utilities ]--+ -----------------+++printListResult :: Bool -> Bool -> [ListResult] -> IO ()+printListResult no_color raw lr = do++ let+ color | raw || no_color = (\_ x -> x)+ | otherwise = Pretty.color++ let+ printTag Recommended = color Green "recommended"+ printTag Latest = color Yellow "latest"+ printTag Prerelease = color Red "prerelease"+ printTag (Base pvp'') = "base-" ++ T.unpack (prettyPVP pvp'')+ printTag (UnknownTag t ) = t+ printTag Old = ""++ let+ rows =+ (\x -> if raw+ then x+ else [color Green "", "Tool", "Version", "Tags", "Notes"] : x+ )+ . fmap+ (\ListResult {..} ->+ let marks = if+ | lSet -> (color Green (if isWindows then "IS" else "✔✔"))+ | lInstalled -> (color Green (if isWindows then "I " else "✓ "))+ | otherwise -> (color Red (if isWindows then "X " else "✗ "))+ in+ (if raw then [] else [marks])+ ++ [ fmap toLower . show $ lTool+ , case lCross of+ Nothing -> T.unpack . prettyVer $ lVer+ Just c -> T.unpack (c <> "-" <> prettyVer lVer)+ , intercalate "," (filter (/= "") . fmap printTag $ sort lTag)+ , intercalate ","+ $ (if hlsPowered+ then [color Green "hls-powered"]+ else mempty+ )+ ++ (if fromSrc then [color Blue "compiled"] else mempty)+ ++ (if lStray then [color Yellow "stray"] else mempty)+ ++ (if lNoBindist+ then [color Red "no-bindist"]+ else mempty+ )+ ]+ )+ $ lr+ let cols =+ foldr (\xs ys -> zipWith (:) xs ys) (replicate (length rows) []) rows+ lengths = fmap (maximum . fmap strWidth) cols+ padded = fmap (\xs -> zipWith padTo xs lengths) rows++ forM_ padded $ \row -> putStrLn $ unwords row+ where++ padTo str' x =+ let lstr = strWidth str'+ add' = x - lstr+ in if add' < 0 then str' else str' ++ replicate add' ' '++ -- | Calculate the render width of a string, considering+ -- wide characters (counted as double width), ANSI escape codes+ -- (not counted), and line breaks (in a multi-line string, the longest+ -- line determines the width).+ strWidth :: String -> Int+ strWidth =+ maximum+ . (0 :)+ . map (foldr (\a b -> charWidth a + b) 0)+ . lines+ . stripAnsi++ -- | Strip ANSI escape sequences from a string.+ --+ -- >>> stripAnsi "\ESC[31m-1\ESC[m"+ -- "-1"+ stripAnsi :: String -> String+ stripAnsi s' =+ case+ MP.parseMaybe (many $ "" <$ MP.try ansi <|> pure <$> MP.anySingle) s'+ of+ Nothing -> error "Bad ansi escape" -- PARTIAL: should not happen+ Just xs -> concat xs+ where+ -- This parses lots of invalid ANSI escape codes, but that should be fine+ ansi =+ MPC.string "\ESC[" *> digitSemicolons *> suffix MP.<?> "ansi" :: MP.Parsec+ Void+ String+ Char+ digitSemicolons = MP.takeWhileP Nothing (\c -> isDigit c || c == ';')+ suffix = MP.oneOf ['A', 'B', 'C', 'D', 'H', 'J', 'K', 'f', 'm', 's', 'u']++ -- | Get the designated render width of a character: 0 for a combining+ -- character, 1 for a regular character, 2 for a wide character.+ -- (Wide characters are rendered as exactly double width in apps and+ -- fonts that support it.) (From Pandoc.)+ charWidth :: Char -> Int+ charWidth c = case c of+ _ | c < '\x0300' -> 1+ | c >= '\x0300' && c <= '\x036F' -> 0+ | -- combining+ c >= '\x0370' && c <= '\x10FC' -> 1+ | c >= '\x1100' && c <= '\x115F' -> 2+ | c >= '\x1160' && c <= '\x11A2' -> 1+ | c >= '\x11A3' && c <= '\x11A7' -> 2+ | c >= '\x11A8' && c <= '\x11F9' -> 1+ | c >= '\x11FA' && c <= '\x11FF' -> 2+ | c >= '\x1200' && c <= '\x2328' -> 1+ | c >= '\x2329' && c <= '\x232A' -> 2+ | c >= '\x232B' && c <= '\x2E31' -> 1+ | c >= '\x2E80' && c <= '\x303E' -> 2+ | c == '\x303F' -> 1+ | c >= '\x3041' && c <= '\x3247' -> 2+ | c >= '\x3248' && c <= '\x324F' -> 1+ | -- ambiguous+ c >= '\x3250' && c <= '\x4DBF' -> 2+ | c >= '\x4DC0' && c <= '\x4DFF' -> 1+ | c >= '\x4E00' && c <= '\xA4C6' -> 2+ | c >= '\xA4D0' && c <= '\xA95F' -> 1+ | c >= '\xA960' && c <= '\xA97C' -> 2+ | c >= '\xA980' && c <= '\xABF9' -> 1+ | c >= '\xAC00' && c <= '\xD7FB' -> 2+ | c >= '\xD800' && c <= '\xDFFF' -> 1+ | c >= '\xE000' && c <= '\xF8FF' -> 1+ | -- ambiguous+ c >= '\xF900' && c <= '\xFAFF' -> 2+ | c >= '\xFB00' && c <= '\xFDFD' -> 1+ | c >= '\xFE00' && c <= '\xFE0F' -> 1+ | -- ambiguous+ c >= '\xFE10' && c <= '\xFE19' -> 2+ | c >= '\xFE20' && c <= '\xFE26' -> 1+ | c >= '\xFE30' && c <= '\xFE6B' -> 2+ | c >= '\xFE70' && c <= '\xFEFF' -> 1+ | c >= '\xFF01' && c <= '\xFF60' -> 2+ | c >= '\xFF61' && c <= '\x16A38' -> 1+ | c >= '\x1B000' && c <= '\x1B001' -> 2+ | c >= '\x1D000' && c <= '\x1F1FF' -> 1+ | c >= '\x1F200' && c <= '\x1F251' -> 2+ | c >= '\x1F300' && c <= '\x1F773' -> 1+ | c >= '\x20000' && c <= '\x3FFFD' -> 2+ | otherwise -> 1++++++ ------------------+ --[ Entrypoint ]--+ ------------------++++list :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => ListOptions+ -> Bool+ -> (ReaderT AppState m ExitCode -> m ExitCode)+ -> m ExitCode+list ListOptions{..} no_color runAppState =+ runAppState (do+ l <- listVersions loTool lCriteria+ liftIO $ printListResult no_color lRawFormat l+ pure ExitSuccess+ )
+ app/ghcup/GHCup/OptParse/Nuke.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Nuke where+++++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import Control.DeepSeq+import Control.Exception+import Control.Concurrent (threadDelay)+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type NukeEffects = '[ NotInstalled ]+++runNuke :: AppState+ -> Excepts NukeEffects (ReaderT AppState m) a+ -> m (VEither NukeEffects a)+runNuke s' =+ flip runReaderT s' . runE @NukeEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++nuke :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => IO AppState+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+nuke appState runLogger = do+ s' <- liftIO appState+ void $ liftIO $ evaluate $ force s'+ runNuke s' (do+ lift $ logWarn "WARNING: This will remove GHCup and all installed components from your system."+ lift $ logWarn "Waiting 10 seconds before commencing, if you want to cancel it, now would be the time."+ liftIO $ threadDelay 10000000 -- wait 10s++ lift $ logInfo "Initiating Nuclear Sequence 🚀🚀🚀"+ lift $ logInfo "Nuking in 3...2...1"+ + lInstalled <- lift $ listVersions Nothing (Just ListInstalled)++ forM_ lInstalled (liftE . rmTool)++ lift rmGhcupDirs++ ) >>= \case+ VRight leftOverFiles+ | null leftOverFiles -> do+ runLogger $ logInfo "Nuclear Annihilation complete!"+ pure ExitSuccess+ | otherwise -> do+ runLogger $ logError "These Files have survived Nuclear Annihilation, you may remove them manually."+ liftIO $ forM_ leftOverFiles putStrLn+ pure ExitSuccess++ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 15
+ app/ghcup/GHCup/OptParse/Prefetch.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Prefetch where+++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger+import GHCup.OptParse.Common+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import GHCup.Utils.Prelude+import GHCup.Download (getDownloadsF)+++++ ----------------+ --[ Commands ]--+ ----------------+++data PrefetchCommand = PrefetchGHC PrefetchGHCOptions (Maybe ToolVersion)+ | PrefetchCabal PrefetchOptions (Maybe ToolVersion)+ | PrefetchHLS PrefetchOptions (Maybe ToolVersion)+ | PrefetchStack PrefetchOptions (Maybe ToolVersion)+ | PrefetchMetadata++++++ ---------------+ --[ Options ]--+ ---------------+++data PrefetchOptions = PrefetchOptions {+ pfCacheDir :: Maybe FilePath+}++data PrefetchGHCOptions = PrefetchGHCOptions {+ pfGHCSrc :: Bool+ , pfGHCCacheDir :: Maybe FilePath+}++++ ---------------+ --[ Parsers ]--+ ---------------++ +prefetchP :: Parser PrefetchCommand+prefetchP = subparser+ ( command+ "ghc"+ (info + (PrefetchGHC+ <$> (PrefetchGHCOptions+ <$> ( switch (short 's' <> long "source" <> help "Download source tarball instead of bindist") <**> helper )+ <*> optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))+ <*> optional (toolVersionArgument Nothing (Just GHC)) )+ ( progDesc "Download GHC assets for installation")+ )+ <>+ command+ "cabal"+ (info + (PrefetchCabal+ <$> fmap PrefetchOptions (optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))+ <*> ( optional (toolVersionArgument Nothing (Just Cabal)) <**> helper ))+ ( progDesc "Download cabal assets for installation")+ )+ <>+ command+ "hls"+ (info + (PrefetchHLS+ <$> fmap PrefetchOptions (optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))+ <*> ( optional (toolVersionArgument Nothing (Just HLS)) <**> helper ))+ ( progDesc "Download HLS assets for installation")+ )+ <>+ command+ "stack"+ (info + (PrefetchStack+ <$> fmap PrefetchOptions (optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))+ <*> ( optional (toolVersionArgument Nothing (Just Stack)) <**> helper ))+ ( progDesc "Download stack assets for installation")+ )+ <>+ command+ "metadata"+ (PrefetchMetadata <$ info+ helper+ ( progDesc "Download ghcup's metadata, needed for various operations")+ )+ )++++ --------------+ --[ Footer ]--+ --------------+++prefetchFooter :: String+prefetchFooter = [s|Discussion:+ Prefetches tools or assets into "~/.ghcup/cache" directory. This can+ be then combined later with '--offline' flag, ensuring all assets that+ are required for offline use have been prefetched.++Examples:+ ghcup prefetch metadata+ ghcup prefetch ghc 8.10.5+ ghcup --offline install ghc 8.10.5|]++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type PrefetchEffects = '[ TagNotFound+ , NextVerNotFound+ , NoToolVersionSet+ , NoDownload+ , DigestError+ , GPGError+ , DownloadFailed+ , JSONError+ , FileDoesNotExistError ]+++runPrefetch :: MonadUnliftIO m+ => (ReaderT AppState m (VEither PrefetchEffects a) -> m (VEither PrefetchEffects a))+ -> Excepts PrefetchEffects (ResourceT (ReaderT AppState m)) a+ -> m (VEither PrefetchEffects a)+runPrefetch runAppState =+ runAppState+ . runResourceT+ . runE+ @PrefetchEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++prefetch :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => PrefetchCommand+ -> (forall a. ReaderT AppState m (VEither PrefetchEffects a) -> m (VEither PrefetchEffects a))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+prefetch prefetchCommand runAppState runLogger =+ runPrefetch runAppState (do+ case prefetchCommand of+ PrefetchGHC+ (PrefetchGHCOptions pfGHCSrc pfCacheDir) mt -> do+ forM_ pfCacheDir (liftIO . createDirRecursive')+ (v, _) <- liftE $ fromVersion mt GHC+ if pfGHCSrc+ then liftE $ fetchGHCSrc (_tvVersion v) pfCacheDir+ else liftE $ fetchToolBindist (_tvVersion v) GHC pfCacheDir+ PrefetchCabal PrefetchOptions {pfCacheDir} mt -> do+ forM_ pfCacheDir (liftIO . createDirRecursive')+ (v, _) <- liftE $ fromVersion mt Cabal+ liftE $ fetchToolBindist (_tvVersion v) Cabal pfCacheDir+ PrefetchHLS PrefetchOptions {pfCacheDir} mt -> do+ forM_ pfCacheDir (liftIO . createDirRecursive')+ (v, _) <- liftE $ fromVersion mt HLS+ liftE $ fetchToolBindist (_tvVersion v) HLS pfCacheDir+ PrefetchStack PrefetchOptions {pfCacheDir} mt -> do+ forM_ pfCacheDir (liftIO . createDirRecursive')+ (v, _) <- liftE $ fromVersion mt Stack+ liftE $ fetchToolBindist (_tvVersion v) Stack pfCacheDir+ PrefetchMetadata -> do+ _ <- liftE getDownloadsF+ pure ""+ ) >>= \case+ VRight _ -> do+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 15
+ app/ghcup/GHCup/OptParse/Rm.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Rm where+++++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Types.Optics+import GHCup.Utils+import GHCup.Utils.Logger+import GHCup.OptParse.Common+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Data.Versions hiding ( str )+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+++++ ----------------+ --[ Commands ]--+ ----------------+++data RmCommand = RmGHC RmOptions+ | RmCabal Version+ | RmHLS Version+ | RmStack Version+++++ ---------------+ --[ Options ]--+ ---------------+++data RmOptions = RmOptions+ { ghcVer :: GHCTargetVersion+ }+++++ ---------------+ --[ Parsers ]--+ ---------------++ +rmParser :: Parser (Either RmCommand RmOptions)+rmParser =+ (Left <$> subparser+ ( command+ "ghc"+ (RmGHC <$> info (rmOpts (Just GHC) <**> helper) (progDesc "Remove GHC version"))+ <> command+ "cabal"+ ( RmCabal+ <$> info (versionParser' (Just ListInstalled) (Just Cabal) <**> helper)+ (progDesc "Remove Cabal version")+ )+ <> command+ "hls"+ ( RmHLS+ <$> info (versionParser' (Just ListInstalled) (Just HLS) <**> helper)+ (progDesc "Remove haskell-language-server version")+ )+ <> command+ "stack"+ ( RmStack+ <$> info (versionParser' (Just ListInstalled) (Just Stack) <**> helper)+ (progDesc "Remove stack version")+ )+ )+ )+ <|> (Right <$> rmOpts Nothing)++++rmOpts :: Maybe Tool -> Parser RmOptions+rmOpts tool = RmOptions <$> versionArgument (Just ListInstalled) tool+++++ --------------+ --[ Footer ]--+ --------------+++rmFooter :: String+rmFooter = [s|Discussion:+ Remove the given GHC or cabal version. When no command is given,+ defaults to removing GHC with the specified version.+ It is recommended to always specify a subcommand (ghc/cabal/hls/stack).|]+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type RmEffects = '[ NotInstalled ]+++runRm :: (ReaderT env m (VEither RmEffects a) -> m (VEither RmEffects a))+ -> Excepts RmEffects (ReaderT env m) a+ -> m (VEither RmEffects a)+runRm runAppState =+ runAppState+ . runE+ @RmEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++rm :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => Either RmCommand RmOptions+ -> (ReaderT AppState m (VEither RmEffects (Maybe VersionInfo))+ -> m (VEither RmEffects (Maybe VersionInfo)))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+rm rmCommand runAppState runLogger = case rmCommand of+ (Right rmopts) -> do+ runLogger (logWarn "This is an old-style command for removing GHC. Use 'ghcup rm ghc' instead.")+ rmGHC' rmopts+ (Left (RmGHC rmopts)) -> rmGHC' rmopts+ (Left (RmCabal rmopts)) -> rmCabal' rmopts+ (Left (RmHLS rmopts)) -> rmHLS' rmopts+ (Left (RmStack rmopts)) -> rmStack' rmopts++ where+ rmGHC' RmOptions{..} =+ runRm runAppState (do+ liftE $+ rmGHCVer ghcVer+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ pure (getVersionInfo (_tvVersion ghcVer) GHC dls)+ )+ >>= \case+ VRight vi -> do+ forM_ (_viPostRemove =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 7++ rmCabal' tv =+ runRm runAppState (do+ liftE $+ rmCabalVer tv+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ pure (getVersionInfo tv Cabal dls)+ )+ >>= \case+ VRight vi -> do+ forM_ (_viPostRemove =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 15++ rmHLS' tv =+ runRm runAppState (do+ liftE $+ rmHLSVer tv+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ pure (getVersionInfo tv HLS dls)+ )+ >>= \case+ VRight vi -> do+ forM_ (_viPostRemove =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 15++ rmStack' tv =+ runRm runAppState (do+ liftE $+ rmStackVer tv+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ pure (getVersionInfo tv Stack dls)+ )+ >>= \case+ VRight vi -> do+ forM_ (_viPostRemove =<< vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 15+
+ app/ghcup/GHCup/OptParse/Set.hs view
@@ -0,0 +1,349 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Set where+++++import GHCup.OptParse.Common++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Either+import Data.Functor+import Data.Maybe+import Data.Versions hiding ( str )+import GHC.Unicode+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Data.Bifunctor (second)+import Control.Exception.Safe (MonadMask)+import GHCup.Types.Optics+++++ ----------------+ --[ Commands ]--+ ----------------+++data SetCommand = SetGHC SetOptions+ | SetCabal SetOptions+ | SetHLS SetOptions+ | SetStack SetOptions+++++ ---------------+ --[ Options ]--+ ---------------+++data SetOptions = SetOptions+ { sToolVer :: SetToolVersion+ }+++++ ---------------+ --[ Parsers ]--+ ---------------++ +setParser :: Parser (Either SetCommand SetOptions)+setParser =+ (Left <$> subparser+ ( command+ "ghc"+ ( SetGHC+ <$> info+ (setOpts (Just GHC) <**> helper)+ ( progDesc "Set GHC version"+ <> footerDoc (Just $ text setGHCFooter)+ )+ )+ <> command+ "cabal"+ ( SetCabal+ <$> info+ (setOpts (Just Cabal) <**> helper)+ ( progDesc "Set Cabal version"+ <> footerDoc (Just $ text setCabalFooter)+ )+ )+ <> command+ "hls"+ ( SetHLS+ <$> info+ (setOpts (Just HLS) <**> helper)+ ( progDesc "Set haskell-language-server version"+ <> footerDoc (Just $ text setHLSFooter)+ )+ )+ <> command+ "stack"+ ( SetStack+ <$> info+ (setOpts (Just Stack) <**> helper)+ ( progDesc "Set stack version"+ <> footerDoc (Just $ text setStackFooter)+ )+ )+ )+ )+ <|> (Right <$> setOpts Nothing)+ where+ setGHCFooter :: String+ setGHCFooter = [s|Discussion:+ Sets the the current GHC version by creating non-versioned+ symlinks for all ghc binaries of the specified version in+ "~/.ghcup/bin/<binary>".|]++ setCabalFooter :: String+ setCabalFooter = [s|Discussion:+ Sets the the current Cabal version.|]++ setStackFooter :: String+ setStackFooter = [s|Discussion:+ Sets the the current Stack version.|]++ setHLSFooter :: String+ setHLSFooter = [s|Discussion:+ Sets the the current haskell-language-server version.|]+++setOpts :: Maybe Tool -> Parser SetOptions+setOpts tool = SetOptions <$>+ (fromMaybe SetRecommended <$>+ optional (setVersionArgument (Just ListInstalled) tool))++setVersionArgument :: Maybe ListCriteria -> Maybe Tool -> Parser SetToolVersion+setVersionArgument criteria tool =+ argument (eitherReader setEither)+ (metavar "VERSION|TAG|next"+ <> completer (tagCompleter (fromMaybe GHC tool) ["next"])+ <> foldMap (completer . versionCompleter criteria) tool)+ where+ setEither s' =+ parseSet s'+ <|> second SetToolTag (tagEither s')+ <|> second SetToolVersion (tVersionEither s')+ parseSet s' = case fmap toLower s' of+ "next" -> Right SetNext+ other -> Left $ "Unknown tag/version " <> other+++++ --------------+ --[ Footer ]--+ --------------+++setFooter :: String+setFooter = [s|Discussion:+ Sets the currently active GHC or cabal version. When no command is given,+ defaults to setting GHC with the specified version/tag (if no tag+ is given, sets GHC to 'recommended' version).+ It is recommended to always specify a subcommand (ghc/cabal/hls/stack).|]++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type SetGHCEffects = '[ FileDoesNotExistError+ , NotInstalled+ , TagNotFound+ , NextVerNotFound+ , NoToolVersionSet]++runSetGHC :: (ReaderT env m (VEither SetGHCEffects a) -> m (VEither SetGHCEffects a))+ -> Excepts SetGHCEffects (ReaderT env m) a+ -> m (VEither SetGHCEffects a)+runSetGHC runAppState =+ runAppState+ . runE+ @SetGHCEffects+++type SetCabalEffects = '[ NotInstalled+ , TagNotFound+ , NextVerNotFound+ , NoToolVersionSet]++runSetCabal :: (ReaderT env m (VEither SetCabalEffects a) -> m (VEither SetCabalEffects a))+ -> Excepts SetCabalEffects (ReaderT env m) a+ -> m (VEither SetCabalEffects a)+runSetCabal runAppState =+ runAppState+ . runE+ @SetCabalEffects+++type SetHLSEffects = '[ NotInstalled+ , TagNotFound+ , NextVerNotFound+ , NoToolVersionSet]++runSetHLS :: (ReaderT env m (VEither SetHLSEffects a) -> m (VEither SetHLSEffects a))+ -> Excepts SetHLSEffects (ReaderT env m) a+ -> m (VEither SetHLSEffects a)+runSetHLS runAppState =+ runAppState+ . runE+ @SetHLSEffects+++type SetStackEffects = '[ NotInstalled+ , TagNotFound+ , NextVerNotFound+ , NoToolVersionSet]++runSetStack :: (ReaderT env m (VEither SetStackEffects a) -> m (VEither SetStackEffects a))+ -> Excepts SetStackEffects (ReaderT env m) a+ -> m (VEither SetStackEffects a)+runSetStack runAppState =+ runAppState+ . runE+ @SetStackEffects++++ -------------------+ --[ Entrypoints ]--+ -------------------+++set :: forall m env.+ ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ , HasDirs env+ , HasLog env+ )+ => Either SetCommand SetOptions+ -> (forall eff . ReaderT AppState m (VEither eff GHCTargetVersion)+ -> m (VEither eff GHCTargetVersion))+ -> (forall eff. ReaderT env m (VEither eff GHCTargetVersion)+ -> m (VEither eff GHCTargetVersion))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+set setCommand runAppState runLeanAppState runLogger = case setCommand of+ (Right sopts) -> do+ runLogger (logWarn "This is an old-style command for setting GHC. Use 'ghcup set ghc' instead.")+ setGHC' sopts+ (Left (SetGHC sopts)) -> setGHC' sopts+ (Left (SetCabal sopts)) -> setCabal' sopts+ (Left (SetHLS sopts)) -> setHLS' sopts+ (Left (SetStack sopts)) -> setStack' sopts++ where+ setGHC' :: SetOptions+ -> m ExitCode+ setGHC' SetOptions{ sToolVer } =+ case sToolVer of+ (SetToolVersion v) -> runSetGHC runLeanAppState (liftE $ setGHC v SetGHCOnly >> pure v)+ _ -> runSetGHC runAppState (do+ v <- liftE $ fst <$> fromVersion' sToolVer GHC+ liftE $ setGHC v SetGHCOnly+ )+ >>= \case+ VRight GHCTargetVersion{..} -> do+ runLogger+ $ logInfo $+ "GHC " <> prettyVer _tvVersion <> " successfully set as default version" <> maybe "" (" for cross target " <>) _tvTarget+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 5+++ setCabal' :: SetOptions+ -> m ExitCode+ setCabal' SetOptions{ sToolVer } =+ case sToolVer of+ (SetToolVersion v) -> runSetCabal runLeanAppState (liftE $ setCabal (_tvVersion v) >> pure v)+ _ -> runSetCabal runAppState (do+ v <- liftE $ fst <$> fromVersion' sToolVer Cabal+ liftE $ setCabal (_tvVersion v)+ pure v+ )+ >>= \case+ VRight GHCTargetVersion{..} -> do+ runLogger+ $ logInfo $+ "Cabal " <> prettyVer _tvVersion <> " successfully set as default version"+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 14++ setHLS' :: SetOptions+ -> m ExitCode+ setHLS' SetOptions{ sToolVer } =+ case sToolVer of+ (SetToolVersion v) -> runSetHLS runLeanAppState (liftE $ setHLS (_tvVersion v) >> pure v)+ _ -> runSetHLS runAppState (do+ v <- liftE $ fst <$> fromVersion' sToolVer HLS+ liftE $ setHLS (_tvVersion v)+ pure v+ )+ >>= \case+ VRight GHCTargetVersion{..} -> do+ runLogger+ $ logInfo $+ "HLS " <> prettyVer _tvVersion <> " successfully set as default version"+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 14+++ setStack' :: SetOptions+ -> m ExitCode+ setStack' SetOptions{ sToolVer } =+ case sToolVer of+ (SetToolVersion v) -> runSetStack runLeanAppState (liftE $ setStack (_tvVersion v) >> pure v)+ _ -> runSetStack runAppState (do+ v <- liftE $ fst <$> fromVersion' sToolVer Stack+ liftE $ setStack (_tvVersion v)+ pure v+ )+ >>= \case+ VRight GHCTargetVersion{..} -> do+ runLogger+ $ logInfo $+ "Stack " <> prettyVer _tvVersion <> " successfully set as default version"+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 14
+ app/ghcup/GHCup/OptParse/ToolRequirements.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.ToolRequirements where+++import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import qualified Data.Text.IO as T+import Control.Exception.Safe (MonadMask)+import GHCup.Types.Optics+import GHCup.Platform+import GHCup.Utils.Prelude+import GHCup.Requirements+import System.IO++++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type ToolRequirementsEffects = '[ NoCompatiblePlatform , DistroNotFound , NoToolRequirements ]+++runToolRequirements :: (ReaderT env m (VEither ToolRequirementsEffects a) -> m (VEither ToolRequirementsEffects a))+ -> Excepts ToolRequirementsEffects (ReaderT env m) a+ -> m (VEither ToolRequirementsEffects a)+runToolRequirements runAppState =+ runAppState+ . runE+ @ToolRequirementsEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++toolRequirements :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ , Alternative m+ )+ => (ReaderT AppState m (VEither ToolRequirementsEffects ()) -> m (VEither ToolRequirementsEffects ()))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+toolRequirements runAppState runLogger = runToolRequirements runAppState (do+ GHCupInfo { .. } <- lift getGHCupInfo+ platform' <- liftE getPlatform+ req <- getCommonRequirements platform' _toolRequirements ?? NoToolRequirements+ liftIO $ T.hPutStr stdout (prettyRequirements req)+ )+ >>= \case+ VRight _ -> pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 12
+ app/ghcup/GHCup/OptParse/UnSet.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.UnSet where+++++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import GHCup.Types.Optics+++++ ----------------+ --[ Commands ]--+ ----------------+++data UnsetCommand = UnsetGHC UnsetOptions+ | UnsetCabal UnsetOptions+ | UnsetHLS UnsetOptions+ | UnsetStack UnsetOptions+++++ ---------------+ --[ Options ]--+ ---------------+++data UnsetOptions = UnsetOptions+ { sToolVer :: Maybe T.Text -- target platform triple+ }+++++ ---------------+ --[ Parsers ]--+ ---------------++ +unsetParser :: Parser UnsetCommand+unsetParser =+ subparser+ ( command+ "ghc"+ ( UnsetGHC+ <$> info+ (unsetOpts <**> helper)+ ( progDesc "Unset GHC version"+ <> footerDoc (Just $ text unsetGHCFooter)+ )+ )+ <> command+ "cabal"+ ( UnsetCabal+ <$> info+ (unsetOpts <**> helper)+ ( progDesc "Unset Cabal version"+ <> footerDoc (Just $ text unsetCabalFooter)+ )+ )+ <> command+ "hls"+ ( UnsetHLS+ <$> info+ (unsetOpts <**> helper)+ ( progDesc "Unset haskell-language-server version"+ <> footerDoc (Just $ text unsetHLSFooter)+ )+ )+ <> command+ "stack"+ ( UnsetStack+ <$> info+ (unsetOpts <**> helper)+ ( progDesc "Unset stack version"+ <> footerDoc (Just $ text unsetStackFooter)+ )+ )+ )+ where+ unsetGHCFooter :: String+ unsetGHCFooter = [s|Discussion:+ Unsets the the current GHC version. That means there won't+ be a ~/.ghcup/bin/ghc anymore.|]++ unsetCabalFooter :: String+ unsetCabalFooter = [s|Discussion:+ Unsets the the current Cabal version.|]++ unsetStackFooter :: String+ unsetStackFooter = [s|Discussion:+ Unsets the the current Stack version.|]++ unsetHLSFooter :: String+ unsetHLSFooter = [s|Discussion:+ Unsets the the current haskell-language-server version.|]+++unsetOpts :: Parser UnsetOptions+unsetOpts = UnsetOptions . fmap T.pack <$> optional (argument str (metavar "TRIPLE"))++++ --------------+ --[ Footer ]--+ --------------+++unsetFooter :: String+unsetFooter = [s|Discussion:+ Unsets the currently active GHC or cabal version.|]+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type UnsetEffects = '[ NotInstalled ]+++runUnsetGHC :: (ReaderT env m (VEither UnsetEffects a) -> m (VEither UnsetEffects a))+ -> Excepts UnsetEffects (ReaderT env m) a+ -> m (VEither UnsetEffects a)+runUnsetGHC runLeanAppState =+ runLeanAppState+ . runE+ @UnsetEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++unset :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ , HasDirs env+ , HasLog env+ )+ => UnsetCommand+ -> (ReaderT env m (VEither UnsetEffects ())+ -> m (VEither UnsetEffects ()))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+unset unsetCommand runLeanAppState runLogger = case unsetCommand of+ (UnsetGHC (UnsetOptions triple)) -> runUnsetGHC runLeanAppState (unsetGHC triple)+ >>= \case+ VRight _ -> do+ runLogger $ logInfo "GHC successfully unset"+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 14+ (UnsetCabal (UnsetOptions _)) -> do+ void $ runLeanAppState (VRight <$> unsetCabal)+ runLogger $ logInfo "Cabal successfully unset"+ pure ExitSuccess+ (UnsetHLS (UnsetOptions _)) -> do+ void $ runLeanAppState (VRight <$> unsetHLS)+ runLogger $ logInfo "HLS successfully unset"+ pure ExitSuccess+ (UnsetStack (UnsetOptions _)) -> do+ void $ runLeanAppState (VRight <$> unsetStack)+ runLogger $ logInfo "Stack successfully unset"+ pure ExitSuccess
+ app/ghcup/GHCup/OptParse/Upgrade.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Upgrade where+++++import GHCup+import GHCup.Errors+import GHCup.Types+import GHCup.Utils.Logger++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import System.Environment+import GHCup.Utils+import System.FilePath+import GHCup.Types.Optics+import Data.Versions hiding (str)+++++++ ---------------+ --[ Options ]--+ ---------------+++data UpgradeOpts = UpgradeInplace+ | UpgradeAt FilePath+ | UpgradeGHCupDir+ deriving Show+++++ ---------------+ --[ Parsers ]--+ ---------------++ +upgradeOptsP :: Parser UpgradeOpts+upgradeOptsP =+ flag'+ UpgradeInplace+ (short 'i' <> long "inplace" <> help+ "Upgrade ghcup in-place (wherever it's at)"+ )+ <|> ( UpgradeAt+ <$> option+ str+ (short 't' <> long "target" <> metavar "TARGET_DIR" <> help+ "Absolute filepath to write ghcup into"+ )+ )+ <|> pure UpgradeGHCupDir+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type UpgradeEffects = '[ DigestError+ , GPGError+ , NoDownload+ , NoUpdate+ , FileDoesNotExistError+ , CopyError+ , DownloadFailed+ ]+++runUpgrade :: MonadUnliftIO m+ => (ReaderT AppState m (VEither UpgradeEffects a) -> m (VEither UpgradeEffects a))+ -> Excepts UpgradeEffects (ResourceT (ReaderT AppState m)) a+ -> m (VEither UpgradeEffects a)+runUpgrade runAppState =+ runAppState+ . runResourceT+ . runE+ @UpgradeEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++upgrade :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => UpgradeOpts+ -> Bool+ -> (forall a. ReaderT AppState m (VEither UpgradeEffects a) -> m (VEither UpgradeEffects a))+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+upgrade uOpts force' runAppState runLogger = do+ VRight Dirs{ .. } <- runAppState (VRight <$> getDirs)+ target <- case uOpts of+ UpgradeInplace -> Just <$> liftIO getExecutablePath+ (UpgradeAt p) -> pure $ Just p+ UpgradeGHCupDir -> pure (Just (binDir </> "ghcup" <> exeExt))++ runUpgrade runAppState (do+ v' <- liftE $ upgradeGHCup target force'+ GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo+ pure (v', dls)+ ) >>= \case+ VRight (v', dls) -> do+ let pretty_v = prettyVer v'+ let vi = fromJust $ snd <$> getLatest dls GHCup+ runLogger $ logInfo $+ "Successfully upgraded GHCup to version " <> pretty_v+ forM_ (_viPostInstall vi) $ \msg ->+ runLogger $ logInfo msg+ pure ExitSuccess+ VLeft (V NoUpdate) -> do+ runLogger $ logWarn "No GHCup update available"+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 11
+ app/ghcup/GHCup/OptParse/Whereis.hs view
@@ -0,0 +1,319 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE RankNTypes #-}++module GHCup.OptParse.Whereis where+++++import GHCup+import GHCup.Errors+import GHCup.OptParse.Common+import GHCup.Types+import GHCup.Utils.Logger+import GHCup.Utils.String.QQ++#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Control.Monad.Trans.Resource+import Data.Functor+import Data.Maybe+import Haskus.Utils.Variant.Excepts+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Exit+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.Text as T+import Control.Exception.Safe (MonadMask)+import System.FilePath (takeDirectory)+import GHCup.Types.Optics+++++ ----------------+ --[ Commands ]--+ ----------------+++data WhereisCommand = WhereisTool Tool (Maybe ToolVersion)+ | WhereisBaseDir+ | WhereisBinDir+ | WhereisCacheDir+ | WhereisLogsDir+ | WhereisConfDir++++++ ---------------+ --[ Options ]--+ ---------------+++data WhereisOptions = WhereisOptions {+ directory :: Bool+}+++++ ---------------+ --[ Parsers ]--+ ---------------++ +whereisP :: Parser WhereisCommand+whereisP = subparser+ (commandGroup "Tools locations:" <> + command+ "ghc"+ (WhereisTool GHC <$> info+ ( optional (toolVersionArgument Nothing (Just GHC)) <**> helper )+ ( progDesc "Get GHC location"+ <> footerDoc (Just $ text whereisGHCFooter ))+ )+ <>+ command+ "cabal"+ (WhereisTool Cabal <$> info+ ( optional (toolVersionArgument Nothing (Just Cabal)) <**> helper )+ ( progDesc "Get cabal location"+ <> footerDoc (Just $ text whereisCabalFooter ))+ )+ <>+ command+ "hls"+ (WhereisTool HLS <$> info+ ( optional (toolVersionArgument Nothing (Just HLS)) <**> helper )+ ( progDesc "Get HLS location"+ <> footerDoc (Just $ text whereisHLSFooter ))+ )+ <>+ command+ "stack"+ (WhereisTool Stack <$> info+ ( optional (toolVersionArgument Nothing (Just Stack)) <**> helper )+ ( progDesc "Get stack location"+ <> footerDoc (Just $ text whereisStackFooter ))+ )+ <>+ command+ "ghcup"+ (WhereisTool GHCup <$> info ( pure Nothing <**> helper ) ( progDesc "Get ghcup location" ))+ ) <|> subparser ( commandGroup "Directory locations:"+ <>+ command+ "basedir"+ (info (pure WhereisBaseDir <**> helper)+ ( progDesc "Get ghcup base directory location" )+ )+ <>+ command+ "bindir"+ (info (pure WhereisBinDir <**> helper)+ ( progDesc "Get ghcup binary directory location" )+ )+ <>+ command+ "cachedir"+ (info (pure WhereisCacheDir <**> helper)+ ( progDesc "Get ghcup cache directory location" )+ )+ <>+ command+ "logsdir"+ (info (pure WhereisLogsDir <**> helper)+ ( progDesc "Get ghcup logs directory location" )+ )+ <>+ command+ "confdir"+ (info (pure WhereisConfDir <**> helper)+ ( progDesc "Get ghcup config directory location" )+ )+ )+ where+ whereisGHCFooter = [s|Discussion:+ Finds the location of a GHC executable, which usually resides in+ a self-contained "~/.ghcup/ghc/<ghcver>" directory.++Examples:+ # outputs ~/.ghcup/ghc/8.10.5/bin/ghc.exe+ ghcup whereis ghc 8.10.5+ # outputs ~/.ghcup/ghc/8.10.5/bin/+ ghcup whereis --directory ghc 8.10.5 |]++ whereisCabalFooter = [s|Discussion:+ Finds the location of a Cabal executable, which usually resides in+ "~/.ghcup/bin/".++Examples:+ # outputs ~/.ghcup/bin/cabal-3.4.0.0+ ghcup whereis cabal 3.4.0.0+ # outputs ~/.ghcup/bin+ ghcup whereis --directory cabal 3.4.0.0|]++ whereisHLSFooter = [s|Discussion:+ Finds the location of a HLS executable, which usually resides in+ "~/.ghcup/bin/".++Examples:+ # outputs ~/.ghcup/bin/haskell-language-server-wrapper-1.2.0+ ghcup whereis hls 1.2.0+ # outputs ~/.ghcup/bin/+ ghcup whereis --directory hls 1.2.0|]++ whereisStackFooter = [s|Discussion:+ Finds the location of a stack executable, which usually resides in+ "~/.ghcup/bin/".++Examples:+ # outputs ~/.ghcup/bin/stack-2.7.1+ ghcup whereis stack 2.7.1+ # outputs ~/.ghcup/bin/+ ghcup whereis --directory stack 2.7.1|]++++ --------------+ --[ Footer ]--+ --------------+++whereisFooter :: String+whereisFooter = [s|Discussion:+ Finds the location of a tool. For GHC, this is the ghc binary, that+ usually resides in a self-contained "~/.ghcup/ghc/<ghcver>" directory.+ For cabal/stack/hls this the binary usually at "~/.ghcup/bin/<tool>-<ver>".++Examples:+ # outputs ~/.ghcup/ghc/8.10.5/bin/ghc.exe+ ghcup whereis ghc 8.10.5+ # outputs ~/.ghcup/ghc/8.10.5/bin/+ ghcup whereis --directory ghc 8.10.5+ # outputs ~/.ghcup/bin/cabal-3.4.0.0+ ghcup whereis cabal 3.4.0.0+ # outputs ~/.ghcup/bin/+ ghcup whereis --directory cabal 3.4.0.0|]+++++ ---------------------------+ --[ Effect interpreters ]--+ ---------------------------+++type WhereisEffects = '[ NotInstalled+ , NoToolVersionSet+ , NextVerNotFound+ , TagNotFound+ ]+++runLeanWhereIs :: (MonadUnliftIO m, MonadIO m)+ => LeanAppState+ -> Excepts WhereisEffects (ReaderT LeanAppState m) a+ -> m (VEither WhereisEffects a)+runLeanWhereIs leanAppstate =+ -- Don't use runLeanAppState here, which is disabled on windows.+ -- This is the only command on all platforms that doesn't need full appstate.+ flip runReaderT leanAppstate+ . runE+ @WhereisEffects+++runWhereIs :: (MonadUnliftIO m, MonadIO m)+ => (ReaderT AppState m (VEither WhereisEffects a) -> m (VEither WhereisEffects a))+ -> Excepts WhereisEffects (ReaderT AppState m) a+ -> m (VEither WhereisEffects a)+runWhereIs runAppState =+ runAppState+ . runE+ @WhereisEffects++++ ------------------+ --[ Entrypoint ]--+ ------------------++++whereis :: ( Monad m+ , MonadMask m+ , MonadUnliftIO m+ , MonadFail m+ )+ => WhereisCommand+ -> WhereisOptions+ -> (forall a. ReaderT AppState m (VEither WhereisEffects a) -> m (VEither WhereisEffects a))+ -> LeanAppState+ -> (ReaderT LeanAppState m () -> m ())+ -> m ExitCode+whereis whereisCommand whereisOptions runAppState leanAppstate runLogger = do+ Dirs{ .. } <- runReaderT getDirs leanAppstate+ case (whereisCommand, whereisOptions) of+ (WhereisTool tool (Just (ToolVersion v)), WhereisOptions{..}) ->+ runLeanWhereIs leanAppstate (do+ loc <- liftE $ whereIsTool tool v+ if directory+ then pure $ takeDirectory loc+ else pure loc+ )+ >>= \case+ VRight r -> do+ liftIO $ putStr r+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 30++ (WhereisTool tool whereVer, WhereisOptions{..}) -> do+ runWhereIs runAppState (do+ (v, _) <- liftE $ fromVersion whereVer tool+ loc <- liftE $ whereIsTool tool v+ if directory+ then pure $ takeDirectory loc+ else pure loc+ )+ >>= \case+ VRight r -> do+ liftIO $ putStr r+ pure ExitSuccess+ VLeft e -> do+ runLogger $ logError $ T.pack $ prettyShow e+ pure $ ExitFailure 30++ (WhereisBaseDir, _) -> do+ liftIO $ putStr baseDir+ pure ExitSuccess++ (WhereisBinDir, _) -> do+ liftIO $ putStr binDir+ pure ExitSuccess++ (WhereisCacheDir, _) -> do+ liftIO $ putStr cacheDir+ pure ExitSuccess++ (WhereisLogsDir, _) -> do+ liftIO $ putStr logsDir+ pure ExitSuccess++ (WhereisConfDir, _) -> do+ liftIO $ putStr confDir+ pure ExitSuccess
app/ghcup/Main.hs view
@@ -5,3096 +5,284 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DuplicateRecordFields #-}---module Main where--#if defined(BRICK)-import BrickMain ( brickMain )-#endif--import GHCup-import GHCup.Download-import GHCup.Errors-import GHCup.Platform-import GHCup.Requirements-import GHCup.Types-import GHCup.Types.Optics-import GHCup.Utils-import GHCup.Utils.File-import GHCup.Utils.Logger-import GHCup.Utils.MegaParsec-import GHCup.Utils.Prelude-import GHCup.Utils.String.QQ-import GHCup.Version--import Cabal.Plan ( findPlanJson, SearchPlanJson(..) )-import Codec.Archive-import Control.Concurrent-import Control.Concurrent.Async-import Control.DeepSeq ( force )-import Control.Exception ( evaluate )-import Control.Exception.Safe-#if !MIN_VERSION_base(4,13,0)-import Control.Monad.Fail ( MonadFail )-#endif-import Control.Monad.Reader-import Control.Monad.Trans.Resource-import Data.Aeson ( decodeStrict', Value )-import Data.Aeson.Encode.Pretty ( encodePretty )-import Data.Bifunctor-import Data.Char-import Data.Either-import Data.Functor-import Data.List ( intercalate, nub, sort, sortBy )-import Data.Maybe-import Data.Text ( Text )-import Data.Versions hiding ( str )-import Data.Void-import GHC.IO.Encoding-import Haskus.Utils.Variant.Excepts-import Language.Haskell.TH-import Language.Haskell.TH.Syntax ( Quasi(qAddDependentFile) )-import Options.Applicative hiding ( style )-import Options.Applicative.Help.Pretty ( text )-import Prelude hiding ( appendFile )-import Safe-import System.Console.Pretty hiding ( color )-import qualified System.Console.Pretty as Pretty-import System.Environment-import System.Exit-import System.FilePath-import System.IO hiding ( appendFile )-import Text.Read hiding ( lift )-import Text.PrettyPrint.HughesPJClass ( prettyShow )-import URI.ByteString--import qualified Data.ByteString as B-import qualified Data.ByteString.UTF8 as UTF8-import qualified Data.Map.Strict as M-import qualified Data.Text as T-import qualified Data.Text.IO as T-import qualified Data.Text.Encoding as E-import qualified Data.YAML.Aeson as Y-import qualified Text.Megaparsec as MP-import qualified Text.Megaparsec.Char as MPC----data Options = Options- {- -- global options- optVerbose :: Maybe Bool- , optCache :: Maybe Bool- , optUrlSource :: Maybe URI- , optNoVerify :: Maybe Bool- , optKeepDirs :: Maybe KeepDirs- , optsDownloader :: Maybe Downloader- , optNoNetwork :: Maybe Bool- , optGpg :: Maybe GPGSetting- -- commands- , optCommand :: Command- }--data Command- = Install (Either InstallCommand InstallOptions)- | InstallCabalLegacy InstallOptions- | Set (Either SetCommand SetOptions)- | UnSet UnsetCommand- | List ListOptions- | Rm (Either RmCommand RmOptions)- | DInfo- | Compile CompileCommand- | Config ConfigCommand- | Whereis WhereisOptions WhereisCommand- | Upgrade UpgradeOpts Bool- | ToolRequirements- | ChangeLog ChangeLogOptions- | Nuke-#if defined(BRICK)- | Interactive-#endif- | Prefetch PrefetchCommand- | GC GCOptions--data ToolVersion = ToolVersion GHCTargetVersion -- target is ignored for cabal- | ToolTag Tag--prettyToolVer :: ToolVersion -> String-prettyToolVer (ToolVersion v') = T.unpack $ tVerToText v'-prettyToolVer (ToolTag t) = show t--toSetToolVer :: Maybe ToolVersion -> SetToolVersion-toSetToolVer (Just (ToolVersion v')) = SetToolVersion v'-toSetToolVer (Just (ToolTag t')) = SetToolTag t'-toSetToolVer Nothing = SetRecommended---data InstallCommand = InstallGHC InstallOptions- | InstallCabal InstallOptions- | InstallHLS InstallOptions- | InstallStack InstallOptions--data InstallOptions = InstallOptions- { instVer :: Maybe ToolVersion- , instPlatform :: Maybe PlatformRequest- , instBindist :: Maybe URI- , instSet :: Bool- , isolateDir :: Maybe FilePath- , forceInstall :: Bool- }--data GCOptions = GCOptions- { gcOldGHC :: Bool- , gcProfilingLibs :: Bool- , gcShareDir :: Bool- , gcHLSNoGHC :: Bool- , gcCache :: Bool- , gcTmp :: Bool- }--data SetCommand = SetGHC SetOptions- | SetCabal SetOptions- | SetHLS SetOptions- | SetStack SetOptions--data UnsetCommand = UnsetGHC UnsetOptions- | UnsetCabal UnsetOptions- | UnsetHLS UnsetOptions- | UnsetStack UnsetOptions---- a superset of ToolVersion-data SetToolVersion = SetToolVersion GHCTargetVersion- | SetToolTag Tag- | SetRecommended- | SetNext--data SetOptions = SetOptions- { sToolVer :: SetToolVersion- }--data UnsetOptions = UnsetOptions- { sToolVer :: Maybe Text -- target platform triple- }--data ListOptions = ListOptions- { loTool :: Maybe Tool- , lCriteria :: Maybe ListCriteria- , lRawFormat :: Bool- }--data RmCommand = RmGHC RmOptions- | RmCabal Version- | RmHLS Version- | RmStack Version--data RmOptions = RmOptions- { ghcVer :: GHCTargetVersion- }---data CompileCommand = CompileGHC GHCCompileOptions- | CompileHLS HLSCompileOptions--data ConfigCommand = ShowConfig | SetConfig String String | InitConfig--data GHCCompileOptions = GHCCompileOptions- { targetGhc :: Either Version GitBranch- , bootstrapGhc :: Either Version FilePath- , jobs :: Maybe Int- , buildConfig :: Maybe FilePath- , patchDir :: Maybe FilePath- , crossTarget :: Maybe Text- , addConfArgs :: [Text]- , setCompile :: Bool- , ovewrwiteVer :: Maybe Version- , buildFlavour :: Maybe String- , hadrian :: Bool- , isolateDir :: Maybe FilePath- }--data HLSCompileOptions = HLSCompileOptions- { targetHLS :: Either Version GitBranch- , jobs :: Maybe Int- , setCompile :: Bool- , ovewrwiteVer :: Maybe Version- , isolateDir :: Maybe FilePath- , cabalProject :: Maybe FilePath- , cabalProjectLocal :: Maybe FilePath- , patchDir :: Maybe FilePath- , targetGHCs :: [ToolVersion]- }--data UpgradeOpts = UpgradeInplace- | UpgradeAt FilePath- | UpgradeGHCupDir- deriving Show--data ChangeLogOptions = ChangeLogOptions- { clOpen :: Bool- , clTool :: Maybe Tool- , clToolVer :: Maybe ToolVersion- }---data WhereisCommand = WhereisTool Tool (Maybe ToolVersion)- | WhereisBaseDir- | WhereisBinDir- | WhereisCacheDir- | WhereisLogsDir- | WhereisConfDir--data WhereisOptions = WhereisOptions {- directory :: Bool-}--data PrefetchOptions = PrefetchOptions {- pfCacheDir :: Maybe FilePath-}--data PrefetchCommand = PrefetchGHC PrefetchGHCOptions (Maybe ToolVersion)- | PrefetchCabal PrefetchOptions (Maybe ToolVersion)- | PrefetchHLS PrefetchOptions (Maybe ToolVersion)- | PrefetchStack PrefetchOptions (Maybe ToolVersion)- | PrefetchMetadata--data PrefetchGHCOptions = PrefetchGHCOptions {- pfGHCSrc :: Bool- , pfGHCCacheDir :: Maybe FilePath-}----- https://github.com/pcapriotti/optparse-applicative/issues/148---- | A switch that can be enabled using --foo and disabled using --no-foo.------ The option modifier is applied to only the option that is *not* enabled--- by default. For example:------ > invertableSwitch "recursive" True (help "do not recurse into directories")------ This example makes --recursive enabled by default, so--- the help is shown only for --no-recursive.-invertableSwitch- :: String -- ^ long option- -> Char -- ^ short option for the non-default option- -> Bool -- ^ is switch enabled by default?- -> Mod FlagFields Bool -- ^ option modifier- -> Parser (Maybe Bool)-invertableSwitch longopt shortopt defv optmod = invertableSwitch' longopt shortopt defv- (if defv then mempty else optmod)- (if defv then optmod else mempty)---- | Allows providing option modifiers for both --foo and --no-foo.-invertableSwitch'- :: String -- ^ long option (eg "foo")- -> Char -- ^ short option for the non-default option- -> Bool -- ^ is switch enabled by default?- -> Mod FlagFields Bool -- ^ option modifier for --foo- -> Mod FlagFields Bool -- ^ option modifier for --no-foo- -> Parser (Maybe Bool)-invertableSwitch' longopt shortopt defv enmod dismod = optional- ( flag' True ( enmod <> long longopt <> if defv then mempty else short shortopt)- <|> flag' False (dismod <> long nolongopt <> if defv then short shortopt else mempty)- )- where- nolongopt = "no-" ++ longopt---opts :: Parser Options-opts =- Options- <$> invertableSwitch "verbose" 'v' False (help "Enable verbosity (default: disabled)")- <*> invertableSwitch "cache" 'c' False (help "Cache downloads in ~/.ghcup/cache (default: disabled)")- <*> (optional- (option- (eitherReader parseUri)- ( short 's'- <> long "url-source"- <> metavar "URL"- <> help "Alternative ghcup download info url"- <> internal- )- )- )- <*> (fmap . fmap) not (invertableSwitch "verify" 'n' True (help "Disable tarball checksum verification (default: enabled)"))- <*> optional (option- (eitherReader keepOnParser)- ( long "keep"- <> metavar "<always|errors|never>"- <> help- "Keep build directories? (default: errors)"- <> hidden- ))- <*> optional (option- (eitherReader downloaderParser)- ( long "downloader"-#if defined(INTERNAL_DOWNLOADER)- <> metavar "<internal|curl|wget>"- <> help- "Downloader to use (default: internal)"-#else- <> metavar "<curl|wget>"- <> help- "Downloader to use (default: curl)"-#endif- <> hidden- ))- <*> invertableSwitch "offline" 'o' False (help "Don't do any network calls, trying cached assets and failing if missing.")- <*> optional (option- (eitherReader gpgParser)- ( long "gpg"- <> metavar "<strict|lax|none>"- <> help- "GPG verification (default: none)"- ))- <*> com- where- parseUri s' =- first show $ parseURI strictURIParserOptions (UTF8.fromString s')---com :: Parser Command-com =- subparser-#if defined(BRICK)- ( command- "tui"- ( (\_ -> Interactive)- <$> (info- helper- ( progDesc "Start the interactive GHCup UI"- )- )- )- <> command-#else- ( command-#endif- "install"- ( Install- <$> info- (installParser <**> helper)- ( progDesc "Install or update GHC/cabal/HLS/stack"- <> footerDoc (Just $ text installToolFooter)- )- )- <> command- "set"- (info- (Set <$> setParser <**> helper)- ( progDesc "Set currently active GHC/cabal version"- <> footerDoc (Just $ text setFooter)- )- )- <> command- "unset"- (info- (UnSet <$> unsetParser <**> helper)- ( progDesc "Unset currently active GHC/cabal version"- <> footerDoc (Just $ text unsetFooter)- )- )- <> command- "rm"- (info- (Rm <$> rmParser <**> helper)- ( progDesc "Remove a GHC/cabal/HLS/stack version"- <> footerDoc (Just $ text rmFooter)- )- )-- <> command- "list"- (info (List <$> listOpts <**> helper)- (progDesc "Show available GHCs and other tools")- )- <> command- "upgrade"- (info- ( (Upgrade <$> upgradeOptsP <*> switch- (short 'f' <> long "force" <> help "Force update")- )- <**> helper- )- (progDesc "Upgrade ghcup")- )- <> command- "compile"- ( Compile- <$> info (compileP <**> helper)- (progDesc "Compile a tool from source")- )- <> command- "whereis"- (info- ( (Whereis- <$> (WhereisOptions <$> switch (short 'd' <> long "directory" <> help "return directory of the binary instead of the binary location"))- <*> whereisP- ) <**> helper- )- (progDesc "Find a tools location"- <> footerDoc ( Just $ text whereisFooter ))- )- <> command- "prefetch"- (info- ( (Prefetch- <$> prefetchP- ) <**> helper- )- (progDesc "Prefetch assets"- <> footerDoc ( Just $ text prefetchFooter ))- )- <> command- "gc"- (info- ( (GC- <$> gcP- ) <**> helper- )- (progDesc "Garbage collection"- <> footerDoc ( Just $ text gcFooter ))- )- <> commandGroup "Main commands:"- )- <|> subparser- ( command- "debug-info"- ((\_ -> DInfo) <$> info helper (progDesc "Show debug info"))- <> command- "tool-requirements"- ( (\_ -> ToolRequirements)- <$> info helper- (progDesc "Show the requirements for ghc/cabal")- )- <> command- "changelog"- (info- (fmap ChangeLog changelogP <**> helper)- ( progDesc "Find/show changelog"- <> footerDoc (Just $ text changeLogFooter)- )- )- <> command- "config"- ( Config- <$> info (configP <**> helper)- (progDesc "Show or set config" <> footerDoc (Just $ text configFooter))- )- <> commandGroup "Other commands:"- <> hidden- )- <|> subparser- ( command- "install-cabal"- (info- ((InstallCabalLegacy <$> installOpts (Just Cabal)) <**> helper)- ( progDesc "Install or update cabal"- <> footerDoc (Just $ text installCabalFooter)- )- )- <> internal- )- <|> subparser- (command- "nuke"- (info (pure Nuke <**> helper)- (progDesc "Completely remove ghcup from your system"))- <> commandGroup "Nuclear Commands:"- <> hidden- )-- where- installToolFooter :: String- installToolFooter = [s|Discussion:- Installs GHC or cabal. When no command is given, installs GHC- with the specified version/tag.- It is recommended to always specify a subcommand (ghc/cabal/hls/stack).|]-- setFooter :: String- setFooter = [s|Discussion:- Sets the currently active GHC or cabal version. When no command is given,- defaults to setting GHC with the specified version/tag (if no tag- is given, sets GHC to 'recommended' version).- It is recommended to always specify a subcommand (ghc/cabal/hls/stack).|]-- unsetFooter :: String- unsetFooter = [s|Discussion:- Unsets the currently active GHC or cabal version.|]-- rmFooter :: String- rmFooter = [s|Discussion:- Remove the given GHC or cabal version. When no command is given,- defaults to removing GHC with the specified version.- It is recommended to always specify a subcommand (ghc/cabal/hls/stack).|]-- changeLogFooter :: String- changeLogFooter = [s|Discussion:- By default returns the URI of the ChangeLog of the latest GHC release.- Pass '-o' to automatically open via xdg-open.|]-- whereisFooter :: String- whereisFooter = [s|Discussion:- Finds the location of a tool. For GHC, this is the ghc binary, that- usually resides in a self-contained "~/.ghcup/ghc/<ghcver>" directory.- For cabal/stack/hls this the binary usually at "~/.ghcup/bin/<tool>-<ver>".--Examples:- # outputs ~/.ghcup/ghc/8.10.5/bin/ghc.exe- ghcup whereis ghc 8.10.5- # outputs ~/.ghcup/ghc/8.10.5/bin/- ghcup whereis --directory ghc 8.10.5- # outputs ~/.ghcup/bin/cabal-3.4.0.0- ghcup whereis cabal 3.4.0.0- # outputs ~/.ghcup/bin/- ghcup whereis --directory cabal 3.4.0.0|]-- prefetchFooter :: String- prefetchFooter = [s|Discussion:- Prefetches tools or assets into "~/.ghcup/cache" directory. This can- be then combined later with '--offline' flag, ensuring all assets that- are required for offline use have been prefetched.--Examples:- ghcup prefetch metadata- ghcup prefetch ghc 8.10.5- ghcup --offline install ghc 8.10.5|]-- gcFooter :: String- gcFooter = [s|Discussion:- Performs garbage collection. If no switches are specified, does nothing.|]--configFooter :: String-configFooter = [s|Examples:--# show current config-ghcup config--# initialize config-ghcup config init--# set <key> <value> configuration pair-ghcup config <key> <value>|]--installCabalFooter :: String-installCabalFooter = [s|Discussion:- Installs the specified cabal-install version (or a recommended default one)- into "~/.ghcup/bin", so it can be overwritten by later- "cabal install cabal-install", which installs into "~/.cabal/bin" by- default. Make sure to set up your PATH appropriately, so the cabal- installation takes precedence.|]---installParser :: Parser (Either InstallCommand InstallOptions)-installParser =- (Left <$> subparser- ( command- "ghc"- ( InstallGHC- <$> info- (installOpts (Just GHC) <**> helper)- ( progDesc "Install GHC"- <> footerDoc (Just $ text installGHCFooter)- )- )- <> command- "cabal"- ( InstallCabal- <$> info- (installOpts (Just Cabal) <**> helper)- ( progDesc "Install Cabal"- <> footerDoc (Just $ text installCabalFooter)- )- )- <> command- "hls"- ( InstallHLS- <$> info- (installOpts (Just HLS) <**> helper)- ( progDesc "Install haskell-language-server"- <> footerDoc (Just $ text installHLSFooter)- )- )- <> command- "stack"- ( InstallStack- <$> info- (installOpts (Just Stack) <**> helper)- ( progDesc "Install stack"- <> footerDoc (Just $ text installStackFooter)- )- )- )- )- <|> (Right <$> installOpts Nothing)- where- installHLSFooter :: String- installHLSFooter = [s|Discussion:- Installs haskell-language-server binaries and wrapper- into "~/.ghcup/bin"--Examples:- # install recommended HLS- ghcup install hls|]-- installStackFooter :: String- installStackFooter = [s|Discussion:- Installs stack binaries into "~/.ghcup/bin"--Examples:- # install recommended Stack- ghcup install stack|]-- installGHCFooter :: String- installGHCFooter = [s|Discussion:- Installs the specified GHC version (or a recommended default one) into- a self-contained "~/.ghcup/ghc/<ghcver>" directory- and symlinks the ghc binaries to "~/.ghcup/bin/<binary>-<ghcver>".--Examples:- # install recommended GHC- ghcup install ghc-- # install latest GHC- ghcup install ghc latest-- # install GHC 8.10.2- ghcup install ghc 8.10.2-- # install GHC head fedora bindist- ghcup install ghc -u https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27 head|]---installOpts :: Maybe Tool -> Parser InstallOptions-installOpts tool =- (\p (u, v) b is f -> InstallOptions v p u b is f)- <$> optional- (option- (eitherReader platformParser)- ( short 'p'- <> long "platform"- <> metavar "PLATFORM"- <> help- "Override for platform (triple matching ghc tarball names), e.g. x86_64-fedora27-linux"- )- )- <*> ( ( (,)- <$> optional- (option- (eitherReader bindistParser)- (short 'u' <> long "url" <> metavar "BINDIST_URL" <> help- "Install the specified version from this bindist"- )- )- <*> (Just <$> toolVersionArgument Nothing tool)- )- <|> pure (Nothing, Nothing)- )- <*> flag- False- True- (long "set" <> help- "Set as active version after install"- )- <*> optional- (option- (eitherReader isolateParser)- ( short 'i'- <> long "isolate"- <> metavar "DIR"- <> help "install in an isolated dir instead of the default one"- )- )- <*> switch- (short 'f' <> long "force" <> help "Force install")- ---setParser :: Parser (Either SetCommand SetOptions)-setParser =- (Left <$> subparser- ( command- "ghc"- ( SetGHC- <$> info- (setOpts (Just GHC) <**> helper)- ( progDesc "Set GHC version"- <> footerDoc (Just $ text setGHCFooter)- )- )- <> command- "cabal"- ( SetCabal- <$> info- (setOpts (Just Cabal) <**> helper)- ( progDesc "Set Cabal version"- <> footerDoc (Just $ text setCabalFooter)- )- )- <> command- "hls"- ( SetHLS- <$> info- (setOpts (Just HLS) <**> helper)- ( progDesc "Set haskell-language-server version"- <> footerDoc (Just $ text setHLSFooter)- )- )- <> command- "stack"- ( SetStack- <$> info- (setOpts (Just Stack) <**> helper)- ( progDesc "Set stack version"- <> footerDoc (Just $ text setStackFooter)- )- )- )- )- <|> (Right <$> setOpts Nothing)- where- setGHCFooter :: String- setGHCFooter = [s|Discussion:- Sets the the current GHC version by creating non-versioned- symlinks for all ghc binaries of the specified version in- "~/.ghcup/bin/<binary>".|]-- setCabalFooter :: String- setCabalFooter = [s|Discussion:- Sets the the current Cabal version.|]-- setStackFooter :: String- setStackFooter = [s|Discussion:- Sets the the current Stack version.|]-- setHLSFooter :: String- setHLSFooter = [s|Discussion:- Sets the the current haskell-language-server version.|]--unsetParser :: Parser UnsetCommand-unsetParser =- (subparser- ( command- "ghc"- ( UnsetGHC- <$> info- (unsetOpts <**> helper)- ( progDesc "Unset GHC version"- <> footerDoc (Just $ text unsetGHCFooter)- )- )- <> command- "cabal"- ( UnsetCabal- <$> info- (unsetOpts <**> helper)- ( progDesc "Unset Cabal version"- <> footerDoc (Just $ text unsetCabalFooter)- )- )- <> command- "hls"- ( UnsetHLS- <$> info- (unsetOpts <**> helper)- ( progDesc "Unset haskell-language-server version"- <> footerDoc (Just $ text unsetHLSFooter)- )- )- <> command- "stack"- ( UnsetStack- <$> info- (unsetOpts <**> helper)- ( progDesc "Unset stack version"- <> footerDoc (Just $ text unsetStackFooter)- )- )- )- )- where- unsetGHCFooter :: String- unsetGHCFooter = [s|Discussion:- Unsets the the current GHC version. That means there won't- be a ~/.ghcup/bin/ghc anymore.|]-- unsetCabalFooter :: String- unsetCabalFooter = [s|Discussion:- Unsets the the current Cabal version.|]-- unsetStackFooter :: String- unsetStackFooter = [s|Discussion:- Unsets the the current Stack version.|]-- unsetHLSFooter :: String- unsetHLSFooter = [s|Discussion:- Unsets the the current haskell-language-server version.|]---setOpts :: Maybe Tool -> Parser SetOptions-setOpts tool = SetOptions <$>- (fromMaybe SetRecommended <$>- optional (setVersionArgument (Just ListInstalled) tool))--unsetOpts :: Parser UnsetOptions-unsetOpts = UnsetOptions . fmap T.pack <$> optional (argument str (metavar "TRIPLE"))--listOpts :: Parser ListOptions-listOpts =- ListOptions- <$> optional- (option- (eitherReader toolParser)- (short 't' <> long "tool" <> metavar "<ghc|cabal|hls|stack>" <> help- "Tool to list versions for. Default is all"- )- )- <*> optional- (option- (eitherReader criteriaParser)- ( short 'c'- <> long "show-criteria"- <> metavar "<installed|set|available>"- <> help "Show only installed/set/available tool versions"- )- )- <*> switch- (short 'r' <> long "raw-format" <> help "More machine-parsable format"- )---rmParser :: Parser (Either RmCommand RmOptions)-rmParser =- (Left <$> subparser- ( command- "ghc"- (RmGHC <$> info (rmOpts (Just GHC) <**> helper) (progDesc "Remove GHC version"))- <> command- "cabal"- ( RmCabal- <$> info (versionParser' (Just ListInstalled) (Just Cabal) <**> helper)- (progDesc "Remove Cabal version")- )- <> command- "hls"- ( RmHLS- <$> info (versionParser' (Just ListInstalled) (Just HLS) <**> helper)- (progDesc "Remove haskell-language-server version")- )- <> command- "stack"- ( RmStack- <$> info (versionParser' (Just ListInstalled) (Just Stack) <**> helper)- (progDesc "Remove stack version")- )- )- )- <|> (Right <$> rmOpts Nothing)----rmOpts :: Maybe Tool -> Parser RmOptions-rmOpts tool = RmOptions <$> versionArgument (Just ListInstalled) tool---changelogP :: Parser ChangeLogOptions-changelogP =- (\x y -> ChangeLogOptions x y)- <$> switch (short 'o' <> long "open" <> help "xdg-open the changelog url")- <*> optional- (option- (eitherReader- (\s' -> case fmap toLower s' of- "ghc" -> Right GHC- "cabal" -> Right Cabal- "ghcup" -> Right GHCup- "stack" -> Right Stack- e -> Left e- )- )- (short 't' <> long "tool" <> metavar "<ghc|cabal|ghcup>" <> help- "Open changelog for given tool (default: ghc)"- )- )- <*> optional (toolVersionArgument Nothing Nothing)--compileP :: Parser CompileCommand-compileP = subparser- ( command- "ghc"- ( CompileGHC- <$> info- (ghcCompileOpts <**> helper)- ( progDesc "Compile GHC from source"- <> footerDoc (Just $ text compileFooter)- )- )- <> command- "hls"- ( CompileHLS- <$> info- (hlsCompileOpts <**> helper)- ( progDesc "Compile HLS from source"- <> footerDoc (Just $ text compileHLSFooter)- )- )- )- where- compileFooter = [s|Discussion:- Compiles and installs the specified GHC version into- a self-contained "~/.ghcup/ghc/<ghcver>" directory- and symlinks the ghc binaries to "~/.ghcup/bin/<binary>-<ghcver>".-- This also allows building a cross-compiler. Consult the documentation- first: <https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling#configuring-the-build>--ENV variables:- Various toolchain variables will be passed onto the ghc build system,- such as: CC, LD, OBJDUMP, NM, AR, RANLIB.--Examples:- # compile from known version- ghcup compile ghc -j 4 -v 8.4.2 -b 8.2.2- # compile from git commit/reference- ghcup compile ghc -j 4 -g master -b 8.2.2- # specify path to bootstrap ghc- ghcup compile ghc -j 4 -v 8.4.2 -b /usr/bin/ghc-8.2.2- # build cross compiler- ghcup compile ghc -j 4 -v 8.4.2 -b 8.2.2 -x armv7-unknown-linux-gnueabihf --config $(pwd)/build.mk -- --enable-unregisterised|]-- compileHLSFooter = [s|Discussion:- Compiles and installs the specified HLS version.- The last argument is a list of GHC versions to compile for.- These need to be available in PATH prior to compilation.--Examples:- ghcup compile hls -v 1.4.0 -j 12 8.10.5 8.10.7 9.0.1|]--configP :: Parser ConfigCommand-configP = subparser- ( command "init" initP- <> command "set" setP -- [set] KEY VALUE at help lhs- <> command "show" showP- )- <|> argsP -- add show for a single option- <|> pure ShowConfig- where- initP = info (pure InitConfig) (progDesc "Write default config to ~/.ghcup/config.yaml")- showP = info (pure ShowConfig) (progDesc "Show current config (default)")- setP = info argsP (progDesc "Set config KEY to VALUE")- argsP = SetConfig <$> argument str (metavar "KEY") <*> argument str (metavar "VALUE")--whereisP :: Parser WhereisCommand-whereisP = subparser- (commandGroup "Tools locations:" <> - command- "ghc"- (WhereisTool GHC <$> info- ( optional (toolVersionArgument Nothing (Just GHC)) <**> helper )- ( progDesc "Get GHC location"- <> footerDoc (Just $ text whereisGHCFooter ))- )- <>- command- "cabal"- (WhereisTool Cabal <$> info- ( optional (toolVersionArgument Nothing (Just Cabal)) <**> helper )- ( progDesc "Get cabal location"- <> footerDoc (Just $ text whereisCabalFooter ))- )- <>- command- "hls"- (WhereisTool HLS <$> info- ( optional (toolVersionArgument Nothing (Just HLS)) <**> helper )- ( progDesc "Get HLS location"- <> footerDoc (Just $ text whereisHLSFooter ))- )- <>- command- "stack"- (WhereisTool Stack <$> info- ( optional (toolVersionArgument Nothing (Just Stack)) <**> helper )- ( progDesc "Get stack location"- <> footerDoc (Just $ text whereisStackFooter ))- )- <>- command- "ghcup"- (WhereisTool GHCup <$> info ( (pure Nothing) <**> helper ) ( progDesc "Get ghcup location" ))- ) <|> subparser ( commandGroup "Directory locations:"- <>- command- "basedir"- (info (pure WhereisBaseDir <**> helper)- ( progDesc "Get ghcup base directory location" )- )- <>- command- "bindir"- (info (pure WhereisBinDir <**> helper)- ( progDesc "Get ghcup binary directory location" )- )- <>- command- "cachedir"- (info (pure WhereisCacheDir <**> helper)- ( progDesc "Get ghcup cache directory location" )- )- <>- command- "logsdir"- (info (pure WhereisLogsDir <**> helper)- ( progDesc "Get ghcup logs directory location" )- )- <>- command- "confdir"- (info (pure WhereisConfDir <**> helper)- ( progDesc "Get ghcup config directory location" )- )- )- where- whereisGHCFooter = [s|Discussion:- Finds the location of a GHC executable, which usually resides in- a self-contained "~/.ghcup/ghc/<ghcver>" directory.--Examples:- # outputs ~/.ghcup/ghc/8.10.5/bin/ghc.exe- ghcup whereis ghc 8.10.5- # outputs ~/.ghcup/ghc/8.10.5/bin/- ghcup whereis --directory ghc 8.10.5 |]-- whereisCabalFooter = [s|Discussion:- Finds the location of a Cabal executable, which usually resides in- "~/.ghcup/bin/".--Examples:- # outputs ~/.ghcup/bin/cabal-3.4.0.0- ghcup whereis cabal 3.4.0.0- # outputs ~/.ghcup/bin- ghcup whereis --directory cabal 3.4.0.0|]-- whereisHLSFooter = [s|Discussion:- Finds the location of a HLS executable, which usually resides in- "~/.ghcup/bin/".--Examples:- # outputs ~/.ghcup/bin/haskell-language-server-wrapper-1.2.0- ghcup whereis hls 1.2.0- # outputs ~/.ghcup/bin/- ghcup whereis --directory hls 1.2.0|]-- whereisStackFooter = [s|Discussion:- Finds the location of a stack executable, which usually resides in- "~/.ghcup/bin/".--Examples:- # outputs ~/.ghcup/bin/stack-2.7.1- ghcup whereis stack 2.7.1- # outputs ~/.ghcup/bin/- ghcup whereis --directory stack 2.7.1|]---prefetchP :: Parser PrefetchCommand-prefetchP = subparser- ( command- "ghc"- (info - (PrefetchGHC- <$> (PrefetchGHCOptions- <$> ( switch (short 's' <> long "source" <> help "Download source tarball instead of bindist") <**> helper )- <*> optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))- <*> ( optional (toolVersionArgument Nothing (Just GHC)) ))- ( progDesc "Download GHC assets for installation")- )- <>- command- "cabal"- (info - (PrefetchCabal- <$> fmap PrefetchOptions (optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))- <*> ( optional (toolVersionArgument Nothing (Just Cabal)) <**> helper ))- ( progDesc "Download cabal assets for installation")- )- <>- command- "hls"- (info - (PrefetchHLS- <$> fmap PrefetchOptions (optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))- <*> ( optional (toolVersionArgument Nothing (Just HLS)) <**> helper ))- ( progDesc "Download HLS assets for installation")- )- <>- command- "stack"- (info - (PrefetchStack- <$> fmap PrefetchOptions (optional (option str (short 'd' <> long "directory" <> help "directory to download into (default: ~/.ghcup/cache/)")))- <*> ( optional (toolVersionArgument Nothing (Just Stack)) <**> helper ))- ( progDesc "Download stack assets for installation")- )- <>- command- "metadata"- (const PrefetchMetadata <$> info- helper- ( progDesc "Download ghcup's metadata, needed for various operations")- )- )--gcP :: Parser GCOptions-gcP =- GCOptions- <$> - switch- (short 'o' <> long "ghc-old" <> help "Remove GHC versions marked as 'old'")- <*> - switch- (short 'p' <> long "profiling-libs" <> help "Remove profiling libs of GHC versions")- <*> - switch- (short 's' <> long "share-dir" <> help "Remove GHC share directories (documentation)")- <*> - switch- (short 'h' <> long "hls-no-ghc" <> help "Remove HLS versions that don't have a corresponding installed GHC version")- <*> - switch- (short 'c' <> long "cache" <> help "GC the GHCup cache")- <*> - switch- (short 't' <> long "tmpdirs" <> help "Remove tmpdir leftovers")---ghcCompileOpts :: Parser GHCCompileOptions-ghcCompileOpts =- GHCCompileOptions- <$> ((Left <$> option- (eitherReader- (first (const "Not a valid version") . version . T.pack)- )- (short 'v' <> long "version" <> metavar "VERSION" <> help- "The tool version to compile"- )- ) <|>- (Right <$> (GitBranch <$> option- str- (short 'g' <> long "git-ref" <> metavar "GIT_REFERENCE" <> help- "The git commit/branch/ref to build from"- ) <*>- optional (option str (short 'r' <> long "repository" <> metavar "GIT_REPOSITORY" <> help "The git repository to build from (defaults to GHC upstream)"))- )))- <*> option- (eitherReader- (\x ->- (bimap (const "Not a valid version") Left . version . T.pack $ x) <|> (if isPathSeparator (head x) then pure $ Right x else Left "Not an absolute Path")- )- )- ( short 'b'- <> long "bootstrap-ghc"- <> metavar "BOOTSTRAP_GHC"- <> help- "The GHC version (or full path) to bootstrap with (must be installed)"- )- <*> optional- (option- (eitherReader (readEither @Int))- (short 'j' <> long "jobs" <> metavar "JOBS" <> help- "How many jobs to use for make"- )- )- <*> optional- (option- str- (short 'c' <> long "config" <> metavar "CONFIG" <> help- "Absolute path to build config file"- )- )- <*> optional- (option- str- (short 'p' <> long "patchdir" <> metavar "PATCH_DIR" <> help- "Absolute path to patch directory (applies all .patch and .diff files in order using -p1)"- )- )- <*> optional- (option- str- (short 'x' <> long "cross-target" <> metavar "CROSS_TARGET" <> help- "Build cross-compiler for this platform"- )- )- <*> many (argument str (metavar "CONFIGURE_ARGS" <> help "Additional arguments to configure, prefix with '-- ' (longopts)"))- <*> flag- False- True- (long "set" <> help- "Set as active version after install"- )- <*> optional- (option- (eitherReader- (first (const "Not a valid version") . version . T.pack)- )- (short 'o' <> long "overwrite-version" <> metavar "OVERWRITE_VERSION" <> help- "Allows to overwrite the finally installed VERSION with a different one, e.g. when you build 8.10.4 with your own patches, you might want to set this to '8.10.4-p1'"- )- )- <*> optional- (option- str- (short 'f' <> long "flavour" <> metavar "BUILD_FLAVOUR" <> help- "Set the compile build flavour (this value depends on the build system type: 'make' vs 'hadrian')"- )- )- <*> switch- (long "hadrian" <> help "Use the hadrian build system instead of make (only git versions seem to be properly supported atm)"- )- <*> optional- (option- (eitherReader isolateParser)- ( short 'i'- <> long "isolate"- <> metavar "DIR"- <> help "install in an isolated directory instead of the default one, no symlinks to this installation will be made"- )- )--hlsCompileOpts :: Parser HLSCompileOptions-hlsCompileOpts =- HLSCompileOptions- <$> ((Left <$> option- (eitherReader- (first (const "Not a valid version") . version . T.pack)- )- (short 'v' <> long "version" <> metavar "VERSION" <> help- "The tool version to compile"- )- ) <|>- (Right <$> (GitBranch <$> option- str- (short 'g' <> long "git-ref" <> metavar "GIT_REFERENCE" <> help- "The git commit/branch/ref to build from"- ) <*>- optional (option str (short 'r' <> long "repository" <> metavar "GIT_REPOSITORY" <> help "The git repository to build from (defaults to GHC upstream)"))- )))- <*> optional- (option- (eitherReader (readEither @Int))- (short 'j' <> long "jobs" <> metavar "JOBS" <> help- "How many jobs to use for make"- )- )- <*> flag- False- True- (long "set" <> help- "Set as active version after install"- )- <*> optional- (option- (eitherReader- (first (const "Not a valid version") . version . T.pack)- )- (short 'o' <> long "overwrite-version" <> metavar "OVERWRITE_VERSION" <> help- "Allows to overwrite the finally installed VERSION with a different one, e.g. when you build 8.10.4 with your own patches, you might want to set this to '8.10.4-p1'"- )- )- <*> optional- (option- (eitherReader isolateParser)- ( short 'i'- <> long "isolate"- <> metavar "DIR"- <> help "install in an isolated directory instead of the default one, no symlinks to this installation will be made"- )- )- <*> optional- (option- str- (long "cabal-project" <> metavar "CABAL_PROJECT" <> help- "If relative, specifies the path to cabal.project inside the unpacked HLS tarball/checkout. If absolute, will copy the file over."- )- )- <*> optional- (option- (eitherReader absolutePathParser)- (long "cabal-project-local" <> metavar "CABAL_PROJECT_LOCAL" <> help- "Absolute path to a cabal.project.local to be used for the build. Will be copied over."- )- )- <*> optional- (option- (eitherReader absolutePathParser)- (short 'p' <> long "patchdir" <> metavar "PATCH_DIR" <> help- "Absolute path to patch directory (applies all .patch and .diff files in order using -p1)"- )- )- <*> some (toolVersionArgument Nothing (Just GHC))---toolVersionParser :: Parser ToolVersion-toolVersionParser = verP' <|> toolP- where- verP' = ToolVersion <$> versionParser- toolP =- ToolTag- <$> option- (eitherReader tagEither)- (short 't' <> long "tag" <> metavar "TAG" <> help "The target tag")---- | same as toolVersionParser, except as an argument.-toolVersionArgument :: Maybe ListCriteria -> Maybe Tool -> Parser ToolVersion-toolVersionArgument criteria tool =- argument (eitherReader toolVersionEither)- (metavar (mv tool)- <> completer (tagCompleter (fromMaybe GHC tool) [])- <> foldMap (completer . versionCompleter criteria) tool)- where- mv (Just GHC) = "GHC_VERSION|TAG"- mv (Just HLS) = "HLS_VERSION|TAG"- mv _ = "VERSION|TAG"---setVersionArgument :: Maybe ListCriteria -> Maybe Tool -> Parser SetToolVersion-setVersionArgument criteria tool =- argument (eitherReader setEither)- (metavar "VERSION|TAG|next"- <> completer (tagCompleter (fromMaybe GHC tool) ["next"])- <> foldMap (completer . versionCompleter criteria) tool)- where- setEither s' =- parseSet s'- <|> second SetToolTag (tagEither s')- <|> second SetToolVersion (tVersionEither s')- parseSet s' = case fmap toLower s' of- "next" -> Right SetNext- other -> Left $ "Unknown tag/version " <> other---versionArgument :: Maybe ListCriteria -> Maybe Tool -> Parser GHCTargetVersion-versionArgument criteria tool = argument (eitherReader tVersionEither) (metavar "VERSION" <> foldMap (completer . versionCompleter criteria) tool)---tagCompleter :: Tool -> [String] -> Completer-tagCompleter tool add = listIOCompleter $ do- dirs' <- liftIO getAllDirs- let loggerConfig = LoggerConfig- { lcPrintDebug = False- , consoleOutter = mempty- , fileOutter = mempty- , fancyColors = False- }- let appState = LeanAppState- (Settings True False Never Curl False GHCupURL True GPGNone False)- dirs'- defaultKeyBindings- loggerConfig-- mGhcUpInfo <- flip runReaderT appState . runE $ getDownloadsF- case mGhcUpInfo of- VRight ghcupInfo -> do- let allTags = filter (\t -> t /= Old)- $ join- $ fmap _viTags- $ M.elems- $ availableToolVersions (_ghcupDownloads ghcupInfo) tool- pure $ nub $ (add ++) $ fmap tagToString allTags- VLeft _ -> pure (nub $ ["recommended", "latest"] ++ add)---versionCompleter :: Maybe ListCriteria -> Tool -> Completer-versionCompleter criteria tool = listIOCompleter $ do- dirs' <- liftIO getAllDirs- let loggerConfig = LoggerConfig- { lcPrintDebug = False- , consoleOutter = mempty- , fileOutter = mempty- , fancyColors = False- }- let settings = Settings True False Never Curl False GHCupURL True GPGNone False- let leanAppState = LeanAppState- settings- dirs'- defaultKeyBindings- loggerConfig- mpFreq <- flip runReaderT leanAppState . runE $ platformRequest- mGhcUpInfo <- flip runReaderT leanAppState . runE $ getDownloadsF- forFold mpFreq $ \pfreq -> do- forFold mGhcUpInfo $ \ghcupInfo -> do- let appState = AppState- settings- dirs'- defaultKeyBindings- ghcupInfo- pfreq- loggerConfig-- runEnv = flip runReaderT appState-- installedVersions <- runEnv $ listVersions (Just tool) criteria- return $ T.unpack . prettyVer . lVer <$> installedVersions---versionParser :: Parser GHCTargetVersion-versionParser = option- (eitherReader tVersionEither)- (short 'v' <> long "version" <> metavar "VERSION" <> help "The target version"- )--versionParser' :: Maybe ListCriteria -> Maybe Tool -> Parser Version-versionParser' criteria tool = argument- (eitherReader (first show . version . T.pack))- (metavar "VERSION" <> foldMap (completer . versionCompleter criteria) tool)---tagEither :: String -> Either String Tag-tagEither s' = case fmap toLower s' of- "recommended" -> Right Recommended- "latest" -> Right Latest- ('b':'a':'s':'e':'-':ver') -> case pvp (T.pack ver') of- Right x -> Right (Base x)- Left _ -> Left $ "Invalid PVP version for base " <> ver'- other -> Left $ "Unknown tag " <> other---tVersionEither :: String -> Either String GHCTargetVersion-tVersionEither =- first (const "Not a valid version") . MP.parse ghcTargetVerP "" . T.pack---toolVersionEither :: String -> Either String ToolVersion-toolVersionEither s' =- second ToolTag (tagEither s') <|> second ToolVersion (tVersionEither s')---toolParser :: String -> Either String Tool-toolParser s' | t == T.pack "ghc" = Right GHC- | t == T.pack "cabal" = Right Cabal- | t == T.pack "hls" = Right HLS- | t == T.pack "stack" = Right Stack- | otherwise = Left ("Unknown tool: " <> s')- where t = T.toLower (T.pack s')---criteriaParser :: String -> Either String ListCriteria-criteriaParser s' | t == T.pack "installed" = Right ListInstalled- | t == T.pack "set" = Right ListSet- | t == T.pack "available" = Right ListAvailable- | otherwise = Left ("Unknown criteria: " <> s')- where t = T.toLower (T.pack s')---keepOnParser :: String -> Either String KeepDirs-keepOnParser s' | t == T.pack "always" = Right Always- | t == T.pack "errors" = Right Errors- | t == T.pack "never" = Right Never- | otherwise = Left ("Unknown keep value: " <> s')- where t = T.toLower (T.pack s')---downloaderParser :: String -> Either String Downloader-downloaderParser s' | t == T.pack "curl" = Right Curl- | t == T.pack "wget" = Right Wget-#if defined(INTERNAL_DOWNLOADER)- | t == T.pack "internal" = Right Internal-#endif- | otherwise = Left ("Unknown downloader value: " <> s')- where t = T.toLower (T.pack s')--gpgParser :: String -> Either String GPGSetting-gpgParser s' | t == T.pack "strict" = Right GPGStrict- | t == T.pack "lax" = Right GPGLax- | t == T.pack "none" = Right GPGNone- | otherwise = Left ("Unknown gpg setting value: " <> s')- where t = T.toLower (T.pack s')---platformParser :: String -> Either String PlatformRequest-platformParser s' = case MP.parse (platformP <* MP.eof) "" (T.pack s') of- Right r -> pure r- Left e -> Left $ errorBundlePretty e- where- archP :: MP.Parsec Void Text Architecture- archP = MP.try (MP.chunk "x86_64" $> A_64) <|> (MP.chunk "i386" $> A_32)- platformP :: MP.Parsec Void Text PlatformRequest- platformP = choice'- [ (\a mv -> PlatformRequest a FreeBSD mv)- <$> (archP <* MP.chunk "-")- <*> ( MP.chunk "portbld"- *> ( MP.try (Just <$> verP (MP.chunk "-freebsd" <* MP.eof))- <|> pure Nothing- )- <* MP.chunk "-freebsd"- )- , (\a mv -> PlatformRequest a Darwin mv)- <$> (archP <* MP.chunk "-")- <*> ( MP.chunk "apple"- *> ( MP.try (Just <$> verP (MP.chunk "-darwin" <* MP.eof))- <|> pure Nothing- )- <* MP.chunk "-darwin"- )- , (\a d mv -> PlatformRequest a (Linux d) mv)- <$> (archP <* MP.chunk "-")- <*> distroP- <*> ((MP.try (Just <$> verP (MP.chunk "-linux" <* MP.eof)) <|> pure Nothing- )- <* MP.chunk "-linux"- )- ]- distroP :: MP.Parsec Void Text LinuxDistro- distroP = choice'- [ MP.chunk "debian" $> Debian- , MP.chunk "deb" $> Debian- , MP.chunk "ubuntu" $> Ubuntu- , MP.chunk "mint" $> Mint- , MP.chunk "fedora" $> Fedora- , MP.chunk "centos" $> CentOS- , MP.chunk "redhat" $> RedHat- , MP.chunk "alpine" $> Alpine- , MP.chunk "gentoo" $> Gentoo- , MP.chunk "exherbo" $> Exherbo- , MP.chunk "unknown" $> UnknownLinux- ]---bindistParser :: String -> Either String URI-bindistParser = first show . parseURI strictURIParserOptions . UTF8.fromString--isolateParser :: FilePath -> Either String FilePath-isolateParser f = case isValid f of- True -> Right $ normalise f- False -> Left "Please enter a valid filepath for isolate dir."--absolutePathParser :: FilePath -> Either String FilePath-absolutePathParser f = case isValid f && isAbsolute f of- True -> Right $ normalise f- False -> Left "Please enter a valid absolute filepath."--toSettings :: Options -> IO (Settings, KeyBindings)-toSettings options = do- noColor <- isJust <$> lookupEnv "NO_COLOR"- userConf <- runE @'[ JSONError ] ghcupConfigFile >>= \case- VRight r -> pure r- VLeft (V (JSONDecodeError e)) -> do- B.hPut stderr ("Error decoding config file: " <> (E.encodeUtf8 . T.pack . show $ e))- pure defaultUserSettings- _ -> do- die "Unexpected error!"- pure $ mergeConf options userConf noColor- where- mergeConf :: Options -> UserSettings -> Bool -> (Settings, KeyBindings)- mergeConf Options{..} UserSettings{..} noColor =- let cache = fromMaybe (fromMaybe False uCache) optCache- noVerify = fromMaybe (fromMaybe False uNoVerify) optNoVerify- verbose = fromMaybe (fromMaybe False uVerbose) optVerbose- keepDirs = fromMaybe (fromMaybe Errors uKeepDirs) optKeepDirs- downloader = fromMaybe (fromMaybe defaultDownloader uDownloader) optsDownloader- keyBindings = maybe defaultKeyBindings mergeKeys uKeyBindings- urlSource = maybe (fromMaybe GHCupURL uUrlSource) OwnSource optUrlSource- noNetwork = fromMaybe (fromMaybe False uNoNetwork) optNoNetwork- gpgSetting = fromMaybe (fromMaybe GPGNone uGPGSetting) optGpg- in (Settings {..}, keyBindings)-#if defined(INTERNAL_DOWNLOADER)- defaultDownloader = Internal-#else- defaultDownloader = Curl-#endif- mergeKeys :: UserKeyBindings -> KeyBindings- mergeKeys UserKeyBindings {..} =- let KeyBindings {..} = defaultKeyBindings- in KeyBindings {- bUp = fromMaybe bUp kUp- , bDown = fromMaybe bDown kDown- , bQuit = fromMaybe bQuit kQuit- , bInstall = fromMaybe bInstall kInstall- , bUninstall = fromMaybe bUninstall kUninstall- , bSet = fromMaybe bSet kSet- , bChangelog = fromMaybe bChangelog kChangelog- , bShowAllVersions = fromMaybe bShowAllVersions kShowAll- , bShowAllTools = fromMaybe bShowAllTools kShowAllTools- }--updateSettings :: Monad m => UTF8.ByteString -> Settings -> Excepts '[JSONError] m Settings-updateSettings config settings = do- settings' <- lE' JSONDecodeError . first snd . Y.decode1Strict $ config- pure $ mergeConf settings' settings- where- mergeConf :: UserSettings -> Settings -> Settings- mergeConf UserSettings{..} Settings{..} =- let cache' = fromMaybe cache uCache- noVerify' = fromMaybe noVerify uNoVerify- keepDirs' = fromMaybe keepDirs uKeepDirs- downloader' = fromMaybe downloader uDownloader- verbose' = fromMaybe verbose uVerbose- urlSource' = fromMaybe urlSource uUrlSource- noNetwork' = fromMaybe noNetwork uNoNetwork- gpgSetting' = fromMaybe gpgSetting uGPGSetting- in Settings cache' noVerify' keepDirs' downloader' verbose' urlSource' noNetwork' gpgSetting' noColor--upgradeOptsP :: Parser UpgradeOpts-upgradeOptsP =- flag'- UpgradeInplace- (short 'i' <> long "inplace" <> help- "Upgrade ghcup in-place (wherever it's at)"- )- <|> ( UpgradeAt- <$> option- str- (short 't' <> long "target" <> metavar "TARGET_DIR" <> help- "Absolute filepath to write ghcup into"- )- )- <|> pure UpgradeGHCupDir----describe_result :: String-describe_result = $( LitE . StringL <$>- runIO (do- CapturedProcess{..} <- do- dirs <- liftIO getAllDirs- let settings = AppState (Settings True False Never Curl False GHCupURL False GPGNone False)- dirs- defaultKeyBindings- flip runReaderT settings $ executeOut "git" ["describe"] Nothing- case _exitCode of- ExitSuccess -> pure . T.unpack . decUTF8Safe' $ _stdOut- ExitFailure _ -> pure numericVer- )- )--plan_json :: String-plan_json = $( do- (fp, c) <- runIO (handleIO (\_ -> pure ("", "")) $ do- fp <- findPlanJson (ProjectRelativeToDir ".")- c <- B.readFile fp- (Just res) <- pure $ decodeStrict' @Value c- pure (fp, T.unpack $ decUTF8Safe' $ encodePretty res))- when (not . null $ fp ) $ qAddDependentFile fp- pure . LitE . StringL $ c)--formatConfig :: UserSettings -> String-formatConfig settings- = UTF8.toString . Y.encode1Strict $ settings--main :: IO ()-main = do- -- https://gitlab.haskell.org/ghc/ghc/issues/8118- setLocaleEncoding utf8-- void enableAnsiSupport-- let versionHelp = infoOption- ( ("The GHCup Haskell installer, version " <>)- (head . lines $ describe_result)- )- (long "version" <> help "Show version" <> hidden)- let planJson = infoOption- plan_json- (long "plan-json" <> help "Show the build-time configuration" <> internal)- let numericVersionHelp = infoOption- numericVer- ( long "numeric-version"- <> help "Show the numeric version (for use in scripts)"- <> hidden- )- let listCommands = infoOption- "install set rm install-cabal list upgrade compile debug-info tool-requirements changelog"- ( long "list-commands"- <> help "List available commands for shell completion"- <> internal- )-- let main_footer = [s|Discussion:- ghcup installs the Glasgow Haskell Compiler from the official- release channels, enabling you to easily switch between different- versions. It maintains a self-contained ~/.ghcup directory.--ENV variables:- * TMPDIR: where ghcup does the work (unpacking, building, ...)- * GHCUP_INSTALL_BASE_PREFIX: the base of ghcup (default: $HOME)- * GHCUP_USE_XDG_DIRS: set to anything to use XDG style directories--Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]-- customExecParser- (prefs showHelpOnError)- (info (opts <**> helper <**> versionHelp <**> numericVersionHelp <**> planJson <**> listCommands)- (footerDoc (Just $ text main_footer))- )- >>= \opt@Options {..} -> do- dirs@Dirs{..} <- getAllDirs-- -- create ~/.ghcup dir- ensureDirectories dirs-- (settings, keybindings) <- toSettings opt--- -- logger interpreter- logfile <- flip runReaderT dirs initGHCupFileLogging- no_color <- isJust <$> lookupEnv "NO_COLOR"- let loggerConfig = LoggerConfig- { lcPrintDebug = verbose settings- , consoleOutter = T.hPutStr stderr- , fileOutter =- case optCommand of- Nuke -> \_ -> pure ()- _ -> T.appendFile logfile- , fancyColors = not no_color- }- let leanAppstate = LeanAppState settings dirs keybindings loggerConfig- let runLogger = flip runReaderT leanAppstate- let siletRunLogger = flip runReaderT (leanAppstate { loggerConfig = loggerConfig { consoleOutter = \_ -> pure () } } :: LeanAppState)--- -------------------------- -- Setting up appstate --- ---------------------------- appState = do- pfreq <- (- runLogger . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] . liftE $ platformRequest- ) >>= \case- VRight r -> pure r- VLeft e -> do- runLogger- (logError $ T.pack $ prettyShow e)- exitWith (ExitFailure 2)-- ghcupInfo <-- ( flip runReaderT leanAppstate- . runE @'[DigestError, GPGError, JSONError , DownloadFailed, FileDoesNotExistError]- $ liftE- $ getDownloadsF- )- >>= \case- VRight r -> pure r- VLeft e -> do- runLogger- (logError $ T.pack $ prettyShow e)- exitWith (ExitFailure 2)- let s' = AppState settings dirs keybindings ghcupInfo pfreq loggerConfig-- race_ (liftIO $ flip runReaderT s' cleanupTrash)- (threadDelay 5000000 >> runLogger (logWarn $ "Killing cleanup thread (exceeded 5s timeout)... please remove leftover files in " <> T.pack recycleDir <> " manually"))-- case optCommand of- Nuke -> pure ()- Whereis _ _ -> pure ()- DInfo -> pure ()- ToolRequirements -> pure ()- ChangeLog _ -> pure ()- UnSet _ -> pure ()-#if defined(BRICK)- Interactive -> pure ()-#endif- _ -> lookupEnv "GHCUP_SKIP_UPDATE_CHECK" >>= \case- Nothing -> flip runReaderT s' checkForUpdates- Just _ -> pure ()-- -- TODO: always run for windows- (siletRunLogger $ flip runReaderT s' $ runE ensureGlobalTools) >>= \case- VRight _ -> pure ()- VLeft e -> do- runLogger- (logError $ T.pack $ prettyShow e)- exitWith (ExitFailure 30)- pure s'---#if defined(IS_WINDOWS)- -- FIXME: windows needs 'ensureGlobalTools', which requires- -- full appstate- runLeanAppState = runAppState-#else- runLeanAppState = flip runReaderT leanAppstate-#endif- runAppState action' = do- s' <- liftIO appState- flip runReaderT s' action'- ---- -------------------------- -- Effect interpreters --- ---------------------------- let runInstTool' appstate' mInstPlatform =- flip runReaderT (maybe appstate' (\x -> appstate'{ pfreq = x } :: AppState) mInstPlatform)- . runResourceT- . runE- @'[ AlreadyInstalled- , UnknownArchive- , ArchiveResult- , FileDoesNotExistError- , CopyError- , NotInstalled- , DirNotEmpty- , NoDownload- , NotInstalled- , BuildFailed- , TagNotFound- , DigestError- , GPGError- , DownloadFailed- , TarDirDoesNotExist- , NextVerNotFound- , NoToolVersionSet- , FileAlreadyExistsError- ]-- let runInstTool mInstPlatform action' = do- s' <- liftIO appState- runInstTool' s' mInstPlatform action'-- let- runLeanSetGHC =- runLeanAppState- . runE- @'[ FileDoesNotExistError- , NotInstalled- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- ]-- runSetGHC =- runAppState- . runE- @'[ FileDoesNotExistError- , NotInstalled- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- ]-- runUnsetGHC =- runLeanAppState- . runE- @'[ NotInstalled ]-- let- runLeanSetCabal =- runLeanAppState- . runE- @'[ NotInstalled- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- ]-- runSetCabal =- runAppState- . runE- @'[ NotInstalled- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- ]-- let- runSetHLS =- runAppState- . runE- @'[ NotInstalled- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- ]-- runLeanSetHLS =- runLeanAppState- . runE- @'[ NotInstalled- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- ]-- let runListGHC = runAppState-- let runRm =- runAppState . runE @'[NotInstalled]-- let runNuke s' =- flip runReaderT s' . runE @'[NotInstalled]-- let runDebugInfo =- runAppState- . runE- @'[NoCompatiblePlatform , NoCompatibleArch , DistroNotFound]-- let runCompileGHC =- runAppState- . runResourceT- . runE- @'[ AlreadyInstalled- , BuildFailed- , DigestError- , GPGError- , DownloadFailed- , GHCupSetError- , NoDownload- , NotFoundInPATH- , PatchFailed- , UnknownArchive- , TarDirDoesNotExist- , NotInstalled- , DirNotEmpty- , ArchiveResult- ]-- let runCompileHLS =- runAppState- . runResourceT- . runE- @'[ AlreadyInstalled- , BuildFailed- , DigestError- , GPGError- , DownloadFailed- , GHCupSetError- , NoDownload- , NotFoundInPATH- , PatchFailed- , UnknownArchive- , TarDirDoesNotExist- , TagNotFound- , NextVerNotFound- , NoToolVersionSet- , NotInstalled- , DirNotEmpty- , ArchiveResult- ]-- let- runLeanWhereIs =- -- Don't use runLeanAppState here, which is disabled on windows.- -- This is the only command on all platforms that doesn't need full appstate.- flip runReaderT leanAppstate- . runE- @'[ NotInstalled- , NoToolVersionSet- , NextVerNotFound- , TagNotFound- ]-- runWhereIs =- runAppState- . runE- @'[ NotInstalled- , NoToolVersionSet- , NextVerNotFound- , TagNotFound- ]-- let runUpgrade =- runAppState- . runResourceT- . runE- @'[ DigestError- , GPGError- , NoDownload- , NoUpdate- , FileDoesNotExistError- , CopyError- , DownloadFailed- ]-- let runPrefetch =- runAppState- . runResourceT- . runE- @'[ TagNotFound- , NextVerNotFound- , NoToolVersionSet- , NoDownload- , DigestError- , GPGError- , DownloadFailed- , JSONError- , FileDoesNotExistError- ]-- let runGC =- runAppState- . runResourceT- . runE- @'[ NotInstalled- ]--- ------------------------ -- Command functions --- ------------------------- let installGHC InstallOptions{..} =- (case instBindist of- Nothing -> runInstTool instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer GHC- liftE $ installGHCBin- (_tvVersion v)- isolateDir- forceInstall- when instSet $ void $ liftE $ setGHC v SetGHCOnly- pure vi- Just uri -> do- s' <- liftIO appState- runInstTool' s'{ settings = settings {noVerify = True}} instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer GHC- liftE $ installGHCBindist- (DownloadInfo uri (Just $ RegexDir "ghc-.*") "")- (_tvVersion v)- isolateDir- forceInstall- when instSet $ void $ liftE $ setGHC v SetGHCOnly- pure vi- )- >>= \case- VRight vi -> do- runLogger $ logInfo "GHC installation successful"- forM_ (_viPostInstall =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft (V (AlreadyInstalled _ v)) -> do- runLogger $ logWarn $- "GHC ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install ghc --force " <> prettyVer v <> "'"- pure ExitSuccess- VLeft (V (DirNotEmpty fp)) -> do- runLogger $ logWarn $- "Install directory " <> T.pack fp <> " is not empty. Use 'ghcup install ghc --isolate " <> T.pack fp <> " --force ..." <> "' to install regardless."- pure $ ExitFailure 3- VLeft err@(V (BuildFailed tmpdir _)) -> do- case keepDirs settings of- Never -> runLogger $ (logError $ T.pack $ prettyShow err)- _ -> runLogger $ (logError $ T.pack (prettyShow err) <> "\n" <>- "Check the logs at " <> T.pack logsDir <> " and the build directory " <> T.pack tmpdir <> " for more clues." <> "\n" <>- "Make sure to clean up " <> T.pack tmpdir <> " afterwards.")- pure $ ExitFailure 3- VLeft e -> do- runLogger $ do- logError $ T.pack $ prettyShow e- logError $ "Also check the logs in " <> T.pack logsDir- pure $ ExitFailure 3--- let installCabal InstallOptions{..} =- (case instBindist of- Nothing -> runInstTool instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer Cabal- liftE $ installCabalBin- (_tvVersion v)- isolateDir- forceInstall- pure vi- Just uri -> do- s' <- appState- runInstTool' s'{ settings = settings { noVerify = True}} instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer Cabal- liftE $ installCabalBindist - (DownloadInfo uri Nothing "")- (_tvVersion v)- isolateDir- forceInstall- pure vi- )- >>= \case- VRight vi -> do- runLogger $ logInfo "Cabal installation successful"- forM_ (_viPostInstall =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft (V (AlreadyInstalled _ v)) -> do- runLogger $ logWarn $- "Cabal ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install cabal --force " <> prettyVer v <> "'"- pure ExitSuccess- VLeft (V (FileAlreadyExistsError fp)) -> do- runLogger $ logWarn $- "File " <> T.pack fp <> " already exists. Use 'ghcup install cabal --isolate " <> T.pack fp <> " --force ..." <> "' if you want to overwrite."- pure $ ExitFailure 3- VLeft e -> do- runLogger $ do- logError $ T.pack $ prettyShow e- logError $ "Also check the logs in " <> T.pack logsDir- pure $ ExitFailure 4-- let installHLS InstallOptions{..} =- (case instBindist of- Nothing -> runInstTool instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer HLS- liftE $ installHLSBin- (_tvVersion v)- isolateDir- forceInstall- pure vi- Just uri -> do- s' <- appState- runInstTool' s'{ settings = settings { noVerify = True}} instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer HLS- liftE $ installHLSBindist- (DownloadInfo uri Nothing "")- (_tvVersion v)- isolateDir- forceInstall- pure vi- )- >>= \case- VRight vi -> do- runLogger $ logInfo "HLS installation successful"- forM_ (_viPostInstall =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft (V (AlreadyInstalled _ v)) -> do- runLogger $ logWarn $- "HLS ver "- <> prettyVer v- <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install hls --force "- <> prettyVer v- <> "'"- pure ExitSuccess- VLeft (V (FileAlreadyExistsError fp)) -> do- runLogger $ logWarn $- "File " <> T.pack fp <> " already exists. Use 'ghcup install hls --isolate " <> T.pack fp <> " --force ..." <> "' if you want to overwrite."- pure $ ExitFailure 3- VLeft e -> do- runLogger $ do- logError $ T.pack $ prettyShow e- logError $ "Also check the logs in " <> T.pack logsDir- pure $ ExitFailure 4-- let installStack InstallOptions{..} =- (case instBindist of- Nothing -> runInstTool instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer Stack- liftE $ installStackBin- (_tvVersion v)- isolateDir- forceInstall- pure vi- Just uri -> do- s' <- appState- runInstTool' s'{ settings = settings { noVerify = True}} instPlatform $ do- (v, vi) <- liftE $ fromVersion instVer Stack- liftE $ installStackBindist- (DownloadInfo uri Nothing "")- (_tvVersion v)- isolateDir- forceInstall- pure vi- )- >>= \case- VRight vi -> do- runLogger $ logInfo "Stack installation successful"- forM_ (_viPostInstall =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft (V (AlreadyInstalled _ v)) -> do- runLogger $ logWarn $- "Stack ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install stack --force " <> prettyVer v <> "'"- pure ExitSuccess- VLeft (V (FileAlreadyExistsError fp)) -> do- runLogger $ logWarn $- "File " <> T.pack fp <> " already exists. Use 'ghcup install stack --isolate " <> T.pack fp <> " --force ..." <> "' if you want to overwrite."- pure $ ExitFailure 3- VLeft e -> do- runLogger $ do- logError $ T.pack $ prettyShow e- logError $ "Also check the logs in " <> T.pack logsDir- pure $ ExitFailure 4--- let setGHC' SetOptions{ sToolVer } =- case sToolVer of- (SetToolVersion v) -> runLeanSetGHC (liftE $ setGHC v SetGHCOnly >> pure v)- _ -> runSetGHC (do- v <- liftE $ fst <$> fromVersion' sToolVer GHC- liftE $ setGHC v SetGHCOnly- )- >>= \case- VRight GHCTargetVersion{..} -> do- runLogger- $ logInfo $- "GHC " <> prettyVer _tvVersion <> " successfully set as default version" <> maybe "" (" for cross target " <>) _tvTarget- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 5-- let setCabal' SetOptions{ sToolVer } =- case sToolVer of- (SetToolVersion v) -> runLeanSetCabal (liftE $ setCabal (_tvVersion v) >> pure v)- _ -> runSetCabal (do- v <- liftE $ fst <$> fromVersion' sToolVer Cabal- liftE $ setCabal (_tvVersion v)- pure v- )- >>= \case- VRight GHCTargetVersion{..} -> do- runLogger- $ logInfo $- "Cabal " <> prettyVer _tvVersion <> " successfully set as default version"- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 14-- let setHLS' SetOptions{ sToolVer } =- case sToolVer of- (SetToolVersion v) -> runLeanSetHLS (liftE $ setHLS (_tvVersion v) >> pure v)- _ -> runSetHLS (do- v <- liftE $ fst <$> fromVersion' sToolVer HLS- liftE $ setHLS (_tvVersion v)- pure v- )- >>= \case- VRight GHCTargetVersion{..} -> do- runLogger- $ logInfo $- "HLS " <> prettyVer _tvVersion <> " successfully set as default version"- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 14-- let setStack' SetOptions{ sToolVer } =- case sToolVer of- (SetToolVersion v) -> runSetCabal (liftE $ setStack (_tvVersion v) >> pure v)- _ -> runSetCabal (do- v <- liftE $ fst <$> fromVersion' sToolVer Stack- liftE $ setStack (_tvVersion v)- pure v- )- >>= \case- VRight GHCTargetVersion{..} -> do- runLogger- $ logInfo $- "Stack " <> prettyVer _tvVersion <> " successfully set as default version"- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 14-- let rmGHC' RmOptions{..} =- runRm (do- liftE $- rmGHCVer ghcVer- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- pure (getVersionInfo (_tvVersion ghcVer) GHC dls)- )- >>= \case- VRight vi -> do- forM_ (_viPostRemove =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 7-- let rmCabal' tv =- runRm (do- liftE $- rmCabalVer tv- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- pure (getVersionInfo tv Cabal dls)- )- >>= \case- VRight vi -> do- forM_ (_viPostRemove =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 15-- let rmHLS' tv =- runRm (do- liftE $- rmHLSVer tv- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- pure (getVersionInfo tv HLS dls)- )- >>= \case- VRight vi -> do- forM_ (_viPostRemove =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 15-- let rmStack' tv =- runRm (do- liftE $- rmStackVer tv- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- pure (getVersionInfo tv Stack dls)- )- >>= \case- VRight vi -> do- forM_ (_viPostRemove =<< vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 15-- res <- case optCommand of-#if defined(BRICK)- Interactive -> do- s' <- appState- liftIO $ brickMain s' >> pure ExitSuccess-#endif- Install (Right iopts) -> do- runLogger (logWarn "This is an old-style command for installing GHC. Use 'ghcup install ghc' instead.")- installGHC iopts- Install (Left (InstallGHC iopts)) -> installGHC iopts- Install (Left (InstallCabal iopts)) -> installCabal iopts- Install (Left (InstallHLS iopts)) -> installHLS iopts- Install (Left (InstallStack iopts)) -> installStack iopts- InstallCabalLegacy iopts -> do- runLogger (logWarn "This is an old-style command for installing cabal. Use 'ghcup install cabal' instead.")- installCabal iopts-- Set (Right sopts) -> do- runLogger (logWarn "This is an old-style command for setting GHC. Use 'ghcup set ghc' instead.")- setGHC' sopts- Set (Left (SetGHC sopts)) -> setGHC' sopts- Set (Left (SetCabal sopts)) -> setCabal' sopts- Set (Left (SetHLS sopts)) -> setHLS' sopts- Set (Left (SetStack sopts)) -> setStack' sopts-- UnSet (UnsetGHC (UnsetOptions triple)) -> runUnsetGHC (unsetGHC triple)- >>= \case- VRight _ -> do- runLogger $ logInfo "GHC successfully unset"- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 14- UnSet (UnsetCabal (UnsetOptions _)) -> do- runAppState unsetCabal- runLogger $ logInfo "Cabal successfully unset"- pure ExitSuccess- UnSet (UnsetHLS (UnsetOptions _)) -> do- runAppState unsetHLS- runLogger $ logInfo "HLS successfully unset"- pure ExitSuccess- UnSet (UnsetStack (UnsetOptions _)) -> do- runAppState unsetStack- runLogger $ logInfo "Stack successfully unset"- pure ExitSuccess-- List ListOptions {..} ->- runListGHC (do- l <- listVersions loTool lCriteria- liftIO $ printListResult no_color lRawFormat l- pure ExitSuccess- )-- Rm (Right rmopts) -> do- runLogger (logWarn "This is an old-style command for removing GHC. Use 'ghcup rm ghc' instead.")- rmGHC' rmopts- Rm (Left (RmGHC rmopts)) -> rmGHC' rmopts- Rm (Left (RmCabal rmopts)) -> rmCabal' rmopts- Rm (Left (RmHLS rmopts)) -> rmHLS' rmopts- Rm (Left (RmStack rmopts)) -> rmStack' rmopts-- DInfo ->- do runDebugInfo $ liftE getDebugInfo- >>= \case- VRight dinfo -> do- putStrLn $ prettyDebugInfo dinfo- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 8-- Compile (CompileHLS HLSCompileOptions { .. }) -> do- runCompileHLS (do- case targetHLS of- Left targetVer -> do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- let vi = getVersionInfo targetVer HLS dls- forM_ (_viPreCompile =<< vi) $ \msg -> do- lift $ logInfo msg- lift $ logInfo- "...waiting for 5 seconds, you can still abort..."- liftIO $ threadDelay 5000000 -- for compilation, give the user a sec to intervene- Right _ -> pure ()- ghcs <- liftE $ forM targetGHCs (\ghc -> fmap (_tvVersion . fst) . fromVersion (Just ghc) $ GHC)- targetVer <- liftE $ compileHLS- targetHLS- ghcs- jobs- ovewrwiteVer- isolateDir- cabalProject- cabalProjectLocal- patchDir- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- let vi = getVersionInfo targetVer HLS dls- when setCompile $ void $ liftE $- setHLS targetVer- pure (vi, targetVer)- )- >>= \case- VRight (vi, tv) -> do- runLogger $ logInfo- "HLS successfully compiled and installed"- forM_ (_viPostInstall =<< vi) $ \msg ->- runLogger $ logInfo msg- putStr (T.unpack $ prettyVer tv)- pure ExitSuccess- VLeft err@(V (BuildFailed tmpdir _)) -> do- case keepDirs settings of- Never -> runLogger $ logError $ T.pack $ prettyShow err- _ -> runLogger $ (logError $ T.pack (prettyShow err) <> "\n" <>- "Check the logs at " <> T.pack logsDir <> " and the build directory "- <> T.pack tmpdir <> " for more clues." <> "\n" <>- "Make sure to clean up " <> T.pack tmpdir <> " afterwards.")- pure $ ExitFailure 9- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 9- Compile (CompileGHC GHCCompileOptions { hadrian = True, crossTarget = Just _ }) -> do- runLogger $ logError "Hadrian cross compile support is not yet implemented!"- pure $ ExitFailure 9- Compile (CompileGHC GHCCompileOptions {..}) ->- runCompileGHC (do- case targetGhc of- Left targetVer -> do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- let vi = getVersionInfo targetVer GHC dls- forM_ (_viPreCompile =<< vi) $ \msg -> do- lift $ logInfo msg- lift $ logInfo- "...waiting for 5 seconds, you can still abort..."- liftIO $ threadDelay 5000000 -- for compilation, give the user a sec to intervene- Right _ -> pure ()- targetVer <- liftE $ compileGHC- (first (GHCTargetVersion crossTarget) targetGhc)- ovewrwiteVer- bootstrapGhc- jobs- buildConfig- patchDir- addConfArgs- buildFlavour- hadrian- isolateDir- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- let vi = getVersionInfo (_tvVersion targetVer) GHC dls- when setCompile $ void $ liftE $- setGHC targetVer SetGHCOnly- pure (vi, targetVer)- )- >>= \case- VRight (vi, tv) -> do- runLogger $ logInfo- "GHC successfully compiled and installed"- forM_ (_viPostInstall =<< vi) $ \msg ->- runLogger $ logInfo msg- putStr (T.unpack $ tVerToText tv)- pure ExitSuccess- VLeft (V (AlreadyInstalled _ v)) -> do- runLogger $ logWarn $- "GHC ver " <> prettyVer v <> " already installed; if you really want to reinstall it, you may want to run 'ghcup install ghc --force " <> prettyVer v <> "'"- pure ExitSuccess- VLeft (V (DirNotEmpty fp)) -> do- runLogger $ logWarn $- "Install directory " <> T.pack fp <> " is not empty. Use 'ghcup install ghc --isolate " <> T.pack fp <> " --force ..." <> "' to install regardless."- pure $ ExitFailure 3- VLeft err@(V (BuildFailed tmpdir _)) -> do- case keepDirs settings of- Never -> runLogger $ logError $ T.pack $ prettyShow err- _ -> runLogger $ (logError $ T.pack (prettyShow err) <> "\n" <>- "Check the logs at " <> T.pack logsDir <> " and the build directory "- <> T.pack tmpdir <> " for more clues." <> "\n" <>- "Make sure to clean up " <> T.pack tmpdir <> " afterwards.")- pure $ ExitFailure 9- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 9-- Config InitConfig -> do- path <- getConfigFilePath- writeFile path $ formatConfig $ fromSettings settings (Just keybindings)- runLogger $ logDebug $ "config.yaml initialized at " <> T.pack path- pure ExitSuccess-- Config ShowConfig -> do- putStrLn $ formatConfig $ fromSettings settings (Just keybindings)- pure ExitSuccess-- Config (SetConfig k v) -> do- case v of- "" -> do- runLogger $ logError "Empty values are not allowed"- pure $ ExitFailure 55- _ -> do- r <- runE @'[JSONError] $ do- settings' <- updateSettings (UTF8.fromString (k <> ": " <> v <> "\n")) settings- path <- liftIO getConfigFilePath- liftIO $ writeFile path $ formatConfig $ fromSettings settings' (Just keybindings)- runLogger $ logDebug $ T.pack $ show settings'- pure ()-- case r of- VRight _ -> pure ExitSuccess- VLeft (V (JSONDecodeError e)) -> do- runLogger $ logError $ "Error decoding config: " <> T.pack e- pure $ ExitFailure 65- VLeft _ -> pure $ ExitFailure 65-- Whereis WhereisOptions{..} (WhereisTool tool (Just (ToolVersion v))) ->- runLeanWhereIs (do- loc <- liftE $ whereIsTool tool v- if directory- then pure $ takeDirectory loc- else pure loc- )- >>= \case- VRight r -> do- putStr r- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 30-- Whereis WhereisOptions{..} (WhereisTool tool whereVer) ->- runWhereIs (do- (v, _) <- liftE $ fromVersion whereVer tool- loc <- liftE $ whereIsTool tool v- if directory- then pure $ takeDirectory loc- else pure loc- )- >>= \case- VRight r -> do- putStr r- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 30-- Whereis _ WhereisBaseDir -> do- putStr baseDir- pure ExitSuccess-- Whereis _ WhereisBinDir -> do- putStr binDir- pure ExitSuccess-- Whereis _ WhereisCacheDir -> do- putStr cacheDir- pure ExitSuccess-- Whereis _ WhereisLogsDir -> do- putStr logsDir- pure ExitSuccess-- Whereis _ WhereisConfDir -> do- putStr confDir- pure ExitSuccess-- Upgrade uOpts force' -> do- target <- case uOpts of- UpgradeInplace -> Just <$> liftIO getExecutablePath- (UpgradeAt p) -> pure $ Just p- UpgradeGHCupDir -> pure (Just (binDir </> "ghcup" <> exeExt))-- runUpgrade (do- v' <- liftE $ upgradeGHCup target force'- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- pure (v', dls)- ) >>= \case- VRight (v', dls) -> do- let pretty_v = prettyVer v'- let vi = fromJust $ snd <$> getLatest dls GHCup- runLogger $ logInfo $- "Successfully upgraded GHCup to version " <> pretty_v- forM_ (_viPostInstall vi) $ \msg ->- runLogger $ logInfo msg- pure ExitSuccess- VLeft (V NoUpdate) -> do- runLogger $ logWarn "No GHCup update available"- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 11-- ToolRequirements -> do- s' <- appState- flip runReaderT s'- $ (runE- @'[NoCompatiblePlatform , DistroNotFound , NoToolRequirements]- $ do- GHCupInfo { .. } <- lift getGHCupInfo- platform' <- liftE getPlatform- req <- getCommonRequirements platform' _toolRequirements ?? NoToolRequirements- liftIO $ T.hPutStr stdout (prettyRequirements req)- )- >>= \case- VRight _ -> pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 12-- ChangeLog ChangeLogOptions{..} -> do- GHCupInfo { _ghcupDownloads = dls } <- runAppState getGHCupInfo- let tool = fromMaybe GHC clTool- ver' = maybe- (Right Latest)- (\case- ToolVersion tv -> Left (_tvVersion tv) -- FIXME: ugly sharing of ToolVersion- ToolTag t -> Right t- )- clToolVer- muri = getChangeLog dls tool ver'- case muri of- Nothing -> do- runLogger- (logWarn $- "Could not find ChangeLog for " <> T.pack (prettyShow tool) <> ", version " <> either prettyVer (T.pack . show) ver'- )- pure ExitSuccess- Just uri -> do- s' <- appState- pfreq <- flip runReaderT s' getPlatformReq- let uri' = T.unpack . decUTF8Safe . serializeURIRef' $ uri- cmd = case _rPlatform pfreq of- Darwin -> "open"- Linux _ -> "xdg-open"- FreeBSD -> "xdg-open"- Windows -> "start"-- if clOpen- then do- flip runReaderT s' $- exec cmd- [T.unpack $ decUTF8Safe $ serializeURIRef' uri]- Nothing- Nothing- >>= \case- Right _ -> pure ExitSuccess- Left e -> logError (T.pack $ prettyShow e)- >> pure (ExitFailure 13)- else putStrLn uri' >> pure ExitSuccess-- Nuke -> do- s' <- liftIO appState- void $ liftIO $ evaluate $ force s'- runNuke s' (do- lift $ logWarn "WARNING: This will remove GHCup and all installed components from your system."- lift $ logWarn "Waiting 10 seconds before commencing, if you want to cancel it, now would be the time."- liftIO $ threadDelay 10000000 -- wait 10s-- lift $ logInfo "Initiating Nuclear Sequence 🚀🚀🚀"- lift $ logInfo "Nuking in 3...2...1"- - lInstalled <- lift $ listVersions Nothing (Just ListInstalled)-- forM_ lInstalled (liftE . rmTool)-- lift rmGhcupDirs-- ) >>= \case- VRight leftOverFiles- | null leftOverFiles -> do- runLogger $ logInfo "Nuclear Annihilation complete!"- pure ExitSuccess- | otherwise -> do- runLogger $ logError "These Files have survived Nuclear Annihilation, you may remove them manually."- forM_ leftOverFiles putStrLn- pure ExitSuccess-- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 15- Prefetch pfCom ->- runPrefetch (do- case pfCom of- PrefetchGHC- (PrefetchGHCOptions pfGHCSrc pfCacheDir) mt -> do- forM_ pfCacheDir (liftIO . createDirRecursive')- (v, _) <- liftE $ fromVersion mt GHC- if pfGHCSrc- then liftE $ fetchGHCSrc (_tvVersion v) pfCacheDir- else liftE $ fetchToolBindist (_tvVersion v) GHC pfCacheDir- PrefetchCabal (PrefetchOptions {pfCacheDir}) mt -> do- forM_ pfCacheDir (liftIO . createDirRecursive')- (v, _) <- liftE $ fromVersion mt Cabal- liftE $ fetchToolBindist (_tvVersion v) Cabal pfCacheDir- PrefetchHLS (PrefetchOptions {pfCacheDir}) mt -> do- forM_ pfCacheDir (liftIO . createDirRecursive')- (v, _) <- liftE $ fromVersion mt HLS- liftE $ fetchToolBindist (_tvVersion v) HLS pfCacheDir- PrefetchStack (PrefetchOptions {pfCacheDir}) mt -> do- forM_ pfCacheDir (liftIO . createDirRecursive')- (v, _) <- liftE $ fromVersion mt Stack- liftE $ fetchToolBindist (_tvVersion v) Stack pfCacheDir- PrefetchMetadata -> do- _ <- liftE $ getDownloadsF- pure ""- ) >>= \case- VRight _ -> do- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 15- GC GCOptions{..} ->- runGC (do- when gcOldGHC rmOldGHC- lift $ when gcProfilingLibs rmProfilingLibs- lift $ when gcShareDir rmShareDir- lift $ when gcHLSNoGHC rmHLSNoGHC- lift $ when gcCache rmCache- lift $ when gcTmp rmTmp- ) >>= \case- VRight _ -> do- pure ExitSuccess- VLeft e -> do- runLogger $ logError $ T.pack $ prettyShow e- pure $ ExitFailure 27--- case res of- ExitSuccess -> pure ()- ef@(ExitFailure _) -> exitWith ef--- pure ()--fromVersion :: ( HasLog env- , MonadFail m- , MonadReader env m- , HasGHCupInfo env- , HasDirs env- , MonadThrow m- , MonadIO m- , MonadCatch m- )- => Maybe ToolVersion- -> Tool- -> Excepts- '[ TagNotFound- , NextVerNotFound- , NoToolVersionSet- ] m (GHCTargetVersion, Maybe VersionInfo)-fromVersion tv = fromVersion' (toSetToolVer tv)--fromVersion' :: ( HasLog env- , MonadFail m- , MonadReader env m- , HasGHCupInfo env- , HasDirs env- , MonadThrow m- , MonadIO m- , MonadCatch m- )- => SetToolVersion- -> Tool- -> Excepts- '[ TagNotFound- , NextVerNotFound- , NoToolVersionSet- ] m (GHCTargetVersion, Maybe VersionInfo)-fromVersion' SetRecommended tool = do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- (\(x, y) -> (mkTVer x, Just y)) <$> getRecommended dls tool- ?? TagNotFound Recommended tool-fromVersion' (SetToolVersion v) tool = do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- let vi = getVersionInfo (_tvVersion v) tool dls- case pvp $ prettyVer (_tvVersion v) of -- need to be strict here- Left _ -> pure (v, vi)- Right pvpIn ->- lift (getLatestToolFor tool pvpIn dls) >>= \case- Just (pvp_, vi') -> do- v' <- lift $ pvpToVersion pvp_- when (v' /= (_tvVersion v)) $ lift $ logWarn ("Assuming you meant version " <> prettyVer v')- pure (GHCTargetVersion (_tvTarget v) v', Just vi')- Nothing -> pure (v, vi)-fromVersion' (SetToolTag Latest) tool = do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- (\(x, y) -> (mkTVer x, Just y)) <$> getLatest dls tool ?? TagNotFound Latest tool-fromVersion' (SetToolTag Recommended) tool = do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- (\(x, y) -> (mkTVer x, Just y)) <$> getRecommended dls tool ?? TagNotFound Recommended tool-fromVersion' (SetToolTag (Base pvp'')) GHC = do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- (\(x, y) -> (mkTVer x, Just y)) <$> getLatestBaseVersion dls pvp'' ?? TagNotFound (Base pvp'') GHC-fromVersion' SetNext tool = do- GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo- next <- case tool of- GHC -> do- set <- fmap _tvVersion $ ghcSet Nothing !? NoToolVersionSet tool- ghcs <- rights <$> lift getInstalledGHCs- (headMay- . tail- . dropWhile (\GHCTargetVersion {..} -> _tvVersion /= set)- . cycle- . sortBy (\x y -> compare (_tvVersion x) (_tvVersion y))- . filter (\GHCTargetVersion {..} -> _tvTarget == Nothing)- $ ghcs) ?? NoToolVersionSet tool- Cabal -> do- set <- cabalSet !? NoToolVersionSet tool- cabals <- rights <$> lift getInstalledCabals- (fmap (GHCTargetVersion Nothing)- . headMay- . tail- . dropWhile (/= set)- . cycle- . sort- $ cabals) ?? NoToolVersionSet tool- HLS -> do- set <- hlsSet !? NoToolVersionSet tool- hlses <- rights <$> lift getInstalledHLSs- (fmap (GHCTargetVersion Nothing)- . headMay- . tail- . dropWhile (/= set)- . cycle- . sort- $ hlses) ?? NoToolVersionSet tool- Stack -> do- set <- stackSet !? NoToolVersionSet tool- stacks <- rights <$> lift getInstalledStacks- (fmap (GHCTargetVersion Nothing)- . headMay- . tail- . dropWhile (/= set)- . cycle- . sort- $ stacks) ?? NoToolVersionSet tool- GHCup -> fail "GHCup cannot be set"- let vi = getVersionInfo (_tvVersion next) tool dls- pure (next, vi)-fromVersion' (SetToolTag t') tool =- throwE $ TagNotFound t' tool---printListResult :: Bool -> Bool -> [ListResult] -> IO ()-printListResult no_color raw lr = do-- let- color | raw || no_color = flip const- | otherwise = Pretty.color-- let- printTag Recommended = color Green "recommended"- printTag Latest = color Yellow "latest"- printTag Prerelease = color Red "prerelease"- printTag (Base pvp'') = "base-" ++ T.unpack (prettyPVP pvp'')- printTag (UnknownTag t ) = t- printTag Old = ""-- let- rows =- (\x -> if raw- then x- else [color Green "", "Tool", "Version", "Tags", "Notes"] : x- )- . fmap- (\ListResult {..} ->- let marks = if-#if defined(IS_WINDOWS)- | lSet -> (color Green "IS")- | lInstalled -> (color Green "I ")- | otherwise -> (color Red "X ")-#else- | lSet -> (color Green "✔✔")- | lInstalled -> (color Green "✓ ")- | otherwise -> (color Red "✗ ")-#endif- in- (if raw then [] else [marks])- ++ [ fmap toLower . show $ lTool- , case lCross of- Nothing -> T.unpack . prettyVer $ lVer- Just c -> T.unpack (c <> "-" <> prettyVer lVer)- , intercalate "," $ (filter (/= "") . fmap printTag $ sort lTag)- , intercalate ","- $ (if hlsPowered- then [color Green "hls-powered"]- else mempty- )- ++ (if fromSrc then [color Blue "compiled"] else mempty)- ++ (if lStray then [color Yellow "stray"] else mempty)- ++ (if lNoBindist- then [color Red "no-bindist"]- else mempty- )- ]- )- $ lr- let cols =- foldr (\xs ys -> zipWith (:) xs ys) (replicate (length rows) []) rows- lengths = fmap maximum . (fmap . fmap) strWidth $ cols- padded = fmap (\xs -> zipWith padTo xs lengths) rows-- forM_ padded $ \row -> putStrLn $ intercalate " " row- where-- padTo str' x =- let lstr = strWidth str'- add' = x - lstr- in if add' < 0 then str' else str' ++ replicate add' ' '-- -- | Calculate the render width of a string, considering- -- wide characters (counted as double width), ANSI escape codes- -- (not counted), and line breaks (in a multi-line string, the longest- -- line determines the width).- strWidth :: String -> Int- strWidth =- maximum- . (0 :)- . map (foldr (\a b -> charWidth a + b) 0)- . lines- . stripAnsi-- -- | Strip ANSI escape sequences from a string.- --- -- >>> stripAnsi "\ESC[31m-1\ESC[m"- -- "-1"- stripAnsi :: String -> String- stripAnsi s' =- case- MP.parseMaybe (many $ "" <$ MP.try ansi <|> pure <$> MP.anySingle) s'- of- Nothing -> error "Bad ansi escape" -- PARTIAL: should not happen- Just xs -> concat xs- where- -- This parses lots of invalid ANSI escape codes, but that should be fine- ansi =- MPC.string "\ESC[" *> digitSemicolons *> suffix MP.<?> "ansi" :: MP.Parsec- Void- String- Char- digitSemicolons = MP.takeWhileP Nothing (\c -> isDigit c || c == ';')- suffix = MP.oneOf ['A', 'B', 'C', 'D', 'H', 'J', 'K', 'f', 'm', 's', 'u']-- -- | Get the designated render width of a character: 0 for a combining- -- character, 1 for a regular character, 2 for a wide character.- -- (Wide characters are rendered as exactly double width in apps and- -- fonts that support it.) (From Pandoc.)- charWidth :: Char -> Int- charWidth c = case c of- _ | c < '\x0300' -> 1- | c >= '\x0300' && c <= '\x036F' -> 0- | -- combining- c >= '\x0370' && c <= '\x10FC' -> 1- | c >= '\x1100' && c <= '\x115F' -> 2- | c >= '\x1160' && c <= '\x11A2' -> 1- | c >= '\x11A3' && c <= '\x11A7' -> 2- | c >= '\x11A8' && c <= '\x11F9' -> 1- | c >= '\x11FA' && c <= '\x11FF' -> 2- | c >= '\x1200' && c <= '\x2328' -> 1- | c >= '\x2329' && c <= '\x232A' -> 2- | c >= '\x232B' && c <= '\x2E31' -> 1- | c >= '\x2E80' && c <= '\x303E' -> 2- | c == '\x303F' -> 1- | c >= '\x3041' && c <= '\x3247' -> 2- | c >= '\x3248' && c <= '\x324F' -> 1- | -- ambiguous- c >= '\x3250' && c <= '\x4DBF' -> 2- | c >= '\x4DC0' && c <= '\x4DFF' -> 1- | c >= '\x4E00' && c <= '\xA4C6' -> 2- | c >= '\xA4D0' && c <= '\xA95F' -> 1- | c >= '\xA960' && c <= '\xA97C' -> 2- | c >= '\xA980' && c <= '\xABF9' -> 1- | c >= '\xAC00' && c <= '\xD7FB' -> 2- | c >= '\xD800' && c <= '\xDFFF' -> 1- | c >= '\xE000' && c <= '\xF8FF' -> 1- | -- ambiguous- c >= '\xF900' && c <= '\xFAFF' -> 2- | c >= '\xFB00' && c <= '\xFDFD' -> 1- | c >= '\xFE00' && c <= '\xFE0F' -> 1- | -- ambiguous- c >= '\xFE10' && c <= '\xFE19' -> 2- | c >= '\xFE20' && c <= '\xFE26' -> 1- | c >= '\xFE30' && c <= '\xFE6B' -> 2- | c >= '\xFE70' && c <= '\xFEFF' -> 1- | c >= '\xFF01' && c <= '\xFF60' -> 2- | c >= '\xFF61' && c <= '\x16A38' -> 1- | c >= '\x1B000' && c <= '\x1B001' -> 2- | c >= '\x1D000' && c <= '\x1F1FF' -> 1- | c >= '\x1F200' && c <= '\x1F251' -> 2- | c >= '\x1F300' && c <= '\x1F773' -> 1- | c >= '\x20000' && c <= '\x3FFFD' -> 2- | otherwise -> 1---checkForUpdates :: ( MonadReader env m- , HasGHCupInfo env- , HasDirs env- , HasPlatformReq env- , MonadCatch m- , HasLog env- , MonadThrow m- , MonadIO m- , MonadFail m- )- => m ()-checkForUpdates = do- GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo- lInstalled <- listVersions Nothing (Just ListInstalled)- let latestInstalled tool = (fmap lVer . lastMay . filter (\lr -> lTool lr == tool)) lInstalled-- forM_ (getLatest dls GHCup) $ \(l, _) -> do- (Right ghc_ver) <- pure $ version $ prettyPVP ghcUpVer- when (l > ghc_ver)- $ logWarn $- "New GHCup version available: " <> prettyVer l <> ". To upgrade, run 'ghcup upgrade'"-- forM_ (getLatest dls GHC) $ \(l, _) -> do- let mghc_ver = latestInstalled GHC- forM mghc_ver $ \ghc_ver ->- when (l > ghc_ver)- $ logWarn $- "New GHC version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install ghc " <> prettyVer l <> "'"-- forM_ (getLatest dls Cabal) $ \(l, _) -> do- let mcabal_ver = latestInstalled Cabal- forM mcabal_ver $ \cabal_ver ->- when (l > cabal_ver)- $ logWarn $- "New Cabal version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install cabal " <> prettyVer l <> "'"-- forM_ (getLatest dls HLS) $ \(l, _) -> do- let mhls_ver = latestInstalled HLS- forM mhls_ver $ \hls_ver ->- when (l > hls_ver)- $ logWarn $- "New HLS version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install hls " <> prettyVer l <> "'"-- forM_ (getLatest dls Stack) $ \(l, _) -> do- let mstack_ver = latestInstalled Stack- forM mstack_ver $ \stack_ver ->- when (l > stack_ver)- $ logWarn $- "New Stack version available: " <> prettyVer l <> ". To upgrade, run 'ghcup install stack " <> prettyVer l <> "'"---prettyDebugInfo :: DebugInfo -> String-prettyDebugInfo DebugInfo {..} = "Debug Info" <> "\n" <>- "==========" <> "\n" <>- "GHCup base dir: " <> diBaseDir <> "\n" <>- "GHCup bin dir: " <> diBinDir <> "\n" <>- "GHCup GHC directory: " <> diGHCDir <> "\n" <>- "GHCup cache directory: " <> diCacheDir <> "\n" <>- "Architecture: " <> prettyShow diArch <> "\n" <>- "Platform: " <> prettyShow diPlatform <> "\n" <>- "Version: " <> describe_result+{-# LANGUAGE DuplicateRecordFields #-}+++module Main where++#if defined(BRICK)+import BrickMain ( brickMain )+#endif++import GHCup.OptParse++import GHCup.Download+import GHCup.Errors+import GHCup.Platform+import GHCup.Types+import GHCup.Utils+import GHCup.Utils.Logger+import GHCup.Utils.Prelude+import GHCup.Utils.String.QQ+import GHCup.Version++import Cabal.Plan ( findPlanJson, SearchPlanJson(..) )+import Control.Concurrent+import Control.Concurrent.Async+import Control.Exception.Safe+#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Control.Monad.Reader+import Data.Aeson ( decodeStrict', Value )+import Data.Aeson.Encode.Pretty ( encodePretty )+import Data.Either+import Data.Functor+import Data.Maybe+import GHC.IO.Encoding+import Haskus.Utils.Variant.Excepts+import Language.Haskell.TH+import Language.Haskell.TH.Syntax ( Quasi(qAddDependentFile) )+import Options.Applicative hiding ( style )+import Options.Applicative.Help.Pretty ( text )+import Prelude hiding ( appendFile )+import System.Environment+import System.Exit+import System.IO hiding ( appendFile )+import Text.PrettyPrint.HughesPJClass ( prettyShow )++import qualified Data.ByteString as B+import qualified Data.Text as T+import qualified Data.Text.IO as T+import qualified Data.Text.Encoding as E++++toSettings :: Options -> IO (Settings, KeyBindings)+toSettings options = do+ noColor <- isJust <$> lookupEnv "NO_COLOR"+ userConf <- runE @'[ JSONError ] ghcupConfigFile >>= \case+ VRight r -> pure r+ VLeft (V (JSONDecodeError e)) -> do+ B.hPut stderr ("Error decoding config file: " <> (E.encodeUtf8 . T.pack . show $ e))+ pure defaultUserSettings+ _ -> do+ die "Unexpected error!"+ pure $ mergeConf options userConf noColor+ where+ mergeConf :: Options -> UserSettings -> Bool -> (Settings, KeyBindings)+ mergeConf Options{..} UserSettings{..} noColor =+ let cache = fromMaybe (fromMaybe False uCache) optCache+ noVerify = fromMaybe (fromMaybe False uNoVerify) optNoVerify+ verbose = fromMaybe (fromMaybe False uVerbose) optVerbose+ keepDirs = fromMaybe (fromMaybe Errors uKeepDirs) optKeepDirs+ downloader = fromMaybe (fromMaybe defaultDownloader uDownloader) optsDownloader+ keyBindings = maybe defaultKeyBindings mergeKeys uKeyBindings+ urlSource = maybe (fromMaybe GHCupURL uUrlSource) OwnSource optUrlSource+ noNetwork = fromMaybe (fromMaybe False uNoNetwork) optNoNetwork+ gpgSetting = fromMaybe (fromMaybe GPGNone uGPGSetting) optGpg+ in (Settings {..}, keyBindings)+#if defined(INTERNAL_DOWNLOADER)+ defaultDownloader = Internal+#else+ defaultDownloader = Curl+#endif+ mergeKeys :: UserKeyBindings -> KeyBindings+ mergeKeys UserKeyBindings {..} =+ let KeyBindings {..} = defaultKeyBindings+ in KeyBindings {+ bUp = fromMaybe bUp kUp+ , bDown = fromMaybe bDown kDown+ , bQuit = fromMaybe bQuit kQuit+ , bInstall = fromMaybe bInstall kInstall+ , bUninstall = fromMaybe bUninstall kUninstall+ , bSet = fromMaybe bSet kSet+ , bChangelog = fromMaybe bChangelog kChangelog+ , bShowAllVersions = fromMaybe bShowAllVersions kShowAll+ , bShowAllTools = fromMaybe bShowAllTools kShowAllTools+ }++++plan_json :: String+plan_json = $( do+ (fp, c) <- runIO (handleIO (\_ -> pure ("", "")) $ do+ fp <- findPlanJson (ProjectRelativeToDir ".")+ c <- B.readFile fp+ (Just res) <- pure $ decodeStrict' @Value c+ pure (fp, T.unpack $ decUTF8Safe' $ encodePretty res))+ unless (null fp) $ qAddDependentFile fp+ pure . LitE . StringL $ c)+++main :: IO ()+main = do+ -- https://gitlab.haskell.org/ghc/ghc/issues/8118+ setLocaleEncoding utf8++ void enableAnsiSupport++ let versionHelp = infoOption+ ( "The GHCup Haskell installer, version " <> (head . lines $ describe_result)+ )+ (long "version" <> help "Show version" <> hidden)+ let planJson = infoOption+ plan_json+ (long "plan-json" <> help "Show the build-time configuration" <> internal)+ let numericVersionHelp = infoOption+ numericVer+ ( long "numeric-version"+ <> help "Show the numeric version (for use in scripts)"+ <> hidden+ )+ let listCommands = infoOption+ "install set rm install-cabal list upgrade compile debug-info tool-requirements changelog"+ ( long "list-commands"+ <> help "List available commands for shell completion"+ <> internal+ )++ let main_footer = [s|Discussion:+ ghcup installs the Glasgow Haskell Compiler from the official+ release channels, enabling you to easily switch between different+ versions. It maintains a self-contained ~/.ghcup directory.++ENV variables:+ * TMPDIR: where ghcup does the work (unpacking, building, ...)+ * GHCUP_INSTALL_BASE_PREFIX: the base of ghcup (default: $HOME)+ * GHCUP_USE_XDG_DIRS: set to anything to use XDG style directories++Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]++ customExecParser+ (prefs showHelpOnError)+ (info (opts <**> helper <**> versionHelp <**> numericVersionHelp <**> planJson <**> listCommands)+ (footerDoc (Just $ text main_footer))+ )+ >>= \opt@Options {..} -> do+ dirs@Dirs{..} <- getAllDirs++ -- create ~/.ghcup dir+ ensureDirectories dirs++ (settings, keybindings) <- toSettings opt++ -- logger interpreter+ logfile <- runReaderT initGHCupFileLogging dirs+ no_color <- isJust <$> lookupEnv "NO_COLOR"+ let loggerConfig = LoggerConfig+ { lcPrintDebug = verbose settings+ , consoleOutter = T.hPutStr stderr+ , fileOutter =+ case optCommand of+ Nuke -> \_ -> pure ()+ _ -> T.appendFile logfile+ , fancyColors = not no_color+ }+ let leanAppstate = LeanAppState settings dirs keybindings loggerConfig+ let runLogger = flip runReaderT leanAppstate+ let siletRunLogger = flip runReaderT (leanAppstate { loggerConfig = loggerConfig { consoleOutter = \_ -> pure () } } :: LeanAppState)+++ -------------------------+ -- Setting up appstate --+ -------------------------+++ appState = do+ pfreq <- (+ runLogger . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] . liftE $ platformRequest+ ) >>= \case+ VRight r -> pure r+ VLeft e -> do+ runLogger+ (logError $ T.pack $ prettyShow e)+ exitWith (ExitFailure 2)++ ghcupInfo <-+ ( flip runReaderT leanAppstate+ . runE @'[DigestError, GPGError, JSONError , DownloadFailed, FileDoesNotExistError]+ $ liftE getDownloadsF+ )+ >>= \case+ VRight r -> pure r+ VLeft e -> do+ runLogger+ (logError $ T.pack $ prettyShow e)+ exitWith (ExitFailure 2)+ let s' = AppState settings dirs keybindings ghcupInfo pfreq loggerConfig++ race_ (liftIO $ runReaderT cleanupTrash s')+ (threadDelay 5000000 >> runLogger (logWarn $ "Killing cleanup thread (exceeded 5s timeout)... please remove leftover files in " <> T.pack recycleDir <> " manually"))++ case optCommand of+ Nuke -> pure ()+ Whereis _ _ -> pure ()+ DInfo -> pure ()+ ToolRequirements -> pure ()+ ChangeLog _ -> pure ()+ UnSet _ -> pure ()+#if defined(BRICK)+ Interactive -> pure ()+#endif+ _ -> lookupEnv "GHCUP_SKIP_UPDATE_CHECK" >>= \case+ Nothing -> runReaderT checkForUpdates s'+ Just _ -> pure ()++ -- TODO: always run for windows+ siletRunLogger (flip runReaderT s' $ runE ensureGlobalTools) >>= \case+ VRight _ -> pure ()+ VLeft e -> do+ runLogger+ (logError $ T.pack $ prettyShow e)+ exitWith (ExitFailure 30)+ pure s'+++#if defined(IS_WINDOWS)+ -- FIXME: windows needs 'ensureGlobalTools', which requires+ -- full appstate+ runLeanAppState = runAppState+#else+ runLeanAppState = flip runReaderT leanAppstate+#endif+ runAppState action' = do+ s' <- liftIO appState+ runReaderT action' s'+ ++ -----------------+ -- Run command --+ -----------------++ res <- case optCommand of+#if defined(BRICK)+ Interactive -> do+ s' <- appState+ liftIO $ brickMain s' >> pure ExitSuccess+#endif+ Install installCommand -> install installCommand settings appState runLogger+ InstallCabalLegacy iopts -> install (Left (InstallCabal iopts)) settings appState runLogger+ Set setCommand -> set setCommand runAppState runLeanAppState runLogger+ UnSet unsetCommand -> unset unsetCommand runLeanAppState runLogger+ List lo -> list lo no_color runAppState+ Rm rmCommand -> rm rmCommand runAppState runLogger+ DInfo -> dinfo runAppState runLogger+ Compile compileCommand -> compile compileCommand settings runAppState runLogger+ Config configCommand -> config configCommand settings keybindings runLogger+ Whereis whereisOptions+ whereisCommand -> whereis whereisCommand whereisOptions runAppState leanAppstate runLogger+ Upgrade uOpts force' -> upgrade uOpts force' runAppState runLogger+ ToolRequirements -> toolRequirements runAppState runLogger+ ChangeLog changelogOpts -> changelog changelogOpts runAppState runLogger+ Nuke -> nuke appState runLogger+ Prefetch pfCom -> prefetch pfCom runAppState runLogger+ GC gcOpts -> gc gcOpts runAppState runLogger++ case res of+ ExitSuccess -> pure ()+ ef@(ExitFailure _) -> exitWith ef++ pure ()+
− data/metadata/ghcup-0.0.4.yaml
@@ -1,1932 +0,0 @@-----toolRequirements:- GHC:- unknown_version:- Linux_Debian:- unknown_versioning:- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi6- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- Linux_Ubuntu:- unknown_versioning:- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi6- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- "( >= 20.04 && < 20.10 )":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi7- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- "( >= 20.10 )":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi8ubuntu1- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- Linux_CentOS:- '( >= 7 && < 8 )':- distroPKGs:- - gcc- - gcc-c++- - gmp- - gmp-devel- - make- - ncurses- - xz- - perl- notes: ''- unknown_versioning:- distroPKGs:- - gcc- - gcc-c++- - gmp- - gmp-devel- - make- - ncurses- - ncurses-compat-libs- - xz- - perl- notes: ''- Linux_Fedora:- unknown_versioning:- distroPKGs:- - gcc- - gcc-c++- - gmp- - gmp-devel- - make- - ncurses- - ncurses-compat-libs- - xz- - perl- notes: ''- Linux_Alpine:- unknown_versioning:- distroPKGs:- - curl- - gcc- - g++- - gmp-dev- - ncurses-dev- - libffi-dev- - make- - xz- - tar- - perl- notes: ''- Linux_UnknownLinux:- unknown_versioning:- distroPKGs: []- notes: 'You need the following packages: curl g++ gcc gmp make ncurses realpath- xz-utils. Consult your distro documentation on the exact names of those- packages.'- Darwin:- unknown_versioning:- distroPKGs: []- notes: On OS X, in the course of running ghcup you will be given a dialog- box to install the command line tools. Accept and the requirements will- be installed for you. You will then need to run the command again.- FreeBSD:- unknown_versioning:- distroPKGs:- - curl- - gcc- - gmp- - gmake- - ncurses- - perl5- - libffi- - libiconv- notes: ''-ghcupDownloads:- GHC:- 7.10.3:- viTags:- - base-4.8.2.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-1.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-src.tar.xz- dlSubdir: ghc-7.10.3- dlHash: cf90cedce1c28fd0e2b9e72fe8a938756668d18ea1fcc884a19f698658ac4fef- viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"- viPostInstall: "GHC-7.10.3 may give linking errors on most modern distros. You may have to pass '--ghc-option=-optc-no-pie --ghc-option=-optl-no-pie' to cabal build/install. Also see https://gitlab.haskell.org/ghc/ghc/-/issues/18763"- viArch:- A_64:- Linux_Debian:- unknown_versioning: &ghc-7103-64-deb8- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-deb8-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 01cfbad8dff1e8b34a5fdca8caeaf843b56e36af919e29cd68870d2588563db5- Linux_Ubuntu:- unknown_versioning: *ghc-7103-64-deb8- Linux_Mint:- unknown_versioning: *ghc-7103-64-deb8- Linux_CentOS:- unknown_versioning: &ghc-7103-64-centos- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-centos67-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: a8957f7a2fd81720c5d3dc403571d77d31115ff5f42edb2917c36d8e714220d4- Linux_AmazonLinux:- unknown_versioning: *ghc-7103-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-7103-64-deb8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-apple-darwin.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 80893e367e8318105f7db2064adf202e3d96b1f014e792b73e92f2cacf0b757a- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-portbld-freebsd.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 2aa396edd2bb651f4bc7eef7a396913ea24923de5aafdc76df6295333e487e48- A_32:- Linux_Debian:- unknown_versioning: &ghc-7103-32-deb8- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-deb8-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: d2ccf072457fb100503f6f5430a1e3589ca525a97424263d036b0550bc277f0c- Linux_Ubuntu:- unknown_versioning: *ghc-7103-32-deb8- Linux_Mint:- unknown_versioning: *ghc-7103-32-deb8- Linux_CentOS:- unknown_versioning: &ghc-7103-32-centos- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-centos67-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: c50aa20275e8d1ba9148f380eb7598bc148143281fc17c9acd38ea7b325852bd- Linux_AmazonLinux:- unknown_versioning: *ghc-7103-32-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-7103-32-deb8- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-portbld-freebsd.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 3dde05577c6f94dcb0ba201ebd53ab88553bbc9a3aa8e72237162ed7a9d588a3- 8.0.2:- viTags:- - base-4.9.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.0.2/docs/html/users_guide/8.0.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-src.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 11625453e1d0686b3fa6739988f70ecac836cadc30b9f0c8b49ef9091d6118b1- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb7-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b2f5c304b57ac5840a0d2ef763a3c6fa858c70840f749cfad12ed227da973c0a- unknown_versioning: &ghc-802-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 5ee68290db00ca0b79d57bc3a5bdce470de9ce9da0b098a7ce6c504605856c8f- Linux_Ubuntu:- unknown_versioning: *ghc-802-64-deb8- Linux_Mint:- unknown_versioning: *ghc-802-64-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.0.2/ghc-8.0.2-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 517783b660a27ebf95b2568d47292fd633d5f9a4de4c80ad1ccf05e1b9d7313f- Linux_UnknownLinux:- unknown_versioning: *ghc-802-64-deb8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.0.2- dlHash: ff50a2df9f002f33b9f09717ebf5ec5a47906b9b65cc57b1f9849f8b2e06788d- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b36a20e5cae24d70bbb6116ae486f21811e9384f15d3892d260f02fba3e3bb8c- A_32:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb7-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 07ead3a49f8c9df4b429e7a2f96f6f31bcab8d3ff8277a9aed0201d13ddad448- unknown_versioning: &ghc-802-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 818621342a2161b8afcc995a0765816bb40aefbfa1db2c8a7d59c04d8b18228a- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.0.2/ghc-8.0.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b4cd12a1048b2fff2f23c9eec0dd3a1174d54d017f8d79ec79af4534118e6881- Linux_UnknownLinux:- unknown_versioning: *ghc-802-32-deb8- 8.2.2:- viTags:- - base-4.10.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.2.2/docs/html/users_guide/8.2.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-src.tar.xz- dlSubdir: ghc-8.2.2- dlHash: bb8ec3634aa132d09faa270bbd604b82dfa61f04855655af6f9d14a9eedc05fc- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 7 && < 8 )': &ghc-822-64-deb7- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb7-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd7afbca54edf9890da9f432c63366556246c85c1198e40c99df5af01c555834- unknown_versioning: &ghc-822-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 48e205c62b9dc1ccf6739a4bc15a71e56dde2f891a9d786a1b115f0286111b2a- Linux_Ubuntu:- unknown_versioning: *ghc-822-64-deb8- Linux_Mint:- unknown_versioning: *ghc-822-64-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.2.2/ghc-8.2.2-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: adcf3a320a3c402aba07ae9586990dc3c0b550e96aeffb1b9e194313d3ba716d- Linux_UnknownLinux:- unknown_versioning: *ghc-822-64-deb7- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.2.2- dlHash: f90fcf62f7e0936a6dfc3601cf663729bfe9bbf85097d2d75f0a16f8c2e95c27- FreeBSD:- '( >= 10 && < 11 )':- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld10_3-freebsd.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 9e99aaeaec4b2c6d660d80246c0d4dbd41fda88f1eb7a908b29dc8fa8d663949- '( >= 11 && < 12 )': &ghc-822-64-fbsd11- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld11-freebsd.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd351c704b92b9af23994024df07de8ca7090ea7675d5c8b14b2be857a46d804- unknown_versioning: *ghc-822-64-fbsd11- A_32:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb7-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd18766b1a9b74fc6c90003a719ecab158f281f9a755d8b1bd3fd764ba6947b5- unknown_versioning: &ghc-822-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 9e67d72d76482e0ba91c718e727b00386a1a12a32ed719714976dc56ca8c8223- Linux_Ubuntu:- unknown_versioning: *ghc-822-32-deb8- Linux_Mint:- unknown_versioning: *ghc-822-32-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.2.2/ghc-8.2.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 467534c32552cfd318753112dbc70af003693aad4b0081f2a07e61f5b5ea2c22- Linux_UnknownLinux:- unknown_versioning: *ghc-822-32-deb8- 8.4.1:- viTags:- - base-4.11.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.1/docs/html/users_guide/8.4.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-src.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 39ae2f25192408f355693e5a3c8b6ff613ddb7c4da998fdf26210143a61839d2- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 427c77a934b30c3f1de992c38c072afb4323fe6fb30dbac919ca8cb6ae98fbd9- Linux_Ubuntu:- unknown_versioning: &ghc-841-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 89328a013e64b9b56825a9071fea5616ddd623d37fd41e8fb913dfebc609e7ea- Linux_Mint:- unknown_versioning: *ghc-841-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-841-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-841-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.1- dlHash: d774e39f3a0105843efd06709b214ee332c30203e6c5902dd6ed45e36285f9b7- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-portbld11-freebsd.tar.xz- dlSubdir: ghc-8.4.1- dlHash: e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa- A_32:- Linux_Debian:- unknown_versioning: &ghc-841-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: c56c589c76c7ddcb77cdbef885a811761e669d3e76868b723d5be56dedcd4f69- Linux_Ubuntu:- unknown_versioning: *ghc-841-32-deb8- Linux_Mint:- unknown_versioning: *ghc-841-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-841-32-deb8- 8.4.2:- viTags:- - base-4.11.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.2/docs/html/users_guide/8.4.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-src.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 01cc32f24a06bf3b2428351b6d7fec791e82d042426d29ad9e5a245b35f0047b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 246f66eb56f4ad0f1c7755502cfc8f9972f2d067dede17e151f6f479c1f76fbd- unknown_versioning: &ghc-842-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 3f4f5bbd2cdab4e7015ada9196d8d9b3a1ad274293cef011f85c46854596cb57- Linux_Ubuntu:- unknown_versioning: &ghc-842-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: d057b5c833596dbe4ae5d0dc2994f6cc5d0f4c2a21ea1d7900821d165fd4e846- '( >= 16 && < 19 )': *ghc-842-64-deb9- Linux_Mint:- unknown_versioning: *ghc-842-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-842-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-842-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 87469222042b9ac23f9db216a8d4e5107297bdbbb99df71eb4d9e7208455def2- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.4.2- dlHash: e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c- A_32:- Linux_Debian:- unknown_versioning: &ghc-842-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 2d849c30b4c1eac25dc74333501920921e22fa483153f404993808bbda93df05- Linux_Ubuntu:- unknown_versioning: *ghc-842-32-deb8- Linux_Mint:- unknown_versioning: *ghc-842-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-842-32-deb8- 8.4.3:- viTags:- - base-4.11.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.3/docs/html/users_guide/8.4.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-src.tar.xz- dlSubdir: ghc-8.4.3- dlHash: ae47afda985830de8811243255aa3744dfb9207cb980af74393298b2b62160d6- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 30a402c6d4754a6c020e0547f19ae3ac42e907e35349aa932d347f73e421a8e2- unknown_versioning: &ghc-843-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 2e4f53afb872ad9c640f31aea283b3ff4c5028b65808a1920739900aef7d15c9- Linux_Ubuntu:- unknown_versioning: &ghc-843-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 269e7a4d3f336491b88409a020998122b30a3a729af78d33be86d3b3f8000c3e- '( >= 16 && < 19 )': *ghc-843-64-deb9- Linux_Mint:- unknown_versioning: *ghc-843-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-843-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-843-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.3- dlHash: af0b455f6c46b9802b4b48dad996619cfa27cc6e2bf2ce5532387b4a8c00aa64- A_32:- Linux_Debian:- unknown_versioning: &ghc-843-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: f5763983a26dedd88b65a0b17267359a3981b83a642569b26334423f684f8b8c- Linux_Ubuntu:- unknown_versioning: *ghc-843-32-deb8- Linux_Mint:- unknown_versioning: *ghc-843-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-843-32-deb8- 8.4.4:- viTags:- - base-4.11.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.4.4/docs/html/users_guide/8.4.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-src.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 11117735a58e507c481c09f3f39ae5a314e9fbf49fc3109528f99ea7959004b2- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 4c2a8857f76b7f3e34ecba0b51015d5cb8b767fe5377a7ec477abde10705ab1a- unknown_versioning: &ghc-844-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 47c80a32d8f02838a2401414c94ba260d1fe82b7d090479994522242c767cc83- Linux_Ubuntu:- unknown_versioning: &ghc-844-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 8ab2befddc14d1434d0aad0c5d3c7e0c2b78ff84caa3429fa62527bfc6b86095- '( >= 16 && < 19 )': *ghc-844-64-deb9- Linux_Mint:- unknown_versioning: *ghc-844-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-844-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-844-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 83a96650f5a92b1e4d7651d256d6438624342d40e780e68125033435a54cd674- Linux_RedHat:- unknown_versioning: *ghc-844-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.4.4/ghc-8.4.4-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 336affff8314d3dc5e85d9c09015ae2ba8a7658b459c8c8ae77ecaa551a56ae7- Linux_AmazonLinux:- unknown_versioning: *ghc-844-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-844-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 28dc89ebd231335337c656f4c5ead2ae2a1acc166aafe74a14f084393c5ef03a- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-portbld-freebsd11.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940- A_32:- Linux_Debian:- unknown_versioning: &ghc-844-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 678bafaabea6af70ba71ccf0210bb437f9f5591ec28ac1cbbbd5f7aa6894e450- Linux_Ubuntu:- unknown_versioning: *ghc-844-32-deb8- Linux_Mint:- unknown_versioning: *ghc-844-32-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.4.4/ghc-8.4.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 892888d388ef5c9cadf5cfba1146d62237c25b9b066fb62fee940b2b285fd308- Linux_UnknownLinux:- unknown_versioning: *ghc-844-32-deb8- 8.6.1:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.1/docs/html/users_guide/8.6.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-src.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 2c25c26d1e5c47c7cbb2a1d8e6456524033e7a71409184dd3125e3fc5a3c7036- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 6d8784401b7dd80c90fa17306ec0539920e3987399a2c7ef247989e53197dc42- unknown_versioning: &ghc-861-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 97d44f303868d74e4d13a2e99c82ffce3d25fd54c704675e5a1939e0d824dbf0- Linux_Ubuntu:- unknown_versioning: &ghc-861-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: da903fbcf11ee6c977a8b7dac3f04dbc098d674def587880b6624b8f32588beb- '( >= 16 && < 19 )': *ghc-861-64-deb9- Linux_Mint:- unknown_versioning: *ghc-861-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-861-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-861-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 9692cdfd202b0e039ea0c3dde5dbf653736c836ca1df46504b179b572100808c- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08- A_32:- Linux_Debian:- unknown_versioning: &ghc-861-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 83573af96e3dec8f67c1a844512f92cbf7d51ae7ceca53d948fc2a3300abd05c- Linux_Ubuntu:- unknown_versioning: *ghc-861-32-deb8- Linux_Mint:- unknown_versioning: *ghc-861-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-861-32-deb8- 8.6.2:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.2/docs/html/users_guide/8.6.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-src.tar.xz- dlSubdir: ghc-8.6.2- dlHash: caaa819d21280ecde90a4773143dee188711e9ff175a27cfbaee56eb851d76d5- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- unknown_versioning: &ghc-862-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 13f96e8b83bb5bb60f955786ff9085744c24927a33be8a17773f84c7c248533a- Linux_Ubuntu:- unknown_versioning: &ghc-862-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 702aa5dfa1639c37953ceb7571a5057d9fb0562aecb197b277953a037d78047d- '( >= 16 && < 19 )': *ghc-862-64-deb8- Linux_Mint:- unknown_versioning: *ghc-862-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-862-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-862-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 8ec46a25872226dd7e5cf7271e3f3450c05f32144b96e6b9cb44cc4079db50dc- A_32:- Linux_Debian:- unknown_versioning: &ghc-862-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: a288026d9ef22f7ac387edab6b29ef7dcb3b28945c8ea532a15c1fa35d4733ed- Linux_Ubuntu:- unknown_versioning: *ghc-862-32-deb8- Linux_Mint:- unknown_versioning: *ghc-862-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-862-32-deb8- 8.6.3:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.3/docs/html/users_guide/8.6.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-src.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 9f9e37b7971935d88ba80426c36af14b1e0b3ec1d9c860f44a4391771bc07f23- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 291ca565374f4d51cc311488581f3279d3167a064fabfd4a6722fe2bd4532fd5- unknown_versioning: &ghc-863-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: e7954c8ed9b422a09c6ab737e4a0865a2725d034ba0e272bd5c70db910797f99- Linux_Ubuntu:- unknown_versioning: &ghc-863-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 52ae92f4e8bb2ac0b7847287ea3da37081f5f7bf8bbb7c78ac35fde537d1a89f- '( >= 16 && < 19 )': *ghc-863-64-deb9- Linux_Mint:- unknown_versioning: *ghc-863-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-863-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-863-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 355bd85c69933c31bbe99b4269ce719acfd0aad0b45e359ac39b9bb13996acc6- Linux_RedHat:- unknown_versioning: *ghc-863-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-863-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-863-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 79d069a1a7d74cfdd7ac2a2711c45d3ddc6265b988a0cefa342714b24f997fc1- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.3- dlHash: bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031- A_32:- Linux_Debian:- unknown_versioning: &ghc-863-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: b57070ba8c70b1333a3e47ce124baf791be39c20a592954772532fd6dd51882f- Linux_Ubuntu:- unknown_versioning: *ghc-863-32-deb8- Linux_Mint:- unknown_versioning: *ghc-863-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-863-32-deb8- 8.6.4:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.4/docs/html/users_guide/8.6.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-src.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 5b5d07e4463203a433c3ed3df461ba6cce11b6d2b9b264db31f3429075d0303a- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 34ef5fc8ddf2fc32a027180bea5b1c8a81ea840c87faace2977a572188d4b42d- unknown_versioning: &ghc-864-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: ef74222ef3c01c3fc5b926f67e8b4ef612fe8efa40ac937317cff9b0eed8d863- Linux_Ubuntu:- unknown_versioning: &ghc-864-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: e0b1ada7a679d6c35f9d7a1192ed35fde054f3650bb0bd2570d103729ad3b846- '( >= 16 && < 19 )': *ghc-864-64-deb9- Linux_Mint:- unknown_versioning: *ghc-864-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-864-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-864-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.4- dlHash: cccb58f142fe41b601d73690809f6089f7715b6a50a09aa3d0104176ab4db09e- A_32:- Linux_Debian:- unknown_versioning: &ghc-864-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 5e2ce88f4d13d23ac37e278e0c7b51c801008931359b9fa8a631d804d2da552c- Linux_Ubuntu:- unknown_versioning: *ghc-864-32-deb9- Linux_Mint:- unknown_versioning: *ghc-864-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-864-32-deb9- 8.6.5:- viTags:- - base-4.12.0.0- viChangeLog: https://downloads.haskell.org/~ghc/8.6.5/docs/html/users_guide/8.6.5-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-src.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 4d4aa1e96f4001b934ac6193ab09af5d6172f41f5a5d39d8e43393b9aafee361- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: c419fd0aa9065fe4d2eb9a248e323860c696ddf3859749ca96a84938aee49107- unknown_versioning: &ghc-865-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: bc75f5601a9f41d58b2ba161b9e28fad52143a7229060f1e084168d9b2e914df- Linux_Ubuntu:- unknown_versioning: &ghc-865-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: cf78b53eaf336083e7a05f4a3000afbae4abe5bbc77ef80cc40e09d04ac5b4a1- '( >= 16 && < 19 )': *ghc-865-64-deb9- Linux_Mint:- unknown_versioning: *ghc-865-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-865-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-865-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 80ab566f4411299f9e5922d60749ca80f989d697db19e03ed875619d699f0edf- Linux_RedHat:- unknown_versioning: *ghc-865-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: b9d3ed7f7aa24ef2d58bb579252289caa0b8877adee3685e3af2fb73d440afdc- Linux_AmazonLinux:- unknown_versioning: *ghc-865-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-865-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.5- dlHash: dfc1bdb1d303a87a8552aa17f5b080e61351f2823c2b99071ec23d0837422169- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 83a3059a630d40a98e26cb5b520354e12094a96e36ba2f5ab002dad94cf2fb37- A_32:- Linux_Debian:- unknown_versioning: &ghc-865-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 1cddb907393a669342b1a922dd16d505d9d93d50bd9433a54a8162f8701250dc- Linux_Ubuntu:- unknown_versioning: *ghc-865-32-deb9- Linux_Mint:- unknown_versioning: *ghc-865-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 3737837550d9b177acfe150e3a3cd4545427ded020487c2ed5194d7b8f116349- Linux_UnknownLinux:- unknown_versioning: *ghc-865-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-aarch64-ubuntu18.04-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 1852589037e4b2805ab517bc430e25a3125c4a118a1674ffefbb443394a0c786- 8.8.1:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.1/docs/html/users_guide/8.8.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-src.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 908a83d9b814da74585de9d39687189e6260ec3848131f9d9236cab8a123721a- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: fd96eb851971fbc3332bf2fa7821732cfa8b37e5a076a69f6a06f83f0ea7ccc5- unknown_versioning: &ghc-881-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 620fd560535b63cac5f8c97354ccddf93fa940cca78e2d19f6f98b7e67c6a723- Linux_Ubuntu:- unknown_versioning: &ghc-881-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 851a78df620bc056c34b252c97040d5755e294993fa8afa5429708b5229204d6- '( >= 16 && < 19 )': *ghc-881-64-deb9- Linux_Mint:- unknown_versioning: *ghc-881-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-881-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-881-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 6cdd34e4dbaeb801e805811f91cf43a2d5f64b22f884718ffbd3542a2f4dd14f- Linux_RedHat:- unknown_versioning: *ghc-881-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-881-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-881-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 38c8917b47c31bedf58c9305dfca3abe198d8d35570366f0773c4e2948bd8abe- A_32:- Linux_Debian:- unknown_versioning: &ghc-881-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 3d3bb75aff2dd79ec87ace10483368681fbc328ff00ebf15edad33420f00f7f5- Linux_Ubuntu:- unknown_versioning: *ghc-881-32-deb9- Linux_Mint:- unknown_versioning: *ghc-881-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-881-32-deb9- 8.8.2:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.2/docs/html/users_guide/8.8.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-src.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 01cea54d90686b97bcc9960b108beaffccd4336dee930dcf9beaf52b1f370a0b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: fbe69652eba75dadb758d00292247d17fb018c29cac5acd79843e56311256c9f- unknown_versioning: &ghc-882-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 7b2d66c2d5d8c15750da5833d3018634a5eb792a5662282e3abfeb112c2a1cc3- Linux_Ubuntu:- unknown_versioning: &ghc-882-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: dbe2db717b33460f790e155e487d2a31c9b21a9d245f0c9490ad65844c3ea21f- '( >= 16 && < 19 )': *ghc-882-64-deb9- Linux_Mint:- unknown_versioning: *ghc-882-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-882-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-882-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: f065a017d7a38f235f186ffe32d8261a4fd39c7e945d5cde85c0984c2569db99- Linux_RedHat:- unknown_versioning: *ghc-882-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-882-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-882-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 25c5c1a70036abf3f22b2b19c10d26adfdb08e8f8574f89d4b2042de5947f990- A_32:- Linux_Debian:- unknown_versioning: &ghc-882-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: ad1c628082c32635a436905a7ff83eaa4246347d869be5ef6b33c3bf85e8f00c- Linux_Ubuntu:- unknown_versioning: *ghc-882-32-deb9- Linux_Mint:- unknown_versioning: *ghc-882-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-882-32-deb9- 8.8.3:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.3/docs/html/users_guide/8.8.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-src.tar.xz- dlSubdir: ghc-8.8.3- dlHash: e0dcc0aaf3e234c5978f29e6df62947e97720ab404ec0158343df211c5480f89- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 92b9fadc442976968d2c190c14e000d737240a7d721581cda8d8741b7bd402f0- unknown_versioning: &ghc-883-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 42fde2ef5a143e1e6b47ae8875162ea2d4d54b06f0f7fa32ee4f0eb86f2be7ad- Linux_Ubuntu:- unknown_versioning: &ghc-883-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 45ee1de3bfc98cbcc4886b65fc7651ade2d3820aa85eac2dbe9bc7bf91e7c818- '( >= 16 && < 19 )': *ghc-883-64-deb9- Linux_Mint:- unknown_versioning: *ghc-883-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-883-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-883-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 4b2b5313f7c12b81e54efcb26705fa9e4ad5b98f2b58bfc76fb0c9ba1d55eb1f- Linux_RedHat:- unknown_versioning: *ghc-883-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-883-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-883-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 7016de90dd226b06fc79d0759c5d4c83c2ab01d8c678905442c28bd948dbb782- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.3/ghc-8.8.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 569719075b4d14b3875a899df522090ae31e6fe085e6dffe518e875b09a2f0be- A_32:- Linux_Debian:- unknown_versioning: &ghc-883-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 441e2c7a4fc83ebf179712bd939b555cda7c6633545b7c8ac38049f9d85003ae- Linux_Ubuntu:- unknown_versioning: *ghc-883-32-deb9- Linux_Mint:- unknown_versioning: *ghc-883-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-883-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 2a6821d0e7326cfa7670851702924bbab3b092415ba41247c37419158327eed9- 8.8.4:- viTags:- - base-4.13.0.0- viChangeLog: https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/8.8.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-src.tar.xz- dlSubdir: ghc-8.8.4- dlHash: f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 51a36892f1264744195274187298d13ac62bce2da86d4ddf76d8054ab90f2feb- unknown_versioning: &ghc-884-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20- Linux_Ubuntu:- unknown_versioning: &ghc-884-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db- '( >= 16 && < 19 )': *ghc-884-64-deb9- Linux_Mint:- unknown_versioning: *ghc-884-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-884-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-884-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910- Linux_RedHat:- unknown_versioning: *ghc-884-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 90c6a1661de7f20c7d169cd6270125035b3332063e45103ce028df0beecf434e- Linux_AmazonLinux:- unknown_versioning: *ghc-884-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-884-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.4- dlHash: e80a789e9d8cfb41dd87f3284b75432427c4461c1731d220d04ead8733ccdb5e- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 8cebe5ccf454e82acd1ff52ca57590d1ab0f3f44a981b46257ec12158c8c447e- A_32:- Linux_Debian:- unknown_versioning: &ghc-884-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0- Linux_Ubuntu:- unknown_versioning: *ghc-884-32-deb9- Linux_Mint:- unknown_versioning: *ghc-884-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 1d18e89ee031197e55c48683e78a7ffc67601ac5fd9f73aac555eb064b3859a2- Linux_UnknownLinux:- unknown_versioning: *ghc-884-32-deb9- 8.10.1:- viTags:- - base-4.14.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.10.1/docs/html/users_guide/8.10.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-src.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 4e3b07f83a266b3198310f19f71e371ebce97c769b14f0d688f4cbf2a2a1edf5- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8101-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: d1cf7886f27af070f3b7dbe1975a78b43ef2d32b86362cbe953e79464fe70761- '( >= 10 && < 11 )': &ghc-8101-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: c1e31d798b013699b3c0de4fda27fb4cda47f572df0e75e3bd598a3012060615- unknown_versioning: *ghc-8101-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8101-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 3c4cd72b4806045779739e8f5d1658e30e57123d88c2c8966422cdbcae448470- '( >= 16 && < 19 )': *ghc-8101-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8101-64-fedora- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8101-64-fedora- unknown_versioning: *ghc-8101-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8101-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 0618b94854edc6be5302489df905e627820b71be6b66c950f5e3088fe92df0a1- unknown_versioning: *ghc-8101-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8101-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.1-x86_64-unknown-linux- dlHash: cb13b645d103e2fba2eb8dfcc4e5f2fbd9550c00c4df42f342b4210436dcb8a8- Linux_AmazonLinux:- unknown_versioning: *ghc-8101-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8101-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 65b1ca361093de4804a7e40b3e68178e1ef720f84f743641ec8d95e56a45b3a8- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.1/ghc-8.10.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.1- dlHash: e8646ec9b60fd40aa9505ee055f22f04601290ab7a1342c2cf37c34de9d3f142- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8101-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 8b53eef2c827b5f634d72920a93c0c9dd66ea288691a2bfe28def45d3c686ee2- unknown_versioning: *ghc-8101-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8101-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8101-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.1/ghc-8.10.1-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 7360cc6b29e9b4ab08f6ea5bc3bcca6f5c216933e81ef1620dcdd700f1fdb289- Linux_UnknownLinux:- unknown_versioning: *ghc-8101-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: c099011e07999db917e797fb5d89c31f075a562556ab99be8ab0accbf2a94db7- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-armv7-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: afe1bde2b0d6deb0320b9460fffe5d9427e302df85aec866b9c1458777d52b28- 8.10.2:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.2/docs/html/users_guide/8.10.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-src.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9c573a4621a78723950617c223559bdc325ea6a3409264aedf68f05510b0880b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8102-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 4dbe3b479e76767bfeb4cbb7a4db8b761c4720266193483ca370b2ace3f10f7c- '( >= 10 && < 11 )': &ghc-8102-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 94513d82c38c848f489113a75fa5ef4e5a8e3ecfaa74ca90e2620d2193ff1632- unknown_versioning: *ghc-8102-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8102-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 8c675da83e9b3c2f64ebb407b5f9ebb2c1f21aa5d701020614fdce644a542e3b- '( >= 16 && < 19 )': *ghc-8102-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8102-64-fedora- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8102-64-fedora- unknown_versioning: *ghc-8102-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8102-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: fd2dccd6f496915a5f962dab24e7eeb8bee49bcc38e74b17eac76159083538fa- unknown_versioning: *ghc-8102-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8102-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.2-x86_64-unknown-linux- dlHash: 14d09a508f2a3a11875c140be8e6c5f6982ac5cd448f089ca10b7adc955fec76- Linux_AmazonLinux:- unknown_versioning: *ghc-8102-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8102-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.2- dlHash: edb772b00c0d7f18bb56ad27765162ee09c508104d40f82128c9114a02f6cfc2- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9e5957f3497f4b58ecd3699568d9caaa11a47a6d7e902032c261e450fa0f6686- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8102-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9dae2a86ad43d08f72c783542c944d1556b075aa20a8063efae5034ea88e7c2f- unknown_versioning: *ghc-8102-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8102-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8102-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8102-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.2/ghc-8.10.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9ee1cf1e85e9536088b3c9e80e975074e525ea378cd4eb156071bbc4b7b38327- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 5cf24189077e6e2dce2aa16367ad8a53f603e751a15010dfb23d067206e55593- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: bb9c97826b1f4d7a8ef8bce0616b612f1ded10480ef10fcf7fb4e6d10a6681c8- 8.10.3:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.3/docs/html/users_guide/8.10.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-src.tar.xz- dlSubdir: ghc-8.10.3- dlHash: ccdc8319549028a708d7163e2967382677b1a5a379ff94d948195b5cf46eb931- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8103-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 95e4aadea30701fe5ab84d15f757926d843ded7115e11c4cd827809ca830718d- '( >= 10 && < 11 )': &ghc-8103-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: c8f3d9f0e61a89eaba1d3ad8fb2eced1af0e81576811261b887993bee12538ac- unknown_versioning: *ghc-8103-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8103-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f8739b12008712d6b6a9ffc6c39f9d05af77ef3bcb932c9aff20fa0893c8c159- '( >= 16 && < 19 )': *ghc-8103-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8103-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8103-64-fedora- unknown_versioning: *ghc-8103-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8103-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f562ca61979ff1d21e34e69e59028cb742a8eff8d84e46bbd3a750f2ac7d8ed1- unknown_versioning: *ghc-8103-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8103-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.3-x86_64-unknown-linux- dlHash: 8506c478ebbfb5441c3c36c07c36fc8532cacb2b3e13c6733bd44cb17b3ce96c- Linux_AmazonLinux:- unknown_versioning: *ghc-8103-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8103-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 2635f35d76e44e69afdfd37cae89d211975cc20f71f784363b72003e59f22015- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 749007e995104db05cf6e3ad5bc36238cab8afac8055145661e5730e8f8af040- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8103-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f0addd2a16b705f58ff9e8702c3ddf3e2d6bd0d3555707b5b5095e51bafee7b1- unknown_versioning: *ghc-8103-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8103-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8103-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8103-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.3/ghc-8.10.3-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 309201cdefd2d13b8b3fd09c26c6137048c490d219a0a9c7407c3ce1d011f60c- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: a531432d505a1fe886cdc8639d168eb1c92d76464c1270713e01ce81891bbadb- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: b823b58cae36fbac0741680ca7605180fa4cf4c6ae439123d282184b94d32fd6- 8.10.4:- viTags:- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.4/docs/html/users_guide/8.10.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-src.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 52af871b4e08550257d720c2944ac85727d0b948407cef1bebfe7508c224910e- viPostRemove: *ghc-post-remove- viPreCompile: &ghc-pre-compile "If you have autoconf >= 2.70 you'll need this patch https://gitlab.haskell.org/ghc/ghc/-/snippets/2040 (see the --patchdir option)"- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8104-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 5694200a5c38f22c142baf850b1d2f3784211d2ec9302e11693259a1ae8e38b7- '( >= 10 && < 11 )': &ghc-8104-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 816365565e9927459b035515a7db6a0db62f9796f327389b6f8a0035d12fbda0- unknown_versioning: *ghc-8104-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8104-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: a189eed900a8717d6d7906bafd10b9a9a9688ad942d1c75e19df480376dff9ea- '( >= 16 && < 19 )': *ghc-8104-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8104-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8104-64-fedora- unknown_versioning: *ghc-8104-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8104-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: fb8a91f0cf06594172aff46c2f6f7486179e1c3760855c79fbdd3012598cc2cd- unknown_versioning: *ghc-8104-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8104-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.4-x86_64-unknown-linux- dlHash: 74c2c07537832708502716ef4ec40019f8e552ddda13c8eadf8f7c4b03a79359- Linux_AmazonLinux:- unknown_versioning: *ghc-8104-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8104-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 725ecf6543e63b81a3581fb8c97afd21a08ae11bc0fa4f8ee25d45f0362ef6d5- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.4- dlHash: c9776a2ccf9629b03e967206a507fcdcb6c5189800a626e9461ababf6733c357- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8104-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 0022c5b9ac22825bb7b4745af3d92cef0ba1ecd01fab3ef387ddbd47146569ad- unknown_versioning: *ghc-8104-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8104-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8104-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8104-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.4/ghc-8.10.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 9161a98bed763692101854d83af69c1316030cfe5ee6f6acde283d04ef139735- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 249da6310be799a5eefe0579b6dae1701eb984afb980fe08309d19cf704038ed- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 0d18ef83593272f6196a41cc3abdc48dfe5e14372db75d71ea19fe35320c4e81- 8.10.5:- viTags:- - Recommended- - base-4.14.2.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/8.10.5-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-src.tar.xz- dlSubdir: ghc-8.10.5- dlHash: f10941f16e4fbd98580ab5241b9271bb0851304560c4d5ca127e3b0e20e3076f- viPostRemove: *ghc-post-remove- viPreCompile: *ghc-pre-compile- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8105-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 15e71325c3bdfe3804be0f84c2fc5c913d811322d19b0f4d4cff20f29cdd804d- '( >= 10 && < 11 )': &ghc-8105-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: bc623c20ca4c5c18e952071ba14aa0cfc5c94d34219bffaa615f7b491f376787- unknown_versioning: *ghc-8105-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8105-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 73528ebfb219b50aa9042ee51a0a2bd764828d605f058404989d0b645752d210- '( >= 16 && < 19 )': *ghc-8105-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8105-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8105-64-fedora- unknown_versioning: *ghc-8105-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8105-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 4cdb259ec74d1408dab45dab20dcedc21690f39921c2ea4546486fb3e81f4fbd- unknown_versioning: *ghc-8105-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8105-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.5-x86_64-unknown-linux- dlHash: f4d7cd9ed12a4b8592219c9a63a86db1a256a09fa9e6ed755a60afc57dc782e2- Linux_AmazonLinux:- unknown_versioning: *ghc-8105-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8105-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.5- dlHash: ef0f47eff8962d58fa447123636cf8ef31c1e5b2d0ae90177d3388861ddf4a22- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.5/ghc-8.10.5-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 11a0b490bfb2f57b5bc87c69c197542eafce1b4991cc22f625179a6c6e567834- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8105-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 0ccb5b2c1222374874795c35410754dd650f649b774872abbea2a4ef21ac9c9d- unknown_versioning: *ghc-8105-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8105-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8105-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8105-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.5/ghc-8.10.5-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 0e91abe61607f9375d4e252ee9c261e4856df396f60641bb1b880ab8a3a83ea7- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 9a085cd8a7f8e0ace21ac67dbf659a56fcf41564b48817ba42cd8a1aac7f0ddc- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 56170d1a8450e18b7eb9c23c94723da352815b27ec250bb23742a62f16dcab6c- 9.0.1:- viTags:- - Latest- - base-4.15.0.0- viChangeLog: https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/9.0.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-src.tar.xz- dlSubdir: ghc-9.0.1- dlHash: a5230314e4065f9fcc371dfe519748fd85c825b279abf72a24e09b83578a35f9- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-901-64-deb9- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 4ca6252492f59fe589029fadca4b6f922d6a9f0ff39d19a2bd9886fde4e183d5- '( >= 10 && < 11 )': &ghc-901-64-deb10- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: c253e7eb62cc9da6524c491c85ec8d3727c2ca6035a8653388e636aaa30a2a0f- unknown_versioning: *ghc-901-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-901-64-fedora- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 1fb8e27eeec51b4cdbfd1b3c16727adc5f77388d3e925e63799d8232647f316d- '( >= 16 && < 19 )': *ghc-901-64-deb9- Linux_Mint:- unknown_versioning: *ghc-901-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-901-64-fedora- unknown_versioning: *ghc-901-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-901-64-centos- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: a23750950b6995a66ba59afe82bbc505bd3479d6ab59cf66f45bc6c056e4d87b- unknown_versioning: *ghc-901-64-centos- Linux_RedHat:- unknown_versioning: *ghc-901-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-9.0.1-x86_64-unknown-linux- dlHash: 7c1a0154c9e361b75be6cb0305533bb8a3b963c54e8092ffd1759e5710805a5c- Linux_AmazonLinux:- unknown_versioning: *ghc-901-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-901-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 122d60509147d0117779d275f0215bde2ff63a64cda9d88f149432d0cae71b22- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 9dbc06d8832cae5c9f86dd7b2db729b3748a47beb4fd4b1e62bb66119817c3c1- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-901-32-deb9- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 880e37cea8328401bcfecfe4bb56eb85195f30135b140140b3f24094264f8ba5- unknown_versioning: *ghc-901-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-901-32-deb9- Linux_Mint:- unknown_versioning: *ghc-901-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-901-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/9.0.1/ghc-9.0.1-i386-alpine-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: ebfeb3b91e6f2bb5a49fd3376746f7fd1b89e62e9838bf5b1530a8756ff1e6aa- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: fac7a0bdfc83c05df94024a2d67b8f00a9cd2733b9cb41fb8ad76be399014906- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-armv7-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 6f404f9b88468407b3a9ec5800bcc2d01dd453ef3d63414853b4fbbd4d8df496- 9.2.0.20210422:- viTags:- - Prerelease- - base-4.16.0.0- viChangeLog: https://downloads.haskell.org/~ghc/9.2.1-alpha2/docs/html/users_guide/index.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-src.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 69be189e6e7f8d51a9078ac8f177176bc5bff54edc8352974c50c1f0e110df27- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-921-alpha2-64-deb9- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 7262f3a230cd6945c588882e03941301877a9eb12e58c5975ad264596c2e12f2- '( >= 10 && < 11 )': &ghc-921-alpha2-64-deb10- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 6d36cd08576bdee7473fee66b4b8ceb72011983a7d5aa3ec587403815a73e37b- unknown_versioning: *ghc-921-alpha2-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-921-alpha2-64-fedora- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 95624192ff0982690bc9093632d6351fdc6f72e6df380b392449229c39a0354b- '( >= 16 && < 19 )': *ghc-921-alpha2-64-deb9- Linux_Mint:- unknown_versioning: *ghc-921-alpha2-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-921-alpha2-64-fedora- unknown_versioning: *ghc-921-alpha2-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-921-alpha2-64-centos- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: dee4f158f2d59bfe97ec3f5773b6b31aa911f9b128a5e56eeefa2dccc754d295- unknown_versioning: *ghc-921-alpha2-64-centos- Linux_RedHat:- unknown_versioning: *ghc-921-alpha2-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-9.2.0.20210422-x86_64-unknown-linux- dlHash: f61ae72925325ca7b316e40121e8d6bad94794016d3fa59bcbc8dbe116a7f13c- Linux_AmazonLinux:- unknown_versioning: *ghc-921-alpha2-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-921-alpha2-64-fedora- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 195728e02398ea6154fe713b7782a0cae856eb0d9d90f5d09cd0cca610c985e2- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 8884c059f2b76e4c4309ff6bd7a7dde37663f751fd26220e9a2bcabb4d69a401- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-921-alpha2-32-deb9- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-i386-deb9-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: a378ec3fd31a9fa2a7134e98159e189362fe969f04031515616e9cc3182c861a- unknown_versioning: *ghc-921-alpha2-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-921-alpha2-32-deb9- Linux_Mint:- unknown_versioning: *ghc-921-alpha2-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-921-alpha2-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: fd2f4d0f6122f752aca396fe1a13e7d14d037dc45806bb0404a031eeeeb1994c- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-armv7-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: dab7d7785d6ccafb130526b666669fc974ba5c90fc9aaf2024f9c65bcbd097d3- Cabal:- 2.4.1.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-alpine-linux-musl.tar.xz- dlSubdir:- dlHash: 720bef015f834a03deb7180be2952a44e7c2e6c8429137570404c3de4f46b984- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz- dlSubdir:- dlHash: 6136c189ffccaa39916f9cb5788f757166444a2d0c473b987856a79ecbf0c714- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-apple-darwin-sierra.tar.xz- dlSubdir:- dlHash: 56361cf4b0d920fe23174751fea1fb82a8e1ce522bd9706a3fbe47a72e458c9c- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-portbld-freebsd.tar.xz- dlSubdir:- dlHash: 33b7d37ea0688c93436eac9ec139d9967687875aa1fa13f2bb73bf05a9a59a1d- A_32:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz- dlSubdir:- dlHash: b2da736cc27609442b10f77fc1a687aba603a7a33045b722dbf1a0066fade198- 3.0.0.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-alpine-linux-musl.tar.xz- dlHash: 2b7ea63601e11a0db2941b96e6a7036a48efc2a1ab3849d7dfce08b45f5daa58- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-unknown-linux.tar.xz- dlHash: ee911ba67a70756eedeac662955b896d7e89432a99372aa45d2c6e71fa95a5e4- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-apple-darwin17.7.0.tar.xz- dlHash: d4857e068560515e4cbb0e8ca124c370e07892f2a28804d87152834e5fe2b845- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-portbld-freebsd.tar.xz- dlHash: 2240842ab2ae7b955feb8b526aba1c7991248c803383107adf39990441294d2a- A_32:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-i386-alpine-linux-musl.tar.xz- dlHash: ac018f061993d40bf146517e32629bcab274b4d9f5527b1c37a665ebdf3f5ac6- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-i386-unknown-linux.tar.xz- dlHash: 6898ccd6e6dc0872999c06daaf61d546164e12f60a1880d09852c9f0c59c5cf6- 3.2.0.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz- dlHash: 8bae37a1ce8b5f10440b5591fed734935e1411c1b765258325ffe268e2cc2042- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz- dlHash: 32d1f7cf1065c37cb0ef99a66adb405f409b9763f14c0926f5424ae408c738ac- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-apple-darwin17.7.0.tar.xz- dlHash: 9197c17d2ece0f934f5b33e323cfcaf486e4681952687bc3d249488ce3cbe0e9- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-portbld-freebsd.tar.xz- dlHash: f1e35151cca91541b0fb4bdb3ed18f3c348038eab751845ad19c11307d66c273- A_32:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-alpine-linux-musl.tar.xz- dlHash: c2a419dedf730987b60daf8d24e871d115a09ea608d740d7c61b36e3f5b9c830- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-unknown-linux.tar.xz- dlHash: 2b3ac28549916de5f3379241797eaf60e84b6c001f2abbe73d9fadbbaf768e93- 3.4.0.0:- viTags:- - Recommended- - Latest- viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.4.0.0.md- viArch:- A_64:- Linux_Ubuntu:- unknown_versioning: &cabal-3400-ubuntu- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-ubuntu-16.04.tar.xz- dlHash: cf28f9ffd763476aa2b1730d85cbf155d366fac541f78ee3951e8cb2d6de63e6- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-alpine-3.11.6-static-noofd.tar.xz- dlHash: c74073fe79110946182e522fcadc8dcabf07c87583e8cf7801ed4e0c327241f6- Linux_UnknownLinux:- unknown_versioning: *cabal-3400-ubuntu- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-darwin-sierra.tar.xz- dlHash: cb10be9a53e856aa2d852fd88fb6944f138783ffe0ea84d93c9a69244e34ea91- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz- dlHash: a1e2db664ec00e42a1e071a4181f6476f6e0bad321f1ddc0cf27831119f4c6d4- A_32:- Linux_UnknownLinux:- unknown_versioning: &cabal-3400-32- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-i386-unknown-linux.tar.xz- dlHash: cc62a471e9e68a6a9933e54f75bf0cffae67a1d2220df1152ab887c38eb6bc8a- Linux_Alpine:- unknown_versioning: *cabal-3400-32- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-aarch64-ubuntu-18.04.tar.xz- dlHash: 04d378347896dfdc3510b192b97489815cfa5d692f46e2758da0f789e682b8f0- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz- dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed- GHCup:- 0.1.16.2:- viTags:- - Recommended- - Latest- viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md- viSourceDL:- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &ghcup-64- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2- dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2- dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2- dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9- Linux_Alpine:- unknown_versioning: *ghcup-64- A_32:- Linux_UnknownLinux:- unknown_versioning: &ghcup-32- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2- dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38- Linux_Alpine:- unknown_versioning: *ghcup-32- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-linux-ghcup-0.1.16.2- dlHash: 0bdbfc724e0ddabb266156eea83c2c4e19c6ed79dd06db0c29b7d69df8d9fa8c- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2- dlHash: 8854e991a2ba1350abda59dab96ce50ae7729d1ce99399d67929ef31e90f1da5- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/armv7-linux-ghcup-0.1.16.2- dlHash: 983ebb5b584bfa600704216a63f94b40d36a02573834e90ef1042c8472d9ad57- HLS:- 1.1.0:- viTags:- - Recommended- - Latest- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#110- viPostInstall: "This is just the server part of your LSP configuration. Consult the README on how to configure HLS, your project and your LSP client in your editor: https://github.com/haskell/haskell-language-server/blob/master/README.md"- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.1.0/haskell-language-server-Linux-1.1.0.tar.gz- dlHash: 0f0dadb0e9a08273658f565fd71c636801959b954be2737f38f2a1aac522208f- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.1.0/haskell-language-server-macOS-1.1.0.tar.gz- dlHash: 4e89b192e2f49637d772e974f2c17b16da067ecd5912575eaa542551de97681b- Linux_Alpine:- unknown_versioning: *hls-64
− data/metadata/ghcup-0.0.5.yaml
@@ -1,2235 +0,0 @@-----globalTools:- ShimGen:- dlUri: https://downloads.haskell.org/~ghcup/shimgen/shim-2.exe- dlHash: 7c55e201f71860c5babea886007c8fa44b861abf50d1c07e5677eb0bda387a70-toolRequirements:- GHC:- unknown_version:- Linux_Debian:- unknown_versioning:- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi6- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- Linux_Ubuntu:- unknown_versioning:- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi6- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- "( >= 20.04 && < 20.10 )":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi7- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- "( >= 20.10 )":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi8ubuntu1- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- Linux_CentOS:- '( >= 7 && < 8 )':- distroPKGs:- - gcc- - gcc-c++- - gmp- - gmp-devel- - make- - ncurses- - xz- - perl- notes: ''- unknown_versioning:- distroPKGs:- - gcc- - gcc-c++- - gmp- - gmp-devel- - make- - ncurses- - ncurses-compat-libs- - xz- - perl- notes: ''- Linux_Fedora:- unknown_versioning:- distroPKGs:- - gcc- - gcc-c++- - gmp- - gmp-devel- - make- - ncurses- - ncurses-compat-libs- - xz- - perl- notes: ''- Linux_Alpine:- unknown_versioning:- distroPKGs:- - binutils-gold- - curl- - gcc- - g++- - gmp-dev- - ncurses-dev- - libffi-dev- - make- - xz- - tar- - perl- notes: ''- Linux_UnknownLinux:- unknown_versioning:- distroPKGs: []- notes: 'You need the following packages: curl g++ gcc gmp make ncurses realpath- xz-utils. Consult your distro documentation on the exact names of those- packages.'- Darwin:- unknown_versioning:- distroPKGs: []- notes: On OS X, in the course of running ghcup you will be given a dialog- box to install the command line tools. Accept and the requirements will- be installed for you. You will then need to run the command again.- FreeBSD:- unknown_versioning:- distroPKGs:- - curl- - gcc- - gmp- - gmake- - ncurses- - perl5- - libffi- - libiconv- notes: ''- Windows:- unknown_versioning:- distroPKGs: []- notes: On Windows, msys2 should already have been set up during the installation,- so most users should just press ENTER.- If you are installing manually, make sure to have a working mingw64 toolchain and- shell.-ghcupDownloads:- GHC:- 7.10.3:- viTags:- - base-4.8.2.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-1.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-src.tar.xz- dlSubdir: ghc-7.10.3- dlHash: cf90cedce1c28fd0e2b9e72fe8a938756668d18ea1fcc884a19f698658ac4fef- viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"- viPostInstall: "GHC-7.10.3 may give linking errors on most modern distros. You may have to pass '--ghc-option=-optc-no-pie --ghc-option=-optl-no-pie' to cabal build/install. Also see https://gitlab.haskell.org/ghc/ghc/-/issues/18763"- viArch:- A_64:- Linux_Debian:- unknown_versioning: &ghc-7103-64-deb8- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-deb8-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 01cfbad8dff1e8b34a5fdca8caeaf843b56e36af919e29cd68870d2588563db5- Linux_Ubuntu:- unknown_versioning: *ghc-7103-64-deb8- Linux_Mint:- unknown_versioning: *ghc-7103-64-deb8- Linux_CentOS:- unknown_versioning: &ghc-7103-64-centos- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-centos67-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: a8957f7a2fd81720c5d3dc403571d77d31115ff5f42edb2917c36d8e714220d4- Linux_AmazonLinux:- unknown_versioning: *ghc-7103-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-7103-64-deb8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-apple-darwin.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 80893e367e8318105f7db2064adf202e3d96b1f014e792b73e92f2cacf0b757a- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-portbld-freebsd.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 2aa396edd2bb651f4bc7eef7a396913ea24923de5aafdc76df6295333e487e48- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-7.10.3- dlHash: 63e1689fc9e2809ae4d7f422b4dc810052e54c9aa2afd08746e234180e711dde- A_32:- Linux_Debian:- unknown_versioning: &ghc-7103-32-deb8- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-deb8-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: d2ccf072457fb100503f6f5430a1e3589ca525a97424263d036b0550bc277f0c- Linux_Ubuntu:- unknown_versioning: *ghc-7103-32-deb8- Linux_Mint:- unknown_versioning: *ghc-7103-32-deb8- Linux_CentOS:- unknown_versioning: &ghc-7103-32-centos- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-centos67-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: c50aa20275e8d1ba9148f380eb7598bc148143281fc17c9acd38ea7b325852bd- Linux_AmazonLinux:- unknown_versioning: *ghc-7103-32-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-7103-32-deb8- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-portbld-freebsd.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 3dde05577c6f94dcb0ba201ebd53ab88553bbc9a3aa8e72237162ed7a9d588a3- 8.0.2:- viTags:- - base-4.9.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.0.2/docs/html/users_guide/8.0.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-src.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 11625453e1d0686b3fa6739988f70ecac836cadc30b9f0c8b49ef9091d6118b1- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb7-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b2f5c304b57ac5840a0d2ef763a3c6fa858c70840f749cfad12ed227da973c0a- unknown_versioning: &ghc-802-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 5ee68290db00ca0b79d57bc3a5bdce470de9ce9da0b098a7ce6c504605856c8f- Linux_Ubuntu:- unknown_versioning: *ghc-802-64-deb8- Linux_Mint:- unknown_versioning: *ghc-802-64-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.0.2/ghc-8.0.2-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 517783b660a27ebf95b2568d47292fd633d5f9a4de4c80ad1ccf05e1b9d7313f- Linux_UnknownLinux:- unknown_versioning: *ghc-802-64-deb8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.0.2- dlHash: ff50a2df9f002f33b9f09717ebf5ec5a47906b9b65cc57b1f9849f8b2e06788d- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b36a20e5cae24d70bbb6116ae486f21811e9384f15d3892d260f02fba3e3bb8c- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 8c42c1f4af995205b9816a1e97e2752fe758544c1f5fe77958cdcd319c9c2d53- A_32:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb7-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 07ead3a49f8c9df4b429e7a2f96f6f31bcab8d3ff8277a9aed0201d13ddad448- unknown_versioning: &ghc-802-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 818621342a2161b8afcc995a0765816bb40aefbfa1db2c8a7d59c04d8b18228a- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.0.2/ghc-8.0.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b4cd12a1048b2fff2f23c9eec0dd3a1174d54d017f8d79ec79af4534118e6881- Linux_UnknownLinux:- unknown_versioning: *ghc-802-32-deb8- 8.2.2:- viTags:- - base-4.10.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.2.2/docs/html/users_guide/8.2.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-src.tar.xz- dlSubdir: ghc-8.2.2- dlHash: bb8ec3634aa132d09faa270bbd604b82dfa61f04855655af6f9d14a9eedc05fc- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 7 && < 8 )': &ghc-822-64-deb7- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb7-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd7afbca54edf9890da9f432c63366556246c85c1198e40c99df5af01c555834- unknown_versioning: &ghc-822-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 48e205c62b9dc1ccf6739a4bc15a71e56dde2f891a9d786a1b115f0286111b2a- Linux_Ubuntu:- unknown_versioning: *ghc-822-64-deb8- Linux_Mint:- unknown_versioning: *ghc-822-64-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.2.2/ghc-8.2.2-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: adcf3a320a3c402aba07ae9586990dc3c0b550e96aeffb1b9e194313d3ba716d- Linux_UnknownLinux:- unknown_versioning: *ghc-822-64-deb7- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.2.2- dlHash: f90fcf62f7e0936a6dfc3601cf663729bfe9bbf85097d2d75f0a16f8c2e95c27- FreeBSD:- '( >= 10 && < 11 )':- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld10_3-freebsd.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 9e99aaeaec4b2c6d660d80246c0d4dbd41fda88f1eb7a908b29dc8fa8d663949- '( >= 11 && < 12 )': &ghc-822-64-fbsd11- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld11-freebsd.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd351c704b92b9af23994024df07de8ca7090ea7675d5c8b14b2be857a46d804- unknown_versioning: *ghc-822-64-fbsd11- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 1e033df2092aa546e763e7be63167720b32df64f76673ea1ce7ae7c9f564b223- A_32:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb7-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd18766b1a9b74fc6c90003a719ecab158f281f9a755d8b1bd3fd764ba6947b5- unknown_versioning: &ghc-822-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 9e67d72d76482e0ba91c718e727b00386a1a12a32ed719714976dc56ca8c8223- Linux_Ubuntu:- unknown_versioning: *ghc-822-32-deb8- Linux_Mint:- unknown_versioning: *ghc-822-32-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.2.2/ghc-8.2.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 467534c32552cfd318753112dbc70af003693aad4b0081f2a07e61f5b5ea2c22- Linux_UnknownLinux:- unknown_versioning: *ghc-822-32-deb8- 8.4.1:- viTags:- - base-4.11.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.1/docs/html/users_guide/8.4.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-src.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 39ae2f25192408f355693e5a3c8b6ff613ddb7c4da998fdf26210143a61839d2- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 427c77a934b30c3f1de992c38c072afb4323fe6fb30dbac919ca8cb6ae98fbd9- Linux_Ubuntu:- unknown_versioning: &ghc-841-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 89328a013e64b9b56825a9071fea5616ddd623d37fd41e8fb913dfebc609e7ea- Linux_Mint:- unknown_versioning: *ghc-841-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-841-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-841-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.1- dlHash: d774e39f3a0105843efd06709b214ee332c30203e6c5902dd6ed45e36285f9b7- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-portbld11-freebsd.tar.xz- dlSubdir: ghc-8.4.1- dlHash: e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 328b013fc651d34e075019107e58bb6c8a578f0155cf3ad4557e6f2661b03131- A_32:- Linux_Debian:- unknown_versioning: &ghc-841-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: c56c589c76c7ddcb77cdbef885a811761e669d3e76868b723d5be56dedcd4f69- Linux_Ubuntu:- unknown_versioning: *ghc-841-32-deb8- Linux_Mint:- unknown_versioning: *ghc-841-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-841-32-deb8- 8.4.2:- viTags:- - base-4.11.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.2/docs/html/users_guide/8.4.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-src.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 01cc32f24a06bf3b2428351b6d7fec791e82d042426d29ad9e5a245b35f0047b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 246f66eb56f4ad0f1c7755502cfc8f9972f2d067dede17e151f6f479c1f76fbd- unknown_versioning: &ghc-842-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 3f4f5bbd2cdab4e7015ada9196d8d9b3a1ad274293cef011f85c46854596cb57- Linux_Ubuntu:- unknown_versioning: &ghc-842-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: d057b5c833596dbe4ae5d0dc2994f6cc5d0f4c2a21ea1d7900821d165fd4e846- '( >= 16 && < 19 )': *ghc-842-64-deb9- Linux_Mint:- unknown_versioning: *ghc-842-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-842-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-842-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 87469222042b9ac23f9db216a8d4e5107297bdbbb99df71eb4d9e7208455def2- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.4.2- dlHash: e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 797634aa9812fc6b2084a24ddb4fde44fa83a2f59daea82e0af81ca3dd323fde- A_32:- Linux_Debian:- unknown_versioning: &ghc-842-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 2d849c30b4c1eac25dc74333501920921e22fa483153f404993808bbda93df05- Linux_Ubuntu:- unknown_versioning: *ghc-842-32-deb8- Linux_Mint:- unknown_versioning: *ghc-842-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-842-32-deb8- 8.4.3:- viTags:- - base-4.11.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.3/docs/html/users_guide/8.4.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-src.tar.xz- dlSubdir: ghc-8.4.3- dlHash: ae47afda985830de8811243255aa3744dfb9207cb980af74393298b2b62160d6- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 30a402c6d4754a6c020e0547f19ae3ac42e907e35349aa932d347f73e421a8e2- unknown_versioning: &ghc-843-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 2e4f53afb872ad9c640f31aea283b3ff4c5028b65808a1920739900aef7d15c9- Linux_Ubuntu:- unknown_versioning: &ghc-843-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 269e7a4d3f336491b88409a020998122b30a3a729af78d33be86d3b3f8000c3e- '( >= 16 && < 19 )': *ghc-843-64-deb9- Linux_Mint:- unknown_versioning: *ghc-843-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-843-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-843-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.3- dlHash: af0b455f6c46b9802b4b48dad996619cfa27cc6e2bf2ce5532387b4a8c00aa64- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 8a83cfbf9ae84de0443c39c93b931693bdf2a6d4bf163ffb41855f80f4bf883e- A_32:- Linux_Debian:- unknown_versioning: &ghc-843-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: f5763983a26dedd88b65a0b17267359a3981b83a642569b26334423f684f8b8c- Linux_Ubuntu:- unknown_versioning: *ghc-843-32-deb8- Linux_Mint:- unknown_versioning: *ghc-843-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-843-32-deb8- 8.4.4:- viTags:- - base-4.11.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.4.4/docs/html/users_guide/8.4.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-src.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 11117735a58e507c481c09f3f39ae5a314e9fbf49fc3109528f99ea7959004b2- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 4c2a8857f76b7f3e34ecba0b51015d5cb8b767fe5377a7ec477abde10705ab1a- unknown_versioning: &ghc-844-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 47c80a32d8f02838a2401414c94ba260d1fe82b7d090479994522242c767cc83- Linux_Ubuntu:- unknown_versioning: &ghc-844-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 8ab2befddc14d1434d0aad0c5d3c7e0c2b78ff84caa3429fa62527bfc6b86095- '( >= 16 && < 19 )': *ghc-844-64-deb9- Linux_Mint:- unknown_versioning: *ghc-844-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-844-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-844-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 83a96650f5a92b1e4d7651d256d6438624342d40e780e68125033435a54cd674- Linux_RedHat:- unknown_versioning: *ghc-844-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.4.4/ghc-8.4.4-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 336affff8314d3dc5e85d9c09015ae2ba8a7658b459c8c8ae77ecaa551a56ae7- Linux_AmazonLinux:- unknown_versioning: *ghc-844-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-844-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 28dc89ebd231335337c656f4c5ead2ae2a1acc166aafe74a14f084393c5ef03a- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-portbld-freebsd11.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.4- dlHash: da29dbb0f1199611c7d5bb7b0dd6a7426ca98f67dfd6da1526b033cd3830dc05- A_32:- Linux_Debian:- unknown_versioning: &ghc-844-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 678bafaabea6af70ba71ccf0210bb437f9f5591ec28ac1cbbbd5f7aa6894e450- Linux_Ubuntu:- unknown_versioning: *ghc-844-32-deb8- Linux_Mint:- unknown_versioning: *ghc-844-32-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.4.4/ghc-8.4.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 892888d388ef5c9cadf5cfba1146d62237c25b9b066fb62fee940b2b285fd308- Linux_UnknownLinux:- unknown_versioning: *ghc-844-32-deb8- 8.6.1:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.1/docs/html/users_guide/8.6.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-src.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 2c25c26d1e5c47c7cbb2a1d8e6456524033e7a71409184dd3125e3fc5a3c7036- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 6d8784401b7dd80c90fa17306ec0539920e3987399a2c7ef247989e53197dc42- unknown_versioning: &ghc-861-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 97d44f303868d74e4d13a2e99c82ffce3d25fd54c704675e5a1939e0d824dbf0- Linux_Ubuntu:- unknown_versioning: &ghc-861-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: da903fbcf11ee6c977a8b7dac3f04dbc098d674def587880b6624b8f32588beb- '( >= 16 && < 19 )': *ghc-861-64-deb9- Linux_Mint:- unknown_versioning: *ghc-861-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-861-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-861-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 9692cdfd202b0e039ea0c3dde5dbf653736c836ca1df46504b179b572100808c- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 7316d9cb5e486460476754f872c7bac30ee2082e42f46da4342f872d10b88099- A_32:- Linux_Debian:- unknown_versioning: &ghc-861-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 83573af96e3dec8f67c1a844512f92cbf7d51ae7ceca53d948fc2a3300abd05c- Linux_Ubuntu:- unknown_versioning: *ghc-861-32-deb8- Linux_Mint:- unknown_versioning: *ghc-861-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-861-32-deb8- 8.6.2:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.2/docs/html/users_guide/8.6.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-src.tar.xz- dlSubdir: ghc-8.6.2- dlHash: caaa819d21280ecde90a4773143dee188711e9ff175a27cfbaee56eb851d76d5- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- unknown_versioning: &ghc-862-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 13f96e8b83bb5bb60f955786ff9085744c24927a33be8a17773f84c7c248533a- Linux_Ubuntu:- unknown_versioning: &ghc-862-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 702aa5dfa1639c37953ceb7571a5057d9fb0562aecb197b277953a037d78047d- '( >= 16 && < 19 )': *ghc-862-64-deb8- Linux_Mint:- unknown_versioning: *ghc-862-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-862-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-862-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 8ec46a25872226dd7e5cf7271e3f3450c05f32144b96e6b9cb44cc4079db50dc- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 9a398e133cab09ff2610834337355d4e26c35e0665403fb9ff8db79315f74d3d- A_32:- Linux_Debian:- unknown_versioning: &ghc-862-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: a288026d9ef22f7ac387edab6b29ef7dcb3b28945c8ea532a15c1fa35d4733ed- Linux_Ubuntu:- unknown_versioning: *ghc-862-32-deb8- Linux_Mint:- unknown_versioning: *ghc-862-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-862-32-deb8- 8.6.3:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.3/docs/html/users_guide/8.6.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-src.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 9f9e37b7971935d88ba80426c36af14b1e0b3ec1d9c860f44a4391771bc07f23- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 291ca565374f4d51cc311488581f3279d3167a064fabfd4a6722fe2bd4532fd5- unknown_versioning: &ghc-863-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: e7954c8ed9b422a09c6ab737e4a0865a2725d034ba0e272bd5c70db910797f99- Linux_Ubuntu:- unknown_versioning: &ghc-863-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 52ae92f4e8bb2ac0b7847287ea3da37081f5f7bf8bbb7c78ac35fde537d1a89f- '( >= 16 && < 19 )': *ghc-863-64-deb9- Linux_Mint:- unknown_versioning: *ghc-863-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-863-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-863-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 355bd85c69933c31bbe99b4269ce719acfd0aad0b45e359ac39b9bb13996acc6- Linux_RedHat:- unknown_versioning: *ghc-863-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-863-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-863-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 79d069a1a7d74cfdd7ac2a2711c45d3ddc6265b988a0cefa342714b24f997fc1- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.3- dlHash: bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 2fec383904e5fa79413e9afd328faf9bc700006c8c3d4bcdd8d4f2ccf0f7fa2a- A_32:- Linux_Debian:- unknown_versioning: &ghc-863-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: b57070ba8c70b1333a3e47ce124baf791be39c20a592954772532fd6dd51882f- Linux_Ubuntu:- unknown_versioning: *ghc-863-32-deb8- Linux_Mint:- unknown_versioning: *ghc-863-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-863-32-deb8- 8.6.4:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.4/docs/html/users_guide/8.6.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-src.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 5b5d07e4463203a433c3ed3df461ba6cce11b6d2b9b264db31f3429075d0303a- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 34ef5fc8ddf2fc32a027180bea5b1c8a81ea840c87faace2977a572188d4b42d- unknown_versioning: &ghc-864-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: ef74222ef3c01c3fc5b926f67e8b4ef612fe8efa40ac937317cff9b0eed8d863- Linux_Ubuntu:- unknown_versioning: &ghc-864-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: e0b1ada7a679d6c35f9d7a1192ed35fde054f3650bb0bd2570d103729ad3b846- '( >= 16 && < 19 )': *ghc-864-64-deb9- Linux_Mint:- unknown_versioning: *ghc-864-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-864-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-864-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.4- dlHash: cccb58f142fe41b601d73690809f6089f7715b6a50a09aa3d0104176ab4db09e- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.4- dlHash: e8d021b7a90772fc559862079da20538498d991956d7557b468ca19ddda22a08- A_32:- Linux_Debian:- unknown_versioning: &ghc-864-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 5e2ce88f4d13d23ac37e278e0c7b51c801008931359b9fa8a631d804d2da552c- Linux_Ubuntu:- unknown_versioning: *ghc-864-32-deb9- Linux_Mint:- unknown_versioning: *ghc-864-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-864-32-deb9- 8.6.5:- viTags:- - base-4.12.0.0- viChangeLog: https://downloads.haskell.org/~ghc/8.6.5/docs/html/users_guide/8.6.5-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-src.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 4d4aa1e96f4001b934ac6193ab09af5d6172f41f5a5d39d8e43393b9aafee361- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: c419fd0aa9065fe4d2eb9a248e323860c696ddf3859749ca96a84938aee49107- unknown_versioning: &ghc-865-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: bc75f5601a9f41d58b2ba161b9e28fad52143a7229060f1e084168d9b2e914df- Linux_Ubuntu:- unknown_versioning: &ghc-865-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: cf78b53eaf336083e7a05f4a3000afbae4abe5bbc77ef80cc40e09d04ac5b4a1- '( >= 16 && < 19 )': *ghc-865-64-deb9- Linux_Mint:- unknown_versioning: *ghc-865-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-865-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-865-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 80ab566f4411299f9e5922d60749ca80f989d697db19e03ed875619d699f0edf- Linux_RedHat:- unknown_versioning: *ghc-865-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: b9d3ed7f7aa24ef2d58bb579252289caa0b8877adee3685e3af2fb73d440afdc- Linux_AmazonLinux:- unknown_versioning: *ghc-865-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-865-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.5- dlHash: dfc1bdb1d303a87a8552aa17f5b080e61351f2823c2b99071ec23d0837422169- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 83a3059a630d40a98e26cb5b520354e12094a96e36ba2f5ab002dad94cf2fb37- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 457024c6ea43bdce340af428d86319931f267089398b859b00efdfe2fd4ce93f- A_32:- Linux_Debian:- unknown_versioning: &ghc-865-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 1cddb907393a669342b1a922dd16d505d9d93d50bd9433a54a8162f8701250dc- Linux_Ubuntu:- unknown_versioning: *ghc-865-32-deb9- Linux_Mint:- unknown_versioning: *ghc-865-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 3737837550d9b177acfe150e3a3cd4545427ded020487c2ed5194d7b8f116349- Linux_UnknownLinux:- unknown_versioning: *ghc-865-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-aarch64-ubuntu18.04-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 1852589037e4b2805ab517bc430e25a3125c4a118a1674ffefbb443394a0c786- 8.8.1:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.1/docs/html/users_guide/8.8.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-src.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 908a83d9b814da74585de9d39687189e6260ec3848131f9d9236cab8a123721a- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: fd96eb851971fbc3332bf2fa7821732cfa8b37e5a076a69f6a06f83f0ea7ccc5- unknown_versioning: &ghc-881-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 620fd560535b63cac5f8c97354ccddf93fa940cca78e2d19f6f98b7e67c6a723- Linux_Ubuntu:- unknown_versioning: &ghc-881-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 851a78df620bc056c34b252c97040d5755e294993fa8afa5429708b5229204d6- '( >= 16 && < 19 )': *ghc-881-64-deb9- Linux_Mint:- unknown_versioning: *ghc-881-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-881-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-881-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 6cdd34e4dbaeb801e805811f91cf43a2d5f64b22f884718ffbd3542a2f4dd14f- Linux_RedHat:- unknown_versioning: *ghc-881-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-881-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-881-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 38c8917b47c31bedf58c9305dfca3abe198d8d35570366f0773c4e2948bd8abe- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 29e56e6af38017a5a76b2b6995a39d3988fa58131e4b55b62dd317ba7186ac9b- A_32:- Linux_Debian:- unknown_versioning: &ghc-881-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 3d3bb75aff2dd79ec87ace10483368681fbc328ff00ebf15edad33420f00f7f5- Linux_Ubuntu:- unknown_versioning: *ghc-881-32-deb9- Linux_Mint:- unknown_versioning: *ghc-881-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-881-32-deb9- 8.8.2:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.2/docs/html/users_guide/8.8.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-src.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 01cea54d90686b97bcc9960b108beaffccd4336dee930dcf9beaf52b1f370a0b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: fbe69652eba75dadb758d00292247d17fb018c29cac5acd79843e56311256c9f- unknown_versioning: &ghc-882-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 7b2d66c2d5d8c15750da5833d3018634a5eb792a5662282e3abfeb112c2a1cc3- Linux_Ubuntu:- unknown_versioning: &ghc-882-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: dbe2db717b33460f790e155e487d2a31c9b21a9d245f0c9490ad65844c3ea21f- '( >= 16 && < 19 )': *ghc-882-64-deb9- Linux_Mint:- unknown_versioning: *ghc-882-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-882-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-882-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: f065a017d7a38f235f186ffe32d8261a4fd39c7e945d5cde85c0984c2569db99- Linux_RedHat:- unknown_versioning: *ghc-882-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-882-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-882-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 25c5c1a70036abf3f22b2b19c10d26adfdb08e8f8574f89d4b2042de5947f990- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.2- dlHash: e25d9b16ee62cafc7387af2cd021eea676a99cd2c32b83533b016162c63065d9- A_32:- Linux_Debian:- unknown_versioning: &ghc-882-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: ad1c628082c32635a436905a7ff83eaa4246347d869be5ef6b33c3bf85e8f00c- Linux_Ubuntu:- unknown_versioning: *ghc-882-32-deb9- Linux_Mint:- unknown_versioning: *ghc-882-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-882-32-deb9- 8.8.3:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.3/docs/html/users_guide/8.8.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-src.tar.xz- dlSubdir: ghc-8.8.3- dlHash: e0dcc0aaf3e234c5978f29e6df62947e97720ab404ec0158343df211c5480f89- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 92b9fadc442976968d2c190c14e000d737240a7d721581cda8d8741b7bd402f0- unknown_versioning: &ghc-883-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 42fde2ef5a143e1e6b47ae8875162ea2d4d54b06f0f7fa32ee4f0eb86f2be7ad- Linux_Ubuntu:- unknown_versioning: &ghc-883-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 45ee1de3bfc98cbcc4886b65fc7651ade2d3820aa85eac2dbe9bc7bf91e7c818- '( >= 16 && < 19 )': *ghc-883-64-deb9- Linux_Mint:- unknown_versioning: *ghc-883-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-883-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-883-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 4b2b5313f7c12b81e54efcb26705fa9e4ad5b98f2b58bfc76fb0c9ba1d55eb1f- Linux_RedHat:- unknown_versioning: *ghc-883-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-883-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-883-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 7016de90dd226b06fc79d0759c5d4c83c2ab01d8c678905442c28bd948dbb782- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.3/ghc-8.8.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 569719075b4d14b3875a899df522090ae31e6fe085e6dffe518e875b09a2f0be- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.3- dlHash: e22586762af0911c06e8140f1792e3ca381a3a482a20d67b9054883038b3a422- A_32:- Linux_Debian:- unknown_versioning: &ghc-883-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 441e2c7a4fc83ebf179712bd939b555cda7c6633545b7c8ac38049f9d85003ae- Linux_Ubuntu:- unknown_versioning: *ghc-883-32-deb9- Linux_Mint:- unknown_versioning: *ghc-883-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-883-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 2a6821d0e7326cfa7670851702924bbab3b092415ba41247c37419158327eed9- 8.8.4:- viTags:- - base-4.13.0.0- viChangeLog: https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/8.8.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-src.tar.xz- dlSubdir: ghc-8.8.4- dlHash: f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 51a36892f1264744195274187298d13ac62bce2da86d4ddf76d8054ab90f2feb- unknown_versioning: &ghc-884-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20- Linux_Ubuntu:- unknown_versioning: &ghc-884-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db- '( >= 16 && < 19 )': *ghc-884-64-deb9- Linux_Mint:- unknown_versioning: *ghc-884-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-884-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-884-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910- Linux_RedHat:- unknown_versioning: *ghc-884-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 90c6a1661de7f20c7d169cd6270125035b3332063e45103ce028df0beecf434e- Linux_AmazonLinux:- unknown_versioning: *ghc-884-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-884-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.4- dlHash: e80a789e9d8cfb41dd87f3284b75432427c4461c1731d220d04ead8733ccdb5e- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 8cebe5ccf454e82acd1ff52ca57590d1ab0f3f44a981b46257ec12158c8c447e- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.4- dlHash: d185055d2c8dc3bfe5b88afd59d6877eb1e722b672d1c9649f18296e148ed71f- A_32:- Linux_Debian:- unknown_versioning: &ghc-884-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0- Linux_Ubuntu:- unknown_versioning: *ghc-884-32-deb9- Linux_Mint:- unknown_versioning: *ghc-884-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 1d18e89ee031197e55c48683e78a7ffc67601ac5fd9f73aac555eb064b3859a2- Linux_UnknownLinux:- unknown_versioning: *ghc-884-32-deb9- 8.10.1:- viTags:- - base-4.14.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.10.1/docs/html/users_guide/8.10.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-src.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 4e3b07f83a266b3198310f19f71e371ebce97c769b14f0d688f4cbf2a2a1edf5- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8101-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: d1cf7886f27af070f3b7dbe1975a78b43ef2d32b86362cbe953e79464fe70761- '( >= 10 && < 11 )': &ghc-8101-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: c1e31d798b013699b3c0de4fda27fb4cda47f572df0e75e3bd598a3012060615- unknown_versioning: *ghc-8101-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8101-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 3c4cd72b4806045779739e8f5d1658e30e57123d88c2c8966422cdbcae448470- '( >= 16 && < 19 )': *ghc-8101-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8101-64-fedora- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8101-64-fedora- unknown_versioning: *ghc-8101-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8101-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 0618b94854edc6be5302489df905e627820b71be6b66c950f5e3088fe92df0a1- unknown_versioning: *ghc-8101-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8101-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.1-x86_64-unknown-linux- dlHash: cb13b645d103e2fba2eb8dfcc4e5f2fbd9550c00c4df42f342b4210436dcb8a8- Linux_AmazonLinux:- unknown_versioning: *ghc-8101-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8101-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 65b1ca361093de4804a7e40b3e68178e1ef720f84f743641ec8d95e56a45b3a8- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.1/ghc-8.10.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.1- dlHash: e8646ec9b60fd40aa9505ee055f22f04601290ab7a1342c2cf37c34de9d3f142- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 38a3166ea50cccd5bae7e1680eae3aae2b4ae31b61f82a1d8168fb821f43bd67- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8101-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 8b53eef2c827b5f634d72920a93c0c9dd66ea288691a2bfe28def45d3c686ee2- unknown_versioning: *ghc-8101-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8101-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8101-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.1/ghc-8.10.1-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 7360cc6b29e9b4ab08f6ea5bc3bcca6f5c216933e81ef1620dcdd700f1fdb289- Linux_UnknownLinux:- unknown_versioning: *ghc-8101-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: c099011e07999db917e797fb5d89c31f075a562556ab99be8ab0accbf2a94db7- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-armv7-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: afe1bde2b0d6deb0320b9460fffe5d9427e302df85aec866b9c1458777d52b28- 8.10.2:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.2/docs/html/users_guide/8.10.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-src.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9c573a4621a78723950617c223559bdc325ea6a3409264aedf68f05510b0880b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8102-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 4dbe3b479e76767bfeb4cbb7a4db8b761c4720266193483ca370b2ace3f10f7c- '( >= 10 && < 11 )': &ghc-8102-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 94513d82c38c848f489113a75fa5ef4e5a8e3ecfaa74ca90e2620d2193ff1632- unknown_versioning: *ghc-8102-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8102-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 8c675da83e9b3c2f64ebb407b5f9ebb2c1f21aa5d701020614fdce644a542e3b- '( >= 16 && < 19 )': *ghc-8102-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8102-64-fedora- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8102-64-fedora- unknown_versioning: *ghc-8102-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8102-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: fd2dccd6f496915a5f962dab24e7eeb8bee49bcc38e74b17eac76159083538fa- unknown_versioning: *ghc-8102-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8102-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.2-x86_64-unknown-linux- dlHash: 14d09a508f2a3a11875c140be8e6c5f6982ac5cd448f089ca10b7adc955fec76- Linux_AmazonLinux:- unknown_versioning: *ghc-8102-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8102-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.2- dlHash: edb772b00c0d7f18bb56ad27765162ee09c508104d40f82128c9114a02f6cfc2- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9e5957f3497f4b58ecd3699568d9caaa11a47a6d7e902032c261e450fa0f6686- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.2- dlHash: dcae4c173b9896e07ff048de5509aa0a4537233150e06e5ce8848303dfadc176- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8102-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9dae2a86ad43d08f72c783542c944d1556b075aa20a8063efae5034ea88e7c2f- unknown_versioning: *ghc-8102-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8102-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8102-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8102-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.2/ghc-8.10.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9ee1cf1e85e9536088b3c9e80e975074e525ea378cd4eb156071bbc4b7b38327- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 5cf24189077e6e2dce2aa16367ad8a53f603e751a15010dfb23d067206e55593- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: bb9c97826b1f4d7a8ef8bce0616b612f1ded10480ef10fcf7fb4e6d10a6681c8- 8.10.3:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.3/docs/html/users_guide/8.10.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-src.tar.xz- dlSubdir: ghc-8.10.3- dlHash: ccdc8319549028a708d7163e2967382677b1a5a379ff94d948195b5cf46eb931- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8103-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 95e4aadea30701fe5ab84d15f757926d843ded7115e11c4cd827809ca830718d- '( >= 10 && < 11 )': &ghc-8103-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: c8f3d9f0e61a89eaba1d3ad8fb2eced1af0e81576811261b887993bee12538ac- unknown_versioning: *ghc-8103-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8103-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f8739b12008712d6b6a9ffc6c39f9d05af77ef3bcb932c9aff20fa0893c8c159- '( >= 16 && < 19 )': *ghc-8103-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8103-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8103-64-fedora- unknown_versioning: *ghc-8103-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8103-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f562ca61979ff1d21e34e69e59028cb742a8eff8d84e46bbd3a750f2ac7d8ed1- unknown_versioning: *ghc-8103-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8103-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.3-x86_64-unknown-linux- dlHash: 8506c478ebbfb5441c3c36c07c36fc8532cacb2b3e13c6733bd44cb17b3ce96c- Linux_AmazonLinux:- unknown_versioning: *ghc-8103-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8103-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 2635f35d76e44e69afdfd37cae89d211975cc20f71f784363b72003e59f22015- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 749007e995104db05cf6e3ad5bc36238cab8afac8055145661e5730e8f8af040- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 927a6c699533a115cd49772ef2c753d9af2c13bf9f0b2d3bd13645cc6a144ee3- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8103-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f0addd2a16b705f58ff9e8702c3ddf3e2d6bd0d3555707b5b5095e51bafee7b1- unknown_versioning: *ghc-8103-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8103-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8103-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8103-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.3/ghc-8.10.3-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 309201cdefd2d13b8b3fd09c26c6137048c490d219a0a9c7407c3ce1d011f60c- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: a531432d505a1fe886cdc8639d168eb1c92d76464c1270713e01ce81891bbadb- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: b823b58cae36fbac0741680ca7605180fa4cf4c6ae439123d282184b94d32fd6- 8.10.4:- viTags:- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.4/docs/html/users_guide/8.10.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-src.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 52af871b4e08550257d720c2944ac85727d0b948407cef1bebfe7508c224910e- viPostRemove: *ghc-post-remove- viPreCompile: &ghc-pre-compile "If you have autoconf >= 2.70 you'll need this patch https://gitlab.haskell.org/ghc/ghc/-/snippets/2040 (see the --patchdir option)"- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8104-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 5694200a5c38f22c142baf850b1d2f3784211d2ec9302e11693259a1ae8e38b7- '( >= 10 && < 11 )': &ghc-8104-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 816365565e9927459b035515a7db6a0db62f9796f327389b6f8a0035d12fbda0- unknown_versioning: *ghc-8104-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8104-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: a189eed900a8717d6d7906bafd10b9a9a9688ad942d1c75e19df480376dff9ea- '( >= 16 && < 19 )': *ghc-8104-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8104-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8104-64-fedora- unknown_versioning: *ghc-8104-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8104-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: fb8a91f0cf06594172aff46c2f6f7486179e1c3760855c79fbdd3012598cc2cd- unknown_versioning: *ghc-8104-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8104-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.4-x86_64-unknown-linux- dlHash: 74c2c07537832708502716ef4ec40019f8e552ddda13c8eadf8f7c4b03a79359- Linux_AmazonLinux:- unknown_versioning: *ghc-8104-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8104-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 725ecf6543e63b81a3581fb8c97afd21a08ae11bc0fa4f8ee25d45f0362ef6d5- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.4- dlHash: c9776a2ccf9629b03e967206a507fcdcb6c5189800a626e9461ababf6733c357- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.4- dlHash: e9175a276504c3390a5e0084954e6997d56078737dbe7158049518892cf6bfb2- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8104-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 0022c5b9ac22825bb7b4745af3d92cef0ba1ecd01fab3ef387ddbd47146569ad- unknown_versioning: *ghc-8104-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8104-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8104-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8104-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.4/ghc-8.10.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 9161a98bed763692101854d83af69c1316030cfe5ee6f6acde283d04ef139735- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 249da6310be799a5eefe0579b6dae1701eb984afb980fe08309d19cf704038ed- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 0d18ef83593272f6196a41cc3abdc48dfe5e14372db75d71ea19fe35320c4e81- 8.10.5:- viTags:- - Recommended- - base-4.14.2.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/8.10.5-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-src.tar.xz- dlSubdir: ghc-8.10.5- dlHash: f10941f16e4fbd98580ab5241b9271bb0851304560c4d5ca127e3b0e20e3076f- viPostRemove: *ghc-post-remove- viPreCompile: *ghc-pre-compile- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8105-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 15e71325c3bdfe3804be0f84c2fc5c913d811322d19b0f4d4cff20f29cdd804d- '( >= 10 && < 11 )': &ghc-8105-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: bc623c20ca4c5c18e952071ba14aa0cfc5c94d34219bffaa615f7b491f376787- unknown_versioning: *ghc-8105-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8105-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 73528ebfb219b50aa9042ee51a0a2bd764828d605f058404989d0b645752d210- '( >= 16 && < 19 )': *ghc-8105-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8105-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8105-64-fedora- unknown_versioning: *ghc-8105-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8105-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 4cdb259ec74d1408dab45dab20dcedc21690f39921c2ea4546486fb3e81f4fbd- unknown_versioning: *ghc-8105-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8105-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.5-x86_64-unknown-linux- dlHash: f4d7cd9ed12a4b8592219c9a63a86db1a256a09fa9e6ed755a60afc57dc782e2- Linux_AmazonLinux:- unknown_versioning: *ghc-8105-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8105-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.5- dlHash: ef0f47eff8962d58fa447123636cf8ef31c1e5b2d0ae90177d3388861ddf4a22- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.5/ghc-8.10.5-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 11a0b490bfb2f57b5bc87c69c197542eafce1b4991cc22f625179a6c6e567834- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 4443d989df4f2680f681a4d8b8db310ce9582d21743984016b0eb0163b0c9998- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8105-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 0ccb5b2c1222374874795c35410754dd650f649b774872abbea2a4ef21ac9c9d- unknown_versioning: *ghc-8105-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8105-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8105-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8105-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.5/ghc-8.10.5-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 0e91abe61607f9375d4e252ee9c261e4856df396f60641bb1b880ab8a3a83ea7- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 9a085cd8a7f8e0ace21ac67dbf659a56fcf41564b48817ba42cd8a1aac7f0ddc- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-aarch64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 03684e70ff03d041b9a4e0f84c177953a241ab8ec7a028c72fa21ac67e66cb09- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 56170d1a8450e18b7eb9c23c94723da352815b27ec250bb23742a62f16dcab6c- 9.0.1:- viTags:- - Latest- - base-4.15.0.0- viChangeLog: https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/9.0.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-src.tar.xz- dlSubdir: ghc-9.0.1- dlHash: a5230314e4065f9fcc371dfe519748fd85c825b279abf72a24e09b83578a35f9- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-901-64-deb9- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 4ca6252492f59fe589029fadca4b6f922d6a9f0ff39d19a2bd9886fde4e183d5- '( >= 10 && < 11 )': &ghc-901-64-deb10- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: c253e7eb62cc9da6524c491c85ec8d3727c2ca6035a8653388e636aaa30a2a0f- unknown_versioning: *ghc-901-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-901-64-fedora- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 1fb8e27eeec51b4cdbfd1b3c16727adc5f77388d3e925e63799d8232647f316d- '( >= 16 && < 19 )': *ghc-901-64-deb9- Linux_Mint:- unknown_versioning: *ghc-901-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-901-64-fedora- unknown_versioning: *ghc-901-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-901-64-centos- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: a23750950b6995a66ba59afe82bbc505bd3479d6ab59cf66f45bc6c056e4d87b- unknown_versioning: *ghc-901-64-centos- Linux_RedHat:- unknown_versioning: *ghc-901-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-9.0.1-x86_64-unknown-linux- dlHash: 7c1a0154c9e361b75be6cb0305533bb8a3b963c54e8092ffd1759e5710805a5c- Linux_AmazonLinux:- unknown_versioning: *ghc-901-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-901-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 122d60509147d0117779d275f0215bde2ff63a64cda9d88f149432d0cae71b22- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 9dbc06d8832cae5c9f86dd7b2db729b3748a47beb4fd4b1e62bb66119817c3c1- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-9.0.1-x86_64-unknown-mingw32- dlHash: 4f4ab118df01cbc7e7c510096deca0cb25025339a97730de0466416296202493- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-901-32-deb9- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 880e37cea8328401bcfecfe4bb56eb85195f30135b140140b3f24094264f8ba5- unknown_versioning: *ghc-901-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-901-32-deb9- Linux_Mint:- unknown_versioning: *ghc-901-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-901-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/9.0.1/ghc-9.0.1-i386-alpine-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: ebfeb3b91e6f2bb5a49fd3376746f7fd1b89e62e9838bf5b1530a8756ff1e6aa- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: fac7a0bdfc83c05df94024a2d67b8f00a9cd2733b9cb41fb8ad76be399014906- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-armv7-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 6f404f9b88468407b3a9ec5800bcc2d01dd453ef3d63414853b4fbbd4d8df496- 9.2.0.20210422:- viTags:- - Prerelease- - base-4.16.0.0- viChangeLog: https://downloads.haskell.org/~ghc/9.2.1-alpha2/docs/html/users_guide/index.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-src.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 69be189e6e7f8d51a9078ac8f177176bc5bff54edc8352974c50c1f0e110df27- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-921-alpha2-64-deb9- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 7262f3a230cd6945c588882e03941301877a9eb12e58c5975ad264596c2e12f2- '( >= 10 && < 11 )': &ghc-921-alpha2-64-deb10- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 6d36cd08576bdee7473fee66b4b8ceb72011983a7d5aa3ec587403815a73e37b- unknown_versioning: *ghc-921-alpha2-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-921-alpha2-64-fedora- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 95624192ff0982690bc9093632d6351fdc6f72e6df380b392449229c39a0354b- '( >= 16 && < 19 )': *ghc-921-alpha2-64-deb9- Linux_Mint:- unknown_versioning: *ghc-921-alpha2-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-921-alpha2-64-fedora- unknown_versioning: *ghc-921-alpha2-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-921-alpha2-64-centos- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: dee4f158f2d59bfe97ec3f5773b6b31aa911f9b128a5e56eeefa2dccc754d295- unknown_versioning: *ghc-921-alpha2-64-centos- Linux_RedHat:- unknown_versioning: *ghc-921-alpha2-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-9.2.0.20210422-x86_64-unknown-linux- dlHash: f61ae72925325ca7b316e40121e8d6bad94794016d3fa59bcbc8dbe116a7f13c- Linux_AmazonLinux:- unknown_versioning: *ghc-921-alpha2-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-921-alpha2-64-fedora- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 195728e02398ea6154fe713b7782a0cae856eb0d9d90f5d09cd0cca610c985e2- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: 8884c059f2b76e4c4309ff6bd7a7dde37663f751fd26220e9a2bcabb4d69a401- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-9.2.0.20210422-x86_64-unknown-mingw32- dlHash: 33f173b754d18f26bb27f52bb77a92fd22a48675daa2b43a1879bf01dddd7e8f- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-921-alpha2-32-deb9- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-i386-deb9-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: a378ec3fd31a9fa2a7134e98159e189362fe969f04031515616e9cc3182c861a- unknown_versioning: *ghc-921-alpha2-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-921-alpha2-32-deb9- Linux_Mint:- unknown_versioning: *ghc-921-alpha2-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-921-alpha2-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: fd2f4d0f6122f752aca396fe1a13e7d14d037dc45806bb0404a031eeeeb1994c- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-alpha2/ghc-9.2.0.20210422-armv7-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210422- dlHash: dab7d7785d6ccafb130526b666669fc974ba5c90fc9aaf2024f9c65bcbd097d3- Cabal:- 2.4.1.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-alpine-linux-musl.tar.xz- dlSubdir:- dlHash: 720bef015f834a03deb7180be2952a44e7c2e6c8429137570404c3de4f46b984- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz- dlSubdir:- dlHash: 6136c189ffccaa39916f9cb5788f757166444a2d0c473b987856a79ecbf0c714- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-apple-darwin-sierra.tar.xz- dlSubdir:- dlHash: 56361cf4b0d920fe23174751fea1fb82a8e1ce522bd9706a3fbe47a72e458c9c- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-portbld-freebsd.tar.xz- dlSubdir:- dlHash: 33b7d37ea0688c93436eac9ec139d9967687875aa1fa13f2bb73bf05a9a59a1d- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-mingw32.zip- dlSubdir:- dlHash: 95f233efedb1ebf0e6db015fa2f55c1ed00b9938d207ec63c066f706fb4b6373- A_32:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz- dlSubdir:- dlHash: b2da736cc27609442b10f77fc1a687aba603a7a33045b722dbf1a0066fade198- 3.0.0.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-alpine-linux-musl.tar.xz- dlHash: 2b7ea63601e11a0db2941b96e6a7036a48efc2a1ab3849d7dfce08b45f5daa58- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-unknown-linux.tar.xz- dlHash: ee911ba67a70756eedeac662955b896d7e89432a99372aa45d2c6e71fa95a5e4- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-apple-darwin17.7.0.tar.xz- dlHash: d4857e068560515e4cbb0e8ca124c370e07892f2a28804d87152834e5fe2b845- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-portbld-freebsd.tar.xz- dlHash: 2240842ab2ae7b955feb8b526aba1c7991248c803383107adf39990441294d2a- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-unknown-mingw32.zip- dlSubdir:- dlHash: 8889963ebef5e829d86329fdb59832c107efd117cf7862a605f2fe2d2360de1f- A_32:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-i386-alpine-linux-musl.tar.xz- dlHash: ac018f061993d40bf146517e32629bcab274b4d9f5527b1c37a665ebdf3f5ac6- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-i386-unknown-linux.tar.xz- dlHash: 6898ccd6e6dc0872999c06daaf61d546164e12f60a1880d09852c9f0c59c5cf6- 3.2.0.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz- dlHash: 8bae37a1ce8b5f10440b5591fed734935e1411c1b765258325ffe268e2cc2042- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz- dlHash: 32d1f7cf1065c37cb0ef99a66adb405f409b9763f14c0926f5424ae408c738ac- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-apple-darwin17.7.0.tar.xz- dlHash: 9197c17d2ece0f934f5b33e323cfcaf486e4681952687bc3d249488ce3cbe0e9- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-portbld-freebsd.tar.xz- dlHash: f1e35151cca91541b0fb4bdb3ed18f3c348038eab751845ad19c11307d66c273- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-mingw32.zip- dlSubdir:- dlHash: 17778c3ade0482bc37f451eec326f8fce8fbe1f12b1d6aacb2e2b9e34786c054- A_32:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-alpine-linux-musl.tar.xz- dlHash: c2a419dedf730987b60daf8d24e871d115a09ea608d740d7c61b36e3f5b9c830- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-unknown-linux.tar.xz- dlHash: 2b3ac28549916de5f3379241797eaf60e84b6c001f2abbe73d9fadbbaf768e93- 3.4.0.0:- viTags:- - Recommended- - Latest- viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.4.0.0.md- viArch:- A_64:- Linux_Ubuntu:- unknown_versioning: &cabal-3400-ubuntu- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-ubuntu-16.04.tar.xz- dlHash: cf28f9ffd763476aa2b1730d85cbf155d366fac541f78ee3951e8cb2d6de63e6- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-alpine-3.11.6-static-noofd.tar.xz- dlHash: c74073fe79110946182e522fcadc8dcabf07c87583e8cf7801ed4e0c327241f6- Linux_UnknownLinux:- unknown_versioning: *cabal-3400-ubuntu- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-darwin-sierra.tar.xz- dlHash: cb10be9a53e856aa2d852fd88fb6944f138783ffe0ea84d93c9a69244e34ea91- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz- dlHash: a1e2db664ec00e42a1e071a4181f6476f6e0bad321f1ddc0cf27831119f4c6d4- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-x86_64-windows.zip- dlSubdir:- dlHash: c898496b199a3ebf41fb399c12a0cb55a470a67e758cee4b08b9f304c4be6979- A_32:- Linux_UnknownLinux:- unknown_versioning: &cabal-3400-32- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-i386-unknown-linux.tar.xz- dlHash: cc62a471e9e68a6a9933e54f75bf0cffae67a1d2220df1152ab887c38eb6bc8a- Linux_Alpine:- unknown_versioning: *cabal-3400-32- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-aarch64-ubuntu-18.04.tar.xz- dlHash: 04d378347896dfdc3510b192b97489815cfa5d692f46e2758da0f789e682b8f0- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-aarch64-darwin-big-sur.tar.xz- dlHash: 46d8f96446a6bcdb81b3a9fbc14b137dc4f08436b46fe6446c5fba7bcb9b3d75-- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz- dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed- GHCup:- 0.1.16.2:- viTags:- - Recommended- - Latest- viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md- viSourceDL:- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &ghcup-64- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2- dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2- dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2- dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-mingw64-ghcup-0.1.16.2.exe- dlHash: ec78872a84213968c490675127b9aad2285980b747c68207801ae824b98c7948- Linux_Alpine:- unknown_versioning: *ghcup-64- A_32:- Linux_UnknownLinux:- unknown_versioning: &ghcup-32- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2- dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38- Linux_Alpine:- unknown_versioning: *ghcup-32- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-linux-ghcup-0.1.16.2- dlHash: 0bdbfc724e0ddabb266156eea83c2c4e19c6ed79dd06db0c29b7d69df8d9fa8c- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2- dlHash: 8854e991a2ba1350abda59dab96ce50ae7729d1ce99399d67929ef31e90f1da5- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/armv7-linux-ghcup-0.1.16.2- dlHash: 983ebb5b584bfa600704216a63f94b40d36a02573834e90ef1042c8472d9ad57- HLS:- 1.1.0:- viTags: []- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#110- viPostInstall: &hls-post-install |- This is just the server part of your LSP configuration. Consult the README on how to- configure HLS, your project and your LSP client in your editor:- https://github.com/haskell/haskell-language-server/blob/master/README.md- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-110-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.1.0/haskell-language-server-Linux-1.1.0.tar.gz- dlHash: 0f0dadb0e9a08273658f565fd71c636801959b954be2737f38f2a1aac522208f- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.1.0/haskell-language-server-macOS-1.1.0.tar.gz- dlHash: 4e89b192e2f49637d772e974f2c17b16da067ecd5912575eaa542551de97681b- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/hls/1.1.0/haskell-language-server-Windows-1.1.0.tar.gz- dlHash: a1d3f451e64a041aa527a25da29e4716a2de6ae347cef4ef9312fc7611e168cc- Linux_Alpine:- unknown_versioning: *hls-110-64- 1.2.0:- viTags: []- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#120- viPostInstall: *hls-post-install- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-120-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.2.0/haskell-language-server-Linux-1.2.0.tar.gz- dlHash: d29ee22f7bd706da2e2a1bd7640e25bb9736adeafb34eef47d29ea143b0fa927- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.2.0/haskell-language-server-macOS-1.2.0.tar.gz- dlHash: a310d8a3e9c5c4218210f750682c74a0f82ad0f59995adde0dbe775115b1e357- Windows:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.2.0/haskell-language-server-Windows-1.2.0.tar.gz- dlHash: 961c6ff12c9a9c7a4609f239c5ac70d7d16753cdb8c10348a6a51feeaa0b6aea- Linux_Alpine:- unknown_versioning: *hls-120-64- 1.3.0:- viTags:- - Recommended- - Latest- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#130- viPostInstall: *hls-post-install- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-130-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.3.0/haskell-language-server-Linux-1.3.0.tar.gz- dlHash: d29ee22f7bd706da2e2a1bd7640e25bb9736adeafb34eef47d29ea143b0fa927- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.3.0/haskell-language-server-macOS-1.3.0.tar.gz- dlHash: a310d8a3e9c5c4218210f750682c74a0f82ad0f59995adde0dbe775115b1e357- Windows:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.3.0/haskell-language-server-Windows-1.3.0.tar.gz- dlHash: 961c6ff12c9a9c7a4609f239c5ac70d7d16753cdb8c10348a6a51feeaa0b6aea- Linux_Alpine:- unknown_versioning: *hls-130-64- Stack:- 2.5.1:- viTags:- - old- viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v251- viPostInstall: &stack-post |- Stack manages GHC versions internally by default. In order to make it use ghcup installed- GHC versions you can run the following commands:- stack config set install-ghc false --global- stack config set system-ghc true --global- - On windows, you may find the following config options useful too:- skip-msys, extra-path, extra-include-dirs, extra-lib-dirs-- Also check out: https://docs.haskellstack.org/en/stable/yaml_configuration-- !!! Additionally, you should upgrade stack only through ghcup and not use 'stack upgrade' !!!- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &stack-251-64- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-linux-x86_64.tar.gz- dlHash: c83b6c93d6541c0bce2175085a04062020f4160a86116e20f3b343b562f2d1e8- dlSubdir:- RegexDir: "stack-.*"- Darwin:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-osx-x86_64.tar.gz- dlHash: f4aedfa8fbe371f77286ee97ec5c3c553842e7ae15b2952a8b8442dccba04bf0- dlSubdir:- RegexDir: "stack-.*"- Windows:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-windows-x86_64.tar.gz- dlHash: 57150b422cfd42249f5e629d0eb678df6d95dabe486ced57e8298d300b940d41- dlSubdir:- RegexDir: "stack-.*"- Linux_Alpine:- unknown_versioning: *stack-251-64- 2.7.1:- viTags:- - old- viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v271- viPostInstall: *stack-post- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &stack-271-64- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.1/stack-2.7.1-linux-x86_64.tar.gz- dlHash: 2bc47749ee4be5eccb52a2d4a6a00b0f3b28b92517742b40c675836d7db2777d- dlSubdir:- RegexDir: "stack-.*"- Darwin:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.1/stack-2.7.1-osx-x86_64.tar.gz- dlHash: 4248c6fbc87e8a2c06f39e867eb5ef28eae0d99470137cb415356c631c0dcbf2- dlSubdir:- RegexDir: "stack-.*"- Windows:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.1/stack-2.7.1-windows-x86_64.tar.gz- dlHash: 8452f5fc9235620a84863f2f68e5f681c72d0d181cde50482f178a966ee0ceb9- dlSubdir:- RegexDir: "stack-.*"- Linux_Alpine:- unknown_versioning: *stack-271-64- 2.7.3:- viTags:- - Latest- - Recommended- viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v273- viPostInstall: *stack-post- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &stack-273-64- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.3/stack-2.7.3-linux-x86_64.tar.gz- dlHash: a6c090555fa1c64aa61c29aa4449765a51d79e870cf759cde192937cd614e72b- dlSubdir:- RegexDir: "stack-.*"- Darwin:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.3/stack-2.7.3-osx-x86_64.tar.gz- dlHash: 42e5000a00af44a7b26852421ac63ce75f510ad1a97742cb131107088ee9fe30- dlSubdir:- RegexDir: "stack-.*"- Windows:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.3/stack-2.7.3-windows-x86_64.tar.gz- dlHash: e6ba12e0ecabf0df2567d88a0d247da238bc114bcccfca4195f5e86472c9330c- dlSubdir:- RegexDir: "stack-.*"- Linux_Alpine:- unknown_versioning: *stack-273-64-
− data/metadata/ghcup-0.0.6.yaml
@@ -1,2534 +0,0 @@-----globalTools:- ShimGen:- dlUri: https://downloads.haskell.org/~ghcup/shimgen/shim-2.exe- dlHash: 7c55e201f71860c5babea886007c8fa44b861abf50d1c07e5677eb0bda387a70-toolRequirements:- GHC:- unknown_version:- Linux_Debian:- unknown_versioning:- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi6- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- ">= 11":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi7- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- Linux_Ubuntu:- unknown_versioning:- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi6- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- "( >= 20.04 && < 20.10 )":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi7- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- "( >= 20.10 )":- distroPKGs:- - build-essential- - curl- - libffi-dev- - libffi8ubuntu1- - libgmp-dev- - libgmp10- - libncurses-dev- - libncurses5- - libtinfo5- notes: ''- Linux_CentOS:- '( >= 7 && < 8 )':- distroPKGs:- - gcc- - gmp- - gmp-devel- - make- - ncurses- - xz- - perl- notes: ''- unknown_versioning:- distroPKGs:- - gcc- - gmp- - gmp-devel- - make- - ncurses- - ncurses-compat-libs- - xz- - perl- notes: ''- Linux_Fedora:- unknown_versioning:- distroPKGs:- - gcc- - gmp- - gmp-devel- - make- - ncurses- - ncurses-compat-libs- - xz- - perl- notes: ''- Linux_Alpine:- unknown_versioning:- distroPKGs:- - binutils-gold- - curl- - gcc- - gmp-dev- - libc-dev- - libffi-dev- - make- - musl-dev- - ncurses-dev- - perl- - tar- - xz- notes: ''- Linux_UnknownLinux:- unknown_versioning:- distroPKGs: []- notes: 'You need the following packages: curl g++ gcc gmp make ncurses realpath- xz-utils. Consult your distro documentation on the exact names of those- packages.'- Darwin:- unknown_versioning:- distroPKGs: []- notes: On OS X, in the course of running ghcup you will be given a dialog- box to install the command line tools. Accept and the requirements will- be installed for you. You will then need to run the command again.- FreeBSD:- unknown_versioning:- distroPKGs:- - curl- - gcc- - gmp- - gmake- - ncurses- - perl5- - libffi- - libiconv- notes: ''- Windows:- unknown_versioning:- distroPKGs: []- notes: On Windows, msys2 should already have been set up during the installation,- so most users should just press ENTER.- If you are installing manually, make sure to have a working mingw64 toolchain and- shell.-ghcupDownloads:- GHC:- 7.10.3:- viTags:- - base-4.8.2.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/7.10.3/docs/html/users_guide/release-7-10-1.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-src.tar.xz- dlSubdir: ghc-7.10.3- dlHash: cf90cedce1c28fd0e2b9e72fe8a938756668d18ea1fcc884a19f698658ac4fef- viPostRemove: &ghc-post-remove "After removing GHC you might also want to clean up your cabal store at: ~/.cabal/store/ghc-<ghcver>"- viPostInstall: "GHC-7.10.3 may give linking errors on most modern distros. You may have to pass '--ghc-option=-optc-no-pie --ghc-option=-optl-no-pie' to cabal build/install. Also see https://gitlab.haskell.org/ghc/ghc/-/issues/18763"- viArch:- A_64:- Linux_Debian:- unknown_versioning: &ghc-7103-64-deb8- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-deb8-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 01cfbad8dff1e8b34a5fdca8caeaf843b56e36af919e29cd68870d2588563db5- Linux_Ubuntu:- unknown_versioning: *ghc-7103-64-deb8- Linux_Mint:- unknown_versioning: *ghc-7103-64-deb8- Linux_CentOS:- unknown_versioning: &ghc-7103-64-centos- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-centos67-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: a8957f7a2fd81720c5d3dc403571d77d31115ff5f42edb2917c36d8e714220d4- Linux_AmazonLinux:- unknown_versioning: *ghc-7103-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-7103-64-deb8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-apple-darwin.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 80893e367e8318105f7db2064adf202e3d96b1f014e792b73e92f2cacf0b757a- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-portbld-freebsd.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 2aa396edd2bb651f4bc7eef7a396913ea24923de5aafdc76df6295333e487e48- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-7.10.3- dlHash: 63e1689fc9e2809ae4d7f422b4dc810052e54c9aa2afd08746e234180e711dde- A_32:- Linux_Debian:- unknown_versioning: &ghc-7103-32-deb8- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-deb8-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: d2ccf072457fb100503f6f5430a1e3589ca525a97424263d036b0550bc277f0c- Linux_Ubuntu:- unknown_versioning: *ghc-7103-32-deb8- Linux_Mint:- unknown_versioning: *ghc-7103-32-deb8- Linux_CentOS:- unknown_versioning: &ghc-7103-32-centos- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-centos67-linux.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: c50aa20275e8d1ba9148f380eb7598bc148143281fc17c9acd38ea7b325852bd- Linux_AmazonLinux:- unknown_versioning: *ghc-7103-32-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-7103-32-deb8- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3-i386-portbld-freebsd.tar.bz2- dlSubdir: ghc-7.10.3- dlHash: 3dde05577c6f94dcb0ba201ebd53ab88553bbc9a3aa8e72237162ed7a9d588a3- 8.0.2:- viTags:- - base-4.9.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.0.2/docs/html/users_guide/8.0.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-src.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 11625453e1d0686b3fa6739988f70ecac836cadc30b9f0c8b49ef9091d6118b1- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb7-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b2f5c304b57ac5840a0d2ef763a3c6fa858c70840f749cfad12ed227da973c0a- unknown_versioning: &ghc-802-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 5ee68290db00ca0b79d57bc3a5bdce470de9ce9da0b098a7ce6c504605856c8f- Linux_Ubuntu:- unknown_versioning: *ghc-802-64-deb8- Linux_Mint:- unknown_versioning: *ghc-802-64-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.0.2/ghc-8.0.2-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 517783b660a27ebf95b2568d47292fd633d5f9a4de4c80ad1ccf05e1b9d7313f- Linux_UnknownLinux:- unknown_versioning: *ghc-802-64-deb8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.0.2- dlHash: ff50a2df9f002f33b9f09717ebf5ec5a47906b9b65cc57b1f9849f8b2e06788d- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b36a20e5cae24d70bbb6116ae486f21811e9384f15d3892d260f02fba3e3bb8c- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 8c42c1f4af995205b9816a1e97e2752fe758544c1f5fe77958cdcd319c9c2d53- A_32:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb7-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 07ead3a49f8c9df4b429e7a2f96f6f31bcab8d3ff8277a9aed0201d13ddad448- unknown_versioning: &ghc-802-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.0.2/ghc-8.0.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: 818621342a2161b8afcc995a0765816bb40aefbfa1db2c8a7d59c04d8b18228a- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.0.2/ghc-8.0.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.0.2- dlHash: b4cd12a1048b2fff2f23c9eec0dd3a1174d54d017f8d79ec79af4534118e6881- Linux_UnknownLinux:- unknown_versioning: *ghc-802-32-deb8- 8.2.2:- viTags:- - base-4.10.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.2.2/docs/html/users_guide/8.2.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-src.tar.xz- dlSubdir: ghc-8.2.2- dlHash: bb8ec3634aa132d09faa270bbd604b82dfa61f04855655af6f9d14a9eedc05fc- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 7 && < 8 )': &ghc-822-64-deb7- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb7-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd7afbca54edf9890da9f432c63366556246c85c1198e40c99df5af01c555834- unknown_versioning: &ghc-822-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 48e205c62b9dc1ccf6739a4bc15a71e56dde2f891a9d786a1b115f0286111b2a- Linux_Ubuntu:- unknown_versioning: *ghc-822-64-deb8- Linux_Mint:- unknown_versioning: *ghc-822-64-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.2.2/ghc-8.2.2-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: adcf3a320a3c402aba07ae9586990dc3c0b550e96aeffb1b9e194313d3ba716d- Linux_UnknownLinux:- unknown_versioning: *ghc-822-64-deb7- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.2.2- dlHash: f90fcf62f7e0936a6dfc3601cf663729bfe9bbf85097d2d75f0a16f8c2e95c27- FreeBSD:- '( >= 10 && < 11 )':- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld10_3-freebsd.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 9e99aaeaec4b2c6d660d80246c0d4dbd41fda88f1eb7a908b29dc8fa8d663949- '( >= 11 && < 12 )': &ghc-822-64-fbsd11- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-portbld11-freebsd.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd351c704b92b9af23994024df07de8ca7090ea7675d5c8b14b2be857a46d804- unknown_versioning: *ghc-822-64-fbsd11- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 1e033df2092aa546e763e7be63167720b32df64f76673ea1ce7ae7c9f564b223- A_32:- Linux_Debian:- '( >= 7 && < 8 )':- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb7-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: cd18766b1a9b74fc6c90003a719ecab158f281f9a755d8b1bd3fd764ba6947b5- unknown_versioning: &ghc-822-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 9e67d72d76482e0ba91c718e727b00386a1a12a32ed719714976dc56ca8c8223- Linux_Ubuntu:- unknown_versioning: *ghc-822-32-deb8- Linux_Mint:- unknown_versioning: *ghc-822-32-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.2.2/ghc-8.2.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.2.2- dlHash: 467534c32552cfd318753112dbc70af003693aad4b0081f2a07e61f5b5ea2c22- Linux_UnknownLinux:- unknown_versioning: *ghc-822-32-deb8- 8.4.1:- viTags:- - base-4.11.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.1/docs/html/users_guide/8.4.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-src.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 39ae2f25192408f355693e5a3c8b6ff613ddb7c4da998fdf26210143a61839d2- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 427c77a934b30c3f1de992c38c072afb4323fe6fb30dbac919ca8cb6ae98fbd9- Linux_Ubuntu:- unknown_versioning: &ghc-841-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 89328a013e64b9b56825a9071fea5616ddd623d37fd41e8fb913dfebc609e7ea- Linux_Mint:- unknown_versioning: *ghc-841-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-841-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-841-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.1- dlHash: d774e39f3a0105843efd06709b214ee332c30203e6c5902dd6ed45e36285f9b7- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-portbld11-freebsd.tar.xz- dlSubdir: ghc-8.4.1- dlHash: e748daec098445c6190090fe32bb2817a1140553be5acd2188e1af05ad24e5aa- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.1- dlHash: 328b013fc651d34e075019107e58bb6c8a578f0155cf3ad4557e6f2661b03131- A_32:- Linux_Debian:- unknown_versioning: &ghc-841-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.1/ghc-8.4.1-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.1- dlHash: c56c589c76c7ddcb77cdbef885a811761e669d3e76868b723d5be56dedcd4f69- Linux_Ubuntu:- unknown_versioning: *ghc-841-32-deb8- Linux_Mint:- unknown_versioning: *ghc-841-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-841-32-deb8- 8.4.2:- viTags:- - base-4.11.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.2/docs/html/users_guide/8.4.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-src.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 01cc32f24a06bf3b2428351b6d7fec791e82d042426d29ad9e5a245b35f0047b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 246f66eb56f4ad0f1c7755502cfc8f9972f2d067dede17e151f6f479c1f76fbd- unknown_versioning: &ghc-842-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 3f4f5bbd2cdab4e7015ada9196d8d9b3a1ad274293cef011f85c46854596cb57- Linux_Ubuntu:- unknown_versioning: &ghc-842-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: d057b5c833596dbe4ae5d0dc2994f6cc5d0f4c2a21ea1d7900821d165fd4e846- '( >= 16 && < 19 )': *ghc-842-64-deb9- Linux_Mint:- unknown_versioning: *ghc-842-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-842-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-842-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 87469222042b9ac23f9db216a8d4e5107297bdbbb99df71eb4d9e7208455def2- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.4.2- dlHash: e9ed417fdf94c2ff2c6e344ed16f332bf6b591511f6442c0d9ea94854882b66c- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 797634aa9812fc6b2084a24ddb4fde44fa83a2f59daea82e0af81ca3dd323fde- A_32:- Linux_Debian:- unknown_versioning: &ghc-842-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.2- dlHash: 2d849c30b4c1eac25dc74333501920921e22fa483153f404993808bbda93df05- Linux_Ubuntu:- unknown_versioning: *ghc-842-32-deb8- Linux_Mint:- unknown_versioning: *ghc-842-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-842-32-deb8- 8.4.3:- viTags:- - base-4.11.1.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.4.3/docs/html/users_guide/8.4.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-src.tar.xz- dlSubdir: ghc-8.4.3- dlHash: ae47afda985830de8811243255aa3744dfb9207cb980af74393298b2b62160d6- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 30a402c6d4754a6c020e0547f19ae3ac42e907e35349aa932d347f73e421a8e2- unknown_versioning: &ghc-843-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 2e4f53afb872ad9c640f31aea283b3ff4c5028b65808a1920739900aef7d15c9- Linux_Ubuntu:- unknown_versioning: &ghc-843-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 269e7a4d3f336491b88409a020998122b30a3a729af78d33be86d3b3f8000c3e- '( >= 16 && < 19 )': *ghc-843-64-deb9- Linux_Mint:- unknown_versioning: *ghc-843-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-843-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-843-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.3- dlHash: af0b455f6c46b9802b4b48dad996619cfa27cc6e2bf2ce5532387b4a8c00aa64- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.3- dlHash: 8a83cfbf9ae84de0443c39c93b931693bdf2a6d4bf163ffb41855f80f4bf883e- A_32:- Linux_Debian:- unknown_versioning: &ghc-843-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.3/ghc-8.4.3-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.3- dlHash: f5763983a26dedd88b65a0b17267359a3981b83a642569b26334423f684f8b8c- Linux_Ubuntu:- unknown_versioning: *ghc-843-32-deb8- Linux_Mint:- unknown_versioning: *ghc-843-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-843-32-deb8- 8.4.4:- viTags:- - base-4.11.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.4.4/docs/html/users_guide/8.4.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-src.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 11117735a58e507c481c09f3f39ae5a314e9fbf49fc3109528f99ea7959004b2- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 4c2a8857f76b7f3e34ecba0b51015d5cb8b767fe5377a7ec477abde10705ab1a- unknown_versioning: &ghc-844-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 47c80a32d8f02838a2401414c94ba260d1fe82b7d090479994522242c767cc83- Linux_Ubuntu:- unknown_versioning: &ghc-844-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 8ab2befddc14d1434d0aad0c5d3c7e0c2b78ff84caa3429fa62527bfc6b86095- '( >= 16 && < 19 )': *ghc-844-64-deb9- Linux_Mint:- unknown_versioning: *ghc-844-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-844-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-844-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 83a96650f5a92b1e4d7651d256d6438624342d40e780e68125033435a54cd674- Linux_RedHat:- unknown_versioning: *ghc-844-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.4.4/ghc-8.4.4-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 336affff8314d3dc5e85d9c09015ae2ba8a7658b459c8c8ae77ecaa551a56ae7- Linux_AmazonLinux:- unknown_versioning: *ghc-844-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-844-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 28dc89ebd231335337c656f4c5ead2ae2a1acc166aafe74a14f084393c5ef03a- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-portbld-freebsd11.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 44fbd142d1c355d6110595c59c760e2c73866ff9259ec85ebf814edb244d1940- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.4.4- dlHash: da29dbb0f1199611c7d5bb7b0dd6a7426ca98f67dfd6da1526b033cd3830dc05- A_32:- Linux_Debian:- unknown_versioning: &ghc-844-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 678bafaabea6af70ba71ccf0210bb437f9f5591ec28ac1cbbbd5f7aa6894e450- Linux_Ubuntu:- unknown_versioning: *ghc-844-32-deb8- Linux_Mint:- unknown_versioning: *ghc-844-32-deb8- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.4.4/ghc-8.4.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.4.4- dlHash: 892888d388ef5c9cadf5cfba1146d62237c25b9b066fb62fee940b2b285fd308- Linux_UnknownLinux:- unknown_versioning: *ghc-844-32-deb8- 8.6.1:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.1/docs/html/users_guide/8.6.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-src.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 2c25c26d1e5c47c7cbb2a1d8e6456524033e7a71409184dd3125e3fc5a3c7036- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 6d8784401b7dd80c90fa17306ec0539920e3987399a2c7ef247989e53197dc42- unknown_versioning: &ghc-861-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 97d44f303868d74e4d13a2e99c82ffce3d25fd54c704675e5a1939e0d824dbf0- Linux_Ubuntu:- unknown_versioning: &ghc-861-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: da903fbcf11ee6c977a8b7dac3f04dbc098d674def587880b6624b8f32588beb- '( >= 16 && < 19 )': *ghc-861-64-deb9- Linux_Mint:- unknown_versioning: *ghc-861-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-861-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-861-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 9692cdfd202b0e039ea0c3dde5dbf653736c836ca1df46504b179b572100808c- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 51403b054a3a649039ac988e1d1112561f96750bfced63df864091a3fab36f08- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 7316d9cb5e486460476754f872c7bac30ee2082e42f46da4342f872d10b88099- A_32:- Linux_Debian:- unknown_versioning: &ghc-861-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.1/ghc-8.6.1-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.1- dlHash: 83573af96e3dec8f67c1a844512f92cbf7d51ae7ceca53d948fc2a3300abd05c- Linux_Ubuntu:- unknown_versioning: *ghc-861-32-deb8- Linux_Mint:- unknown_versioning: *ghc-861-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-861-32-deb8- 8.6.2:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.2/docs/html/users_guide/8.6.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-src.tar.xz- dlSubdir: ghc-8.6.2- dlHash: caaa819d21280ecde90a4773143dee188711e9ff175a27cfbaee56eb851d76d5- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- unknown_versioning: &ghc-862-64-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 13f96e8b83bb5bb60f955786ff9085744c24927a33be8a17773f84c7c248533a- Linux_Ubuntu:- unknown_versioning: &ghc-862-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 702aa5dfa1639c37953ceb7571a5057d9fb0562aecb197b277953a037d78047d- '( >= 16 && < 19 )': *ghc-862-64-deb8- Linux_Mint:- unknown_versioning: *ghc-862-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-862-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-862-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 8ec46a25872226dd7e5cf7271e3f3450c05f32144b96e6b9cb44cc4079db50dc- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.2- dlHash: 9a398e133cab09ff2610834337355d4e26c35e0665403fb9ff8db79315f74d3d- A_32:- Linux_Debian:- unknown_versioning: &ghc-862-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.2- dlHash: a288026d9ef22f7ac387edab6b29ef7dcb3b28945c8ea532a15c1fa35d4733ed- Linux_Ubuntu:- unknown_versioning: *ghc-862-32-deb8- Linux_Mint:- unknown_versioning: *ghc-862-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-862-32-deb8- 8.6.3:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.3/docs/html/users_guide/8.6.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-src.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 9f9e37b7971935d88ba80426c36af14b1e0b3ec1d9c860f44a4391771bc07f23- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 291ca565374f4d51cc311488581f3279d3167a064fabfd4a6722fe2bd4532fd5- unknown_versioning: &ghc-863-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: e7954c8ed9b422a09c6ab737e4a0865a2725d034ba0e272bd5c70db910797f99- Linux_Ubuntu:- unknown_versioning: &ghc-863-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 52ae92f4e8bb2ac0b7847287ea3da37081f5f7bf8bbb7c78ac35fde537d1a89f- '( >= 16 && < 19 )': *ghc-863-64-deb9- Linux_Mint:- unknown_versioning: *ghc-863-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-863-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-863-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 355bd85c69933c31bbe99b4269ce719acfd0aad0b45e359ac39b9bb13996acc6- Linux_RedHat:- unknown_versioning: *ghc-863-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-863-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-863-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 79d069a1a7d74cfdd7ac2a2711c45d3ddc6265b988a0cefa342714b24f997fc1- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.3- dlHash: bc2419fa180f8a7808c49775987866435995df9bdd9ce08bcd38352d63ba6031- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.3- dlHash: 2fec383904e5fa79413e9afd328faf9bc700006c8c3d4bcdd8d4f2ccf0f7fa2a- A_32:- Linux_Debian:- unknown_versioning: &ghc-863-32-deb8- dlUri: https://downloads.haskell.org/~ghc/8.6.3/ghc-8.6.3-i386-deb8-linux.tar.xz- dlSubdir: ghc-8.6.3- dlHash: b57070ba8c70b1333a3e47ce124baf791be39c20a592954772532fd6dd51882f- Linux_Ubuntu:- unknown_versioning: *ghc-863-32-deb8- Linux_Mint:- unknown_versioning: *ghc-863-32-deb8- Linux_UnknownLinux:- unknown_versioning: *ghc-863-32-deb8- 8.6.4:- viTags:- - base-4.12.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.6.4/docs/html/users_guide/8.6.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-src.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 5b5d07e4463203a433c3ed3df461ba6cce11b6d2b9b264db31f3429075d0303a- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 34ef5fc8ddf2fc32a027180bea5b1c8a81ea840c87faace2977a572188d4b42d- unknown_versioning: &ghc-864-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: ef74222ef3c01c3fc5b926f67e8b4ef612fe8efa40ac937317cff9b0eed8d863- Linux_Ubuntu:- unknown_versioning: &ghc-864-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: e0b1ada7a679d6c35f9d7a1192ed35fde054f3650bb0bd2570d103729ad3b846- '( >= 16 && < 19 )': *ghc-864-64-deb9- Linux_Mint:- unknown_versioning: *ghc-864-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-864-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-864-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.4- dlHash: cccb58f142fe41b601d73690809f6089f7715b6a50a09aa3d0104176ab4db09e- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.4- dlHash: e8d021b7a90772fc559862079da20538498d991956d7557b468ca19ddda22a08- A_32:- Linux_Debian:- unknown_versioning: &ghc-864-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.4/ghc-8.6.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.6.4- dlHash: 5e2ce88f4d13d23ac37e278e0c7b51c801008931359b9fa8a631d804d2da552c- Linux_Ubuntu:- unknown_versioning: *ghc-864-32-deb9- Linux_Mint:- unknown_versioning: *ghc-864-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-864-32-deb9- 8.6.5:- viTags:- - base-4.12.0.0- viChangeLog: https://downloads.haskell.org/~ghc/8.6.5/docs/html/users_guide/8.6.5-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-src.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 4d4aa1e96f4001b934ac6193ab09af5d6172f41f5a5d39d8e43393b9aafee361- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: c419fd0aa9065fe4d2eb9a248e323860c696ddf3859749ca96a84938aee49107- unknown_versioning: &ghc-865-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: bc75f5601a9f41d58b2ba161b9e28fad52143a7229060f1e084168d9b2e914df- Linux_Ubuntu:- unknown_versioning: &ghc-865-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: cf78b53eaf336083e7a05f4a3000afbae4abe5bbc77ef80cc40e09d04ac5b4a1- '( >= 16 && < 19 )': *ghc-865-64-deb9- Linux_Mint:- unknown_versioning: *ghc-865-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-865-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-865-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 80ab566f4411299f9e5922d60749ca80f989d697db19e03ed875619d699f0edf- Linux_RedHat:- unknown_versioning: *ghc-865-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: b9d3ed7f7aa24ef2d58bb579252289caa0b8877adee3685e3af2fb73d440afdc- Linux_AmazonLinux:- unknown_versioning: *ghc-865-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-865-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.6.5- dlHash: dfc1bdb1d303a87a8552aa17f5b080e61351f2823c2b99071ec23d0837422169- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 83a3059a630d40a98e26cb5b520354e12094a96e36ba2f5ab002dad94cf2fb37- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 457024c6ea43bdce340af428d86319931f267089398b859b00efdfe2fd4ce93f- A_32:- Linux_Debian:- unknown_versioning: &ghc-865-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 1cddb907393a669342b1a922dd16d505d9d93d50bd9433a54a8162f8701250dc- Linux_Ubuntu:- unknown_versioning: *ghc-865-32-deb9- Linux_Mint:- unknown_versioning: *ghc-865-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.6.5/ghc-8.6.5-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 3737837550d9b177acfe150e3a3cd4545427ded020487c2ed5194d7b8f116349- Linux_UnknownLinux:- unknown_versioning: *ghc-865-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-aarch64-ubuntu18.04-linux.tar.xz- dlSubdir: ghc-8.6.5- dlHash: 1852589037e4b2805ab517bc430e25a3125c4a118a1674ffefbb443394a0c786- 8.8.1:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.1/docs/html/users_guide/8.8.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-src.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 908a83d9b814da74585de9d39687189e6260ec3848131f9d9236cab8a123721a- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: fd96eb851971fbc3332bf2fa7821732cfa8b37e5a076a69f6a06f83f0ea7ccc5- unknown_versioning: &ghc-881-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 620fd560535b63cac5f8c97354ccddf93fa940cca78e2d19f6f98b7e67c6a723- Linux_Ubuntu:- unknown_versioning: &ghc-881-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 851a78df620bc056c34b252c97040d5755e294993fa8afa5429708b5229204d6- '( >= 16 && < 19 )': *ghc-881-64-deb9- Linux_Mint:- unknown_versioning: *ghc-881-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-881-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-881-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 6cdd34e4dbaeb801e805811f91cf43a2d5f64b22f884718ffbd3542a2f4dd14f- Linux_RedHat:- unknown_versioning: *ghc-881-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-881-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-881-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 38c8917b47c31bedf58c9305dfca3abe198d8d35570366f0773c4e2948bd8abe- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 29e56e6af38017a5a76b2b6995a39d3988fa58131e4b55b62dd317ba7186ac9b- A_32:- Linux_Debian:- unknown_versioning: &ghc-881-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.1/ghc-8.8.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.1- dlHash: 3d3bb75aff2dd79ec87ace10483368681fbc328ff00ebf15edad33420f00f7f5- Linux_Ubuntu:- unknown_versioning: *ghc-881-32-deb9- Linux_Mint:- unknown_versioning: *ghc-881-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-881-32-deb9- 8.8.2:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.2/docs/html/users_guide/8.8.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-src.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 01cea54d90686b97bcc9960b108beaffccd4336dee930dcf9beaf52b1f370a0b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: fbe69652eba75dadb758d00292247d17fb018c29cac5acd79843e56311256c9f- unknown_versioning: &ghc-882-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 7b2d66c2d5d8c15750da5833d3018634a5eb792a5662282e3abfeb112c2a1cc3- Linux_Ubuntu:- unknown_versioning: &ghc-882-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: dbe2db717b33460f790e155e487d2a31c9b21a9d245f0c9490ad65844c3ea21f- '( >= 16 && < 19 )': *ghc-882-64-deb9- Linux_Mint:- unknown_versioning: *ghc-882-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-882-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-882-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: f065a017d7a38f235f186ffe32d8261a4fd39c7e945d5cde85c0984c2569db99- Linux_RedHat:- unknown_versioning: *ghc-882-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-882-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-882-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.2- dlHash: 25c5c1a70036abf3f22b2b19c10d26adfdb08e8f8574f89d4b2042de5947f990- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.2- dlHash: e25d9b16ee62cafc7387af2cd021eea676a99cd2c32b83533b016162c63065d9- A_32:- Linux_Debian:- unknown_versioning: &ghc-882-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.2/ghc-8.8.2-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.2- dlHash: ad1c628082c32635a436905a7ff83eaa4246347d869be5ef6b33c3bf85e8f00c- Linux_Ubuntu:- unknown_versioning: *ghc-882-32-deb9- Linux_Mint:- unknown_versioning: *ghc-882-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-882-32-deb9- 8.8.3:- viTags:- - base-4.13.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.8.3/docs/html/users_guide/8.8.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-src.tar.xz- dlSubdir: ghc-8.8.3- dlHash: e0dcc0aaf3e234c5978f29e6df62947e97720ab404ec0158343df211c5480f89- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 92b9fadc442976968d2c190c14e000d737240a7d721581cda8d8741b7bd402f0- unknown_versioning: &ghc-883-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 42fde2ef5a143e1e6b47ae8875162ea2d4d54b06f0f7fa32ee4f0eb86f2be7ad- Linux_Ubuntu:- unknown_versioning: &ghc-883-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 45ee1de3bfc98cbcc4886b65fc7651ade2d3820aa85eac2dbe9bc7bf91e7c818- '( >= 16 && < 19 )': *ghc-883-64-deb9- Linux_Mint:- unknown_versioning: *ghc-883-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-883-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-883-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 4b2b5313f7c12b81e54efcb26705fa9e4ad5b98f2b58bfc76fb0c9ba1d55eb1f- Linux_RedHat:- unknown_versioning: *ghc-883-64-centos- Linux_AmazonLinux:- unknown_versioning: *ghc-883-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-883-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 7016de90dd226b06fc79d0759c5d4c83c2ab01d8c678905442c28bd948dbb782- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.3/ghc-8.8.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 569719075b4d14b3875a899df522090ae31e6fe085e6dffe518e875b09a2f0be- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.3- dlHash: e22586762af0911c06e8140f1792e3ca381a3a482a20d67b9054883038b3a422- A_32:- Linux_Debian:- unknown_versioning: &ghc-883-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 441e2c7a4fc83ebf179712bd939b555cda7c6633545b7c8ac38049f9d85003ae- Linux_Ubuntu:- unknown_versioning: *ghc-883-32-deb9- Linux_Mint:- unknown_versioning: *ghc-883-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-883-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.3- dlHash: 2a6821d0e7326cfa7670851702924bbab3b092415ba41247c37419158327eed9- 8.8.4:- viTags:- - base-4.13.0.0- viChangeLog: https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/8.8.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-src.tar.xz- dlSubdir: ghc-8.8.4- dlHash: f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 8 && < 9 )':- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb8-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 51a36892f1264744195274187298d13ac62bce2da86d4ddf76d8054ab90f2feb- unknown_versioning: &ghc-884-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 4862559d221153caf978f4bf2c15a82c114d1e1f43b298b2ecff2ac94b586d20- Linux_Ubuntu:- unknown_versioning: &ghc-884-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: f32e37f8aa03e74bad533ae02f62dc27a4521e78199576af490888ba34b515db- '( >= 16 && < 19 )': *ghc-884-64-deb9- Linux_Mint:- unknown_versioning: *ghc-884-64-fedora- Linux_Fedora:- unknown_versioning: *ghc-884-64-fedora- Linux_CentOS:- unknown_versioning: &ghc-884-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: a12aa4b1fd3c64240a8a6d15196d33e1c0e0d55b51ff78c387242126d0ef7910- Linux_RedHat:- unknown_versioning: *ghc-884-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-x86_64-alpine-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 90c6a1661de7f20c7d169cd6270125035b3332063e45103ce028df0beecf434e- Linux_AmazonLinux:- unknown_versioning: *ghc-884-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-884-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.8.4- dlHash: e80a789e9d8cfb41dd87f3284b75432427c4461c1731d220d04ead8733ccdb5e- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 8cebe5ccf454e82acd1ff52ca57590d1ab0f3f44a981b46257ec12158c8c447e- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.8.4- dlHash: d185055d2c8dc3bfe5b88afd59d6877eb1e722b672d1c9649f18296e148ed71f- A_32:- Linux_Debian:- unknown_versioning: &ghc-884-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 43dd954910c9027694312cef0aabc7774d102d0422b7172802cfb72f7d5da3a0- Linux_Ubuntu:- unknown_versioning: *ghc-884-32-deb9- Linux_Mint:- unknown_versioning: *ghc-884-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.8.4/ghc-8.8.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.8.4- dlHash: 1d18e89ee031197e55c48683e78a7ffc67601ac5fd9f73aac555eb064b3859a2- Linux_UnknownLinux:- unknown_versioning: *ghc-884-32-deb9- 8.10.1:- viTags:- - base-4.14.0.0- - old- viChangeLog: https://downloads.haskell.org/~ghc/8.10.1/docs/html/users_guide/8.10.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-src.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 4e3b07f83a266b3198310f19f71e371ebce97c769b14f0d688f4cbf2a2a1edf5- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8101-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: d1cf7886f27af070f3b7dbe1975a78b43ef2d32b86362cbe953e79464fe70761- '( >= 10 && < 11 )': &ghc-8101-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: c1e31d798b013699b3c0de4fda27fb4cda47f572df0e75e3bd598a3012060615- unknown_versioning: *ghc-8101-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8101-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 3c4cd72b4806045779739e8f5d1658e30e57123d88c2c8966422cdbcae448470- '( >= 16 && < 19 )': *ghc-8101-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8101-64-fedora- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8101-64-fedora- unknown_versioning: *ghc-8101-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8101-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 0618b94854edc6be5302489df905e627820b71be6b66c950f5e3088fe92df0a1- unknown_versioning: *ghc-8101-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8101-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.1-x86_64-unknown-linux- dlHash: cb13b645d103e2fba2eb8dfcc4e5f2fbd9550c00c4df42f342b4210436dcb8a8- Linux_AmazonLinux:- unknown_versioning: *ghc-8101-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8101-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 65b1ca361093de4804a7e40b3e68178e1ef720f84f743641ec8d95e56a45b3a8- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.1/ghc-8.10.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.1- dlHash: e8646ec9b60fd40aa9505ee055f22f04601290ab7a1342c2cf37c34de9d3f142- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 38a3166ea50cccd5bae7e1680eae3aae2b4ae31b61f82a1d8168fb821f43bd67- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8101-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 8b53eef2c827b5f634d72920a93c0c9dd66ea288691a2bfe28def45d3c686ee2- unknown_versioning: *ghc-8101-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8101-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8101-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.1/ghc-8.10.1-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: 7360cc6b29e9b4ab08f6ea5bc3bcca6f5c216933e81ef1620dcdd700f1fdb289- Linux_UnknownLinux:- unknown_versioning: *ghc-8101-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: c099011e07999db917e797fb5d89c31f075a562556ab99be8ab0accbf2a94db7- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-armv7-deb9-linux.tar.xz- dlSubdir: ghc-8.10.1- dlHash: afe1bde2b0d6deb0320b9460fffe5d9427e302df85aec866b9c1458777d52b28- 8.10.2:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.2/docs/html/users_guide/8.10.2-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-src.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9c573a4621a78723950617c223559bdc325ea6a3409264aedf68f05510b0880b- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8102-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 4dbe3b479e76767bfeb4cbb7a4db8b761c4720266193483ca370b2ace3f10f7c- '( >= 10 && < 11 )': &ghc-8102-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 94513d82c38c848f489113a75fa5ef4e5a8e3ecfaa74ca90e2620d2193ff1632- unknown_versioning: *ghc-8102-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8102-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 8c675da83e9b3c2f64ebb407b5f9ebb2c1f21aa5d701020614fdce644a542e3b- '( >= 16 && < 19 )': *ghc-8102-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8102-64-fedora- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8102-64-fedora- unknown_versioning: *ghc-8102-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8102-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: fd2dccd6f496915a5f962dab24e7eeb8bee49bcc38e74b17eac76159083538fa- unknown_versioning: *ghc-8102-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8102-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.2-x86_64-unknown-linux- dlHash: 14d09a508f2a3a11875c140be8e6c5f6982ac5cd448f089ca10b7adc955fec76- Linux_AmazonLinux:- unknown_versioning: *ghc-8102-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8102-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.2- dlHash: edb772b00c0d7f18bb56ad27765162ee09c508104d40f82128c9114a02f6cfc2- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9e5957f3497f4b58ecd3699568d9caaa11a47a6d7e902032c261e450fa0f6686- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.2- dlHash: dcae4c173b9896e07ff048de5509aa0a4537233150e06e5ce8848303dfadc176- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8102-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9dae2a86ad43d08f72c783542c944d1556b075aa20a8063efae5034ea88e7c2f- unknown_versioning: *ghc-8102-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8102-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8102-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8102-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.2/ghc-8.10.2-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 9ee1cf1e85e9536088b3c9e80e975074e525ea378cd4eb156071bbc4b7b38327- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: 5cf24189077e6e2dce2aa16367ad8a53f603e751a15010dfb23d067206e55593- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.2- dlHash: bb9c97826b1f4d7a8ef8bce0616b612f1ded10480ef10fcf7fb4e6d10a6681c8- 8.10.3:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.3/docs/html/users_guide/8.10.3-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-src.tar.xz- dlSubdir: ghc-8.10.3- dlHash: ccdc8319549028a708d7163e2967382677b1a5a379ff94d948195b5cf46eb931- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8103-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 95e4aadea30701fe5ab84d15f757926d843ded7115e11c4cd827809ca830718d- '( >= 10 && < 11 )': &ghc-8103-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: c8f3d9f0e61a89eaba1d3ad8fb2eced1af0e81576811261b887993bee12538ac- unknown_versioning: *ghc-8103-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8103-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f8739b12008712d6b6a9ffc6c39f9d05af77ef3bcb932c9aff20fa0893c8c159- '( >= 16 && < 19 )': *ghc-8103-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8103-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8103-64-fedora- unknown_versioning: *ghc-8103-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8103-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f562ca61979ff1d21e34e69e59028cb742a8eff8d84e46bbd3a750f2ac7d8ed1- unknown_versioning: *ghc-8103-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8103-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.3-x86_64-unknown-linux- dlHash: 8506c478ebbfb5441c3c36c07c36fc8532cacb2b3e13c6733bd44cb17b3ce96c- Linux_AmazonLinux:- unknown_versioning: *ghc-8103-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8103-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 2635f35d76e44e69afdfd37cae89d211975cc20f71f784363b72003e59f22015- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 749007e995104db05cf6e3ad5bc36238cab8afac8055145661e5730e8f8af040- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 927a6c699533a115cd49772ef2c753d9af2c13bf9f0b2d3bd13645cc6a144ee3- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8103-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: f0addd2a16b705f58ff9e8702c3ddf3e2d6bd0d3555707b5b5095e51bafee7b1- unknown_versioning: *ghc-8103-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8103-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8103-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8103-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.3/ghc-8.10.3-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: 309201cdefd2d13b8b3fd09c26c6137048c490d219a0a9c7407c3ce1d011f60c- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: a531432d505a1fe886cdc8639d168eb1c92d76464c1270713e01ce81891bbadb- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.3/ghc-8.10.3-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.3- dlHash: b823b58cae36fbac0741680ca7605180fa4cf4c6ae439123d282184b94d32fd6- 8.10.4:- viTags:- - old- - base-4.14.1.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.4/docs/html/users_guide/8.10.4-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-src.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 52af871b4e08550257d720c2944ac85727d0b948407cef1bebfe7508c224910e- viPostRemove: *ghc-post-remove- viPreCompile: &ghc-pre-compile "If you have autoconf >= 2.70 you'll need this patch https://gitlab.haskell.org/ghc/ghc/-/snippets/2040 (see the --patchdir option)"- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8104-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 5694200a5c38f22c142baf850b1d2f3784211d2ec9302e11693259a1ae8e38b7- '( >= 10 && < 11 )': &ghc-8104-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 816365565e9927459b035515a7db6a0db62f9796f327389b6f8a0035d12fbda0- unknown_versioning: *ghc-8104-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8104-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: a189eed900a8717d6d7906bafd10b9a9a9688ad942d1c75e19df480376dff9ea- '( >= 16 && < 19 )': *ghc-8104-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8104-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8104-64-fedora- unknown_versioning: *ghc-8104-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8104-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: fb8a91f0cf06594172aff46c2f6f7486179e1c3760855c79fbdd3012598cc2cd- unknown_versioning: *ghc-8104-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8104-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.4-x86_64-unknown-linux- dlHash: 74c2c07537832708502716ef4ec40019f8e552ddda13c8eadf8f7c4b03a79359- Linux_AmazonLinux:- unknown_versioning: *ghc-8104-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8104-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 725ecf6543e63b81a3581fb8c97afd21a08ae11bc0fa4f8ee25d45f0362ef6d5- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.4- dlHash: c9776a2ccf9629b03e967206a507fcdcb6c5189800a626e9461ababf6733c357- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.4- dlHash: e9175a276504c3390a5e0084954e6997d56078737dbe7158049518892cf6bfb2- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8104-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 0022c5b9ac22825bb7b4745af3d92cef0ba1ecd01fab3ef387ddbd47146569ad- unknown_versioning: *ghc-8104-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8104-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8104-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8104-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/8.10.4/ghc-8.10.4-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 9161a98bed763692101854d83af69c1316030cfe5ee6f6acde283d04ef139735- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 249da6310be799a5eefe0579b6dae1701eb984afb980fe08309d19cf704038ed- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.4- dlHash: 0d18ef83593272f6196a41cc3abdc48dfe5e14372db75d71ea19fe35320c4e81- 8.10.5:- viTags:- - old- - base-4.14.2.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/8.10.5-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-src.tar.xz- dlSubdir: ghc-8.10.5- dlHash: f10941f16e4fbd98580ab5241b9271bb0851304560c4d5ca127e3b0e20e3076f- viPostRemove: *ghc-post-remove- viPreCompile: *ghc-pre-compile- viPostInstall: &ghc-8105-post-install |- GHC 8.10.5 and 8.10.6 have several issues on Darwin, e.g.- https://gitlab.haskell.org/ghc/ghc/-/issues/19950- Consider upgrading to 8.10.7 via- ghcup install ghc --set 8.10.7- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8105-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 15e71325c3bdfe3804be0f84c2fc5c913d811322d19b0f4d4cff20f29cdd804d- '( >= 10 && < 11 )': &ghc-8105-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: bc623c20ca4c5c18e952071ba14aa0cfc5c94d34219bffaa615f7b491f376787- unknown_versioning: *ghc-8105-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8105-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 73528ebfb219b50aa9042ee51a0a2bd764828d605f058404989d0b645752d210- '( >= 16 && < 19 )': *ghc-8105-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8105-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8105-64-fedora- unknown_versioning: *ghc-8105-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8105-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 4cdb259ec74d1408dab45dab20dcedc21690f39921c2ea4546486fb3e81f4fbd- unknown_versioning: *ghc-8105-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8105-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.5-x86_64-unknown-linux- dlHash: f4d7cd9ed12a4b8592219c9a63a86db1a256a09fa9e6ed755a60afc57dc782e2- Linux_AmazonLinux:- unknown_versioning: *ghc-8105-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8105-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.5- dlHash: ef0f47eff8962d58fa447123636cf8ef31c1e5b2d0ae90177d3388861ddf4a22- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.5/ghc-8.10.5-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 11a0b490bfb2f57b5bc87c69c197542eafce1b4991cc22f625179a6c6e567834- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 4443d989df4f2680f681a4d8b8db310ce9582d21743984016b0eb0163b0c9998- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8105-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 0ccb5b2c1222374874795c35410754dd650f649b774872abbea2a4ef21ac9c9d- unknown_versioning: *ghc-8105-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8105-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8105-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8105-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.5/ghc-8.10.5-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 0e91abe61607f9375d4e252ee9c261e4856df396f60641bb1b880ab8a3a83ea7- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 9a085cd8a7f8e0ace21ac67dbf659a56fcf41564b48817ba42cd8a1aac7f0ddc- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-aarch64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 03684e70ff03d041b9a4e0f84c177953a241ab8ec7a028c72fa21ac67e66cb09- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.5/ghc-8.10.5-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.5- dlHash: 56170d1a8450e18b7eb9c23c94723da352815b27ec250bb23742a62f16dcab6c- 8.10.6:- viTags:- - old- - base-4.14.3.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.6/docs/html/users_guide/8.10.6-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-src.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 43afba72a533408b42c1492bd047b5e37e5f7204e41a5cedd3182cc841610ce9- viPostRemove: *ghc-post-remove- viPreCompile: *ghc-pre-compile- viPostInstall: *ghc-8105-post-install- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8106-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: c14b631437ebc867f1fe1648579bc1dbe1a9b9ad31d7c801c3c77639523a83ae- '( >= 10 && < 11 )': &ghc-8106-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 95be925e310b8c419e1099d620a727a1ca2d8c918f33eb905a8221d7eb16467b- unknown_versioning: *ghc-8106-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8106-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: c452b84565cfc07c476694dd0fd389ed6d2b83619490b3c238f6bded438eddb1- '( >= 16 && < 19 )': *ghc-8106-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8106-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8106-64-fedora- unknown_versioning: *ghc-8106-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8106-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 71bb69b7185cbb44a941f5214b241a55e158f69b103f10214a05de7845f77e45- unknown_versioning: *ghc-8106-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8106-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.6-x86_64-unknown-linux- dlHash: f6c86909f665c9a01b9703450a500a5206a951ee43e6a0a227eebe1da0987d6a- Linux_AmazonLinux:- unknown_versioning: *ghc-8106-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8106-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 32ab41da04d56cae2297d6e45caa88180f99cec0e33f2756cfbc48c0c60b5721- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 268b9c0c55c70b0ebd7848c0e6c7f6c743b2f3082fb19f17b753c2536c354241- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.6- dlHash: ff62f4a245c2427a1a5e6f5f1c2ad7521f69f9274a27ffb17c76f252ca573f3b- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8106-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 31f934423d7971b462eaa53cf87b15265d11420578c5a8a04304348cb90f1c13- unknown_versioning: *ghc-8106-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8106-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8106-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8106-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.6/ghc-8.10.6-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: f29974a67d76b64d0eb58603d60424c684a871e3107cebe45cf5b9b85f83b4c0- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 1ea27a7776e3cbd0881ecf2eb03eb5176e2cef177a12271a1c33417f4fa48a59- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-aarch64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.6- dlHash: 9e43fc3a39d2f2762262c63868653984e381e29eff6386f7325aad501b9190ad- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.6- dlHash: d54de8306aa8b33afabf2ac94408e1f82c8e982a2a3346168c071b92bdb464c0- 8.10.7:- viTags:- - Recommended- - base-4.14.3.0- viChangeLog: https://downloads.haskell.org/~ghc/8.10.7/docs/html/users_guide/8.10.7-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-src.tar.xz- dlSubdir: ghc-8.10.7- dlHash: e3eef6229ce9908dfe1ea41436befb0455fefb1932559e860ad4c606b0d03c9d- viPostRemove: *ghc-post-remove- viPreCompile: *ghc-pre-compile- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8107-64-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: ced9870ea351af64fb48274b81a664cdb6a9266775f1598a79cbb6fdd5770a23- '( >= 10 && < 11 )': &ghc-8107-64-deb10- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: a13719bca87a0d3ac0c7d4157a4e60887009a7f1a8dbe95c4759ec413e086d30- unknown_versioning: *ghc-8107-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-8107-64-fedora- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: b6ed67049a23054a8042e65c9976d5e196e5ee4e83b29b2ee35c8a22ab1e5b73- '( >= 16 && < 19 )': *ghc-8107-64-deb9- Linux_Mint:- unknown_versioning: *ghc-8107-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-8107-64-fedora- unknown_versioning: *ghc-8107-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-8107-64-centos- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: 262a50bfb5b7c8770e0d99f54d42e5876968da7bf93e2e4d6cfe397891a36d05- unknown_versioning: *ghc-8107-64-centos- Linux_RedHat:- unknown_versioning: *ghc-8107-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-8.10.7-x86_64-unknown-linux- dlHash: 16903df850ef73d5246f2ff169cbf57ecab76c2ac5acfa9928934282cfad575c- Linux_AmazonLinux:- unknown_versioning: *ghc-8107-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-8107-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.7- dlHash: 287db0f9c338c9f53123bfa8731b0996803ee50f6ee847fe388092e5e5132047- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-8.10.7- dlHash: 45e35d24bc700e1093efa39189e9fa01498069881aed2fa8779c011941a80da1- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-8.10.7- dlHash: b6515b0ea3f7a6e34d92e7fcd0c1fef50d6030fe8f46883000185289a4b8ea9a- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-8107-32-deb9- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-i386-deb9-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: fbfc1ef194f4e7a4c0da8c11cc69b17458a4b928b609b3622c97acc4acd5c5ab- unknown_versioning: *ghc-8107-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-8107-32-deb9- Linux_Mint:- unknown_versioning: *ghc-8107-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-8107-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.7/ghc-8.10.7-i386-alpine-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: 3110e6ee029d9d8062158b54b06f71a21b0fac87bf0e085f9be5bbcf73f99e6d- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: fad2417f9b295233bf8ade79c0e6140896359e87be46cb61cd1d35863d9d0e55- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-aarch64-apple-darwin.tar.xz- dlSubdir: ghc-8.10.7- dlHash: dc469fc3c35fd2a33a5a575ffce87f13de7b98c2d349a41002e200a56d9bba1c- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-armv7-deb10-linux.tar.xz- dlSubdir: ghc-8.10.7- dlHash: 3949c31bdf7d3b4afb765ea8246bca4ca9707c5d988d9961a244f0da100956a2- 9.0.1:- viTags:- - Latest- - base-4.15.0.0- viChangeLog: https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/9.0.1-notes.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-src.tar.xz- dlSubdir: ghc-9.0.1- dlHash: a5230314e4065f9fcc371dfe519748fd85c825b279abf72a24e09b83578a35f9- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-901-64-deb9- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 4ca6252492f59fe589029fadca4b6f922d6a9f0ff39d19a2bd9886fde4e183d5- '( >= 10 && < 11 )': &ghc-901-64-deb10- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: c253e7eb62cc9da6524c491c85ec8d3727c2ca6035a8653388e636aaa30a2a0f- unknown_versioning: *ghc-901-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-901-64-fedora- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 1fb8e27eeec51b4cdbfd1b3c16727adc5f77388d3e925e63799d8232647f316d- '( >= 16 && < 19 )': *ghc-901-64-deb9- Linux_Mint:- unknown_versioning: *ghc-901-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-901-64-fedora- unknown_versioning: *ghc-901-64-fedora- Linux_CentOS:- '( >= 7 && < 8 )': &ghc-901-64-centos- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-centos7-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: a23750950b6995a66ba59afe82bbc505bd3479d6ab59cf66f45bc6c056e4d87b- unknown_versioning: *ghc-901-64-centos- Linux_RedHat:- unknown_versioning: *ghc-901-64-centos- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-alpine3.10-linux-integer-simple.tar.xz- dlSubdir: ghc-9.0.1-x86_64-unknown-linux- dlHash: 7c1a0154c9e361b75be6cb0305533bb8a3b963c54e8092ffd1759e5710805a5c- Linux_AmazonLinux:- unknown_versioning: *ghc-901-64-centos- Linux_UnknownLinux:- unknown_versioning: *ghc-901-64-fedora- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 122d60509147d0117779d275f0215bde2ff63a64cda9d88f149432d0cae71b22- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-portbld-freebsd.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 9dbc06d8832cae5c9f86dd7b2db729b3748a47beb4fd4b1e62bb66119817c3c1- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-9.0.1-x86_64-unknown-mingw32- dlHash: 4f4ab118df01cbc7e7c510096deca0cb25025339a97730de0466416296202493- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-901-32-deb9- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-i386-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 880e37cea8328401bcfecfe4bb56eb85195f30135b140140b3f24094264f8ba5- unknown_versioning: *ghc-901-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-901-32-deb9- Linux_Mint:- unknown_versioning: *ghc-901-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-901-32-deb9- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/9.0.1/ghc-9.0.1-i386-alpine-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: ebfeb3b91e6f2bb5a49fd3376746f7fd1b89e62e9838bf5b1530a8756ff1e6aa- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-aarch64-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: fac7a0bdfc83c05df94024a2d67b8f00a9cd2733b9cb41fb8ad76be399014906- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-armv7-deb9-linux.tar.xz- dlSubdir: ghc-9.0.1- dlHash: 6f404f9b88468407b3a9ec5800bcc2d01dd453ef3d63414853b4fbbd4d8df496- 9.2.0.20210821:- viTags:- - Prerelease- - base-4.16.0.0- viChangeLog: https://downloads.haskell.org/~ghc/9.2.1-rc1/docs/html/users_guide/index.html- viSourceDL:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-src.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 7c4772d9a22a1774a13f67a570719c339f744b1607fbddfdf4702bb1fbbd57e0- viPostRemove: *ghc-post-remove- viArch:- A_64:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-921-rc1-64-deb9- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-deb9-linux.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 4a561cb97f0cbe51de676d4e29968d49beb415a0190514d8f1a8f8ae0405f313- '( >= 10 && < 11 )': &ghc-921-rc1-64-deb10- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 28112271739b490635e7fd6ed1936949c3a3c41d4a7d95833bb47f420dd1a815- unknown_versioning: *ghc-921-rc1-64-deb9- Linux_Ubuntu:- unknown_versioning: &ghc-921-rc1-64-fedora- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-fedora27-linux.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 3c4d3874e4438baf54bdf8bcbdca60a7416ca88c32da1823127dd3159bbede62- '( >= 16 && < 19 )': *ghc-921-rc1-64-deb9- Linux_Mint:- unknown_versioning: *ghc-921-rc1-64-deb10- Linux_Fedora:- '( >= 27 && < 28 )': *ghc-921-rc1-64-fedora- unknown_versioning: *ghc-921-rc1-64-fedora- Linux_UnknownLinux:- unknown_versioning: *ghc-921-rc1-64-fedora- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-unknown-freebsd.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: ed31d0ca40588fcbed4f03e83e49abea7babb37e528bb36ab3c1fb6191c4c422- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-apple-darwin.tar.xz- dlSubdir: ghc-9.2.0.20210821-x86_64-apple-darwin- dlHash: 38199ca35117cc1f4372a4b6692596f8639688c286d2a0d09bc7336826c05e10- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-x86_64-unknown-mingw32.tar.xz- dlSubdir: ghc-9.2.0.20210821-x86_64-unknown-mingw32- dlHash: 3926620698cb43b9e9a5381b4c3b7b84d22c67b3509a546581aa17afecd6a846- A_32:- Linux_Debian:- '( >= 9 && < 10 )': &ghc-921-rc1-32-deb9- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-i386-deb9-linux.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 30b25b787a787473988a785606b01099ce077f99d5c08940c0024537433f5084- unknown_versioning: *ghc-921-rc1-32-deb9- Linux_Ubuntu:- unknown_versioning: *ghc-921-rc1-32-deb9- Linux_Mint:- unknown_versioning: *ghc-921-rc1-32-deb9- Linux_UnknownLinux:- unknown_versioning: *ghc-921-rc1-32-deb9- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-aarch64-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 289fc361be4a3199ac15449e30405a9831454811dd454e81eab73bfcdd2c4088- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-aarch64-apple-darwin.tar.xz- dlSubdir: ghc-9.2.0.20210821-aarch64-apple-darwin- dlHash: 0d763fb619cfa32fa37c113c446e13bebc2215db5946e5fa8fd8400559cf4152- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghc/9.2.1-rc1/ghc-9.2.0.20210821-armv7-deb10-linux.tar.xz- dlSubdir: ghc-9.2.0.20210821- dlHash: 9ff0be63191181700a1f51c453056c2dab16e11ecb7a4b1dd72e4b7aad5999a6- Cabal:- 2.4.1.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-alpine-linux-musl.tar.xz- dlSubdir:- dlHash: 720bef015f834a03deb7180be2952a44e7c2e6c8429137570404c3de4f46b984- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz- dlSubdir:- dlHash: 6136c189ffccaa39916f9cb5788f757166444a2d0c473b987856a79ecbf0c714- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-apple-darwin-sierra.tar.xz- dlSubdir:- dlHash: 56361cf4b0d920fe23174751fea1fb82a8e1ce522bd9706a3fbe47a72e458c9c- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-portbld-freebsd.tar.xz- dlSubdir:- dlHash: 33b7d37ea0688c93436eac9ec139d9967687875aa1fa13f2bb73bf05a9a59a1d- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-mingw32.zip- dlSubdir:- dlHash: 95f233efedb1ebf0e6db015fa2f55c1ed00b9938d207ec63c066f706fb4b6373- A_32:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz- dlSubdir:- dlHash: b2da736cc27609442b10f77fc1a687aba603a7a33045b722dbf1a0066fade198- 3.0.0.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-alpine-linux-musl.tar.xz- dlHash: 2b7ea63601e11a0db2941b96e6a7036a48efc2a1ab3849d7dfce08b45f5daa58- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-unknown-linux.tar.xz- dlHash: ee911ba67a70756eedeac662955b896d7e89432a99372aa45d2c6e71fa95a5e4- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-apple-darwin17.7.0.tar.xz- dlHash: d4857e068560515e4cbb0e8ca124c370e07892f2a28804d87152834e5fe2b845- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-portbld-freebsd.tar.xz- dlHash: 2240842ab2ae7b955feb8b526aba1c7991248c803383107adf39990441294d2a- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-x86_64-unknown-mingw32.zip- dlSubdir:- dlHash: 8889963ebef5e829d86329fdb59832c107efd117cf7862a605f2fe2d2360de1f- A_32:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-i386-alpine-linux-musl.tar.xz- dlHash: ac018f061993d40bf146517e32629bcab274b4d9f5527b1c37a665ebdf3f5ac6- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.0.0.0/cabal-install-3.0.0.0-i386-unknown-linux.tar.xz- dlHash: 6898ccd6e6dc0872999c06daaf61d546164e12f60a1880d09852c9f0c59c5cf6- 3.2.0.0:- viTags:- - old- viChangeLog: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/changelog- viArch:- A_64:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-alpine-linux-musl.tar.xz- dlHash: 8bae37a1ce8b5f10440b5591fed734935e1411c1b765258325ffe268e2cc2042- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-linux.tar.xz- dlHash: 32d1f7cf1065c37cb0ef99a66adb405f409b9763f14c0926f5424ae408c738ac- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-apple-darwin17.7.0.tar.xz- dlHash: 9197c17d2ece0f934f5b33e323cfcaf486e4681952687bc3d249488ce3cbe0e9- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-portbld-freebsd.tar.xz- dlHash: f1e35151cca91541b0fb4bdb3ed18f3c348038eab751845ad19c11307d66c273- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-x86_64-unknown-mingw32.zip- dlSubdir:- dlHash: 17778c3ade0482bc37f451eec326f8fce8fbe1f12b1d6aacb2e2b9e34786c054- A_32:- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-alpine-linux-musl.tar.xz- dlHash: c2a419dedf730987b60daf8d24e871d115a09ea608d740d7c61b36e3f5b9c830- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.2.0.0/cabal-install-3.2.0.0-i386-unknown-linux.tar.xz- dlHash: 2b3ac28549916de5f3379241797eaf60e84b6c001f2abbe73d9fadbbaf768e93- 3.4.0.0:- viTags: []- viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.4.0.0.md- viArch:- A_64:- Linux_Ubuntu:- unknown_versioning: &cabal-3400-ubuntu- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-ubuntu-16.04.tar.xz- dlHash: cf28f9ffd763476aa2b1730d85cbf155d366fac541f78ee3951e8cb2d6de63e6- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-alpine-3.11.6-static-noofd.tar.xz- dlHash: c74073fe79110946182e522fcadc8dcabf07c87583e8cf7801ed4e0c327241f6- Linux_UnknownLinux:- unknown_versioning: *cabal-3400-ubuntu- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-darwin-sierra.tar.xz- dlHash: cb10be9a53e856aa2d852fd88fb6944f138783ffe0ea84d93c9a69244e34ea91- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz- dlHash: a1e2db664ec00e42a1e071a4181f6476f6e0bad321f1ddc0cf27831119f4c6d4- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-x86_64-windows.zip- dlSubdir:- dlHash: c898496b199a3ebf41fb399c12a0cb55a470a67e758cee4b08b9f304c4be6979- A_32:- Linux_UnknownLinux:- unknown_versioning: &cabal-3400-32- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-i386-unknown-linux.tar.xz- dlHash: cc62a471e9e68a6a9933e54f75bf0cffae67a1d2220df1152ab887c38eb6bc8a- Linux_Alpine:- unknown_versioning: *cabal-3400-32- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-aarch64-ubuntu-18.04.tar.xz- dlHash: 04d378347896dfdc3510b192b97489815cfa5d692f46e2758da0f789e682b8f0- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-aarch64-darwin-big-sur.tar.xz- dlHash: 46d8f96446a6bcdb81b3a9fbc14b137dc4f08436b46fe6446c5fba7bcb9b3d75-- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz- dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed- 3.6.0.0:- viTags:- - Recommended- - Latest- viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.6.0.0.md- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/cabal-install-3.6.0.0-x86_64-linux.tar.xz- dlHash: bfcb7350966dafe95051b5fc9fcb989c5708ab9e78191e71fc04647061668a11- Linux_Alpine:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/cabal-install-3.6.0.0-x86_64-linux-alpine.tar.xz- dlHash: 3203d71b7ee87fc9dce74b452ae07f420afe8817b5e6f84e54798442f4ccdda8- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/cabal-install-3.6.0.0-x86_64-darwin.tar.xz- dlHash: 8e1367a4a1fc86ff0fd82ee057320a7b974595ba7999457b42035467ba06190c- FreeBSD:- '( >= 12 && < 13 )':- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/cabal-install-3.6.0.0-x86_64-freebsd.tar.xz- dlHash: 56b5b37396c16a29f164a6963f24bd88f09e1d37448542ed61a683325f0a868b- '( >= 13 )':- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.0.0/cabal-install-3.6.0.0-x86_64-freebsd13.tar.xz- dlHash: a283aa498702a3e286aa08e004c2a389538cbb47ec7096a25682fb7d57f6bb7f- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/cabal-install-3.6.0.0-x86_64-windows.zip- dlSubdir:- dlHash: 8222b49b6eac3d06aaa390bc688f467e8f949a38943567f46246f8320fd72ded- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~cabal/cabal-install-3.6.0.0/cabal-install-3.6.0.0-aarch64-linux-deb10.tar.xz- dlHash: 534f71cd4e1d9758dc73066cc5733c5838874710aeb3aa88541de6c6d042d9ec- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.0.0/cabal-install-3.6.0.0-aarch64-darwin-big-sur.tar.xz- dlHash: 7acf740946d996ede835edf68887e6b2f1e16d1b95e94054d266463f38d136d9- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.0.0/cabal-install-3.6.0.0-armv7-linux.tar.xz- dlHash: 11b5ca042a8bf45971224f2127a3e9d6b803f09210042ca80a254bea06f01a2e- GHCup:- 0.1.17.2:- viTags:- - Recommended- - Latest- viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md- viSourceDL:- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &ghcup-64- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-linux-ghcup-0.1.17.2- dlHash: e9adb022b9bcfe501caca39e76ae7241af0f30fbb466a2202837a7a578607daf- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-apple-darwin-ghcup-0.1.17.2- dlHash: 9418dab0f603b25f925739d66ca2328e876ce5197c131d7e75060f8edf7c57c9- FreeBSD:- '( >= 12 && < 13 )':- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-portbld-freebsd12-ghcup-0.1.17.2- dlHash: b6f0558e66f95a0772a60902c2c96202d0271d8d963db436a1359f1c4e1d2947- '( >= 13 )':- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-portbld-freebsd13-ghcup-0.1.17.2- dlHash: 5bd5760dd29117ca2797a87b79f99b804743e7e64fcdcfe6ad6436314423ef84- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/x86_64-mingw64-ghcup-0.1.17.2.exe- dlHash: 17ab704551c691067d590760c513891d0d0d375efb59dc3c99219fdf352fed71- Linux_Alpine:- unknown_versioning: *ghcup-64- A_32:- Linux_UnknownLinux:- unknown_versioning: &ghcup-32- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/i386-linux-ghcup-0.1.17.2- dlHash: eb29a33ed9798c94ed05b10c66c2cd6690a4d5aa79ed7ce6a9b8564e0c095ff4- Linux_Alpine:- unknown_versioning: *ghcup-32- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/aarch64-linux-ghcup-0.1.17.2- dlHash: ad72641877f91f1cc5142151dafad68566f439114f96a738837ed549430173a5- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/aarch64-apple-darwin-ghcup-0.1.17.2- dlHash: bf8691a88627b02253c2068537dc16e7eb1d3dbb22bcb1342cb7f0d00df08fd5- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/~ghcup/0.1.17.2/armv7-linux-ghcup-0.1.17.2- dlHash: 03f2f8aaa8393372e9f7e16061703eda3f497b9604171825995389f3d5cc8f8f- HLS:- 1.1.0:- viTags:- - old- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#110- viPostInstall: &hls-post-install |- This is just the server part of your LSP configuration. Consult the README on how to- configure HLS, your project and your LSP client in your editor:- https://github.com/haskell/haskell-language-server/blob/master/README.md- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-110-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.1.0/haskell-language-server-Linux-1.1.0.tar.gz- dlHash: 0f0dadb0e9a08273658f565fd71c636801959b954be2737f38f2a1aac522208f- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.1.0/haskell-language-server-macOS-1.1.0.tar.gz- dlHash: 4e89b192e2f49637d772e974f2c17b16da067ecd5912575eaa542551de97681b- Windows:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/hls/1.1.0/haskell-language-server-Windows-1.1.0.tar.gz- dlHash: a1d3f451e64a041aa527a25da29e4716a2de6ae347cef4ef9312fc7611e168cc- Linux_Alpine:- unknown_versioning: *hls-110-64- 1.2.0:- viTags:- - old- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#120- viPostInstall: *hls-post-install- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-120-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.2.0/haskell-language-server-Linux-1.2.0.tar.gz- dlHash: d29ee22f7bd706da2e2a1bd7640e25bb9736adeafb34eef47d29ea143b0fa927- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.2.0/haskell-language-server-macOS-1.2.0.tar.gz- dlHash: a310d8a3e9c5c4218210f750682c74a0f82ad0f59995adde0dbe775115b1e357- Windows:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.2.0/haskell-language-server-Windows-1.2.0.tar.gz- dlHash: 961c6ff12c9a9c7a4609f239c5ac70d7d16753cdb8c10348a6a51feeaa0b6aea- Linux_Alpine:- unknown_versioning: *hls-120-64- 1.3.0:- viTags: []- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#130- viPostInstall: *hls-post-install- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-130-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.3.0/haskell-language-server-Linux-1.3.0.tar.gz- dlHash: 0f232cd4316f5215eb82c6d8f568260e1862a9b39a68ec37662e5e87b714f271- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.3.0/haskell-language-server-macOS-1.3.0.tar.gz- dlHash: 2ce9763718544c2e1ff6b005d9bdc86178dcdaf71e63dc68d3fcd23457abf180- Windows:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.3.0/haskell-language-server-Windows-1.3.0.tar.gz- dlHash: 46aac7be888e29a9907cf56698c1ce1475c148b5e6cc099513e9ef74a0520dcf- Linux_Alpine:- unknown_versioning: *hls-130-64- 1.4.0:- viTags:- - Recommended- - Latest- viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#140- viPostInstall: *hls-post-install- viSourceDL:- dlUri: https://downloads.haskell.org/ghcup/src/haskell-language-server/1.4.0/haskell-language-server-1.4.0.tar.gz- dlSubdir: haskell-language-server-1.4.0- dlHash: c5d7dbf7fae9aa3ed2c1184b49e82d8ac623ca786494ef6602cfe11735d28db0- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &hls-140-64- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.4.0/haskell-language-server-Linux-1.4.0.tar.gz- dlHash: f93c114441911ccce55649702adc9553cb4c9f953c37878321d2806a3525fee8- Darwin:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.4.0/haskell-language-server-macOS-1.4.0.tar.gz- dlHash: a7f0ac6be93ffb08cc239e5f5fead99b061061825f99566c1be33ee60cab62a4- FreeBSD:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.4.0/haskell-language-server-freebsd-1.4.0.tar.gz- dlHash: 6b2ad2398ed8c3964dea017e3d5e553b54c10ba1373d7653d2edd019854f4da2- Windows:- unknown_versioning:- dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.4.0/haskell-language-server-Windows-1.4.0.tar.gz- dlHash: 0ec77cee750037b7a0ede817b46a913a702821f4098c6a858bcb686cb30f7efd- Linux_Alpine:- unknown_versioning: *hls-140-64- A_ARM64:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.4.0/haskell-language-server-linux-aarch64-1.4.0.tar.gz- dlHash: 8ad97e2bf1c538e637edec194e1cd9939019955bb749cb470f34bbe5a067b001- Darwin:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.4.0/haskell-language-server-macOS-aarch64-1.4.0.tar.gz- dlHash: 70c6fe38e987ba44c1e19173486c01f666ffb30a74cd5a7968296a5aba4c2dd0- A_ARM:- Linux_UnknownLinux:- unknown_versioning:- dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.4.0/haskell-language-server-linux-armv7-1.4.0.tar.gz- dlHash: 4a921fbca06b02f3b1c0930cec5e65e9362b603e7715680ec7b150f18bd703d6- Stack:- 2.5.1:- viTags:- - old- viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v251- viPostInstall: &stack-post |- Stack manages GHC versions internally by default. In order to make it use ghcup installed- GHC versions you can run the following commands:- stack config set install-ghc false --global- stack config set system-ghc true --global- - On windows, you may find the following config options useful too:- skip-msys, extra-path, extra-include-dirs, extra-lib-dirs-- Also check out: https://docs.haskellstack.org/en/stable/yaml_configuration-- !!! Additionally, you should upgrade stack only through ghcup and not use 'stack upgrade' !!!- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &stack-251-64- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-linux-x86_64.tar.gz- dlHash: c83b6c93d6541c0bce2175085a04062020f4160a86116e20f3b343b562f2d1e8- dlSubdir:- RegexDir: "stack-.*"- Darwin:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-osx-x86_64.tar.gz- dlHash: f4aedfa8fbe371f77286ee97ec5c3c553842e7ae15b2952a8b8442dccba04bf0- dlSubdir:- RegexDir: "stack-.*"- Windows:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-windows-x86_64.tar.gz- dlHash: 57150b422cfd42249f5e629d0eb678df6d95dabe486ced57e8298d300b940d41- dlSubdir:- RegexDir: "stack-.*"- Linux_Alpine:- unknown_versioning: *stack-251-64- 2.7.1:- viTags:- - old- viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v271- viPostInstall: *stack-post- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &stack-271-64- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.1/stack-2.7.1-linux-x86_64.tar.gz- dlHash: 2bc47749ee4be5eccb52a2d4a6a00b0f3b28b92517742b40c675836d7db2777d- dlSubdir:- RegexDir: "stack-.*"- Darwin:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.1/stack-2.7.1-osx-x86_64.tar.gz- dlHash: 4248c6fbc87e8a2c06f39e867eb5ef28eae0d99470137cb415356c631c0dcbf2- dlSubdir:- RegexDir: "stack-.*"- Windows:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.1/stack-2.7.1-windows-x86_64.tar.gz- dlHash: 8452f5fc9235620a84863f2f68e5f681c72d0d181cde50482f178a966ee0ceb9- dlSubdir:- RegexDir: "stack-.*"- Linux_Alpine:- unknown_versioning: *stack-271-64- 2.7.3:- viTags:- - Latest- - Recommended- viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v273- viPostInstall: *stack-post- viArch:- A_64:- Linux_UnknownLinux:- unknown_versioning: &stack-273-64- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.3/stack-2.7.3-linux-x86_64.tar.gz- dlHash: a6c090555fa1c64aa61c29aa4449765a51d79e870cf759cde192937cd614e72b- dlSubdir:- RegexDir: "stack-.*"- Darwin:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.3/stack-2.7.3-osx-x86_64.tar.gz- dlHash: 42e5000a00af44a7b26852421ac63ce75f510ad1a97742cb131107088ee9fe30- dlSubdir:- RegexDir: "stack-.*"- Windows:- unknown_versioning:- dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.3/stack-2.7.3-windows-x86_64.tar.gz- dlHash: e6ba12e0ecabf0df2567d88a0d247da238bc114bcccfca4195f5e86472c9330c- dlSubdir:- RegexDir: "stack-.*"- Linux_Alpine:- unknown_versioning: *stack-273-64-
− docs/CHANGELOG.md
@@ -1,210 +0,0 @@-# Revision history for ghcup--## 0.1.17.2 -- 2021-09-30--* Honour GHC bootstrap compiler during git clone stages wrt [#250](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/250)-* Speed up `unset` command-* Fix `--overwrite-version` for `ghcup compile ghc` wrt [#253](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/253)-* Apply patches before bootstrap--## 0.1.17.1 -- 2021-09-26--* Fix `NO_COLOR`-* Fix `ghcup list -t` for hls/stack, wrt [#244](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/244)-* Get rid of concurrent-output-* Improve cli interface with partial versions (e.g. `ghcup install ghc 8`)-* Fix HLS compilation builds-* Implement `ghcup gc` (garbage collection) command--## 0.1.17 -- 2021-09-20--* Add `--force` option to install/compile wrt [#210](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/210) by Arjun Kathuria-* Implement compiling HLS from source wrt [#201](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/201)-* Implement experimental GPG verification of the metadata file (see README) wrt [#263](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/236)-* Add `ghcup unset` command wrt [#145](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/145)-* Add `ghcup whereis bindir` etc wrt [#221](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/221)-* Greatly reduce dependency footprint wrt [#212](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/212)-* Add `ghcup --plan-json`-* Improve `--patchdir` option for GHC compilation wrt [#226](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/226)-* Try to improve logging and failure modes, especially during downloads-* Add descriptive warnings when HLS and GHC versions are incompatible-* Improve curl header parsing wrt [#213](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/213)--## 0.1.16.2 -- 2021-08-12--* Add isolated installations wrt [#141](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/141) by Arjun Kathuria-* Implement config cli MVP wrt [#134](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/134) by Oleksii Dorozhkin-* Fix `ghcup compile ghc --flavor`-* Fix minor installation bug causing increased disk space wrt [#139](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/139)-* Improved error handling wrt [#136](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/136)-* Various improvements to metadata download when using `file://` and `--offline` wrt [#137](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/137)--## 0.1.16.1 -- 2021-07-29--* Add 'nuke' subcommand wrt [#135](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/135), implemented by Arjun Kathuria-* Add uninstallation powershell script on windows wrt [#150](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/150)-* Improve logging-* Fix building GHC cross compiler wrt [#180](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/180)-* Allow to use hadrian as build system (for git based versions only) wrt [#35](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/35)-* Allow passing `--flavor` to `ghcup compile ghc`-* Support new GHC `bin/` directory format wrt [ghc/ghc#20074](https://gitlab.haskell.org/ghc/ghc/-/issues/20074#note_363720)-* Implement `whereis` subcommand wrt [#173](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/173)-* Add `--offline` switch and `prefetch` subcommand wrt [#186](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/186)-* Implement ETAGs hashing for metadata downloads to speed up `ghcup list` wrt [#193](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/193)-* Avoid unnecessary fetching of ghcup metadata in some commands-* Avoid unnecessary update checks for some commands-* Preserve mtimes on unpacked GHC tarballs on windows wrt [#187](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/187), fixing issues with `ghc-pkg`-* Fix lesser bug in `ghcup list` for stray stack versions wrt [#183](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/183)-* Major redo on how file removal on windows works, avoiding partial removals etc, wrt [#165](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/165)-* Improve ghcup tui for screen readers wrt [github/#4](https://github.com/haskell/ghcup-hs/pull/4), thanks to Mario Lang--## 0.1.15.2 -- 2021-06-13--* Remove legacy handling of cabal binary and be more graceful about binaries not installed by ghcup (e.g. stack)-* Fix GHC compilation from git-* Fix 'ghcup upgrade' on windows-* Allow to skip update checks via `GHCUP_SKIP_UPDATE_CHECK`-* Use libarchive on windows as well, fixing unpack errors wrt [#147](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/147)--## 0.1.15.1 -- 2021-06-11--* Add Apple Silicon support-* Add windows support wrt [#130](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/130)-* Add stack support-* Warn when /tmp doesn't have 5GB or more of disk space-* Allow to compile GHC from git repo wrt [#126](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/126)-* Allow to set custom ghc version when running 'ghcup compile ghc' wrt [#136](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/136)-* Add date to GHC bindist names created by ghcup--## 0.1.14.2 -- 2021-05-12--* Remove dead dependency on ascii-string--## 0.1.14.1 -- 2021-04-11--* Make internal symlink target parser more lax, fixes [#119](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/119)-* Prepare for hackage release--## 0.1.14 -- 2021-03-07--* Major bugfix: fix handling of stray versions wrt [#116](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/116)-* Fix error messages and overhaul pretty printing wrt [#115](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/115)--## 0.1.13 -- 2021-02-26--* Support ARMv7/AARCH64-* Add command line completions for installed and available versions wrt [MR #70](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/70)-* Allow to cycle through set tools wrt [#114](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/114)-* Fix item selection with unavailable versions wrt [#107](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/107)-* Allow for dynamic post-install, post-remove and pre-compile msgs wrt [MR #68](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/68)-* Alert user if upgraded ghcup is shadowed by old ghcup wrt [#111](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/111)-* Fix to `ghcup` directory creation and placement for the XDG install mode ([MR #49](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/49))-* Do 755 permissions on executables, wrt #97-* Add [NO_COLOR](https://no-color.org/) support wrt [MR #47](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/47)--## 0.1.12 -- 2020-11-21--* Fix disappearing HLS symlinks wrt #91-* improve TUI:- - separators between tools sections- - reverse list order so latest is on top- - expand the blues selected bar- - show new latest versions in bright white-* allow configuration file and setting TUI hotkeys wrt #41- - see https://gitlab.haskell.org/haskell/ghcup-hs#configuration for a more in-depth explanation-* add a `--set` switch to `ghcup install ghc` to automatically set as default after install-* emit warnings when CC/LD is set wrt #82-* add support for version ranges in distro specifiers wrt #84- - e.g. `"(>= 19 && <= 20) || ==0.2.2"` is a valid version key for distro--## 0.1.11 -- 2020-09-23--* Add support for installing haskell-language-server, wrt #65-* When compiling GHC from source create a bindist first, store that bindist in `~/.ghcup/cache` and install it, wrt #51-* Allow to compile over existing version (`ghcup compile ghc -v 8.6.5 -b 8.6.5`) and replace it wrt #59-* simplify installing from custom bindist wrt #60- - `ghcup install ghc -u <url> <version>`-* fix bug when cabal isn't marked executable in bindist-* fix bug when `~/.ghcup` is a valid symlink wrt #49-* Drop support for compiling cabal from source (the old bootstrap script is discontinued)--## 0.1.10 -- 2020-08-14--* Show stray Cabals (useful for pre-releases or compiled ones)--## 0.1.9 -- 2020-08-14--* Fix bug when uninstalling all cabal versions-* Fix bug when setting a non-installed ghc version as current default-* Use yaml instead of generated json for download info for ease of adding new GHC versions #44-* Allow pre-release versions of GHC/cabal-* Add XDG dirs support (set `GHCUP_USE_XDG_DIRS`) wrt #39-* Allow to specify regex for tarball subdir (e.g. `ghc-.*`)-* Allow installing arbitrary bindists more seamlessly:- - e.g. installing GHC HEAD: `ghcup -n install ghc -u '{"dlHash": "", "dlSubdir": { "RegexDir": "ghc-.*"}, "dlUri": "https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27" }' head`-* Avoid duplicate edits to .bashrc/.zshrc wrt #43--## 0.1.8 -- 2020-07-21--* Fix bug in logging thread dying on newlines-* Allow to install from arbitrary bindists: `ghcup -n install ghc -u '{"dlHash": "", "dlSubdir": "ghc-8.10.1", "dlUri": "https://github.com/commercialhaskell/ghc/releases/download/ghc-8.10.1-release/ghc-8.10.1-x86_64-deb9-linux.tar.xz"}' 8.10.1`--## 0.1.7 -- 2020-07-20--* Fix a bug in libarchive not unpacking some uncleanly packed bindists-* Improved fish support in bootstrap-haskell-* Only check for upgrades when not upgrading-* Fix platform detection for i386 docker images-* Improve alpine support- - more/proper bindists- - don't fall back to glibc based bindists- - install bindists with `--disable-ld-override` to avoid ld.gold bugs--## 0.1.6 -- 2020-07-13--* Create a new curses (brick) based TUI, accessible via `ghcup tui` #24-* Support multiple installed versions of cabal #23-* Improvements to `ghcup list` (show unavailable bindists for platform)-* Fix redhat downloads #29-* Support for hadrian bindists (fixes alpine-8.10.1) #31-* Add FreeBSD bindists 8.6.5 and 8.8.3-* Fix memory leak during unpack--## 0.1.5 -- 2020-04-30--* Fix errors when PATH variable contains path components that are actually files-* Add `--version` and `--numeric-version` options-* Add `changelog` command-* Also check for available GHC and Cabal updates on start-* Add base versions as tags for every GHC version (these are "installable" tags and the latest GHC version matching the tag will be picked)-* Added `--format-raw` to list subcommand-* Allow to install X.Y versions (e.g.: ghcup install 8.8)-* Implement `--keep=<always|errors|never>` to control temporary build directories cleanup-* Add proper shell completions to the repo-* Fix building of documentation-* Allow to work in offline mode and use cached files if possible-* Allow to set the downloader via `--downloader=<curl|wget>`-* Support for compiling and installing a cross GHC (see README). This is experimental.--## 0.1.4 -- 2020-04-16--* build on all platforms with curl (as a binary), wrt https://gitlab.haskell.org/haskell/ghcup-hs/issues/6-* Fix unlinking of ghc symlinks after new installation, wrt https://gitlab.haskell.org/haskell/ghcup-hs/issues/7--## 0.1.3 -- 2020-04-15--* Fix lesser bug when skipping ghcup update--## 0.1.2 -- 2020-04-15--* Fix bug when removing the set GHC version-* Fix use of undocumented `GHCUP_INSTALL_BASE_PREFIX` variable-* skip upgrade if ghcup is already latest version--## 0.1.1 -- 2020-04-15--* fix awful fdopendir bug on mac bug by updating hpath-posix--## 0.1.0--* First version. Released on an unsuspecting world.
− docs/HACKING.md
@@ -1,75 +0,0 @@-# HACKING--## Design decisions--### Using [Excepts](https://hackage.haskell.org/package/haskus-utils-variant-3.0/docs/Haskus-Utils-Variant-Excepts.html) as a beefed up ExceptT--This is an open variant, similar to [plucky](https://hackage.haskell.org/package/plucky) or [oops](https://github.com/i-am-tom/oops) and allows us to combine different error types. Maybe it is too much and it's a little bit [unergonomic](https://github.com/haskus/packages/issues/32) at times. If it really hurts maintenance, it will be removed. It was more of an experiment.--### No use of haskell-TLS--I consider haskell-TLS an interesting experiment, but not a battle-tested and peer-reviewed crypto implementation. There is little to no research about what the intricacies of using haskell for low-level crypto are and how vulnerable such binaries are. Instead, we use either curl the binary (for FreeBSD and mac) or http-io-streams, which works with OpenSSL bindings.--### Optics instead of lens--They're a little safer (less Monoid weirdness with view) and have better error messages. Consider the following wit lens--```-> view (_Just . to (++ "abc")) Nothing-""-```--vs optics--```-> view (_Just % to (++ "abc")) Nothing--<interactive>:2:1: error:- • An_AffineFold cannot be used as A_Getter- • In the expression: view (_Just % to (++ "abc")) Nothing- In an equation for ‘it’: it = view (_Just % to (++ "abc")) Nothing-```--### Strict and StrictData on by default--Kazu Yamamoto [explained it in his PR](https://github.com/yesodweb/wai/pull/752#issuecomment-501531386) very well. I like to agree with him. The instances where we need non-strict behavior, we annotate it.--## Code style and formatting--1. Brittany-2. mtl-style preferred-3. no overly pointfree style--## Code structure--Main functionality is in `GHCup` module. Utility functions are-organised tree-ish in `GHCup.Utils` and `GHCup.Utils.*`.--Anything dealing with ghcup specific directories is in-`GHCup.Utils.Dirs`.--Download information on where to fetch bindists from is in the appropriate-yaml files: `ghcup-<yaml-ver>.yaml`.--## Common Tasks--### Adding a new GHC version--1. open the latest `ghcup-<yaml-ver>.yaml`-2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.3`)-3. copy-paste it-4. adjust the version, tags, changelog, source url-5. adjust the various bindist urls (make sure to also change the yaml anchors)-6. run `cabal run exe:ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.4'`--## Major refactors--1. First major refactor included adding cross support. This added- `GHCTargetVersion`, which includes the target in addition to the version.- Most of the `Version` parameters to functions had to be replaced with- that and ensured the logic is consistent for cross and non-cross- installs.-2. This refactor added windows support wrt [#130](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/130).- The major changes here were switching `hpath` library out for `filepath`/`directory` (sadly) and- introducing a non-unix way of handling processes via the `process` library. It also introduced considerable- amounts of CPP wrt file handling, installation etc.
− docs/RELEASING.md
@@ -1,21 +0,0 @@-# RELEASING--1. Update version in `ghcup.cabal` and `boostrap-haskell` (`ghver` variable at the top of the script)--2. Update `GHCup.Version` module. `ghcupURL` must only be updated if we change the `GHCupInfo` type or the YAML representation of it. The version of the YAML represents the change increments. `ghcUpVer` is the current application version, read from `ghcup.cabal`.--3. Add ChangeLog entry--4. Add/fix downloads in `ghcup-<ver>.yaml` (under `data/metadata`), then verify with `ghcup-gen check -f ghcup-<ver>.yaml` and possibly (example only) `ghcup-gen check-tarballs -f ghcup-<ver>.yaml -u 'ghc-8.10.7'`. Generally, new GHC/cabal/stack/hls versions are only added to the latest yaml file. New GHCup versions are added to all (great care must be taken here to not break the parser... e.g. ARM platforms don't parse in all older formats).--5. Commit and git push with tag. Wait for tests to succeed and release artifacts to build.--6. Download release artifacts and upload them `downloads.haskell.org/ghcup` along with checksum files (`sha256sum --tag * > SHA256SUMS && gpg --detach-sign -u <your-email> SHA256SUMS`)--7. Add ghcup release artifacts to ALL yaml files (see point 4.)--8. Upload the final `ghcup-<ver>.yaml` to `webhost.haskell.org/ghcup/data/`.--9. Update `bootstrap-haskell` and `bootstrap-haskell.ps1` to `webhost.haskell.org/ghcup/sh/`--10. Update the ghcup symlinks at `downloads.haskell.org/ghcup`
ghcup.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: ghcup-version: 0.1.17.2+version: 0.1.17.3 license: LGPL-3.0-only license-file: LICENSE copyright: Julian Ospald 2020@@ -16,18 +16,14 @@ category: System build-type: Simple extra-doc-files:+ CHANGELOG.md data/config.yaml- data/metadata/ghcup-0.0.4.yaml- data/metadata/ghcup-0.0.5.yaml- data/metadata/ghcup-0.0.6.yaml- docs/CHANGELOG.md- docs/HACKING.md- docs/RELEASING.md README.md extra-source-files: data/build_mk/cross data/build_mk/default+ test/golden/GHCupInfo.json source-repository head type: git@@ -93,13 +89,13 @@ -fwarn-incomplete-record-updates build-depends:- , aeson >=1.4 && <1.6+ , aeson >=1.4 , async >=0.8 && <2.3 , base >=4.13 && <5 , base16-bytestring >=0.1.1.6 && <1.1 , binary ^>=0.8.6.0 , bytestring ^>=0.10- , Cabal+ , Cabal ^>=3.6.2.0 , case-insensitive ^>=1.2.1.0 , casing ^>=0.1.4.1 , containers ^>=0.6@@ -110,7 +106,6 @@ , filepath ^>=1.4.2.1 , haskus-utils-types ^>=1.5 , haskus-utils-variant >=3.0 && <3.2- , HsYAML-aeson ^>=0.2.0.0 , libarchive ^>=3.0.3.0 , lzma-static ^>=5.2.5.3 , megaparsec >=8.0.0 && <9.1@@ -121,6 +116,7 @@ , pretty-terminal ^>=0.1.0.0 , regex-posix ^>=0.96 , resourcet ^>=1.2.2+ , retry ^>=0.8.1.2 , safe ^>=0.3.18 , safe-exceptions ^>=0.1 , split ^>=0.2.3.4@@ -136,6 +132,7 @@ , vector ^>=0.12 , versions >=4.0.1 && <5.1 , word8 ^>=0.1.3+ , yaml-streamly ^>=0.12.0 , zlib ^>=0.6.2.2 if (flag(internal-downloader) && !os(windows))@@ -149,16 +146,21 @@ if os(windows) cpp-options: -DIS_WINDOWS- other-modules: GHCup.Utils.File.Windows+ other-modules:+ GHCup.Utils.File.Windows+ GHCup.Utils.Prelude.Windows+ GHCup.Utils.Windows+ build-depends: , bzlib , process ^>=1.6.11.0- , retry ^>=0.8.1.2 , Win32 ^>=2.10 else other-modules: GHCup.Utils.File.Posix+ GHCup.Utils.Posix+ GHCup.Utils.Prelude.Posix System.Console.Terminal.Common System.Console.Terminal.Posix @@ -173,6 +175,25 @@ executable ghcup main-is: Main.hs+ other-modules:+ GHCup.OptParse+ GHCup.OptParse.ChangeLog+ GHCup.OptParse.Common+ GHCup.OptParse.Compile+ GHCup.OptParse.Config+ GHCup.OptParse.DInfo+ GHCup.OptParse.GC+ GHCup.OptParse.Install+ GHCup.OptParse.List+ GHCup.OptParse.Nuke+ GHCup.OptParse.Prefetch+ GHCup.OptParse.Rm+ GHCup.OptParse.Set+ GHCup.OptParse.ToolRequirements+ GHCup.OptParse.UnSet+ GHCup.OptParse.Upgrade+ GHCup.OptParse.Whereis+ hs-source-dirs: app/ghcup default-language: Haskell2010 default-extensions:@@ -190,7 +211,7 @@ -fwarn-incomplete-record-updates -threaded build-depends:- , aeson >=1.4 && <1.6+ , aeson >=1.4 , aeson-pretty ^>=0.8.8 , async ^>=2.2.3 , base >=4.13 && <5@@ -201,7 +222,6 @@ , filepath ^>=1.4.2.1 , ghcup , haskus-utils-variant >=3.0 && <3.2- , HsYAML-aeson ^>=0.2.0.0 , libarchive ^>=3.0.3.0 , megaparsec >=8.0.0 && <9.1 , mtl ^>=2.2@@ -216,6 +236,7 @@ , uri-bytestring ^>=0.3.2.2 , utf8-string ^>=1.0 , versions >=4.0.1 && <5.1+ , yaml-streamly ^>=0.12.0 if flag(internal-downloader) cpp-options: -DINTERNAL_DOWNLOADER@@ -263,7 +284,6 @@ , filepath ^>=1.4.2.1 , ghcup , haskus-utils-variant >=3.0 && <3.2- , HsYAML-aeson ^>=0.2.0.0 , libarchive ^>=3.0.3.0 , mtl ^>=2.2 , optics ^>=0.4@@ -276,6 +296,7 @@ , text ^>=1.2.4.0 , transformers ^>=0.5 , versions >=4.0.1 && <5.1+ , yaml-streamly ^>=0.12.0 test-suite ghcup-test type: exitcode-stdio-1.0
lib/GHCup.hs view
@@ -52,9 +52,7 @@ import Control.Monad.Reader import Control.Monad.Trans.Resource hiding ( throwM )-#if defined(IS_WINDOWS) import Control.Monad.IO.Unlift ( MonadUnliftIO( withRunInIO ) )-#endif import Data.ByteString ( ByteString ) import Data.Either import Data.List@@ -96,9 +94,6 @@ import qualified Data.Text as T import qualified Data.Text.IO as T import qualified Data.Text.Encoding as E-#if defined(IS_WINDOWS)-import qualified System.Win32.File as Win32-#endif import qualified Text.Megaparsec as MP import GHCup.Utils.MegaParsec import Control.Concurrent (threadDelay)@@ -205,6 +200,7 @@ , TarDirDoesNotExist , DirNotEmpty , ArchiveResult+ , ProcessError ] m ()@@ -283,6 +279,7 @@ , TarDirDoesNotExist , DirNotEmpty , ArchiveResult+ , ProcessError ] m () installPackedGHC dl msubdir inst ver forceInstall = do PlatformRequest {..} <- lift getPlatformReq@@ -292,7 +289,7 @@ -- unpack tmpUnpack <- lift mkGhcupTmpDir- liftE $ unpackToDir tmpUnpack dl+ liftE $ cleanUpOnError tmpUnpack (unpackToDir tmpUnpack dl) liftE $ catchWarn $ lEM @_ @'[ProcessError] $ darwinNotarization _rPlatform tmpUnpack -- the subdir of the archive where we do the work@@ -337,36 +334,35 @@ -> FilePath -- ^ Path to install to -> Version -- ^ The GHC version -> Excepts '[ProcessError] m ()-installUnpackedGHC path inst ver = do-#if defined(IS_WINDOWS)- lift $ logInfo "Installing GHC (this may take a while)"- -- Windows bindists are relocatable and don't need- -- to run configure.- -- We also must make sure to preserve mtime to not confuse ghc-pkg.- lift $ withRunInIO $ \run -> flip onException (run $ recyclePathForcibly inst) $ copyDirectoryRecursive path inst $ \source dest -> do- mtime <- getModificationTime source- Win32.moveFile source dest- setModificationTime dest mtime-#else- PlatformRequest {..} <- lift getPlatformReq+installUnpackedGHC path inst ver+ | isWindows = do+ lift $ logInfo "Installing GHC (this may take a while)"+ -- Windows bindists are relocatable and don't need+ -- to run configure.+ -- We also must make sure to preserve mtime to not confuse ghc-pkg.+ lift $ withRunInIO $ \run -> flip onException (run $ recyclePathForcibly inst) $ copyDirectoryRecursive path inst $ \source dest -> do+ mtime <- getModificationTime source+ moveFilePortable source dest+ setModificationTime dest mtime+ | otherwise = do+ PlatformRequest {..} <- lift getPlatformReq - let alpineArgs- | ver >= [vver|8.2.2|], Linux Alpine <- _rPlatform- = ["--disable-ld-override"]- | otherwise- = []+ let alpineArgs+ | ver >= [vver|8.2.2|], Linux Alpine <- _rPlatform+ = ["--disable-ld-override"]+ | otherwise+ = [] - lift $ logInfo "Installing GHC (this may take a while)"- lEM $ execLogged "sh"- ("./configure" : ("--prefix=" <> inst) - : alpineArgs- )- (Just path)- "ghc-configure"- Nothing- lEM $ make ["install"] (Just path)- pure ()-#endif+ lift $ logInfo "Installing GHC (this may take a while)"+ lEM $ execLogged "sh"+ ("./configure" : ("--prefix=" <> inst) + : alpineArgs+ )+ (Just path)+ "ghc-configure"+ Nothing+ lEM $ make ["install"] (Just path)+ pure () -- | Installs GHC into @~\/.ghcup\/ghc/\<ver\>@ and places the@@ -402,12 +398,13 @@ , TarDirDoesNotExist , DirNotEmpty , ArchiveResult+ , ProcessError ] m () installGHCBin ver isoFilepath forceInstall = do dlinfo <- liftE $ getDownloadInfo GHC ver- installGHCBindist dlinfo ver isoFilepath forceInstall+ liftE $ installGHCBindist dlinfo ver isoFilepath forceInstall -- | Like 'installCabalBin', except takes the 'DownloadInfo' as@@ -472,7 +469,7 @@ -- unpack tmpUnpack <- lift withGHCupTmpDir- liftE $ unpackToDir tmpUnpack dl+ liftE $ cleanUpOnError tmpUnpack (unpackToDir tmpUnpack dl) liftE $ catchWarn $ lEM @_ @'[ProcessError] $ darwinNotarization _rPlatform tmpUnpack -- the subdir of the archive where we do the work@@ -614,7 +611,7 @@ -- unpack tmpUnpack <- lift withGHCupTmpDir- liftE $ unpackToDir tmpUnpack dl+ liftE $ cleanUpOnError tmpUnpack (unpackToDir tmpUnpack dl) liftE $ catchWarn $ lEM @_ @'[ProcessError] $ darwinNotarization _rPlatform tmpUnpack -- the subdir of the archive where we do the work@@ -784,7 +781,7 @@ -- unpack tmpUnpack <- lift mkGhcupTmpDir- liftE $ unpackToDir tmpUnpack dl+ liftE $ cleanUpOnError tmpUnpack (unpackToDir tmpUnpack dl) liftE $ catchWarn $ lEM @_ @'[ProcessError] $ darwinNotarization _rPlatform tmpUnpack workdir <- maybe (pure tmpUnpack)@@ -1001,7 +998,7 @@ -- unpack tmpUnpack <- lift withGHCupTmpDir- liftE $ unpackToDir tmpUnpack dl+ liftE $ cleanUpOnError tmpUnpack (unpackToDir tmpUnpack dl) liftE $ catchWarn $ lEM @_ @'[ProcessError] $ darwinNotarization _rPlatform tmpUnpack -- the subdir of the archive where we do the work@@ -1137,21 +1134,24 @@ SetGHCOnly -> do let sharedir = "share" let fullsharedir = ghcdir </> sharedir+ logDebug $ "Checking for sharedir existence: " <> T.pack fullsharedir whenM (liftIO $ doesDirectoryExist fullsharedir) $ do let fullF = destdir </> sharedir let targetF = "." </> "ghc" </> ver' </> sharedir logDebug $ "rm -f " <> T.pack fullF hideError doesNotExistErrorType $ rmDirectoryLink fullF logDebug $ "ln -s " <> T.pack targetF <> " " <> T.pack fullF- liftIO-#if defined(IS_WINDOWS)- -- On windows we need to be more permissive- -- in case symlinks can't be created, be just- -- give up here. This symlink isn't strictly necessary.- $ hideError permissionErrorType- $ hideError illegalOperationErrorType-#endif- $ createDirectoryLink targetF fullF++ if isWindows+ then liftIO+ -- On windows we need to be more permissive+ -- in case symlinks can't be created, be just+ -- give up here. This symlink isn't strictly necessary.+ $ hideError permissionErrorType+ $ hideError illegalOperationErrorType+ $ createDirectoryLink targetF fullF+ else liftIO+ $ createDirectoryLink targetF fullF _ -> pure () unsetGHC :: ( MonadReader env m@@ -1872,17 +1872,17 @@ unless areEqualPaths $ logWarn $ nonStandardInstallLocationMsg currentRunningExecPath -#if defined(IS_WINDOWS)- -- since it doesn't seem possible to delete a running exe on windows- -- we move it to temp dir, to be deleted at next reboot- tempFilepath <- mkGhcupTmpDir- hideError UnsupportedOperation $- liftIO $ hideError NoSuchThing $- Win32.moveFileEx ghcupFilepath (Just (tempFilepath </> "ghcup")) 0-#else- -- delete it.- hideError doesNotExistErrorType $ rmFile ghcupFilepath-#endif+ if isWindows+ then do+ -- since it doesn't seem possible to delete a running exe on windows+ -- we move it to temp dir, to be deleted at next reboot+ tempFilepath <- mkGhcupTmpDir+ hideError UnsupportedOperation $+ liftIO $ hideError NoSuchThing $+ moveFile ghcupFilepath (tempFilepath </> "ghcup")+ else+ -- delete it.+ hideError doesNotExistErrorType $ rmFile ghcupFilepath where handlePathNotPresent fp _err = do@@ -1942,10 +1942,9 @@ handleRm $ rmBinDir binDir handleRm $ rmDir recycleDir-#if defined(IS_WINDOWS)- logInfo $ "removing " <> T.pack (baseDir </> "msys64")- handleRm $ rmPathForcibly (baseDir </> "msys64")-#endif+ when isWindows $ do+ logInfo $ "removing " <> T.pack (baseDir </> "msys64")+ handleRm $ rmPathForcibly (baseDir </> "msys64") handleRm $ removeEmptyDirsRecursive baseDir @@ -1979,15 +1978,13 @@ forM_ contents (deleteFile . (dir </>)) rmBinDir :: (MonadReader env m, HasDirs env, MonadMask m, MonadIO m, MonadCatch m) => FilePath -> m ()- rmBinDir binDir = do-#if !defined(IS_WINDOWS)- isXDGStyle <- liftIO useXDG- if not isXDGStyle- then removeDirIfEmptyOrIsSymlink binDir- else pure ()-#else- removeDirIfEmptyOrIsSymlink binDir-#endif+ rmBinDir binDir+ | isWindows = removeDirIfEmptyOrIsSymlink binDir+ | otherwise = do+ isXDGStyle <- liftIO useXDG+ if not isXDGStyle+ then removeDirIfEmptyOrIsSymlink binDir+ else pure () reportRemainingFiles :: MonadIO m => FilePath -> m [FilePath] reportRemainingFiles dir = do@@ -2113,6 +2110,12 @@ , NotInstalled , DirNotEmpty , ArchiveResult+ , FileDoesNotExistError+ , HadrianNotFound+ , InvalidBuildConfig+ , ProcessError+ , CopyError+ , BuildFailed ] m GHCTargetVersion@@ -2121,10 +2124,6 @@ PlatformRequest { .. } <- lift getPlatformReq GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo - bghc <- case bstrap of- Right g -> pure $ Right g- Left bver -> pure $ Left ("ghc-" <> (T.unpack . prettyVer $ bver) <> exeExt)- (workdir, tmpUnpack, tver) <- case targetGhc of -- unpack from version tarball Left tver -> do@@ -2138,7 +2137,7 @@ -- unpack tmpUnpack <- lift mkGhcupTmpDir- liftE $ unpackToDir tmpUnpack dl+ liftE $ cleanUpOnError tmpUnpack (unpackToDir tmpUnpack dl) liftE $ catchWarn $ lEM @_ @'[ProcessError] $ darwinNotarization _rPlatform tmpUnpack workdir <- maybe (pure tmpUnpack)@@ -2173,9 +2172,8 @@ lEM $ git [ "checkout", "FETCH_HEAD" ] lEM $ git [ "submodule", "update", "--init", "--depth", "1" ] forM_ patchdir (\dir -> liftE $ applyPatches dir tmpUnpack)- env <- liftE $ ghcEnv bghc- lEM $ execLogged "python3" ["./boot"] (Just tmpUnpack) "ghc-bootstrap" (Just env)- lEM $ execLogged "sh" ["./configure"] (Just tmpUnpack) "ghc-bootstrap" (Just env)+ lEM $ execWithGhcEnv "python3" ["./boot"] (Just tmpUnpack) "ghc-bootstrap"+ lEM $ execWithGhcEnv "sh" ["./configure"] (Just tmpUnpack) "ghc-bootstrap" CapturedProcess {..} <- lift $ makeOut ["show!", "--quiet", "VALUE=ProjectVersion" ] (Just tmpUnpack) case _exitCode of@@ -2212,8 +2210,8 @@ Nothing (do b <- if hadrian- then compileHadrianBindist bghc tver workdir ghcdir- else compileMakeBindist bghc tver workdir ghcdir+ then compileHadrianBindist tver workdir ghcdir+ else compileMakeBindist tver workdir ghcdir bmk <- liftIO $ handleIO (\_ -> pure "") $ B.readFile (build_mk workdir) pure (b, bmk) )@@ -2265,8 +2263,7 @@ , MonadIO m , MonadFail m )- => Either FilePath FilePath- -> GHCTargetVersion+ => GHCTargetVersion -> FilePath -> FilePath -> Excepts@@ -2279,19 +2276,19 @@ , CopyError] m (Maybe FilePath) -- ^ output path of bindist, None for cross- compileHadrianBindist bghc tver workdir ghcdir = do- lEM $ execLogged "python3" ["./boot"] (Just workdir) "ghc-bootstrap" Nothing+ compileHadrianBindist tver workdir ghcdir = do+ lEM $ execWithGhcEnv "python3" ["./boot"] (Just workdir) "ghc-bootstrap" - liftE $ configureBindist bghc tver workdir ghcdir+ liftE $ configureBindist tver workdir ghcdir lift $ logInfo "Building (this may take a while)..." hadrian_build <- liftE $ findHadrianFile workdir- lEM $ execLogged hadrian_build+ lEM $ execWithGhcEnv hadrian_build ( maybe [] (\j -> ["-j" <> show j] ) jobs ++ maybe [] (\bf -> ["--flavour=" <> bf]) buildFlavour ++ ["binary-dist"] )- (Just workdir) "ghc-make" Nothing+ (Just workdir) "ghc-make" [tar] <- liftIO $ findFiles (workdir </> "_build" </> "bindist") (makeRegexOpts compExtended@@ -2307,11 +2304,9 @@ m FilePath findHadrianFile workdir = do-#if defined(IS_WINDOWS)- let possible_files = ((workdir </> "hadrian") </>) <$> ["build.bat"]-#else - let possible_files = ((workdir </> "hadrian") </>) <$> ["build", "build.sh"]-#endif+ let possible_files = if isWindows+ then ((workdir </> "hadrian") </>) <$> ["build.bat"]+ else ((workdir </> "hadrian") </>) <$> ["build", "build.sh"] exsists <- forM possible_files (\f -> liftIO (doesFileExist f) <&> (,f)) case filter fst exsists of [] -> throwE HadrianNotFound@@ -2327,8 +2322,7 @@ , MonadIO m , MonadFail m )- => Either FilePath FilePath- -> GHCTargetVersion+ => GHCTargetVersion -> FilePath -> FilePath -> Excepts@@ -2341,8 +2335,8 @@ , CopyError] m (Maybe FilePath) -- ^ output path of bindist, None for cross- compileMakeBindist bghc tver workdir ghcdir = do- liftE $ configureBindist bghc tver workdir ghcdir+ compileMakeBindist tver workdir ghcdir = do+ liftE $ configureBindist tver workdir ghcdir case mbuildConfig of Just bc -> liftIOException@@ -2463,8 +2457,7 @@ , MonadIO m , MonadFail m )- => Either FilePath FilePath- -> GHCTargetVersion+ => GHCTargetVersion -> FilePath -> FilePath -> Excepts@@ -2477,25 +2470,21 @@ ] m ()- configureBindist bghc tver workdir ghcdir = do+ configureBindist tver workdir ghcdir = do lift $ logInfo [s|configuring build|] if | _tvVersion tver >= [vver|8.8.0|] -> do- env <- liftE $ ghcEnv bghc- lEM $ execLogged+ lEM $ execWithGhcEnv "sh" ("./configure" : maybe mempty (\x -> ["--target=" <> T.unpack x]) (_tvTarget tver) ++ ["--prefix=" <> ghcdir]-#if defined(IS_WINDOWS)- ++ ["--enable-tarballs-autodownload"]-#endif+ ++ (if isWindows then ["--enable-tarballs-autodownload"] else []) ++ fmap T.unpack aargs ) (Just workdir) "ghc-conf"- (Just env) | otherwise -> do lEM $ execLogged "sh"@@ -2505,9 +2494,7 @@ (\x -> ["--target=" <> T.unpack x]) (_tvTarget tver) ++ ["--prefix=" <> ghcdir]-#if defined(IS_WINDOWS)- ++ ["--enable-tarballs-autodownload"]-#endif+ ++ (if isWindows then ["--enable-tarballs-autodownload"] else []) ++ fmap T.unpack aargs ) (Just workdir)@@ -2515,14 +2502,32 @@ Nothing pure () - ghcEnv :: MonadIO m => Either FilePath FilePath -> Excepts '[NotFoundInPATH] m [(String, String)]- ghcEnv bghc = do+ execWithGhcEnv :: ( MonadReader env m+ , HasSettings env+ , HasDirs env+ , MonadIO m+ , MonadThrow m)+ => FilePath -- ^ thing to execute+ -> [String] -- ^ args for the thing+ -> Maybe FilePath -- ^ optionally chdir into this+ -> FilePath -- ^ log filename (opened in append mode)+ -> m (Either ProcessError ())+ execWithGhcEnv fp args dir logf = do+ env <- ghcEnv+ execLogged fp args dir logf (Just env)++ bghc = case bstrap of+ Right g -> Right g+ Left bver -> Left ("ghc-" <> (T.unpack . prettyVer $ bver) <> exeExt)++ ghcEnv :: (MonadThrow m, MonadIO m) => m [(String, String)]+ ghcEnv = do cEnv <- liftIO getEnvironment bghcPath <- case bghc of Right ghc' -> pure ghc' Left bver -> do spaths <- liftIO getSearchPath- liftIO (searchPath spaths bver) !? NotFoundInPATH bver+ throwMaybeM (NotFoundInPATH bver) $ liftIO (searchPath spaths bver) pure (("GHC", bghcPath) : cEnv)
lib/GHCup/Download.hs view
@@ -49,7 +49,6 @@ import Control.Monad.Trans.Resource hiding ( throwM ) import Data.Aeson-import Data.Bifunctor import Data.ByteString ( ByteString ) #if defined(INTERNAL_DOWNLOADER) import Data.CaseInsensitive ( mk )@@ -87,7 +86,7 @@ import qualified Data.Text as T import qualified Data.Text.IO as T import qualified Data.Text.Encoding as E-import qualified Data.YAML.Aeson as Y+import qualified Data.Yaml.Aeson as Y @@ -183,15 +182,14 @@ -- if we didn't get a filepath from the download, use the cached yaml actualYaml <- maybe (lift $ yamlFromCache uri) pure mYaml- yamlContents <- liftIOException doesNotExistErrorType (FileDoesNotExistError actualYaml) $ liftIO $ L.readFile actualYaml lift $ logDebug $ "Decoding yaml at: " <> T.pack actualYaml liftE . onE_ (onError actualYaml)- . lE' @_ @_ @'[JSONError] JSONDecodeError- . first (\(_, e) -> unlines [e, "Consider removing " <> actualYaml <> " manually."])- . Y.decode1- $ yamlContents+ . lEM' @_ @_ @'[JSONError] (\(displayException -> e) -> JSONDecodeError $ unlines [e, "Consider removing " <> actualYaml <> " manually."])+ . liftIO + . Y.decodeFileEither+ $ actualYaml where -- On error, remove the etags file and set access time to 0. This should ensure the next invocation -- may re-download and succeed.
lib/GHCup/Errors.hs view
@@ -149,6 +149,8 @@ data NotFoundInPATH = NotFoundInPATH FilePath deriving Show +instance Exception NotFoundInPATH+ instance Pretty NotFoundInPATH where pPrint (NotFoundInPATH exe) = text $ "The exe " <> exe <> " was not found in PATH."
lib/GHCup/Types/JSON.hs view
@@ -28,9 +28,9 @@ -- This is due to the boot file. import Control.Applicative ( (<|>) )-import Data.Aeson+import Data.Aeson hiding (Key) import Data.Aeson.TH-import Data.Aeson.Types+import Data.Aeson.Types hiding (Key) import Data.List.NonEmpty ( NonEmpty(..) ) import Data.Text.Encoding as E import Data.Versions
lib/GHCup/Utils.hs view
@@ -22,13 +22,21 @@ module GHCup.Utils ( module GHCup.Utils.Dirs , module GHCup.Utils+#if defined(IS_WINDOWS)+ , module GHCup.Utils.Windows+#else+ , module GHCup.Utils.Posix+#endif ) where #if defined(IS_WINDOWS)-import GHCup.Download+import GHCup.Utils.Windows+#else+import GHCup.Utils.Posix #endif+import GHCup.Download import GHCup.Errors import GHCup.Types import GHCup.Types.Optics@@ -51,9 +59,6 @@ import Control.Monad.Trans.Resource hiding ( throwM ) import Control.Monad.IO.Unlift ( MonadUnliftIO( withRunInIO ) )-#if defined(IS_WINDOWS)-import Data.Bits-#endif import Data.ByteString ( ByteString ) import Data.Either import Data.Foldable@@ -69,12 +74,6 @@ import System.Directory hiding ( findFiles ) import System.FilePath import System.IO.Error-#if defined(IS_WINDOWS)-import System.Win32.Console-import System.Win32.File hiding ( copyFile )-import System.Win32.Types-#endif-import Text.PrettyPrint.HughesPJClass hiding ( (<>) ) import Text.Regex.Posix import URI.ByteString @@ -926,11 +925,7 @@ -- -- 1. the build directory, depending on the KeepDirs setting -- 2. the install destination, depending on whether the build failed-runBuildAction :: ( Pretty (V e)- , Show (V e)- , PopVariant BuildFailed e- , ToVariantMaybe BuildFailed e- , MonadReader env m+runBuildAction :: ( MonadReader env m , HasDirs env , HasSettings env , MonadIO m@@ -943,26 +938,43 @@ => FilePath -- ^ build directory (cleaned up depending on Settings) -> Maybe FilePath -- ^ dir to *always* clean up on exception -> Excepts e m a- -> Excepts '[BuildFailed] m a+ -> Excepts e m a runBuildAction bdir instdir action = do Settings {..} <- lift getSettings let exAction = do forM_ instdir $ \dir ->- lift $ hideError doesNotExistErrorType $ recyclePathForcibly dir+ hideError doesNotExistErrorType $ recyclePathForcibly dir when (keepDirs == Never)- $ lift $ rmBDir bdir+ $ rmBDir bdir v <-- flip onException exAction- $ catchAllE- (\es -> do- exAction- throwE (BuildFailed bdir es)- ) action-+ flip onException (lift exAction)+ $ onE_ exAction action when (keepDirs == Never || keepDirs == Errors) $ lift $ rmBDir bdir pure v +-- | Clean up the given directory if the action fails,+-- depending on the Settings.+cleanUpOnError :: ( MonadReader env m+ , HasDirs env+ , HasSettings env+ , MonadIO m+ , MonadMask m+ , HasLog env+ , MonadUnliftIO m+ , MonadFail m+ , MonadCatch m+ )+ => FilePath -- ^ build directory (cleaned up depending on Settings)+ -> Excepts e m a+ -> Excepts e m a+cleanUpOnError bdir action = do+ Settings {..} <- lift getSettings+ let exAction = when (keepDirs == Never) $ rmBDir bdir+ flip onException (lift exAction) $ onE_ exAction action+++ -- | Remove a build directory, ignoring if it doesn't exist and gracefully -- printing other errors without crashing. rmBDir :: (MonadReader env m, HasLog env, MonadUnliftIO m, MonadIO m) => FilePath -> m ()@@ -988,85 +1000,46 @@ -- | The file extension for executables. exeExt :: String-#if defined(IS_WINDOWS)-exeExt = ".exe"-#else-exeExt = ""-#endif+exeExt+ | isWindows = ".exe"+ | otherwise = "" -- | The file extension for executables. exeExt' :: ByteString-#if defined(IS_WINDOWS)-exeExt' = ".exe"-#else-exeExt' = ""-#endif+exeExt'+ | isWindows = ".exe"+ | otherwise = "" --- | Enables ANSI support on windows, does nothing on unix.------ Returns 'Left str' on errors and 'Right bool' on success, where--- 'bool' markes whether ansi support was already enabled.------ This function never crashes.------ Rip-off of https://docs.rs/ansi_term/0.12.1/x86_64-pc-windows-msvc/src/ansi_term/windows.rs.html#10-61-enableAnsiSupport :: IO (Either String Bool)-#if defined(IS_WINDOWS)-enableAnsiSupport = handleIO (pure . Left . displayException) $ do- -- ref: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew- -- Using `CreateFileW("CONOUT$", ...)` to retrieve the console handle works correctly even if STDOUT and/or STDERR are redirected- h <- createFile "CONOUT$" (gENERIC_WRITE .|. gENERIC_READ)- fILE_SHARE_WRITE Nothing oPEN_EXISTING 0 Nothing- when (h == iNVALID_HANDLE_VALUE ) $ fail "invalid handle value" - -- ref: https://docs.microsoft.com/en-us/windows/console/getconsolemode- m <- getConsoleMode h - -- VT processing not already enabled?- if ((m .&. eNABLE_VIRTUAL_TERMINAL_PROCESSING) == 0)- -- https://docs.microsoft.com/en-us/windows/console/setconsolemode- then setConsoleMode h (m .|. eNABLE_VIRTUAL_TERMINAL_PROCESSING)- >> pure (Right False)- else pure (Right True)-#else-enableAnsiSupport = pure (Right True)-#endif-- -- | On unix, we can use symlinks, so we just get the -- symbolic link target. -- -- On windows, we have to emulate symlinks via shims, -- see 'createLink'. getLinkTarget :: FilePath -> IO FilePath-getLinkTarget fp = do-#if defined(IS_WINDOWS)- content <- readFile (dropExtension fp <.> "shim")- [p] <- pure . filter ("path = " `isPrefixOf`) . lines $ content- pure $ stripNewline $ dropPrefix "path = " p-#else- getSymbolicLinkTarget fp-#endif+getLinkTarget fp+ | isWindows = do+ content <- readFile (dropExtension fp <.> "shim")+ [p] <- pure . filter ("path = " `isPrefixOf`) . lines $ content+ pure $ stripNewline $ dropPrefix "path = " p+ | otherwise = getSymbolicLinkTarget fp -- | Checks whether the path is a link. pathIsLink :: FilePath -> IO Bool-#if defined(IS_WINDOWS)-pathIsLink fp = doesPathExist (dropExtension fp <.> "shim")-#else-pathIsLink = pathIsSymbolicLink-#endif+pathIsLink fp+ | isWindows = doesPathExist (dropExtension fp <.> "shim")+ | otherwise = pathIsSymbolicLink fp rmLink :: (MonadReader env m, HasDirs env, MonadIO m, MonadMask m) => FilePath -> m ()-#if defined(IS_WINDOWS)-rmLink fp = do- hideError doesNotExistErrorType . recycleFile $ fp- hideError doesNotExistErrorType . recycleFile $ (dropExtension fp <.> "shim")-#else-rmLink = hideError doesNotExistErrorType . recycleFile-#endif+rmLink fp+ | isWindows = do+ hideError doesNotExistErrorType . recycleFile $ fp+ hideError doesNotExistErrorType . recycleFile $ (dropExtension fp <.> "shim")+ | otherwise = hideError doesNotExistErrorType . recycleFile $ fp -- | Creates a symbolic link on unix and a fake symlink on windows for@@ -1090,31 +1063,30 @@ => FilePath -- ^ path to the target executable -> FilePath -- ^ path to be created -> m ()-createLink link exe = do-#if defined(IS_WINDOWS)- dirs <- getDirs- let shimGen = cacheDir dirs </> "gs.exe"+createLink link exe+ | isWindows = do+ dirs <- getDirs+ let shimGen = cacheDir dirs </> "gs.exe" - let shim = dropExtension exe <.> "shim"- -- For hardlinks, link needs to be absolute.- -- If link is relative, it's relative to the target exe.- -- Note that (</>) drops lhs when rhs is absolute.- fullLink = takeDirectory exe </> link- shimContents = "path = " <> fullLink+ let shim = dropExtension exe <.> "shim"+ -- For hardlinks, link needs to be absolute.+ -- If link is relative, it's relative to the target exe.+ -- Note that (</>) drops lhs when rhs is absolute.+ fullLink = takeDirectory exe </> link+ shimContents = "path = " <> fullLink - logDebug $ "rm -f " <> T.pack exe- rmLink exe+ logDebug $ "rm -f " <> T.pack exe+ rmLink exe - logDebug $ "ln -s " <> T.pack fullLink <> " " <> T.pack exe- liftIO $ copyFile shimGen exe- liftIO $ writeFile shim shimContents-#else- logDebug $ "rm -f " <> T.pack exe- hideError doesNotExistErrorType $ recycleFile exe+ logDebug $ "ln -s " <> T.pack fullLink <> " " <> T.pack exe+ liftIO $ copyFile shimGen exe+ liftIO $ writeFile shim shimContents+ | otherwise = do+ logDebug $ "rm -f " <> T.pack exe+ hideError doesNotExistErrorType $ recycleFile exe - logDebug $ "ln -s " <> T.pack link <> " " <> T.pack exe- liftIO $ createFileLink link exe-#endif+ logDebug $ "ln -s " <> T.pack link <> " " <> T.pack exe+ liftIO $ createFileLink link exe ensureGlobalTools :: ( MonadMask m@@ -1129,23 +1101,20 @@ , MonadFail m ) => Excepts '[GPGError, DigestError , DownloadFailed, NoDownload] m ()-ensureGlobalTools = do-#if defined(IS_WINDOWS)- (GHCupInfo _ _ gTools) <- lift getGHCupInfo- dirs <- lift getDirs- shimDownload <- liftE $ lE @_ @'[NoDownload]- $ maybe (Left NoDownload) Right $ Map.lookup ShimGen gTools- let dl = downloadCached' shimDownload (Just "gs.exe") Nothing- void $ (\(DigestError _ _ _) -> do- lift $ logWarn "Digest doesn't match, redownloading gs.exe..."- lift $ logDebug ("rm -f " <> T.pack (cacheDir dirs </> "gs.exe"))- lift $ hideError doesNotExistErrorType $ recycleFile (cacheDir dirs </> "gs.exe")- liftE @'[GPGError, DigestError , DownloadFailed] $ dl- ) `catchE` (liftE @'[GPGError, DigestError , DownloadFailed] dl)- pure ()-#else- pure ()-#endif+ensureGlobalTools+ | isWindows = do+ (GHCupInfo _ _ gTools) <- lift getGHCupInfo+ dirs <- lift getDirs+ shimDownload <- liftE $ lE @_ @'[NoDownload]+ $ maybe (Left NoDownload) Right $ Map.lookup ShimGen gTools+ let dl = downloadCached' shimDownload (Just "gs.exe") Nothing+ void $ (\DigestError{} -> do+ lift $ logWarn "Digest doesn't match, redownloading gs.exe..."+ lift $ logDebug ("rm -f " <> T.pack (cacheDir dirs </> "gs.exe"))+ lift $ hideError doesNotExistErrorType $ recycleFile (cacheDir dirs </> "gs.exe")+ liftE @'[GPGError, DigestError , DownloadFailed] $ dl+ ) `catchE` liftE @'[GPGError, DigestError , DownloadFailed] dl+ | otherwise = pure () -- | Ensure ghcup directory structure exists.
lib/GHCup/Utils/Dirs.hs view
@@ -25,9 +25,7 @@ , relativeSymlink , withGHCupTmpDir , getConfigFilePath-#if !defined(IS_WINDOWS) , useXDG-#endif , cleanupTrash ) where@@ -59,7 +57,7 @@ import qualified Data.ByteString as BS import qualified Data.Text as T-import qualified Data.YAML.Aeson as Y+import qualified Data.Yaml.Aeson as Y import qualified Text.Megaparsec as MP import Control.Concurrent (threadDelay) @@ -75,26 +73,25 @@ -- If 'GHCUP_USE_XDG_DIRS' is set (to anything), -- then uses 'XDG_DATA_HOME/ghcup' as per xdg spec. ghcupBaseDir :: IO FilePath-ghcupBaseDir = do-#if defined(IS_WINDOWS)- bdir <- fromMaybe "C:\\" <$> lookupEnv "GHCUP_INSTALL_BASE_PREFIX"- pure (bdir </> "ghcup")-#else- xdg <- useXDG- if xdg- then do- bdir <- lookupEnv "XDG_DATA_HOME" >>= \case- Just r -> pure r- Nothing -> do- home <- liftIO getHomeDirectory- pure (home </> ".local" </> "share")+ghcupBaseDir+ | isWindows = do+ bdir <- fromMaybe "C:\\" <$> lookupEnv "GHCUP_INSTALL_BASE_PREFIX" pure (bdir </> "ghcup")- else do- bdir <- lookupEnv "GHCUP_INSTALL_BASE_PREFIX" >>= \case- Just r -> pure r- Nothing -> liftIO getHomeDirectory- pure (bdir </> ".ghcup")-#endif+ | otherwise = do+ xdg <- useXDG+ if xdg+ then do+ bdir <- lookupEnv "XDG_DATA_HOME" >>= \case+ Just r -> pure r+ Nothing -> do+ home <- liftIO getHomeDirectory+ pure (home </> ".local" </> "share")+ pure (bdir </> "ghcup")+ else do+ bdir <- lookupEnv "GHCUP_INSTALL_BASE_PREFIX" >>= \case+ Just r -> pure r+ Nothing -> liftIO getHomeDirectory+ pure (bdir </> ".ghcup") -- | ~/.ghcup by default@@ -102,45 +99,41 @@ -- If 'GHCUP_USE_XDG_DIRS' is set (to anything), -- then uses 'XDG_CONFIG_HOME/ghcup' as per xdg spec. ghcupConfigDir :: IO FilePath-ghcupConfigDir = do-#if defined(IS_WINDOWS)- ghcupBaseDir-#else- xdg <- useXDG- if xdg- then do- bdir <- lookupEnv "XDG_CONFIG_HOME" >>= \case- Just r -> pure r- Nothing -> do- home <- liftIO getHomeDirectory- pure (home </> ".config")- pure (bdir </> "ghcup")- else do- bdir <- lookupEnv "GHCUP_INSTALL_BASE_PREFIX" >>= \case- Just r -> pure r- Nothing -> liftIO getHomeDirectory- pure (bdir </> ".ghcup")-#endif+ghcupConfigDir+ | isWindows = ghcupBaseDir+ | otherwise = do+ xdg <- useXDG+ if xdg+ then do+ bdir <- lookupEnv "XDG_CONFIG_HOME" >>= \case+ Just r -> pure r+ Nothing -> do+ home <- liftIO getHomeDirectory+ pure (home </> ".config")+ pure (bdir </> "ghcup")+ else do+ bdir <- lookupEnv "GHCUP_INSTALL_BASE_PREFIX" >>= \case+ Just r -> pure r+ Nothing -> liftIO getHomeDirectory+ pure (bdir </> ".ghcup") -- | If 'GHCUP_USE_XDG_DIRS' is set (to anything), -- then uses 'XDG_BIN_HOME' env var or defaults to '~/.local/bin' -- (which, sadly is not strictly xdg spec). ghcupBinDir :: IO FilePath-ghcupBinDir = do-#if defined(IS_WINDOWS)- ghcupBaseDir <&> (</> "bin")-#else- xdg <- useXDG- if xdg- then do- lookupEnv "XDG_BIN_HOME" >>= \case- Just r -> pure r- Nothing -> do- home <- liftIO getHomeDirectory- pure (home </> ".local" </> "bin")- else ghcupBaseDir <&> (</> "bin")-#endif+ghcupBinDir+ | isWindows = ghcupBaseDir <&> (</> "bin")+ | otherwise = do+ xdg <- useXDG+ if xdg+ then do+ lookupEnv "XDG_BIN_HOME" >>= \case+ Just r -> pure r+ Nothing -> do+ home <- liftIO getHomeDirectory+ pure (home </> ".local" </> "bin")+ else ghcupBaseDir <&> (</> "bin") -- | Defaults to '~/.ghcup/cache'.@@ -148,21 +141,19 @@ -- If 'GHCUP_USE_XDG_DIRS' is set (to anything), -- then uses 'XDG_CACHE_HOME/ghcup' as per xdg spec. ghcupCacheDir :: IO FilePath-ghcupCacheDir = do-#if defined(IS_WINDOWS)- ghcupBaseDir <&> (</> "cache")-#else- xdg <- useXDG- if xdg- then do- bdir <- lookupEnv "XDG_CACHE_HOME" >>= \case- Just r -> pure r- Nothing -> do- home <- liftIO getHomeDirectory- pure (home </> ".cache")- pure (bdir </> "ghcup")- else ghcupBaseDir <&> (</> "cache")-#endif+ghcupCacheDir+ | isWindows = ghcupBaseDir <&> (</> "cache")+ | otherwise = do+ xdg <- useXDG+ if xdg+ then do+ bdir <- lookupEnv "XDG_CACHE_HOME" >>= \case+ Just r -> pure r+ Nothing -> do+ home <- liftIO getHomeDirectory+ pure (home </> ".cache")+ pure (bdir </> "ghcup")+ else ghcupBaseDir <&> (</> "cache") -- | Defaults to '~/.ghcup/logs'.@@ -170,21 +161,19 @@ -- If 'GHCUP_USE_XDG_DIRS' is set (to anything), -- then uses 'XDG_CACHE_HOME/ghcup/logs' as per xdg spec. ghcupLogsDir :: IO FilePath-ghcupLogsDir = do-#if defined(IS_WINDOWS)- ghcupBaseDir <&> (</> "logs")-#else- xdg <- useXDG- if xdg- then do- bdir <- lookupEnv "XDG_CACHE_HOME" >>= \case- Just r -> pure r- Nothing -> do- home <- liftIO getHomeDirectory- pure (home </> ".cache")- pure (bdir </> "ghcup" </> "logs")- else ghcupBaseDir <&> (</> "logs")-#endif+ghcupLogsDir+ | isWindows = ghcupBaseDir <&> (</> "logs")+ | otherwise = do+ xdg <- useXDG+ if xdg+ then do+ bdir <- lookupEnv "XDG_CACHE_HOME" >>= \case+ Just r -> pure r+ Nothing -> do+ home <- liftIO getHomeDirectory+ pure (home </> ".cache")+ pure (bdir </> "ghcup" </> "logs")+ else ghcupBaseDir <&> (</> "logs") -- | '~/.ghcup/trash'.@@ -222,7 +211,7 @@ contents <- liftIO $ handleIO' NoSuchThing (\_ -> pure Nothing) $ Just <$> BS.readFile filepath case contents of Nothing -> pure defaultUserSettings- Just contents' -> lE' JSONDecodeError . first snd . Y.decode1Strict $ contents'+ Just contents' -> lE' JSONDecodeError . first displayException . Y.decodeEither' $ contents' -------------------------@@ -320,10 +309,8 @@ -------------- -#if !defined(IS_WINDOWS) useXDG :: IO Bool useXDG = isJust <$> lookupEnv "GHCUP_USE_XDG_DIRS"-#endif relativeSymlink :: FilePath -- ^ the path in which to create the symlink
+ lib/GHCup/Utils/Posix.hs view
@@ -0,0 +1,14 @@+module GHCup.Utils.Posix where+++-- | Enables ANSI support on windows, does nothing on unix.+--+-- Returns 'Left str' on errors and 'Right bool' on success, where+-- 'bool' markes whether ansi support was already enabled.+--+-- This function never crashes.+--+-- Rip-off of https://docs.rs/ansi_term/0.12.1/x86_64-pc-windows-msvc/src/ansi_term/windows.rs.html#10-61+enableAnsiSupport :: IO (Either String Bool)+enableAnsiSupport = pure (Right True)+
lib/GHCup/Utils/Prelude.hs view
@@ -17,14 +17,25 @@ GHCup specific prelude. Lots of Excepts functionality. -}-module GHCup.Utils.Prelude where-+module GHCup.Utils.Prelude+ (module GHCup.Utils.Prelude, #if defined(IS_WINDOWS)-import GHCup.Types+ module GHCup.Utils.Prelude.Windows+#else+ module GHCup.Utils.Prelude.Posix #endif+ )+where++import GHCup.Types import GHCup.Errors import GHCup.Types.Optics import {-# SOURCE #-} GHCup.Utils.Logger+#if defined(IS_WINDOWS)+import GHCup.Utils.Prelude.Windows+#else+import GHCup.Utils.Prelude.Posix+#endif import Control.Applicative import Control.Exception.Safe@@ -45,17 +56,13 @@ import Haskus.Utils.Variant.Excepts import Text.PrettyPrint.HughesPJClass ( prettyShow, Pretty ) import System.IO.Error-#if defined(IS_WINDOWS) import System.IO.Temp-#endif import System.IO.Unsafe import System.Directory import System.FilePath -#if defined(IS_WINDOWS) import Control.Retry import GHC.IO.Exception-#endif import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L@@ -69,9 +76,6 @@ import qualified Data.Text.Lazy.Builder as B import qualified Data.Text.Lazy.Builder.Int as B import qualified Data.Text.Lazy.Encoding as TLE-#if defined(IS_WINDOWS)-import qualified System.Win32.File as Win32-#endif -- $setup@@ -283,7 +287,17 @@ Left _ -> throwM e Right r -> pure r +throwMaybe :: (Exception a, MonadThrow m) => a -> Maybe b -> m b+throwMaybe a m = case m of+ Nothing -> throwM a+ Just r -> pure r +throwMaybeM :: (Exception a, MonadThrow m) => a -> m (Maybe b) -> m b+throwMaybeM a am = do+ m <- am+ throwMaybe a m++ verToBS :: Version -> ByteString verToBS = E.encodeUtf8 . prettyVer @@ -428,19 +442,17 @@ ) => FilePath -> m ()-recyclePathForcibly fp = do-#if defined(IS_WINDOWS)- Dirs { recycleDir } <- getDirs- tmp <- liftIO $ createTempDirectory recycleDir "recyclePathForcibly"- let dest = tmp </> takeFileName fp- liftIO (Win32.moveFileEx fp (Just dest) 0)- `catch`- (\e -> if isPermissionError e {- EXDEV on windows -} then recover (liftIO $ removePathForcibly fp) else throwIO e)- `finally`- (liftIO $ handleIO (\_ -> pure ()) $ removePathForcibly tmp)-#else- liftIO $ removePathForcibly fp-#endif+recyclePathForcibly fp+ | isWindows = do+ Dirs { recycleDir } <- getDirs+ tmp <- liftIO $ createTempDirectory recycleDir "recyclePathForcibly"+ let dest = tmp </> takeFileName fp+ liftIO (moveFile fp dest)+ `catch`+ (\e -> if isPermissionError e {- EXDEV on windows -} then recover (liftIO $ removePathForcibly fp) else throwIO e)+ `finally`+ liftIO (handleIO (\_ -> pure ()) $ removePathForcibly tmp)+ | otherwise = liftIO $ removePathForcibly fp rmPathForcibly :: ( MonadIO m@@ -448,23 +460,17 @@ ) => FilePath -> m ()-rmPathForcibly fp =-#if defined(IS_WINDOWS)- recover (liftIO $ removePathForcibly fp)-#else- liftIO $ removePathForcibly fp-#endif+rmPathForcibly fp+ | isWindows = recover (liftIO $ removePathForcibly fp)+ | otherwise = liftIO $ removePathForcibly fp rmDirectory :: (MonadIO m, MonadMask m) => FilePath -> m ()-rmDirectory fp =-#if defined(IS_WINDOWS)- recover (liftIO $ removeDirectory fp)-#else- liftIO $ removeDirectory fp-#endif+rmDirectory fp+ | isWindows = recover (liftIO $ removeDirectory fp)+ | otherwise = liftIO $ removeDirectory fp -- https://www.sqlite.org/src/info/89f1848d7f@@ -476,20 +482,18 @@ ) => FilePath -> m ()-recycleFile fp = do-#if defined(IS_WINDOWS)- Dirs { recycleDir } <- getDirs- liftIO $ whenM (doesDirectoryExist fp) $ ioError (IOError Nothing InappropriateType "recycleFile" "" Nothing (Just fp))- tmp <- liftIO $ createTempDirectory recycleDir "recycleFile"- let dest = tmp </> takeFileName fp- liftIO (Win32.moveFileEx fp (Just dest) 0)- `catch`- (\e -> if isPermissionError e {- EXDEV on windows -} then recover (liftIO $ removePathForcibly fp) else throwIO e)- `finally`- (liftIO $ handleIO (\_ -> pure ()) $ removePathForcibly tmp)-#else- liftIO $ removeFile fp-#endif+recycleFile fp+ | isWindows = do+ Dirs { recycleDir } <- getDirs+ liftIO $ whenM (doesDirectoryExist fp) $ ioError (IOError Nothing InappropriateType "recycleFile" "" Nothing (Just fp))+ tmp <- liftIO $ createTempDirectory recycleDir "recycleFile"+ let dest = tmp </> takeFileName fp+ liftIO (moveFile fp dest)+ `catch`+ (\e -> if isPermissionError e {- EXDEV on windows -} then recover (liftIO $ removePathForcibly fp) else throwIO e)+ `finally`+ liftIO (handleIO (\_ -> pure ()) $ removePathForcibly tmp)+ | otherwise = liftIO $ removeFile fp rmFile :: ( MonadIO m@@ -497,26 +501,19 @@ ) => FilePath -> m ()-rmFile fp =-#if defined(IS_WINDOWS)- recover (liftIO $ removeFile fp)-#else- liftIO $ removeFile fp-#endif+rmFile fp+ | isWindows = recover (liftIO $ removeFile fp)+ | otherwise = liftIO $ removeFile fp rmDirectoryLink :: (MonadIO m, MonadMask m, MonadReader env m, HasDirs env) => FilePath -> m ()-rmDirectoryLink fp = -#if defined(IS_WINDOWS)- recover (liftIO $ removeDirectoryLink fp)-#else- liftIO $ removeDirectoryLink fp-#endif+rmDirectoryLink fp+ | isWindows = recover (liftIO $ removeDirectoryLink fp)+ | otherwise = liftIO $ removeDirectoryLink fp -#if defined(IS_WINDOWS) recover :: (MonadIO m, MonadMask m) => m a -> m a recover action = recovering (fullJitterBackoff 25000 <> limitRetries 10)@@ -525,7 +522,6 @@ ,\_ -> Handler (\e -> pure (ioeGetErrorType e == UnsatisfiedConstraints)) ] (\_ -> action)-#endif copyFileE :: (CopyError :< xs, MonadCatch m, MonadIO m) => FilePath -> FilePath -> Excepts xs m ()@@ -741,6 +737,4 @@ breakOn needle haystack | needle `isPrefixOf` haystack = ([], haystack) breakOn _ [] = ([], []) breakOn needle (x:xs) = first (x:) $ breakOn needle xs--
+ lib/GHCup/Utils/Prelude/Posix.hs view
@@ -0,0 +1,20 @@+module GHCup.Utils.Prelude.Posix where++import System.Directory+import System.Posix.Files+++isWindows, isNotWindows :: Bool+isWindows = False+isNotWindows = not isWindows+++moveFile :: FilePath -> FilePath -> IO ()+moveFile = rename+++moveFilePortable :: FilePath -> FilePath -> IO ()+moveFilePortable from to = do+ copyFile from to+ removeFile from+
+ lib/GHCup/Utils/Prelude/Windows.hs view
@@ -0,0 +1,17 @@+module GHCup.Utils.Prelude.Windows where++import qualified System.Win32.File as Win32+++isWindows, isNotWindows :: Bool+isWindows = True+isNotWindows = not isWindows+++moveFile :: FilePath -> FilePath -> IO ()+moveFile from to = Win32.moveFileEx from (Just to) 0+++moveFilePortable :: FilePath -> FilePath -> IO ()+moveFilePortable = Win32.moveFile+
+ lib/GHCup/Utils/Windows.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++module GHCup.Utils.Windows where+++import Control.Exception.Safe+import Control.Monad+#if !MIN_VERSION_base(4,13,0)+import Control.Monad.Fail ( MonadFail )+#endif+import Data.Bits++import System.Win32.Console+import System.Win32.File hiding ( copyFile )+import System.Win32.Types+++++-- | Enables ANSI support on windows, does nothing on unix.+--+-- Returns 'Left str' on errors and 'Right bool' on success, where+-- 'bool' markes whether ansi support was already enabled.+--+-- This function never crashes.+--+-- Rip-off of https://docs.rs/ansi_term/0.12.1/x86_64-pc-windows-msvc/src/ansi_term/windows.rs.html#10-61+enableAnsiSupport :: IO (Either String Bool)+enableAnsiSupport = handleIO (pure . Left . displayException) $ do+ -- ref: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew+ -- Using `CreateFileW("CONOUT$", ...)` to retrieve the console handle works correctly even if STDOUT and/or STDERR are redirected+ h <- createFile "CONOUT$" (gENERIC_WRITE .|. gENERIC_READ)+ fILE_SHARE_WRITE Nothing oPEN_EXISTING 0 Nothing+ when (h == iNVALID_HANDLE_VALUE ) $ fail "invalid handle value"++ -- ref: https://docs.microsoft.com/en-us/windows/console/getconsolemode+ m <- getConsoleMode h++ -- VT processing not already enabled?+ if m .&. eNABLE_VIRTUAL_TERMINAL_PROCESSING == 0+ -- https://docs.microsoft.com/en-us/windows/console/setconsolemode+ then setConsoleMode h (m .|. eNABLE_VIRTUAL_TERMINAL_PROCESSING)+ >> pure (Right False)+ else pure (Right True)+
lib/GHCup/Version.hs view
@@ -28,7 +28,7 @@ -- Note that when updating this, CI requires that the file exsists AND the same file exists at -- 'https://www.haskell.org/ghcup/exp/ghcup-<ver>.yaml' with some newlines added. ghcupURL :: URI-ghcupURL = [uri|https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml|]+ghcupURL = [uri|https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-0.0.6.yaml|] -- | The current ghcup version. ghcUpVer :: PVP
+ test/golden/GHCupInfo.json view
@@ -0,0 +1,16026 @@+{+ "samples": [+ {+ "ghcupDownloads": {+ "GHC": {+ "1.5.5": {+ "viArch": {+ "A_64": {+ "Darwin": {+ "( < 7.7.6 && > 4.1.5 )": {+ "dlHash": "mxda",+ "dlSubdir": "풗(cf(\u0014",+ "dlUri": "http:"+ }+ },+ "FreeBSD": {+ "( == 1.7.3 && >= 1.2.7 && > 7.1.7 && >= 7.7.8 && > 7.8.2 && >= 8.7.4 ) || ( == 1.4.1 && >= 1.4.3 && < 5.4.1 && >= 1.5.3 && == 2.5.5 && >= 3.5.2 && == 3.7.6 && <= 3.6.5 ) || ( < 7.6.7 && < 5.7.4 && < 4.8.2 && < 8.8.2 && <= 3.8.2 && <= 1.6.6 )": {+ "dlHash": "adjgqhno",+ "dlSubdir": null,+ "dlUri": "http:jsv"+ },+ "( >= 7.3.6 && >= 4.7.3 && >= 2.1.4 && >= 7.7.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u000c*H<d5"+ },+ "dlUri": "http:jikksrxk"+ }+ },+ "Windows": {}+ },+ "A_ARM": {+ "Darwin": {+ "( <= 2.1.9 && > 3.2.3 && > 3.1.4 && <= 2.3.4 )": {+ "dlHash": "sd",+ "dlSubdir": "𩏺\u0006*&𥳟m:",+ "dlUri": "https:mcompak"+ },+ "( == 1.5.3 && >= 6.5.3 && > 7.3.5 && == 2.2.8 && < 3.6.3 && >= 7.1.8 ) || ( <= 4.5.1 )": {+ "dlHash": "bwml",+ "dlSubdir": null,+ "dlUri": "http:ertm"+ },+ "( == 3.5.9 && >= 5.1.8 && < 6.4.6 ) || ( <= 2.5.2 && < 5.1.1 && == 2.5.4 && <= 8.5.2 ) || ( <= 6.1.7 ) || ( >= 4.6.4 && >= 3.5.9 && <= 2.4.8 )": {+ "dlHash": "eys",+ "dlSubdir": null,+ "dlUri": "https:tyfiky"+ },+ "( > 3.1.5 && < 5.3.1 && == 4.1.4 && == 5.7.1 && <= 3.6.7 && == 2.5.7 ) || ( > 1.6.1 && <= 4.8.7 && >= 8.4.7 && == 5.6.2 && >= 6.5.4 && >= 1.2.8 && == 7.2.6 && < 8.7.4 && == 5.6.5 )": {+ "dlHash": "ngh",+ "dlSubdir": "}j\u0015Qu",+ "dlUri": "http:s"+ },+ "( > 7.1.4 && < 8.6.4 && > 8.6.8 && == 6.2.3 && <= 3.5.6 && <= 6.4.7 && == 6.3.4 ) || ( <= 5.6.8 && <= 2.8.6 && <= 7.1.3 && >= 6.8.2 && == 2.6.7 && < 8.8.8 && < 6.8.8 ) || ( > 1.1.4 && >= 2.5.4 && == 7.8.5 && == 8.2.8 )": {+ "dlHash": "acwsftsf",+ "dlSubdir": null,+ "dlUri": "http:zlyj"+ },+ "unknown_versioning": {+ "dlHash": "sfywdw",+ "dlSubdir": "5Qd\"𧙩",+ "dlUri": "http:jd"+ }+ },+ "FreeBSD": {},+ "Linux_Alpine": {+ "( <= 6.2.6 && < 5.2.2 && >= 3.1.5 && < 1.4.3 && < 7.1.1 ) || ( >= 4.6.7 && == 1.3.4 && < 1.5.6 && <= 1.2.4 && >= 2.3.8 ) || ( <= 1.5.7 && >= 5.3.6 && < 8.3.6 && >= 5.7.6 && > 7.8.3 ) || ( < 3.5.8 && == 3.8.8 && == 4.4.2 && > 3.8.4 && > 2.1.5 && <= 4.6.6 && < 3.5.3 ) || ( < 8.1.6 && == 5.8.1 && >= 3.3.5 && <= 4.7.2 )": {+ "dlHash": "s",+ "dlSubdir": "\u001b",+ "dlUri": "http:vtkcqf"+ }+ },+ "Linux_AmazonLinux": {+ "( < 6.2.6 && < 5.2.3 && > 3.1.5 && < 3.1.2 && < 6.8.6 && == 8.3.7 )": {+ "dlHash": "szx",+ "dlSubdir": {+ "RegexDir": "VGs"+ },+ "dlUri": "https:xikz"+ },+ "( <= 6.6.4 )": {+ "dlHash": "mave",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:scyue"+ },+ "( == 2.5.8 && < 5.2.2 && == 7.2.6 && < 3.6.8 && >= 4.8.5 && >= 7.6.4 && > 2.5.2 ) || ( == 6.8.1 && >= 2.6.5 ) || ( >= 9.4.8 && < 7.4.8 && > 2.8.1 && >= 2.7.4 && > 5.7.5 && < 5.6.6 )": {+ "dlHash": "cgdtdiam",+ "dlSubdir": {+ "RegexDir": "M\u0010)\u0006.\u0007"+ },+ "dlUri": "http:smwqbtcb"+ },+ "( == 4.3.5 && > 6.1.3 && > 8.5.8 && < 5.3.3 ) || ( >= 8.1.7 && < 6.6.1 && > 3.1.8 && >= 4.8.8 && > 2.7.8 && > 5.1.5 && < 4.5.3 && < 1.7.8 ) || ( >= 4.8.2 && >= 7.1.4 && > 5.2.2 && <= 3.2.1 && < 6.7.8 && > 2.2.7 && > 5.8.6 )": {+ "dlHash": "our",+ "dlSubdir": "ٜਲ਼I",+ "dlUri": "https:sqm"+ },+ "( == 8.3.5 && >= 9.4.7 && >= 2.3.3 && < 5.1.4 && <= 7.6.6 && < 3.6.4 && == 4.6.4 && > 6.6.8 && >= 1.2.5 )": {+ "dlHash": "ey",+ "dlSubdir": {+ "RegexDir": "5"+ },+ "dlUri": "https:hez"+ },+ "( >= 4.5.3 && > 7.1.1 && >= 6.5.8 && < 5.5.7 && <= 3.8.2 && <= 7.6.7 )": {+ "dlHash": "r",+ "dlSubdir": null,+ "dlUri": "https:wkefnppd"+ },+ "( >= 6.5.6 && < 7.4.3 && < 7.8.8 && >= 7.3.4 && > 2.6.6 && < 3.7.2 && == 3.5.8 )": {+ "dlHash": "rhy",+ "dlSubdir": {+ "RegexDir": "\u0014S"+ },+ "dlUri": "https:czr"+ },+ "( >= 7.1.3 && <= 6.8.3 && <= 1.3.2 )": {+ "dlHash": "",+ "dlSubdir": "\u001ef(\u0017]",+ "dlUri": "http:gulqjp"+ }+ },+ "Windows": {+ "( < 2.4.5 && == 1.2.3 && > 6.4.4 )": {+ "dlHash": "",+ "dlSubdir": "\u0008/\u001a\u001dG",+ "dlUri": "https:dcxnra"+ },+ "( < 2.5.5 && == 3.7.7 )": {+ "dlHash": "lyto",+ "dlSubdir": {+ "RegexDir": "/"+ },+ "dlUri": "http:opby"+ },+ "( < 8.1.2 && == 1.1.3 && < 5.1.7 && < 1.8.3 && == 5.3.2 && == 1.7.3 && <= 2.5.1 )": {+ "dlHash": "tjmplbb",+ "dlSubdir": "rKo9( ",+ "dlUri": "https:zecvva"+ },+ "( <= 3.6.8 && >= 6.2.8 && < 6.2.4 && >= 7.1.6 && > 1.5.1 && <= 5.4.6 && <= 7.5.9 ) || ( >= 6.2.8 && <= 1.4.1 && >= 5.8.4 && > 6.2.7 && > 3.8.8 && <= 7.2.5 && >= 5.2.1 && >= 2.5.6 && >= 7.7.8 ) || ( > 8.4.2 && > 6.2.8 && > 6.4.1 && < 7.1.4 && > 2.3.8 && >= 7.4.1 && <= 8.5.6 )": {+ "dlHash": "vytqlx",+ "dlSubdir": {+ "RegexDir": "EY𖦫W"+ },+ "dlUri": "https:nhipycil"+ },+ "( == 8.2.2 ) || ( == 7.6.2 && <= 3.8.8 && == 7.6.1 && > 7.5.5 && == 7.7.2 && == 4.8.5 && <= 4.2.8 && < 2.7.5 && >= 8.1.1 )": {+ "dlHash": "szquv",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:mtld"+ },+ "( >= 3.7.7 ) || ( >= 5.5.1 && == 8.1.6 && >= 8.7.5 && < 5.4.6 && > 1.2.3 && < 8.2.3 && >= 2.5.3 )": {+ "dlHash": "yqtvjn",+ "dlSubdir": null,+ "dlUri": "https:"+ }+ }+ },+ "A_PowerPC64": {+ "FreeBSD": {+ "( <= 5.6.5 && >= 4.8.8 && >= 9.8.8 && < 6.1.1 && == 4.1.8 && < 6.4.2 && >= 3.3.6 && == 3.4.7 )": {+ "dlHash": "jsknyx",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:haopbt"+ },+ "( <= 5.7.4 && < 2.6.6 && > 4.1.6 ) || ( >= 1.1.7 && == 8.3.4 )": {+ "dlHash": "tjprwf",+ "dlSubdir": {+ "RegexDir": "{𫝴𭌯[i"+ },+ "dlUri": "https:"+ },+ "( == 3.5.3 ) || ( > 1.1.3 && >= 8.5.1 && <= 6.6.6 && == 2.5.4 )": {+ "dlHash": "xtbnnhq",+ "dlSubdir": {+ "RegexDir": "."+ },+ "dlUri": "https:no"+ },+ "( > 3.7.3 && >= 7.3.6 )": {+ "dlHash": "qp",+ "dlSubdir": "^",+ "dlUri": "https:rwy"+ },+ "unknown_versioning": {+ "dlHash": "sknlx",+ "dlSubdir": "꩐[𡡙;-",+ "dlUri": "https:tg"+ }+ },+ "Linux_RedHat": {+ "( < 8.1.3 && < 6.4.7 && > 4.2.3 && >= 4.6.5 && > 6.1.3 && > 5.4.4 && <= 5.8.3 ) || ( == 8.8.4 && <= 9.5.1 && > 8.2.3 && == 5.1.7 && == 2.6.5 && < 3.5.7 && < 2.4.3 && <= 6.6.8 && <= 6.1.3 ) || ( <= 2.1.2 && < 1.2.3 )": {+ "dlHash": "jskagf",+ "dlSubdir": "",+ "dlUri": "http:aypeaihv"+ },+ "( <= 5.2.6 )": {+ "dlHash": "zrjivx",+ "dlSubdir": "燕\u0012S~痁%𗪭",+ "dlUri": "https:lkoygod"+ },+ "( <= 7.7.7 && > 8.4.2 && >= 6.4.8 && <= 3.1.4 && == 2.8.1 && <= 6.5.1 && <= 8.1.3 && < 4.5.7 )": {+ "dlHash": "mhohccfp",+ "dlSubdir": {+ "RegexDir": "ꢩ8"+ },+ "dlUri": "https:rwjigrn"+ },+ "( == 2.4.8 && > 4.1.8 && <= 4.7.3 && < 7.6.7 && <= 5.8.3 && < 6.4.8 && >= 8.7.1 && <= 6.3.7 && >= 6.1.1 )": {+ "dlHash": "nrnhm",+ "dlSubdir": {+ "RegexDir": "𪭱𖽅\u0008𮊽"+ },+ "dlUri": "https:"+ },+ "( > 1.6.4 && < 8.6.8 && == 4.1.1 && > 4.8.7 && <= 4.8.8 && <= 8.1.1 && == 5.8.3 && <= 1.7.8 ) || ( == 2.2.3 ) || ( == 1.3.4 && > 6.3.2 && <= 6.2.2 && == 7.3.6 && < 8.4.5 && <= 2.1.5 && <= 2.5.7 && > 7.4.6 )": {+ "dlHash": "qs",+ "dlSubdir": {+ "RegexDir": "𝨞qi\u001f"+ },+ "dlUri": "https:xdl"+ },+ "unknown_versioning": {+ "dlHash": "khfmumk",+ "dlSubdir": "bJH",+ "dlUri": "http:"+ }+ }+ }+ },+ "viChangeLog": "https:waouwhj",+ "viPostInstall": "voj",+ "viPostRemove": null,+ "viPreCompile": "yma",+ "viSourceDL": {+ "dlHash": "wv",+ "dlSubdir": "Py𗁫\\@东~",+ "dlUri": "https:"+ },+ "viTags": [+ "<hd>N",+ "base-8.7.6",+ "Latest",+ "Prerelease"+ ]+ },+ "7.5.5": {+ "viArch": {+ "A_ARM64": {+ "Darwin": {+ "( == 4.3.2 && < 4.6.4 )": {+ "dlHash": "vdurp",+ "dlSubdir": {+ "RegexDir": "l~"+ },+ "dlUri": "http:g"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "w*OIL\u001b"+ },+ "dlUri": "https:kb"+ }+ },+ "Linux_Alpine": {+ "( == 6.4.4 && > 1.4.5 && <= 8.8.7 )": {+ "dlHash": "bch",+ "dlSubdir": {+ "RegexDir": "sVN\tᔼ\u0007\u0018B"+ },+ "dlUri": "https:eotnqxx"+ },+ "( > 6.6.6 && > 4.3.6 && < 2.4.7 && > 7.3.8 && > 8.2.6 && <= 8.5.4 && > 1.3.2 && < 5.2.2 && == 6.3.3 )": {+ "dlHash": "mvzcesc",+ "dlSubdir": null,+ "dlUri": "http:dm"+ },+ "( >= 1.1.7 && >= 4.6.7 && < 2.5.2 && > 6.1.7 && >= 2.7.4 && == 3.1.1 && == 1.3.2 && < 2.4.8 && >= 4.2.8 )": {+ "dlHash": "wbxig",+ "dlSubdir": {+ "RegexDir": "𒌙]\\r>-"+ },+ "dlUri": "https:qia"+ }+ },+ "Linux_Exherbo": {+ "( < 9.6.7 && > 2.1.5 && > 4.4.5 && <= 1.6.1 && <= 5.8.5 && < 2.8.5 && >= 8.2.8 && > 6.3.8 && >= 3.5.4 )": {+ "dlHash": "jgm",+ "dlSubdir": "8",+ "dlUri": "https:sqa"+ },+ "( > 2.4.7 && <= 2.5.8 && < 4.5.7 && >= 3.5.6 && <= 8.8.6 && >= 5.7.3 ) || ( == 7.7.7 && >= 8.4.8 ) || ( > 7.5.1 && == 5.8.7 && < 3.3.1 && <= 1.4.4 && < 6.8.3 && <= 5.4.1 && == 2.5.7 && > 3.6.7 ) || ( <= 6.3.6 && >= 6.3.3 && >= 2.2.4 && == 2.1.1 ) || ( == 6.1.8 && >= 3.1.1 && > 3.2.8 && > 4.8.5 ) || ( <= 7.3.8 && >= 7.5.7 )": {+ "dlHash": "zbdvf",+ "dlSubdir": null,+ "dlUri": "https:cznvqbr"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( <= 6.4.1 && < 7.1.3 && >= 1.1.3 && == 1.7.4 && < 3.4.6 && > 8.5.2 && >= 3.6.2 ) || ( == 5.8.1 && >= 8.2.1 && < 5.7.1 && == 4.6.7 && >= 5.1.5 && == 3.1.3 && > 5.5.1 && > 4.8.7 ) || ( < 4.5.7 && >= 6.5.5 && >= 5.7.2 && <= 4.6.1 ) || ( <= 9.8.3 ) || ( >= 2.1.3 && <= 6.8.1 && < 7.1.5 && > 4.2.2 && > 7.8.5 && > 8.5.3 ) || ( == 3.4.1 && > 7.2.8 && == 5.4.3 && <= 6.6.2 && < 2.5.2 && == 9.6.2 && <= 6.6.5 && == 8.6.8 && < 7.1.6 )": {+ "dlHash": "ikui",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:"+ },+ "( > 1.5.6 && >= 6.6.5 && <= 5.4.2 ) || ( >= 4.7.2 && < 1.5.5 && >= 8.7.8 && > 2.3.6 && == 7.6.7 && < 5.7.4 && <= 6.8.8 && > 4.3.4 && > 6.8.8 )": {+ "dlHash": "zllopcph",+ "dlSubdir": null,+ "dlUri": "http:apteyol"+ },+ "unknown_versioning": {+ "dlHash": "hrd",+ "dlSubdir": "n𦒪M\u0004o",+ "dlUri": "https:ae"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": "drbiff",+ "viPostRemove": "lk",+ "viPreCompile": "thzbtj",+ "viSourceDL": {+ "dlHash": "jpouxbme",+ "dlSubdir": "",+ "dlUri": "https:uyk"+ },+ "viTags": [+ "Latest",+ "base-4.7.6",+ "\u0001+n𫛚\r",+ "Latest"+ ]+ },+ "7.7.6": {+ "viArch": {+ "A_64": {+ "Darwin": {+ "unknown_versioning": {+ "dlHash": "vborgjm",+ "dlSubdir": {+ "RegexDir": "JK{"+ },+ "dlUri": "https:"+ }+ },+ "Linux_CentOS": {+ "( < 7.3.7 && <= 6.6.2 && >= 9.2.8 && == 7.4.2 && == 6.7.2 && >= 3.5.8 && > 4.6.3 )": {+ "dlHash": "nzgc",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:j"+ },+ "( <= 5.2.1 && > 2.2.7 && < 5.2.6 && >= 4.1.2 && >= 2.4.8 )": {+ "dlHash": "mhzp",+ "dlSubdir": null,+ "dlUri": "https:e"+ },+ "( <= 8.8.1 && > 8.3.3 && <= 1.8.7 && <= 7.3.8 && > 5.6.5 )": {+ "dlHash": "mlfacqf",+ "dlSubdir": {+ "RegexDir": "ὼ{-𧟯^살["+ },+ "dlUri": "http:pb"+ },+ "( > 1.6.5 && == 2.5.5 && == 4.5.3 )": {+ "dlHash": "mcg",+ "dlSubdir": {+ "RegexDir": "Z8=P"+ },+ "dlUri": "http:sfd"+ },+ "( >= 4.5.8 && >= 6.6.5 )": {+ "dlHash": "wrbrxm",+ "dlSubdir": null,+ "dlUri": "https:i"+ },+ "( >= 6.1.2 && >= 5.3.8 && <= 4.7.7 && == 1.8.8 && == 4.5.8 && == 7.2.5 ) || ( == 2.4.1 && <= 6.6.1 && == 3.5.6 ) || ( < 6.3.7 && >= 5.4.2 && > 1.6.1 && == 4.3.4 && >= 3.7.5 && == 1.1.5 && > 3.2.8 && == 5.6.7 && <= 4.1.4 ) || ( >= 2.6.2 && >= 6.6.4 && <= 2.1.7 && >= 8.5.2 && <= 2.3.6 && == 4.4.8 && < 3.4.1 && > 4.1.6 )": {+ "dlHash": "pwm",+ "dlSubdir": {+ "RegexDir": "`%<উ"+ },+ "dlUri": "https:e"+ },+ "( >= 8.6.4 && > 4.6.1 && <= 4.6.3 && == 3.2.5 && == 1.4.8 && >= 3.1.6 && > 3.4.3 )": {+ "dlHash": "iiwcotym",+ "dlSubdir": {+ "RegexDir": "\"\u0003Q\u000b\u0001𥘏篖"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "lwki",+ "dlSubdir": null,+ "dlUri": "http:wi"+ }+ },+ "Linux_RedHat": {+ "( == 4.7.8 && >= 2.4.1 && == 6.1.7 && > 1.1.7 && == 8.2.3 && >= 2.6.2 )": {+ "dlHash": "rjsoubbx",+ "dlSubdir": {+ "RegexDir": "\u000f𛆎O\n"+ },+ "dlUri": "http:r"+ },+ "( >= 5.1.6 && <= 7.2.7 && > 3.4.2 && <= 1.2.1 && > 1.8.3 && <= 6.7.5 && <= 5.4.3 && > 8.4.1 && < 7.1.2 )": {+ "dlHash": "",+ "dlSubdir": "nF\u000fK",+ "dlUri": "https:wvo"+ },+ "unknown_versioning": {+ "dlHash": "pfcnlz",+ "dlSubdir": "\u0007祔]\u000e\u000c\u001d_",+ "dlUri": "https:fqmmhx"+ }+ },+ "Windows": {+ "( > 7.6.6 && < 5.1.1 && >= 2.3.7 && > 1.5.9 && < 6.1.7 && == 5.5.6 )": {+ "dlHash": "sfjpzt",+ "dlSubdir": "𫎀",+ "dlUri": "https:bhe"+ }+ }+ }+ },+ "viChangeLog": "https:laspdcu",+ "viPostInstall": "uogkghr",+ "viPostRemove": null,+ "viPreCompile": "nmkj",+ "viSourceDL": {+ "dlHash": "d",+ "dlSubdir": "\u0019Nt:`",+ "dlUri": "http:qfj"+ },+ "viTags": [+ "Prerelease",+ "old",+ "base-3.1.4",+ "Prerelease"+ ]+ },+ "8.8.6": {+ "viArch": {+ "A_64": {+ "Darwin": {+ "( <= 7.4.7 && >= 5.4.8 && > 3.5.2 && > 5.2.5 && > 4.3.8 && > 2.5.3 ) || ( < 8.6.5 && == 2.3.2 && < 2.2.1 && <= 2.6.3 )": {+ "dlHash": "t",+ "dlSubdir": {+ "RegexDir": "}\t\u000b"+ },+ "dlUri": "https:j"+ },+ "( > 4.2.1 && == 8.2.6 && == 8.6.4 && <= 6.8.6 && <= 3.7.6 && == 6.1.8 ) || ( == 2.5.4 && == 5.4.3 && >= 3.5.1 && == 5.8.7 && > 2.6.5 && == 4.9.1 && <= 7.6.7 && == 7.5.4 )": {+ "dlHash": "qdafay",+ "dlSubdir": null,+ "dlUri": "https:mo"+ },+ "( >= 8.2.7 && < 1.1.7 && == 8.9.2 )": {+ "dlHash": "dhyiyl",+ "dlSubdir": null,+ "dlUri": "https:rye"+ }+ },+ "FreeBSD": {+ "( <= 8.1.4 && < 3.6.7 && > 5.8.4 && < 8.2.3 && == 1.5.3 && <= 1.3.1 ) || ( > 5.8.7 && >= 4.6.5 && > 8.3.6 && <= 6.1.3 && >= 5.2.4 && == 4.4.1 && <= 5.6.3 && < 5.1.5 ) || ( > 7.2.8 && <= 8.5.2 )": {+ "dlHash": "uxo",+ "dlSubdir": {+ "RegexDir": "|Tj"+ },+ "dlUri": "https:shh"+ },+ "( == 1.2.1 && <= 4.2.3 && > 2.3.2 && <= 2.2.2 && == 1.3.8 && == 3.5.3 && < 4.7.1 && >= 6.5.2 )": {+ "dlHash": "kiej",+ "dlSubdir": null,+ "dlUri": "http:bybwhq"+ },+ "( >= 5.3.5 && < 8.8.3 && <= 7.4.6 )": {+ "dlHash": "b",+ "dlSubdir": null,+ "dlUri": "http:ftwmljs"+ }+ },+ "Linux_Alpine": {+ "( < 6.3.6 && < 5.6.6 && <= 4.5.7 && == 7.4.8 && < 7.1.2 && >= 6.5.3 && >= 7.3.2 )": {+ "dlHash": "hmkks",+ "dlSubdir": {+ "RegexDir": ";럾"+ },+ "dlUri": "http:jdlglba"+ },+ "( == 1.8.1 && >= 6.8.4 && > 4.2.6 && == 1.2.4 && <= 2.4.4 ) || ( <= 1.3.3 ) || ( < 5.1.3 && > 8.5.5 ) || ( == 2.2.3 && <= 8.5.2 && < 6.3.4 && > 3.1.5 && <= 1.6.2 && < 1.7.2 && <= 5.8.3 && > 7.8.3 && > 1.2.5 )": {+ "dlHash": "bmawuq",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:e"+ },+ "( == 8.8.1 && > 3.4.6 && == 6.3.3 && <= 5.7.6 && < 4.6.3 ) || ( > 7.9.2 && <= 2.1.1 && == 2.1.8 && >= 1.7.4 && >= 6.2.6 && < 3.6.1 && > 7.1.2 && < 6.9.6 && > 7.8.1 ) || ( > 5.6.1 && == 2.6.6 && >= 1.2.2 && >= 7.7.7 && >= 7.4.8 && < 3.6.5 ) || ( > 5.7.4 && <= 6.6.1 && > 5.5.6 && <= 2.8.9 && >= 8.1.3 )": {+ "dlHash": "hijazj",+ "dlSubdir": null,+ "dlUri": "http:q"+ }+ },+ "Linux_Gentoo": {+ "( <= 8.2.8 )": {+ "dlHash": "tno",+ "dlSubdir": "m%꤀K\u000f{,",+ "dlUri": "https:dd"+ },+ "( == 6.6.3 && <= 5.5.5 && > 3.2.4 && <= 7.6.1 && == 7.5.8 && > 3.6.5 && == 1.1.3 && <= 7.2.1 && > 5.5.4 ) || ( > 2.5.2 && > 2.3.4 && > 2.1.1 && >= 3.4.8 && < 8.8.4 && > 6.5.6 )": {+ "dlHash": "mwuc",+ "dlSubdir": "Gu\u0016F\u0015i",+ "dlUri": "https:v"+ },+ "( == 8.4.2 && >= 4.7.3 && == 3.2.4 && > 2.3.2 && == 6.3.4 && >= 5.4.3 && <= 6.5.7 )": {+ "dlHash": "kpik",+ "dlSubdir": null,+ "dlUri": "https:tomtxkvs"+ },+ "( > 1.6.6 && == 8.1.3 && == 1.6.6 )": {+ "dlHash": "lblq",+ "dlSubdir": null,+ "dlUri": "http:h"+ },+ "( > 1.6.7 && == 2.1.4 )": {+ "dlHash": "cecdjcm",+ "dlSubdir": {+ "RegexDir": "\u001b4V?"+ },+ "dlUri": "https:hzcccsaj"+ },+ "( >= 1.5.1 )": {+ "dlHash": "tzoshosf",+ "dlSubdir": "\u0000\u0001.^",+ "dlUri": "https:inf"+ },+ "( >= 6.4.7 && <= 8.5.6 ) || ( >= 6.6.4 && > 1.5.5 && >= 1.2.1 && >= 4.4.8 && > 3.7.4 && >= 7.6.7 ) || ( >= 7.1.1 && > 1.8.7 && <= 3.7.2 )": {+ "dlHash": "grv",+ "dlSubdir": "",+ "dlUri": "http:ezejgeg"+ },+ "( >= 6.6.5 && <= 5.8.1 ) || ( > 4.7.4 && >= 8.6.4 && >= 6.2.1 && > 6.1.6 && > 6.2.3 && == 5.2.2 && > 4.3.5 ) || ( == 7.7.2 && > 6.1.2 && == 1.5.4 && == 3.3.2 ) || ( > 6.5.1 )": {+ "dlHash": "ncaxkwny",+ "dlSubdir": null,+ "dlUri": "https:habwgvm"+ }+ },+ "Windows": {+ "( <= 2.6.8 && < 8.4.1 && < 4.7.3 && < 4.4.7 && == 8.1.2 && == 3.6.5 && >= 7.4.4 ) || ( > 4.4.8 && == 8.2.2 && == 7.4.7 && == 1.4.2 && == 4.8.4 && > 2.4.2 )": {+ "dlHash": "",+ "dlSubdir": "\u001f`𦅆h\u000fM",+ "dlUri": "https:fxec"+ },+ "( <= 5.5.4 && < 2.4.2 && > 3.3.3 && > 8.3.3 && == 4.8.3 && > 7.7.8 && > 7.7.5 && > 6.1.7 && < 4.7.8 ) || ( < 3.2.3 && < 6.2.8 && == 8.3.3 && < 1.5.1 && == 3.8.5 && == 7.8.1 && < 5.7.3 && >= 7.1.5 && == 6.3.1 )": {+ "dlHash": "ntwd",+ "dlSubdir": "&R",+ "dlUri": "http:zptpal"+ },+ "( == 2.5.4 && < 3.6.7 && >= 3.6.7 ) || ( == 1.5.3 && <= 8.6.1 && <= 7.5.8 && < 4.2.6 ) || ( <= 6.7.7 && >= 5.1.1 && == 8.2.4 && > 6.6.2 && <= 3.3.4 && < 5.4.7 ) || ( <= 6.2.3 && >= 7.8.6 && > 8.7.8 && <= 2.6.5 && < 5.2.8 )": {+ "dlHash": "",+ "dlSubdir": "𧊥M#$T\u0014\u0001\u0016",+ "dlUri": "https:wrfj"+ },+ "( == 3.5.1 && <= 2.5.5 && >= 1.3.5 ) || ( < 3.8.7 && > 5.1.7 && > 6.7.8 && < 2.3.7 && < 1.3.7 )": {+ "dlHash": "sd",+ "dlSubdir": null,+ "dlUri": "https:ozjuh"+ },+ "( > 4.3.1 && > 6.5.8 && < 6.7.1 && < 5.4.1 && == 3.5.7 && <= 6.3.7 && <= 4.7.3 ) || ( < 6.5.7 && == 7.7.5 && <= 3.8.1 && == 3.8.8 && <= 6.1.5 && > 2.6.3 && > 8.6.1 && == 3.2.7 && < 6.3.4 ) || ( == 1.6.2 && == 1.8.4 )": {+ "dlHash": "guh",+ "dlSubdir": "<",+ "dlUri": "https:egpux"+ },+ "( >= 7.6.3 && <= 2.4.2 && > 7.5.7 && == 8.3.3 && == 6.2.8 && == 5.1.7 && >= 4.4.4 && == 3.5.4 && >= 2.1.8 )": {+ "dlHash": "",+ "dlSubdir": "ꊆGS\u0004b\u0014\u0004",+ "dlUri": "http:jj"+ },+ "unknown_versioning": {+ "dlHash": "orxh",+ "dlSubdir": "",+ "dlUri": "https:slhif"+ }+ }+ },+ "A_ARM64": {+ "Darwin": {+ "( < 3.6.6 && <= 6.1.7 && >= 2.5.5 && >= 7.7.1 ) || ( > 7.1.5 && < 2.6.2 && < 5.3.5 && < 1.2.5 && < 5.5.3 && == 6.5.4 && < 4.1.4 ) || ( == 2.8.1 && <= 7.6.1 && > 6.7.3 && > 2.6.7 && == 7.1.4 && == 3.4.1 && == 7.4.2 ) || ( > 5.2.1 && <= 3.5.5 && > 1.4.2 && == 7.6.5 && < 5.3.3 && < 1.1.3 && < 4.1.4 && <= 3.3.7 && >= 4.7.7 ) || ( >= 3.5.4 && >= 5.5.5 && == 5.7.7 && < 4.1.4 && < 7.7.2 && < 8.5.4 )": {+ "dlHash": "dt",+ "dlSubdir": null,+ "dlUri": "https:jotjqo"+ },+ "( < 6.6.8 && < 1.6.1 && == 5.8.6 && > 5.3.1 && == 4.1.6 && <= 3.5.7 && <= 5.2.2 )": {+ "dlHash": "lqaggx",+ "dlSubdir": "",+ "dlUri": "https:ajrayagb"+ },+ "( > 1.7.7 && < 4.6.4 && <= 4.6.1 && < 8.6.4 && == 7.7.1 && >= 5.7.3 && < 3.2.7 && < 1.7.1 && <= 3.1.3 ) || ( >= 8.3.4 && < 8.8.7 && > 6.8.4 && > 6.3.6 && <= 7.4.8 && <= 4.3.1 && == 5.5.7 && > 6.1.5 ) || ( > 2.3.8 ) || ( >= 1.4.5 && == 1.6.7 && < 1.3.4 && > 1.6.4 ) || ( > 1.2.3 && <= 1.7.7 && <= 5.2.2 && > 7.4.8 && == 10.6.7 && <= 6.3.6 && == 8.2.4 ) || ( < 4.6.4 && == 1.5.5 && < 8.8.1 && == 7.8.7 && <= 7.3.3 && <= 5.2.5 && > 7.1.3 && >= 7.1.4 && >= 1.4.7 ) || ( >= 5.1.2 && <= 7.6.1 && <= 5.2.3 && >= 1.3.8 && < 6.3.2 && <= 7.4.4 && == 2.5.7 && >= 6.5.8 ) || ( == 2.6.5 && > 1.2.6 && == 4.6.8 && <= 5.6.5 )": {+ "dlHash": "aieky",+ "dlSubdir": null,+ "dlUri": "https:xedvkh"+ },+ "unknown_versioning": {+ "dlHash": "lrjoqdia",+ "dlSubdir": null,+ "dlUri": "http:txi"+ }+ },+ "Windows": {+ "( <= 6.9.7 && < 8.7.7 && > 5.8.7 && < 6.3.2 && > 4.3.8 && >= 3.8.1 && == 6.5.1 && <= 8.2.5 ) || ( > 1.8.1 && > 8.3.4 && < 2.6.6 ) || ( >= 5.4.3 && == 3.5.5 && == 5.4.5 && < 6.4.5 && > 7.1.3 && == 5.6.8 && > 7.6.5 && <= 4.6.4 ) || ( >= 1.4.5 && >= 4.3.7 && <= 6.8.1 ) || ( > 6.5.5 && < 2.5.7 && > 6.2.6 && < 6.7.2 ) || ( >= 2.5.5 && == 7.2.7 && > 4.3.3 && > 2.8.1 && == 4.8.4 && < 6.7.7 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:lxun"+ },+ "( <= 8.1.8 && > 8.2.6 && < 4.4.3 && == 4.3.5 && == 9.8.8 && < 3.2.8 )": {+ "dlHash": "",+ "dlSubdir": "\u0008UJS",+ "dlUri": "http:"+ },+ "( > 1.1.5 && >= 6.6.2 && <= 5.8.4 ) || ( > 5.1.2 && <= 2.1.8 ) || ( >= 7.4.8 && == 5.6.5 && >= 5.4.3 && > 6.6.6 && <= 7.1.2 )": {+ "dlHash": "olrlyer",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "vf",+ "dlSubdir": "7\u0003_H",+ "dlUri": "http:b"+ }+ }+ },+ "A_PowerPC": {+ "Darwin": {+ "( < 7.7.8 && <= 3.1.7 && == 8.9.6 )": {+ "dlHash": "m",+ "dlSubdir": {+ "RegexDir": "3"+ },+ "dlUri": "http:y"+ }+ },+ "Linux_Debian": {+ "( < 1.2.7 && < 6.3.5 && > 6.1.2 && < 8.3.8 && >= 3.6.3 && < 5.6.1 && >= 1.4.2 && > 3.4.8 && <= 5.8.5 )": {+ "dlHash": "tr",+ "dlSubdir": {+ "RegexDir": "\u000e"+ },+ "dlUri": "http:ivrypir"+ },+ "( <= 8.7.3 && == 5.5.3 && < 6.3.7 && > 4.3.4 && <= 2.1.5 && <= 5.2.4 ) || ( <= 2.6.6 && == 4.4.5 && >= 4.7.4 && <= 5.7.3 && >= 3.7.5 && < 7.3.2 && > 4.1.2 )": {+ "dlHash": "wkv",+ "dlSubdir": "꩝!`~Lo!",+ "dlUri": "http:dpwkgdsq"+ },+ "( == 5.6.7 && == 3.4.2 && == 8.2.1 && <= 8.3.3 && <= 1.8.4 && <= 7.3.3 ) || ( > 5.7.8 && >= 2.3.3 && >= 4.8.4 && <= 5.2.2 && > 4.6.7 && > 1.1.8 && > 1.5.6 && < 1.5.8 ) || ( <= 7.2.4 && <= 3.7.5 && >= 4.5.4 && <= 8.1.7 && < 1.4.1 && <= 6.2.5 && <= 6.2.7 && > 9.3.7 && == 8.4.1 )": {+ "dlHash": "odci",+ "dlSubdir": {+ "RegexDir": "Zh"+ },+ "dlUri": "https:ysmh"+ }+ },+ "Linux_UnknownLinux": {+ "( <= 3.6.2 && > 2.6.5 && > 8.4.8 && >= 2.7.1 && <= 5.5.2 && < 8.7.4 )": {+ "dlHash": "slg",+ "dlSubdir": "𓀩",+ "dlUri": "http:r"+ },+ "( == 3.5.4 && == 4.3.2 && >= 6.2.5 ) || ( == 2.3.5 && >= 8.5.7 && == 8.7.6 && < 8.4.5 ) || ( == 4.1.4 && == 7.3.5 && == 1.2.7 && < 3.4.8 && > 5.6.3 )": {+ "dlHash": "dac",+ "dlSubdir": {+ "RegexDir": "𧱂\u000f:J"+ },+ "dlUri": "http:ibvnrx"+ },+ "( == 4.7.5 && >= 2.4.4 && == 3.2.5 && < 4.2.3 && > 5.2.8 && < 6.8.5 ) || ( == 7.1.2 && <= 8.1.4 && > 6.2.6 && == 3.5.6 && <= 1.4.4 && > 5.5.5 && > 1.3.1 && >= 7.3.7 ) || ( <= 3.1.1 && > 2.5.2 && == 8.8.2 && >= 7.1.1 && < 2.2.6 && == 2.5.2 )": {+ "dlHash": "fjbinjfh",+ "dlSubdir": {+ "RegexDir": "1=👠\r"+ },+ "dlUri": "http:ax"+ },+ "( == 5.5.4 ) || ( <= 4.2.1 && >= 7.8.7 && <= 3.5.5 && <= 2.1.7 && == 6.1.8 && == 5.7.2 && <= 6.4.1 && > 8.8.6 && <= 7.2.3 ) || ( < 7.8.2 && == 3.6.2 && <= 8.6.6 && < 4.4.8 && >= 3.7.3 && < 3.5.7 && >= 2.7.8 && == 2.6.6 && < 8.5.4 ) || ( > 1.3.2 && <= 8.3.3 && < 2.6.5 && == 8.2.1 )": {+ "dlHash": "zkwhkv",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "lkqmiew",+ "dlSubdir": {+ "RegexDir": "L:?O"+ },+ "dlUri": "http:odwylqt"+ }+ }+ },+ "A_Sparc64": {}+ },+ "viChangeLog": "http:wuszg",+ "viPostInstall": "pvhnmsmi",+ "viPostRemove": "jkc",+ "viPreCompile": "y",+ "viSourceDL": {+ "dlHash": "edqa",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "viTags": [+ "\u0012z\u0011",+ "base-5.2.3",+ "Prerelease",+ "Latest"+ ]+ }+ },+ "HLS": {+ "1.3.6": {+ "viArch": {+ "A_32": {+ "Darwin": {+ "( <= 4.4.7 && <= 2.6.1 && < 3.5.5 && <= 4.1.7 && < 5.2.2 && <= 6.4.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( > 7.4.7 && >= 8.3.5 && < 1.4.1 && < 1.2.6 && >= 1.1.7 && <= 5.3.3 && >= 1.5.6 && > 2.4.3 && >= 3.5.6 )": {+ "dlHash": "zn",+ "dlSubdir": "\u0015w𬴨\u000eS",+ "dlUri": "https:htnmnvis"+ },+ "( >= 3.4.6 )": {+ "dlHash": "lttzd",+ "dlSubdir": {+ "RegexDir": "g\u0017"+ },+ "dlUri": "https:ajnpwaut"+ },+ "( >= 4.5.8 ) || ( <= 7.1.4 && > 7.3.1 && > 2.5.3 && == 1.8.1 && >= 3.6.6 && <= 4.7.6 ) || ( >= 6.5.8 && < 2.4.1 && >= 3.1.6 && <= 2.3.3 && >= 8.7.7 && == 2.5.1 ) || ( < 1.2.6 && == 3.3.1 && <= 8.4.2 )": {+ "dlHash": "nmej",+ "dlSubdir": "RWeg>",+ "dlUri": "http:tavrgmd"+ },+ "( >= 6.4.1 && > 1.8.6 && < 2.5.3 && >= 5.1.3 && == 2.5.8 && <= 4.1.9 ) || ( <= 6.6.1 && >= 8.7.7 && >= 6.3.1 && == 1.4.3 && == 3.3.2 && > 2.3.3 && <= 1.2.7 )": {+ "dlHash": "mtcuo",+ "dlSubdir": ",W媎[|=:",+ "dlUri": "https:rjnpk"+ },+ "unknown_versioning": {+ "dlHash": "gemnel",+ "dlSubdir": {+ "RegexDir": "e\u001ctBFv"+ },+ "dlUri": "http:owqgbcu"+ }+ },+ "FreeBSD": {+ "( <= 4.8.5 && <= 6.1.4 && <= 2.2.2 )": {+ "dlHash": "zaeflh",+ "dlSubdir": "",+ "dlUri": "https:tzrhwen"+ },+ "unknown_versioning": {+ "dlHash": "kefo",+ "dlSubdir": {+ "RegexDir": "\u001a\nev"+ },+ "dlUri": "http:zunll"+ }+ },+ "Linux_RedHat": {+ "( <= 5.4.8 && == 6.8.7 && <= 1.3.6 && >= 4.4.5 && > 6.2.6 ) || ( <= 7.1.4 && > 3.4.5 && <= 3.4.3 && == 1.7.8 && < 2.1.6 && > 8.2.8 && >= 6.5.7 && <= 2.6.1 && > 6.5.5 )": {+ "dlHash": "vjs",+ "dlSubdir": "2",+ "dlUri": "http:sssrlc"+ },+ "( > 1.8.2 && <= 3.8.7 )": {+ "dlHash": "tbccq",+ "dlSubdir": "%m",+ "dlUri": "https:hht"+ },+ "( >= 6.7.6 ) || ( <= 4.3.6 && >= 7.2.8 && > 8.6.4 && >= 7.8.1 )": {+ "dlHash": "ylzomkhp",+ "dlSubdir": {+ "RegexDir": "\u0006\u0018𑀃"+ },+ "dlUri": "https:fcnsg"+ },+ "( >= 7.1.8 && > 5.5.2 && > 2.2.1 && == 7.8.7 && >= 4.3.2 && < 2.4.8 && <= 3.8.8 && <= 2.3.7 )": {+ "dlHash": "osr",+ "dlSubdir": {+ "RegexDir": "by?]IKI"+ },+ "dlUri": "https:rgvkwvj"+ },+ "( >= 7.2.7 && > 5.6.5 && > 7.8.4 && <= 1.5.2 && > 5.2.5 && > 5.4.6 )": {+ "dlHash": "wcxzmpj",+ "dlSubdir": {+ "RegexDir": "M"+ },+ "dlUri": "http:hfcq"+ },+ "unknown_versioning": {+ "dlHash": "pfsaxb",+ "dlSubdir": {+ "RegexDir": "Zr"+ },+ "dlUri": "http:v"+ }+ },+ "Windows": {+ "( < 5.4.8 && <= 8.7.5 && > 4.5.8 && < 5.7.8 ) || ( < 1.7.4 && >= 4.6.3 ) || ( == 2.4.2 && >= 3.3.7 && == 5.6.6 && >= 7.6.5 && == 2.7.5 && == 2.6.8 )": {+ "dlHash": "x",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:gzgffln"+ },+ "( <= 1.3.6 && > 5.3.6 && < 5.8.8 && > 2.5.1 && == 6.5.8 && > 8.7.3 && > 8.3.7 && == 8.4.3 && <= 6.1.3 )": {+ "dlHash": "ypfmt",+ "dlSubdir": null,+ "dlUri": "http:bqtx"+ },+ "( <= 2.6.4 && <= 1.3.6 && > 1.5.4 ) || ( < 7.5.7 && <= 1.4.1 && <= 8.4.7 && >= 6.1.1 && == 4.2.5 ) || ( >= 6.6.7 && == 7.7.1 ) || ( < 8.5.6 && == 6.7.1 && == 7.7.6 && >= 7.5.3 && <= 5.7.1 && >= 8.5.3 && > 7.1.1 && > 6.7.3 && < 5.6.6 ) || ( > 2.8.2 && >= 6.3.1 && < 7.5.5 && < 8.3.2 && <= 2.1.2 )": {+ "dlHash": "hulmmu",+ "dlSubdir": {+ "RegexDir": "\u0017"+ },+ "dlUri": "https:b"+ },+ "( > 6.5.8 && < 4.6.7 && <= 1.7.7 && <= 8.7.7 && < 6.1.8 ) || ( < 3.6.7 )": {+ "dlHash": "wolmvfh",+ "dlSubdir": "ax",+ "dlUri": "https:"+ },+ "( >= 2.3.6 && == 5.2.8 && > 5.8.3 && <= 7.6.4 ) || ( == 7.5.8 )": {+ "dlHash": "epmu",+ "dlSubdir": "iML",+ "dlUri": "http:u"+ },+ "( >= 5.3.2 && > 1.1.3 && <= 4.2.1 && == 1.6.2 && >= 5.1.7 && >= 6.4.7 )": {+ "dlHash": "rsneldcs",+ "dlSubdir": null,+ "dlUri": "https:vlrgx"+ },+ "unknown_versioning": {+ "dlHash": "hvj",+ "dlSubdir": null,+ "dlUri": "http:xjxo"+ }+ }+ },+ "A_64": {+ "FreeBSD": {}+ },+ "A_ARM": {},+ "A_ARM64": {+ "Darwin": {+ "( <= 3.2.5 && >= 4.1.9 && <= 7.5.2 && == 6.1.3 && <= 4.4.8 )": {+ "dlHash": "yi",+ "dlSubdir": "𡤩<",+ "dlUri": "https:mtxhcpli"+ },+ "( <= 6.4.1 && > 8.4.5 && > 1.8.6 && >= 5.2.3 && >= 3.4.8 && > 8.4.4 )": {+ "dlHash": "pe",+ "dlSubdir": null,+ "dlUri": "http:kdhmcd"+ },+ "( > 8.2.5 && >= 6.4.1 )": {+ "dlHash": "dttg",+ "dlSubdir": {+ "RegexDir": "\u00073𭍞H\u000f"+ },+ "dlUri": "https:jnsou"+ },+ "( >= 1.1.2 && >= 8.1.4 && > 4.8.1 )": {+ "dlHash": "odj",+ "dlSubdir": {+ "RegexDir": "%=䜔"+ },+ "dlUri": "http:dmzv"+ },+ "( >= 6.2.7 && < 5.7.2 && > 2.6.1 )": {+ "dlHash": "vv",+ "dlSubdir": "!b𥅮C.a",+ "dlUri": "https:xw"+ },+ "( >= 8.3.1 && == 3.3.7 && == 1.6.3 && <= 4.8.1 && > 4.7.4 && <= 3.1.4 && <= 5.3.2 && == 6.4.4 ) || ( > 2.7.7 && > 2.3.7 ) || ( <= 6.8.5 && == 6.3.5 && <= 8.8.1 && >= 2.6.7 && == 7.1.4 && <= 8.4.5 )": {+ "dlHash": "b",+ "dlSubdir": "\u0003𓏳",+ "dlUri": "http:xnxh"+ }+ },+ "Windows": {+ "( < 5.7.2 && > 3.5.7 && >= 7.1.2 && >= 8.2.5 && >= 2.1.7 && < 5.6.8 && >= 2.3.3 && >= 7.5.2 )": {+ "dlHash": "gez",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:umkv"+ },+ "( < 7.8.4 && == 7.7.6 && < 4.3.1 && >= 2.8.4 && > 2.1.4 && <= 2.4.4 && >= 4.1.6 )": {+ "dlHash": "iqg",+ "dlSubdir": "!",+ "dlUri": "http:"+ },+ "( <= 8.2.4 && > 4.4.5 && < 8.8.4 && < 7.2.5 && <= 8.7.6 && == 2.4.2 && > 6.1.6 ) || ( < 2.5.8 && > 7.2.6 && == 2.4.3 && == 1.1.1 ) || ( < 4.5.4 && == 7.1.1 && >= 8.8.5 && >= 8.3.1 ) || ( < 3.1.7 )": {+ "dlHash": "heeipj",+ "dlSubdir": "ᩲඵ𩎡k",+ "dlUri": "https:qs"+ },+ "( > 4.4.3 && < 4.6.1 && == 4.3.2 && <= 8.1.7 && == 1.8.8 ) || ( >= 1.4.8 && < 8.1.7 && == 4.2.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:zaad"+ },+ "( >= 4.5.6 && < 6.2.8 && < 1.8.5 && <= 5.8.1 && < 3.7.1 && < 6.6.4 && < 2.8.1 && > 8.8.6 && > 4.6.6 )": {+ "dlHash": "m",+ "dlSubdir": "苭3}3{",+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "w",+ "dlSubdir": "F\u0006lZ<[\u0011",+ "dlUri": "https:lwnbjrn"+ }+ }+ }+ },+ "viChangeLog": "https:rreum",+ "viPostInstall": "",+ "viPostRemove": null,+ "viPreCompile": "hnakh",+ "viSourceDL": null,+ "viTags": [+ "base-7.3.6",+ "old",+ "Latest",+ "Latest",+ "Recommended"+ ]+ },+ "2.1.4": {+ "viArch": {+ "A_ARM": {+ "Darwin": {+ "( <= 8.5.7 && > 5.1.2 && >= 5.1.2 && > 3.7.2 && <= 3.2.2 && >= 4.2.1 && <= 2.3.7 && == 7.4.1 && == 8.1.1 ) || ( >= 7.4.4 && <= 3.7.8 && == 7.2.3 && >= 4.5.8 && == 1.8.2 )": {+ "dlHash": "cstomidb",+ "dlSubdir": {+ "RegexDir": "C$\u001f?F0"+ },+ "dlUri": "https:q"+ },+ "( >= 5.6.5 && < 2.6.1 && <= 8.2.6 && <= 7.7.2 && <= 8.6.3 && < 3.6.3 && >= 4.6.3 && == 6.5.1 && > 6.7.8 ) || ( > 1.4.2 && <= 2.1.3 && <= 6.4.7 && < 1.8.8 && < 5.7.6 && == 7.2.3 && < 7.3.8 ) || ( < 2.6.3 && >= 2.8.6 && >= 7.2.3 && > 8.7.8 && >= 7.8.3 ) || ( >= 1.6.7 && > 5.6.5 && >= 5.8.3 && == 6.3.2 && == 5.2.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0018🃃锋sj\u0018"+ },+ "dlUri": "https:aisewm"+ }+ },+ "Linux_AmazonLinux": {},+ "Windows": {+ "( < 8.3.7 && >= 8.4.2 && == 7.5.3 && >= 6.3.8 && >= 8.5.7 && == 8.8.7 && < 7.8.1 )": {+ "dlHash": "a",+ "dlSubdir": null,+ "dlUri": "https:be"+ },+ "( == 2.3.7 && == 7.8.4 && >= 4.8.6 && > 2.7.8 && <= 7.8.5 && < 2.5.7 && <= 4.3.1 && == 1.5.2 )": {+ "dlHash": "lja",+ "dlSubdir": "xm \u000f篡)",+ "dlUri": "http:yn"+ },+ "( == 6.1.7 && > 5.6.8 && >= 3.2.1 && < 2.5.4 && == 5.2.3 )": {+ "dlHash": "lzfn",+ "dlSubdir": null,+ "dlUri": "http:yadwmf"+ },+ "( >= 7.2.5 && >= 4.6.3 )": {+ "dlHash": "r",+ "dlSubdir": {+ "RegexDir": "k\u00192^"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "sx",+ "dlSubdir": {+ "RegexDir": "P"+ },+ "dlUri": "https:wnpjqsv"+ }+ }+ },+ "A_PowerPC": {},+ "A_Sparc64": {+ "FreeBSD": {+ "( < 8.8.5 && > 7.4.3 && == 8.4.5 && >= 5.4.2 && <= 7.3.3 && >= 4.7.2 && == 4.1.3 )": {+ "dlHash": "btgp",+ "dlSubdir": "栁l穏#b)A뼲",+ "dlUri": "http:eautjwz"+ },+ "( <= 4.7.3 && < 7.4.4 && >= 4.3.4 && > 2.6.3 && >= 4.2.8 && >= 4.1.1 && == 3.2.4 && < 4.2.8 && <= 4.1.1 ) || ( == 7.1.3 && < 2.1.2 && > 2.5.7 && > 7.7.1 ) || ( < 3.7.8 && > 1.4.7 && <= 2.4.6 && <= 1.8.5 && > 2.2.6 ) || ( <= 4.3.2 && <= 6.1.8 )": {+ "dlHash": "rvp",+ "dlSubdir": "$",+ "dlUri": "http:urexo"+ },+ "( <= 7.1.8 && < 8.5.2 && == 4.1.1 && <= 6.7.6 )": {+ "dlHash": "twgbbuo",+ "dlSubdir": null,+ "dlUri": "http:keilwqsu"+ },+ "( > 8.6.2 && < 7.1.8 && >= 4.4.7 && >= 2.4.7 && == 2.2.3 && < 1.2.7 ) || ( <= 4.7.1 && <= 3.9.7 && == 6.2.4 && > 5.8.1 && == 1.4.6 ) || ( == 1.5.7 && == 5.4.2 && <= 7.8.6 && > 1.6.2 && > 7.4.2 && < 5.2.5 && > 6.1.8 )": {+ "dlHash": "bcaqnpn",+ "dlSubdir": "\u0006E",+ "dlUri": "https:e"+ },+ "( >= 2.5.7 && >= 3.8.1 && == 2.3.3 && < 5.3.6 && <= 8.7.3 && == 5.5.4 ) || ( == 7.7.1 ) || ( <= 8.7.3 && < 3.8.4 && >= 8.6.6 && >= 6.2.4 && < 5.6.2 )": {+ "dlHash": "aiva",+ "dlSubdir": "𠾓<K𪹣{u",+ "dlUri": "https:tecfb"+ },+ "( >= 9.8.9 && >= 8.2.5 && < 6.3.3 ) || ( > 5.4.7 && <= 1.3.6 && <= 6.7.6 && == 7.3.6 ) || ( >= 8.3.4 && < 8.7.5 && <= 1.5.6 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:uovnp"+ }+ },+ "Linux_CentOS": {+ "( < 1.7.2 && <= 5.5.7 && >= 2.8.6 && >= 8.3.4 && > 7.3.7 ) || ( < 4.7.7 && == 6.6.1 && == 5.6.2 )": {+ "dlHash": "iphg",+ "dlSubdir": {+ "RegexDir": "偵nj8q2𭠬"+ },+ "dlUri": "http:osrhqo"+ },+ "( <= 2.8.7 && < 2.7.5 && <= 2.4.4 && >= 4.1.8 && > 2.4.8 && < 4.8.2 && == 8.5.3 && == 6.5.5 && >= 6.4.3 ) || ( < 4.7.3 && <= 7.8.8 && == 2.2.5 && > 7.1.4 && < 1.8.7 && < 6.5.6 && == 5.7.4 ) || ( == 8.2.1 && < 2.7.3 && == 2.8.4 && <= 3.1.4 && > 3.2.5 ) || ( == 2.7.5 && > 6.5.6 && > 2.6.1 && >= 1.4.3 && > 3.2.2 && == 5.5.6 ) || ( < 1.5.6 ) || ( == 7.4.6 && > 8.2.8 && < 3.8.4 && > 5.8.8 )": {+ "dlHash": "bgqa",+ "dlSubdir": {+ "RegexDir": "yr\u000e\u0015\u000c\u0001"+ },+ "dlUri": "http:xmowrlta"+ },+ "( <= 3.4.5 && > 3.3.4 && < 8.6.5 && == 8.6.5 && > 4.4.5 )": {+ "dlHash": "mcpd",+ "dlSubdir": null,+ "dlUri": "http:cg"+ },+ "( == 3.7.2 && > 6.1.8 && < 7.7.3 && <= 2.2.7 && > 6.4.3 && > 8.7.8 && > 2.2.4 && >= 8.5.6 )": {+ "dlHash": "ue",+ "dlSubdir": "",+ "dlUri": "https:qs"+ },+ "( >= 7.6.6 && < 3.8.8 && <= 3.5.8 && < 6.2.3 && > 5.6.6 )": {+ "dlHash": "wspsx",+ "dlSubdir": {+ "RegexDir": "\u0011膻"+ },+ "dlUri": "http:bkbpti"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": "dwizoud",+ "viPostRemove": "foi",+ "viPreCompile": "ma",+ "viSourceDL": {+ "dlHash": "lpc",+ "dlSubdir": "\u0011=ᙀ\u0013D",+ "dlUri": "https:elvtc"+ },+ "viTags": [+ "Prerelease",+ "base-4.7.4"+ ]+ },+ "3.3.7": {+ "viArch": {+ "A_32": {+ "Darwin": {},+ "FreeBSD": {+ "( < 2.7.8 && <= 2.1.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:iualwkba"+ },+ "( < 4.6.2 && == 6.4.3 && <= 8.5.3 && < 2.4.4 && > 4.5.3 && <= 4.2.1 && >= 1.1.1 && == 5.2.1 ) || ( <= 5.2.5 && <= 1.3.6 ) || ( <= 5.3.6 && > 7.2.2 && == 8.7.4 && == 8.7.6 && >= 2.5.1 && == 6.5.3 )": {+ "dlHash": "sukqjo",+ "dlSubdir": null,+ "dlUri": "https:cvfczu"+ },+ "( <= 2.6.5 && <= 1.8.1 && > 4.3.1 && > 6.7.5 && > 6.2.8 && == 3.5.4 && <= 5.4.2 && == 6.6.3 )": {+ "dlHash": "jjykoed",+ "dlSubdir": "",+ "dlUri": "http:dxboa"+ },+ "( == 6.8.1 && == 6.9.2 && < 6.3.5 && == 8.8.8 && >= 8.5.5 )": {+ "dlHash": "cjywwyek",+ "dlSubdir": "?",+ "dlUri": "https:zf"+ },+ "( > 4.2.7 && >= 3.3.3 && <= 7.8.8 ) || ( <= 2.4.1 && <= 7.3.5 && <= 7.8.7 && >= 2.2.8 )": {+ "dlHash": "ws",+ "dlSubdir": {+ "RegexDir": "H"+ },+ "dlUri": "http:wnfyw"+ },+ "unknown_versioning": {+ "dlHash": "goua",+ "dlSubdir": "𤥟\u0005",+ "dlUri": "http:"+ }+ },+ "Linux_Ubuntu": {},+ "Windows": {+ "( == 3.2.2 && > 1.2.4 && >= 6.5.7 ) || ( > 3.2.3 && < 2.1.7 )": {+ "dlHash": "xurgbabi",+ "dlSubdir": {+ "RegexDir": "\u000f"+ },+ "dlUri": "https:"+ },+ "( == 6.3.3 )": {+ "dlHash": "hswnqx",+ "dlSubdir": "Ulw\u0012\rJ",+ "dlUri": "http:g"+ },+ "( > 7.6.7 && > 2.5.4 && == 5.1.1 && < 3.6.5 )": {+ "dlHash": "hxj",+ "dlSubdir": null,+ "dlUri": "http:vnbltoz"+ },+ "unknown_versioning": {+ "dlHash": "lksr",+ "dlSubdir": {+ "RegexDir": "sQCes\u0001"+ },+ "dlUri": "http:footgab"+ }+ }+ },+ "A_ARM64": {+ "Darwin": {+ "( == 1.8.2 && > 7.3.1 && > 4.8.4 && <= 8.4.4 )": {+ "dlHash": "vbfnbr",+ "dlSubdir": "",+ "dlUri": "http:ljbky"+ },+ "( > 2.5.5 && == 8.2.7 )": {+ "dlHash": "zpj",+ "dlSubdir": {+ "RegexDir": "#\u001f\u0006㇎#_"+ },+ "dlUri": "http:hkpayier"+ },+ "unknown_versioning": {+ "dlHash": "rpovfgfn",+ "dlSubdir": {+ "RegexDir": "w\u000b𡢬Y"+ },+ "dlUri": "http:yol"+ }+ },+ "Windows": {+ "( <= 1.8.2 ) || ( <= 5.7.4 && == 1.2.1 && >= 6.3.6 )": {+ "dlHash": "w",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:q"+ },+ "( <= 2.3.5 && > 6.3.5 && <= 3.1.2 && <= 8.1.1 && == 4.6.7 && == 6.6.1 && == 2.7.7 && > 6.3.5 ) || ( == 2.8.5 && > 1.6.3 && == 3.2.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "g\u0017<2"+ },+ "dlUri": "https:idjjee"+ },+ "( == 6.4.5 && == 6.3.1 && > 3.4.5 && < 4.3.6 && >= 1.1.7 && >= 7.6.5 && > 3.8.6 ) || ( <= 2.5.7 && >= 6.5.4 && == 4.7.5 && <= 2.5.6 )": {+ "dlHash": "zz",+ "dlSubdir": "\u0003#N",+ "dlUri": "https:vlbqtsvc"+ },+ "( > 3.4.7 && >= 6.6.7 && >= 8.2.1 && <= 6.8.6 && <= 1.4.6 && == 2.6.3 && < 8.1.3 && < 1.7.8 ) || ( == 6.7.7 && <= 8.2.1 && > 4.4.7 && >= 2.7.4 && == 4.2.4 && > 1.8.1 && == 8.7.3 && > 7.4.3 ) || ( <= 3.8.2 && == 1.5.4 && < 5.8.4 && == 2.8.2 && > 7.5.3 && <= 8.6.6 && >= 2.1.7 && < 1.1.6 && <= 7.7.2 ) || ( > 7.4.2 && >= 6.4.1 && >= 1.7.3 && <= 4.5.3 ) || ( > 1.6.2 && >= 5.8.4 && >= 1.6.3 && < 8.6.8 ) || ( <= 6.1.7 && == 4.1.7 && > 3.7.8 )": {+ "dlHash": "yxbkso",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "p",+ "dlSubdir": {+ "RegexDir": "ờ"+ },+ "dlUri": "http:oxeyn"+ }+ }+ },+ "A_PowerPC": {+ "FreeBSD": {+ "( <= 3.2.4 && >= 4.7.9 && <= 5.8.8 )": {+ "dlHash": "roeszfs",+ "dlSubdir": {+ "RegexDir": "\u0019Ig\u0013锞"+ },+ "dlUri": "http:pbwjmu"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( < 1.1.2 && >= 4.1.3 && >= 3.6.4 )": {+ "dlHash": "wwxizugc",+ "dlSubdir": "'(!4\u001d2\u0004c",+ "dlUri": "http:ghgzun"+ },+ "( <= 4.2.4 && >= 1.1.6 && == 5.8.4 && > 6.2.1 && >= 4.2.1 && > 2.1.1 && == 5.1.8 )": {+ "dlHash": "fufqtni",+ "dlSubdir": "$\nono",+ "dlUri": "http:"+ },+ "( <= 5.6.6 && >= 1.1.2 && > 2.8.8 && < 7.2.4 && <= 4.7.1 && < 2.1.2 && <= 7.1.5 ) || ( == 2.6.6 && == 3.2.2 && >= 3.4.3 && < 7.5.5 && >= 8.7.3 && < 8.8.9 )": {+ "dlHash": "pzhikyr",+ "dlSubdir": null,+ "dlUri": "http:zewzvfyo"+ },+ "( > 4.8.4 && < 8.1.4 && >= 7.8.8 && <= 3.4.1 )": {+ "dlHash": "kav",+ "dlSubdir": "\u0005&",+ "dlUri": "https:qzhc"+ },+ "( > 6.2.3 && < 5.8.3 && >= 1.2.5 && == 7.1.2 && < 7.2.8 && == 5.8.1 && > 5.2.6 )": {+ "dlHash": "kjpwdx",+ "dlSubdir": {+ "RegexDir": "]𧤐"+ },+ "dlUri": "https:pp"+ },+ "unknown_versioning": {+ "dlHash": "ukxu",+ "dlSubdir": {+ "RegexDir": "j\u0011{|𦡹8"+ },+ "dlUri": "http:zpecml"+ }+ },+ "FreeBSD": {},+ "Linux_Mint": {+ "( < 3.4.9 && == 1.1.4 && == 8.4.1 && >= 7.5.7 && >= 4.3.2 && >= 1.5.1 && > 5.6.4 && > 4.7.1 ) || ( <= 3.7.5 && >= 4.1.3 )": {+ "dlHash": "",+ "dlSubdir": "\u001b:\u0005@",+ "dlUri": "http:ic"+ },+ "( <= 8.4.7 && > 6.3.7 && == 3.8.8 && <= 2.1.7 && >= 2.5.3 )": {+ "dlHash": "azgbpgb",+ "dlSubdir": null,+ "dlUri": "https:uup"+ },+ "unknown_versioning": {+ "dlHash": "ymsxdki",+ "dlSubdir": null,+ "dlUri": "https:"+ }+ },+ "Linux_UnknownLinux": {+ "( <= 4.6.1 && >= 7.7.6 && >= 8.2.6 && > 6.2.4 && > 4.8.5 && < 3.4.1 && <= 7.8.2 && == 4.6.5 ) || ( == 2.5.7 && <= 8.3.6 && >= 1.5.8 && == 1.3.6 && <= 4.7.5 && <= 6.3.2 && >= 3.8.5 && <= 4.8.7 )": {+ "dlHash": "fctmu",+ "dlSubdir": {+ "RegexDir": "G0/0𧛫"+ },+ "dlUri": "https:bma"+ },+ "( > 2.8.4 && < 2.1.8 && == 5.7.2 && == 3.2.6 && <= 8.2.5 )": {+ "dlHash": "kysjzfn",+ "dlSubdir": {+ "RegexDir": "\u0006\"1"+ },+ "dlUri": "https:moxasj"+ },+ "( > 3.1.8 && == 7.6.4 && <= 4.9.7 && > 8.7.6 && == 6.3.8 && >= 1.4.6 ) || ( >= 3.5.8 && <= 7.2.8 && == 4.7.7 && < 7.1.3 && < 1.4.1 && >= 3.3.1 && < 5.6.4 && >= 2.3.2 && > 3.2.6 ) || ( == 6.5.6 && == 5.2.1 && >= 3.1.5 ) || ( == 1.4.5 && >= 3.5.5 && < 5.7.8 )": {+ "dlHash": "ftwun",+ "dlSubdir": {+ "RegexDir": "%$\u000cK\u001a`H"+ },+ "dlUri": "https:le"+ },+ "unknown_versioning": {+ "dlHash": "txyfsnz",+ "dlSubdir": {+ "RegexDir": "\u001c6𘪶"+ },+ "dlUri": "http:cyl"+ }+ },+ "Windows": {+ "( <= 5.1.8 && == 6.4.7 && >= 3.8.4 && < 1.2.4 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "( >= 8.6.2 && < 1.8.3 && >= 2.8.3 && > 5.3.4 ) || ( <= 1.4.8 && <= 4.4.5 && >= 3.4.8 && >= 1.4.4 )": {+ "dlHash": "g",+ "dlSubdir": null,+ "dlUri": "https:fndvm"+ },+ "unknown_versioning": {+ "dlHash": "jazq",+ "dlSubdir": null,+ "dlUri": "https:aok"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 5.1.8 && == 3.5.6 ) || ( == 2.3.7 && <= 2.7.2 ) || ( == 6.1.3 && < 2.4.1 && > 2.8.4 && > 7.1.5 && == 6.3.4 && <= 7.8.3 )": {+ "dlHash": "hryp",+ "dlSubdir": "|읮k\u001dJYe",+ "dlUri": "http:"+ },+ "( == 1.7.2 && < 7.8.4 && >= 1.2.1 && <= 7.5.1 && > 6.6.6 )": {+ "dlHash": "luv",+ "dlSubdir": null,+ "dlUri": "https:zduhnxj"+ },+ "unknown_versioning": {+ "dlHash": "mrooxt",+ "dlSubdir": null,+ "dlUri": "https:exaly"+ }+ },+ "Linux_Debian": {+ "( > 3.8.3 && < 3.3.1 && == 3.7.8 && < 5.4.8 && == 1.7.3 && > 3.7.3 && <= 6.7.8 && >= 5.2.3 && <= 6.8.2 )": {+ "dlHash": "dcrxzyni",+ "dlSubdir": null,+ "dlUri": "https:x"+ },+ "( > 3.8.7 && < 5.6.3 && >= 4.3.5 && == 6.8.2 && <= 3.4.7 && < 5.5.1 && < 7.1.6 && >= 2.8.4 ) || ( < 6.5.1 && > 8.1.7 && > 6.3.1 && == 7.1.6 ) || ( > 6.5.7 && > 1.7.8 && >= 7.2.5 && <= 4.3.5 && > 2.6.8 ) || ( < 6.6.1 && <= 4.9.8 && < 2.5.1 && == 5.7.1 && <= 7.2.5 && < 5.5.1 )": {+ "dlHash": "tdcn",+ "dlSubdir": "B\u0011-",+ "dlUri": "http:"+ },+ "( > 7.3.7 && <= 3.4.8 && >= 2.2.6 && > 4.2.8 && <= 2.7.2 && <= 6.4.2 )": {+ "dlHash": "igshmpr",+ "dlSubdir": null,+ "dlUri": "https:uwt"+ },+ "( >= 8.8.8 && == 1.1.3 && > 6.6.1 && <= 3.6.1 && == 5.2.6 ) || ( > 7.6.1 && <= 4.7.3 && >= 1.4.4 ) || ( > 3.1.7 && > 4.4.8 && > 8.3.1 && <= 8.5.6 && > 4.5.4 && < 1.3.8 && <= 4.3.7 ) || ( >= 6.5.8 && >= 2.3.7 ) || ( < 6.3.4 && > 5.1.4 && >= 2.1.5 && == 6.3.7 && <= 1.1.8 && > 1.9.3 && < 6.2.2 )": {+ "dlHash": "nghntehp",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "udni",+ "dlSubdir": "FOh笃𡅮⍕5[",+ "dlUri": "http:khl"+ }+ },+ "Linux_Mint": {+ "( > 3.5.8 && < 3.8.4 && >= 7.8.7 && == 4.8.3 && > 8.2.6 && >= 1.4.8 ) || ( == 7.4.8 && <= 8.3.4 && > 8.5.8 && > 5.3.3 && > 6.7.7 && <= 7.2.6 && <= 5.8.5 && <= 3.5.4 && <= 6.7.5 )": {+ "dlHash": "qpwbg",+ "dlSubdir": "-\u0010\u000f",+ "dlUri": "http:rfyj"+ }+ },+ "Linux_RedHat": {+ "( < 2.1.6 && > 4.7.3 && == 3.2.1 && <= 1.5.7 && >= 1.7.1 && == 1.3.4 && > 1.2.2 && >= 6.1.8 )": {+ "dlHash": "cowc",+ "dlSubdir": "3yJ",+ "dlUri": "http:of"+ },+ "( < 9.3.6 && > 5.2.2 && == 8.6.2 && < 2.7.1 && < 5.4.7 && >= 3.8.6 && < 2.8.3 && == 3.3.8 && > 4.4.7 )": {+ "dlHash": "qfvrfejv",+ "dlSubdir": {+ "RegexDir": "𪋯Vr>to"+ },+ "dlUri": "http:o"+ },+ "( <= 5.5.8 && <= 3.7.6 )": {+ "dlHash": "tamg",+ "dlSubdir": "lX\u0008𮢈\u001b<^",+ "dlUri": "http:ajv"+ },+ "( <= 7.4.1 && > 7.1.7 && == 1.7.2 ) || ( < 2.6.4 && >= 3.4.1 )": {+ "dlHash": "yybbkm",+ "dlSubdir": null,+ "dlUri": "https:tkubjv"+ },+ "( == 7.9.1 && < 1.2.6 && <= 2.2.3 && > 2.6.5 && < 7.7.5 && < 8.8.1 && > 6.3.5 && < 5.4.2 && >= 6.1.3 )": {+ "dlHash": "bi",+ "dlSubdir": "%\u0016'",+ "dlUri": "https:xo"+ },+ "( >= 1.2.1 && >= 2.3.7 && >= 2.7.6 && == 2.2.8 && > 5.2.8 && <= 7.2.7 && <= 1.3.6 && > 5.7.7 && < 1.2.3 )": {+ "dlHash": "tzrnifuj",+ "dlSubdir": {+ "RegexDir": "|4"+ },+ "dlUri": "http:tsa"+ },+ "( >= 8.6.4 && <= 2.1.7 && == 3.4.3 && >= 6.5.2 && > 8.8.3 && == 4.2.8 )": {+ "dlHash": "hbf",+ "dlSubdir": {+ "RegexDir": "KG"+ },+ "dlUri": "http:t"+ },+ "unknown_versioning": {+ "dlHash": "zhvyqu",+ "dlSubdir": {+ "RegexDir": "H\u0007("+ },+ "dlUri": "https:uf"+ }+ },+ "Windows": {+ "( < 1.3.7 && <= 2.3.7 && <= 4.2.1 && > 4.8.6 && < 6.2.2 && > 7.3.2 && <= 1.7.4 ) || ( > 5.6.8 && > 2.1.6 && > 1.7.7 && > 4.4.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:a"+ },+ "( >= 8.5.7 && > 8.8.7 && < 3.7.5 && >= 6.1.2 && < 7.5.6 && == 3.1.9 && < 1.6.7 && == 4.5.8 && == 3.8.1 )": {+ "dlHash": "nzqg",+ "dlSubdir": {+ "RegexDir": "\u0006\u0011𨙺"+ },+ "dlUri": "http:lvyg"+ },+ "unknown_versioning": {+ "dlHash": "ewm",+ "dlSubdir": {+ "RegexDir": "Sc\u000c"+ },+ "dlUri": "https:kkeih"+ }+ }+ }+ },+ "viChangeLog": "http:cczda",+ "viPostInstall": "anwu",+ "viPostRemove": null,+ "viPreCompile": "uavccmoo",+ "viSourceDL": {+ "dlHash": "wp",+ "dlSubdir": {+ "RegexDir": "\u0000"+ },+ "dlUri": "https:mkzzunx"+ },+ "viTags": []+ },+ "3.5.3": {+ "viArch": {+ "A_32": {+ "Linux_RedHat": {+ "( < 6.2.4 && >= 8.3.5 && < 2.5.7 && == 2.8.6 && > 1.5.2 && <= 4.3.3 && > 4.6.4 ) || ( >= 2.5.5 )": {+ "dlHash": "m",+ "dlSubdir": null,+ "dlUri": "https:ilefhksa"+ },+ "( == 5.1.7 && < 3.1.2 && > 3.2.8 && > 6.1.3 && == 3.2.8 && >= 6.4.6 && < 4.1.7 && == 8.1.6 )": {+ "dlHash": "pr",+ "dlSubdir": {+ "RegexDir": "\u0019u𣪭BZ"+ },+ "dlUri": "https:gdb"+ },+ "( == 8.8.2 && <= 1.8.3 && < 8.1.5 && > 3.2.5 && > 2.8.1 && <= 2.8.3 && == 2.1.2 )": {+ "dlHash": "ftmau",+ "dlSubdir": "\u001a",+ "dlUri": "https:d"+ },+ "( >= 1.6.3 && < 3.2.8 && == 3.8.1 && > 2.4.6 )": {+ "dlHash": "m",+ "dlSubdir": null,+ "dlUri": "https:lgjel"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "%'"+ },+ "dlUri": "https:a"+ }+ },+ "Windows": {+ "( < 5.3.6 && >= 3.6.4 && >= 8.2.2 ) || ( == 4.5.8 && >= 1.6.2 && >= 7.5.3 && == 7.6.8 && == 7.8.8 && > 4.8.5 && >= 5.1.8 && == 7.3.4 && <= 7.5.6 ) || ( >= 4.4.6 )": {+ "dlHash": "xzlc",+ "dlSubdir": "\u0003!首\r|\u0005",+ "dlUri": "http:iezumu"+ },+ "( <= 6.4.5 && == 6.4.4 && >= 5.4.1 && > 1.5.7 ) || ( > 7.4.3 && <= 2.4.4 && >= 4.8.4 && >= 1.9.3 && == 7.7.4 && < 3.3.7 && <= 6.3.6 ) || ( <= 8.6.1 && < 5.3.3 && >= 4.6.2 && > 7.2.3 && > 2.3.3 && < 6.7.4 )": {+ "dlHash": "lts",+ "dlSubdir": null,+ "dlUri": "https:mtperozy"+ },+ "( == 2.4.7 && > 3.4.5 && <= 1.8.2 && == 3.8.4 && == 4.7.3 && == 8.1.2 ) || ( == 2.7.7 && < 2.7.7 && <= 2.8.1 && < 7.6.5 ) || ( >= 1.3.5 && <= 4.1.7 && >= 2.1.8 && < 1.8.2 )": {+ "dlHash": "zouoqwe",+ "dlSubdir": "\u000e}\u0017O",+ "dlUri": "https:"+ },+ "( >= 5.4.7 && < 6.1.3 && > 3.4.6 )": {+ "dlHash": "qtj",+ "dlSubdir": "",+ "dlUri": "https:ovjyvik"+ },+ "unknown_versioning": {+ "dlHash": "megxif",+ "dlSubdir": "2",+ "dlUri": "http:mup"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 5.8.5 ) || ( <= 1.2.3 && >= 8.1.2 && <= 4.2.2 && > 6.6.6 && >= 3.8.7 && == 4.1.3 )": {+ "dlHash": "x",+ "dlSubdir": "3\u001c[𢏜",+ "dlUri": "https:cy"+ }+ },+ "FreeBSD": {+ "( <= 2.1.7 && < 7.1.4 && >= 3.8.3 ) || ( == 1.7.6 && < 4.4.1 && <= 3.6.2 && >= 1.2.7 && > 4.5.1 && == 5.6.3 && > 6.2.1 && == 7.6.7 ) || ( < 1.4.2 )": {+ "dlHash": "r",+ "dlSubdir": null,+ "dlUri": "https:x"+ },+ "( <= 2.3.1 && >= 7.1.6 && < 8.2.2 && <= 6.7.2 && == 5.2.5 && > 3.2.3 ) || ( < 3.6.3 && < 8.6.3 && < 4.8.5 && < 3.1.8 )": {+ "dlHash": "qb",+ "dlSubdir": {+ "RegexDir": "V𭸗:5"+ },+ "dlUri": "https:vfuskyw"+ },+ "( == 7.4.8 && >= 7.3.2 && == 2.1.1 && == 7.7.2 && < 2.2.1 )": {+ "dlHash": "rznctaw",+ "dlSubdir": null,+ "dlUri": "https:k"+ },+ "( >= 1.5.4 && < 1.2.3 ) || ( < 7.7.2 && > 5.5.2 && >= 8.2.4 && < 3.6.5 && > 2.7.5 )": {+ "dlHash": "if",+ "dlSubdir": "\n6uF`*",+ "dlUri": "https:jcpl"+ },+ "( >= 8.6.6 && < 1.6.2 && <= 9.7.6 && > 3.2.3 && == 2.4.5 && < 5.4.8 && > 4.1.1 )": {+ "dlHash": "ryzm",+ "dlSubdir": null,+ "dlUri": "https:syzqjbe"+ },+ "unknown_versioning": {+ "dlHash": "pdr",+ "dlSubdir": {+ "RegexDir": "aꇏ𫜡"+ },+ "dlUri": "https:ncgnip"+ }+ },+ "Linux_Alpine": {},+ "Linux_Debian": {+ "( < 2.5.8 && < 5.3.5 && > 3.1.6 && >= 6.1.7 && < 7.8.8 )": {+ "dlHash": "dz",+ "dlSubdir": {+ "RegexDir": "?ZH\u0018u\u00125\u0016"+ },+ "dlUri": "https:ufmzlhcf"+ },+ "( <= 5.7.8 )": {+ "dlHash": "tniakn",+ "dlSubdir": {+ "RegexDir": "\u0014Q;"+ },+ "dlUri": "http:"+ },+ "( <= 7.5.3 && >= 6.7.6 && < 5.1.3 && >= 4.2.2 && == 4.5.2 && < 7.1.6 && > 3.7.1 )": {+ "dlHash": "hsfwnzbg",+ "dlSubdir": {+ "RegexDir": "{"+ },+ "dlUri": "http:umnsh"+ },+ "( >= 6.3.3 && < 6.5.4 && == 8.3.2 && > 5.8.2 && < 2.2.5 && >= 1.5.1 && <= 4.4.3 && >= 7.3.4 ) || ( == 2.2.7 )": {+ "dlHash": "",+ "dlSubdir": "-x\u0000뛵\u001c\u000b镝",+ "dlUri": "https:mabfd"+ },+ "unknown_versioning": {+ "dlHash": "c",+ "dlSubdir": "\u000b1@sO",+ "dlUri": "https:cmp"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( == 2.8.4 && < 5.1.7 ) || ( <= 8.7.2 && == 3.4.6 && <= 7.1.6 && == 6.4.4 )": {+ "dlHash": "obpmtho",+ "dlSubdir": "I{",+ "dlUri": "https:impx"+ },+ "( == 7.3.2 && <= 8.7.6 && < 5.6.2 && == 4.2.8 && == 5.1.4 && < 7.3.4 && < 1.2.7 && >= 2.4.2 )": {+ "dlHash": "ijt",+ "dlSubdir": "",+ "dlUri": "https:ugwtzb"+ },+ "( >= 2.8.4 && >= 6.4.1 && > 7.8.7 && > 8.3.6 && > 7.8.4 && == 7.5.2 )": {+ "dlHash": "kyh",+ "dlSubdir": "R\u0015",+ "dlUri": "http:fnlux"+ },+ "( >= 4.4.7 && >= 5.3.3 && > 3.5.5 && >= 8.5.7 ) || ( > 7.4.7 && < 8.3.7 && > 3.7.2 && < 8.1.6 ) || ( < 7.1.4 && >= 2.7.8 && <= 8.6.7 && >= 8.2.8 && == 1.8.5 )": {+ "dlHash": "rkfv",+ "dlSubdir": {+ "RegexDir": "\u0003"+ },+ "dlUri": "http:bfuxoaoa"+ },+ "unknown_versioning": {+ "dlHash": "cpdlghpg",+ "dlSubdir": {+ "RegexDir": "𭽟4wwL\u001a\u0010*"+ },+ "dlUri": "http:lvebp"+ }+ },+ "FreeBSD": {+ "( < 4.5.8 ) || ( >= 2.7.5 && == 4.4.2 && == 4.1.5 ) || ( >= 5.1.6 && >= 7.1.1 && <= 3.2.4 && <= 8.6.1 && == 5.5.5 ) || ( <= 5.6.1 && > 4.4.7 && > 7.3.4 )": {+ "dlHash": "dcvvpegu",+ "dlSubdir": "g𓋊됉\"56\u0010",+ "dlUri": "https:itvnrn"+ },+ "( > 1.5.1 ) || ( >= 8.4.2 && > 5.2.3 && == 7.1.6 && == 7.3.1 && < 5.2.7 && >= 3.7.2 )": {+ "dlHash": "zoeqggt",+ "dlSubdir": {+ "RegexDir": "$S\u0012\u0015"+ },+ "dlUri": "http:jt"+ },+ "( >= 1.2.1 && <= 8.2.3 && <= 3.5.3 && < 7.7.7 && == 5.7.4 && > 8.2.4 && == 1.3.8 && == 7.2.6 && <= 5.3.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "N𐤆/𤾕K"+ },+ "dlUri": "http:smghf"+ }+ },+ "Linux_Ubuntu": {+ "( < 4.3.8 && < 2.4.6 && <= 2.7.2 )": {+ "dlHash": "usx",+ "dlSubdir": {+ "RegexDir": "^\u0011~\u0005\u0011!"+ },+ "dlUri": "http:vchw"+ },+ "( <= 3.7.5 && >= 3.6.5 && > 5.5.1 ) || ( == 3.7.6 && == 1.4.7 && > 6.6.1 && < 4.4.3 && >= 5.2.4 && > 2.2.5 && == 3.5.1 && >= 1.7.5 )": {+ "dlHash": "vkimtqlb",+ "dlSubdir": null,+ "dlUri": "https:zrcfl"+ },+ "( <= 8.8.3 && > 1.4.5 && > 8.5.7 && <= 2.3.1 && == 7.6.1 )": {+ "dlHash": "xykta",+ "dlSubdir": null,+ "dlUri": "http:y"+ },+ "( == 4.2.8 && < 6.2.3 )": {+ "dlHash": "skdd",+ "dlSubdir": {+ "RegexDir": "웅䉞𤴄\n"+ },+ "dlUri": "https:ywaugxx"+ },+ "( == 6.8.7 && <= 2.1.5 ) || ( == 7.2.3 )": {+ "dlHash": "pekew",+ "dlSubdir": "#Y𬓔\u000c𡵲",+ "dlUri": "http:okvrdps"+ },+ "( > 2.9.5 && >= 3.7.6 && == 4.1.6 && <= 8.8.4 && >= 1.7.2 && > 2.2.1 && >= 6.1.1 )": {+ "dlHash": "qozbck",+ "dlSubdir": null,+ "dlUri": "https:hdnxtsyz"+ },+ "( >= 1.8.8 ) || ( < 7.4.8 && <= 1.7.5 && < 7.2.4 )": {+ "dlHash": "adwkt",+ "dlSubdir": {+ "RegexDir": "?蚩]ma\u000b\u001d"+ },+ "dlUri": "http:af"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "Eu:",+ "dlUri": "http:rcxhhwxb"+ }+ }+ }+ },+ "viChangeLog": "https:bkwld",+ "viPostInstall": "mddazr",+ "viPostRemove": "bltge",+ "viPreCompile": "khe",+ "viSourceDL": {+ "dlHash": "ovmjwp",+ "dlSubdir": {+ "RegexDir": "\u001e"+ },+ "dlUri": "http:kdnh"+ },+ "viTags": [+ "Prerelease",+ "old",+ "old",+ "Recommended",+ "old"+ ]+ },+ "5.2.3": {+ "viArch": {+ "A_64": {+ "Windows": {+ "( <= 3.5.5 && >= 3.5.3 && < 6.5.7 && < 4.8.3 && <= 6.3.8 ) || ( <= 6.4.7 && > 4.6.5 && > 3.6.7 && <= 3.8.6 && >= 1.4.7 && < 7.4.4 )": {+ "dlHash": "sunbp",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:l"+ },+ "( == 6.8.3 )": {+ "dlHash": "spcyt",+ "dlSubdir": "dZ\u001742",+ "dlUri": "https:okzlqqs"+ },+ "( > 7.3.7 && <= 2.2.2 && < 2.4.2 && <= 4.1.8 && >= 6.8.1 )": {+ "dlHash": "edkgkqq",+ "dlSubdir": {+ "RegexDir": "\u0011\u0014𭭉\u001a𨊦\u001d"+ },+ "dlUri": "https:gxftsyy"+ }+ }+ },+ "A_PowerPC": {+ "FreeBSD": {+ "( < 1.2.2 && >= 4.3.7 && <= 8.5.4 && > 4.3.6 && > 7.3.5 && <= 8.8.4 && < 3.6.4 && < 8.3.5 && >= 1.6.4 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "s\u0018𤀩I"+ },+ "dlUri": "https:qwyzuy"+ },+ "( <= 1.7.6 && > 5.7.8 && >= 6.4.8 ) || ( < 8.1.1 && < 7.7.4 && > 8.4.1 && <= 4.6.2 && >= 5.5.3 && > 6.8.2 && <= 5.3.3 && <= 4.8.6 && >= 4.5.3 ) || ( < 4.6.7 && < 5.1.6 && < 7.7.2 ) || ( == 1.5.4 && <= 7.5.1 && == 5.3.1 ) || ( < 8.2.2 && >= 4.1.8 && <= 2.4.8 && >= 1.3.5 && == 3.7.7 )": {+ "dlHash": "xbjgkog",+ "dlSubdir": ":",+ "dlUri": "https:eybglzi"+ },+ "( <= 3.7.8 && == 5.7.3 && <= 3.2.1 && >= 3.5.8 && <= 1.3.3 && >= 6.8.6 && > 3.8.6 && > 7.4.1 ) || ( > 3.4.3 && == 5.4.9 ) || ( < 4.7.6 && <= 8.2.6 && <= 3.3.3 && >= 1.4.2 ) || ( >= 7.4.4 && > 8.4.3 && == 8.4.7 && < 4.3.8 && == 3.8.5 && > 8.6.7 )": {+ "dlHash": "yzhxa",+ "dlSubdir": {+ "RegexDir": "𘃬\nP輦x\r\u0016\u0013"+ },+ "dlUri": "http:sgavvep"+ },+ "unknown_versioning": {+ "dlHash": "degzddu",+ "dlSubdir": "\t",+ "dlUri": "https:bt"+ }+ },+ "Linux_AmazonLinux": {+ "unknown_versioning": {+ "dlHash": "ql",+ "dlSubdir": {+ "RegexDir": "ሚ\u0019!/ B`"+ },+ "dlUri": "http:innwpiwg"+ }+ },+ "Linux_Fedora": {+ "( < 1.6.1 && > 4.4.2 && == 1.7.6 && <= 4.6.6 && < 7.6.5 && >= 7.8.8 && >= 7.7.8 && >= 5.4.3 ) || ( < 7.8.1 && < 3.5.6 && <= 5.3.8 && == 7.3.1 && > 4.3.5 && >= 8.3.3 && >= 2.3.2 ) || ( > 8.3.9 && == 8.4.8 && > 8.6.8 && >= 4.7.3 && > 1.1.2 )": {+ "dlHash": "ob",+ "dlSubdir": null,+ "dlUri": "https:v"+ },+ "( < 8.2.8 && >= 4.1.2 && > 2.6.6 && == 8.5.8 && >= 3.6.5 && < 6.4.8 )": {+ "dlHash": "xtswrjfn",+ "dlSubdir": null,+ "dlUri": "http:fz"+ },+ "( == 1.3.1 && < 4.1.1 && < 7.4.3 && == 3.3.8 && <= 1.6.5 && >= 3.7.3 && == 6.4.6 && < 8.4.7 && < 4.4.7 )": {+ "dlHash": "",+ "dlSubdir": "𧝲 ",+ "dlUri": "http:tp"+ },+ "( == 4.6.2 && == 2.5.6 && >= 3.8.6 && <= 1.9.4 && > 3.7.1 && < 5.3.5 && >= 8.8.1 && <= 3.5.2 && < 3.6.4 )": {+ "dlHash": "kmzopwjq",+ "dlSubdir": "Pv\u0004\u001c",+ "dlUri": "https:yazpqw"+ },+ "( >= 1.3.4 && < 2.2.5 ) || ( <= 7.3.7 && <= 3.5.5 ) || ( < 3.8.6 && < 7.7.2 && == 7.7.5 && < 5.7.8 && == 5.7.6 && > 4.7.8 && >= 1.4.8 ) || ( == 6.6.3 && > 1.8.5 && < 6.5.6 && == 2.2.5 && > 5.6.1 && <= 6.6.8 && == 5.5.5 && > 2.1.2 && <= 5.5.6 ) || ( <= 4.8.4 && > 1.8.2 && < 8.1.4 && >= 6.3.8 ) || ( < 8.1.4 && < 8.3.6 && == 6.8.2 && == 1.9.1 && < 5.4.2 && > 3.7.5 && > 1.2.2 && > 6.5.5 && > 4.1.1 )": {+ "dlHash": "pjwww",+ "dlSubdir": {+ "RegexDir": "𛀐r𥯍\\\u0006"+ },+ "dlUri": "https:nymmh"+ },+ "unknown_versioning": {+ "dlHash": "dpbma",+ "dlSubdir": "𥝜𬭦Zd.\u0000𣮂,",+ "dlUri": "http:kqfi"+ }+ },+ "Windows": {+ "( <= 8.2.1 && >= 7.1.6 && >= 1.1.5 && > 3.8.8 && >= 3.5.8 && < 8.7.1 && == 1.2.8 ) || ( < 3.4.5 && > 3.8.1 && == 3.7.3 && < 2.4.6 && > 7.3.6 && > 3.1.6 && > 6.3.4 && == 7.2.1 )": {+ "dlHash": "owvgp",+ "dlSubdir": ";︭",+ "dlUri": "https:t"+ },+ "( > 5.5.7 ) || ( == 8.6.4 && > 4.3.8 && == 7.9.8 && <= 6.6.6 && < 7.3.6 && <= 8.6.4 && <= 3.9.7 ) || ( == 3.6.6 && <= 3.5.2 ) || ( < 6.5.9 && < 3.3.7 && == 5.3.4 && <= 7.7.4 && > 7.7.3 ) || ( <= 3.6.3 && == 3.7.6 && <= 5.4.6 && >= 7.5.5 && == 4.3.8 && <= 7.4.1 && > 8.8.8 )": {+ "dlHash": "lgeioim",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:pd"+ },+ "unknown_versioning": {+ "dlHash": "fp",+ "dlSubdir": null,+ "dlUri": "http:sffycwfj"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( > 6.6.3 && < 8.5.5 && >= 1.4.2 && > 6.7.1 && == 7.4.3 && >= 3.7.6 && == 2.7.2 && >= 4.7.8 )": {+ "dlHash": "ntzoxph",+ "dlSubdir": null,+ "dlUri": "https:ryqsbqjf"+ }+ },+ "FreeBSD": {+ "( == 3.5.8 && > 5.6.8 && == 8.1.4 && == 8.7.5 && == 4.4.6 )": {+ "dlHash": "yltiz",+ "dlSubdir": {+ "RegexDir": "{8c"+ },+ "dlUri": "http:hvwe"+ },+ "( > 1.7.8 && < 3.6.4 && < 3.6.1 && < 7.5.7 ) || ( == 6.6.1 && > 2.5.4 && >= 4.4.7 && >= 1.6.5 && == 2.8.5 && <= 7.3.7 ) || ( > 7.2.2 && > 2.1.5 && == 5.8.4 && >= 5.1.4 && < 5.2.8 && == 5.1.2 && > 2.1.3 )": {+ "dlHash": "qt",+ "dlSubdir": "\u000e廆𭸓jhy",+ "dlUri": "http:rjqiexv"+ },+ "( > 2.2.6 && == 6.6.5 )": {+ "dlHash": "tlvezme",+ "dlSubdir": {+ "RegexDir": "\u001b!vv\tW"+ },+ "dlUri": "https:ewdo"+ },+ "( > 7.3.5 && > 3.6.1 && <= 5.2.1 && <= 4.7.2 && > 2.3.4 && == 3.4.4 && <= 3.6.1 && > 4.1.3 && <= 7.6.3 )": {+ "dlHash": "fw",+ "dlSubdir": "樕nJ",+ "dlUri": "http:yeiqk"+ },+ "unknown_versioning": {+ "dlHash": "rnteb",+ "dlSubdir": "}\u0014e",+ "dlUri": "http:kmt"+ }+ },+ "Linux_Alpine": {+ "( >= 6.5.2 && < 4.3.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "𘀇P#\u0000"+ },+ "dlUri": "https:gyzvkj"+ }+ },+ "Windows": {+ "( < 7.2.3 && < 3.3.7 )": {+ "dlHash": "pawct",+ "dlSubdir": null,+ "dlUri": "http:dujqndy"+ },+ "( >= 3.4.2 && == 6.8.3 && == 3.6.2 && == 5.7.2 && > 4.5.4 && >= 5.8.4 ) || ( == 2.5.1 && > 1.3.3 && < 8.1.5 && > 4.3.2 && == 3.3.5 && < 3.4.2 )": {+ "dlHash": "difbztt",+ "dlSubdir": "\u001d\t",+ "dlUri": "https:zadarq"+ },+ "( >= 5.7.8 && > 7.2.7 && < 1.2.4 )": {+ "dlHash": "klstfke",+ "dlSubdir": "&-\u0004oq<",+ "dlUri": "http:zzsxdpu"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 6.2.3 )": {+ "dlHash": "doinpl",+ "dlSubdir": {+ "RegexDir": "L@,8"+ },+ "dlUri": "http:j"+ },+ "( < 7.6.8 && >= 8.2.6 && < 2.8.3 && >= 7.2.2 ) || ( <= 8.4.7 && <= 5.5.7 ) || ( <= 2.7.7 && < 2.1.6 && > 7.6.6 && == 1.4.4 && <= 4.8.4 && <= 2.7.5 && <= 2.2.5 )": {+ "dlHash": "jtbjkod",+ "dlSubdir": "#S\u001c<1",+ "dlUri": "https:ddscth"+ },+ "( <= 2.7.6 && >= 8.8.6 && <= 3.1.4 && == 5.3.1 && >= 3.1.7 )": {+ "dlHash": "agwxczg",+ "dlSubdir": "",+ "dlUri": "http:ubi"+ },+ "( > 6.2.7 && == 5.7.6 && < 4.5.5 && > 1.3.7 && == 3.7.1 && == 3.7.4 && <= 3.1.4 && > 5.8.5 )": {+ "dlHash": "zeiug",+ "dlSubdir": null,+ "dlUri": "https:yhildgaz"+ },+ "( >= 6.6.2 && == 4.4.5 && == 1.7.8 && < 8.4.7 && >= 6.2.8 && >= 4.5.2 ) || ( > 2.1.1 )": {+ "dlHash": "",+ "dlSubdir": "M0O𒁑꿬",+ "dlUri": "https:gorwlne"+ },+ "( >= 7.2.4 && < 2.1.4 && == 2.7.5 && > 1.6.2 && > 5.4.3 && < 3.5.7 && == 6.6.2 )": {+ "dlHash": "vbeewtq",+ "dlSubdir": {+ "RegexDir": "$"+ },+ "dlUri": "http:scpi"+ }+ },+ "FreeBSD": {+ "( < 7.4.3 && <= 7.3.7 && < 3.1.5 ) || ( >= 5.3.5 ) || ( == 7.5.2 && <= 7.4.7 && > 5.7.8 ) || ( < 7.1.4 && <= 3.1.4 && >= 8.4.2 && < 2.7.6 ) || ( <= 3.7.3 && <= 8.8.4 && == 3.7.2 && > 4.8.3 && == 2.3.1 && < 2.2.4 )": {+ "dlHash": "zz",+ "dlSubdir": {+ "RegexDir": "h"+ },+ "dlUri": "http:blx"+ },+ "( <= 2.6.8 && <= 7.5.5 && >= 6.1.1 && <= 1.2.7 ) || ( <= 7.3.4 && == 5.4.2 ) || ( >= 3.1.3 && >= 1.4.4 && == 5.8.3 && >= 7.6.2 && == 7.6.4 && >= 5.5.5 )": {+ "dlHash": "rwo",+ "dlSubdir": {+ "RegexDir": "𤧲𝢠𣶲\u000e7"+ },+ "dlUri": "https:nlaiak"+ },+ "( <= 2.6.8 && > 8.8.8 && > 1.4.1 && == 8.7.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "塶\u0012𦻥\u001fi*"+ },+ "dlUri": "https:uy"+ },+ "( <= 8.3.5 && == 7.5.5 && <= 2.6.4 && == 8.1.8 && >= 2.3.6 && <= 6.1.6 ) || ( == 6.6.3 && < 6.5.1 ) || ( < 6.2.3 && >= 3.8.2 && < 3.3.3 && > 5.4.2 && == 5.5.9 && == 3.8.2 && > 1.7.8 )": {+ "dlHash": "eeirenyo",+ "dlSubdir": "q",+ "dlUri": "http:rxppb"+ },+ "( == 3.4.1 ) || ( <= 2.6.2 && >= 8.3.2 && == 3.3.2 && > 5.3.2 && == 2.1.5 ) || ( <= 8.6.3 && >= 4.6.8 && == 1.6.8 ) || ( <= 5.1.4 )": {+ "dlHash": "belzy",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:avc"+ },+ "( == 7.6.8 && < 4.6.1 && <= 7.8.7 && <= 7.6.8 && >= 9.6.7 )": {+ "dlHash": "edttgjb",+ "dlSubdir": "",+ "dlUri": "http:qctrv"+ },+ "( >= 6.2.6 && > 8.4.5 && == 1.2.2 && > 6.6.2 && < 8.7.4 ) || ( > 4.3.8 ) || ( <= 1.1.3 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0014"+ },+ "dlUri": "http:bqha"+ },+ "unknown_versioning": {+ "dlHash": "npca",+ "dlSubdir": {+ "RegexDir": "g>"+ },+ "dlUri": "http:yieoe"+ }+ },+ "Linux_Gentoo": {}+ }+ },+ "viChangeLog": null,+ "viPostInstall": "egwp",+ "viPostRemove": "vn",+ "viPreCompile": "crsegnwv",+ "viSourceDL": {+ "dlHash": "gizfs",+ "dlSubdir": "𭵊ah\u000b",+ "dlUri": "https:"+ },+ "viTags": [+ "old",+ "Recommended",+ ">R\u0008teJ蔧",+ "Latest",+ "Latest",+ "Latest",+ "Recommended",+ "Recommended"+ ]+ },+ "8.5.2": {+ "viArch": {+ "A_32": {},+ "A_ARM64": {+ "Darwin": {+ "( <= 4.3.8 && <= 3.1.7 && >= 1.1.4 && == 6.4.7 )": {+ "dlHash": "btbmvs",+ "dlSubdir": {+ "RegexDir": "L4N\u0018(槁"+ },+ "dlUri": "http:mww"+ },+ "( == 6.5.4 && == 8.5.4 && <= 4.8.4 && <= 6.2.3 && >= 1.2.4 && >= 2.7.1 )": {+ "dlHash": "ihoxn",+ "dlSubdir": {+ "RegexDir": "d\u0012/p5\u0007'"+ },+ "dlUri": "http:ueoylua"+ },+ "( > 2.6.6 ) || ( == 6.5.7 && < 4.2.4 && < 7.8.4 && > 6.6.7 && >= 1.6.3 && <= 4.8.7 && >= 6.5.3 && == 4.4.4 ) || ( <= 7.7.8 && < 2.1.4 && <= 6.7.2 && < 5.6.6 && <= 3.8.8 && <= 2.4.2 ) || ( < 3.5.3 && < 6.7.6 && == 3.3.8 && > 7.5.7 && == 8.1.8 && == 2.2.5 && < 7.6.3 && > 8.6.2 )": {+ "dlHash": "jm",+ "dlSubdir": {+ "RegexDir": "𗃋jp\u001ak<🄢"+ },+ "dlUri": "https:wchhfav"+ },+ "( >= 1.5.5 && > 6.8.8 )": {+ "dlHash": "d",+ "dlSubdir": "V\u0001/4\u0013\u001c",+ "dlUri": "http:zm"+ },+ "( >= 7.1.3 && < 7.2.7 && <= 7.4.8 && < 2.2.1 && < 6.4.3 && < 1.5.6 )": {+ "dlHash": "c",+ "dlSubdir": {+ "RegexDir": "f\u0006Tw\u0010+\u0019𣂫"+ },+ "dlUri": "http:nh"+ },+ "unknown_versioning": {+ "dlHash": "akmkc",+ "dlSubdir": {+ "RegexDir": "\u0010.~#Kv椀\u0016"+ },+ "dlUri": "http:bcapvjhr"+ }+ },+ "FreeBSD": {+ "( < 8.3.8 && >= 1.2.7 && == 8.8.1 && > 5.1.5 && > 4.5.5 && > 1.4.7 && < 6.5.1 && <= 4.6.2 && <= 5.3.7 ) || ( <= 5.7.3 && <= 3.6.5 && == 6.3.7 && >= 2.6.1 && > 5.7.4 && < 6.6.5 && < 3.3.1 && < 8.1.4 && < 4.1.8 )": {+ "dlHash": "fy",+ "dlSubdir": null,+ "dlUri": "https:fb"+ },+ "( == 4.7.2 && <= 7.1.6 && > 3.5.2 && > 6.2.1 && >= 4.1.3 && >= 7.7.8 && == 2.6.8 && <= 1.3.1 )": {+ "dlHash": "tg",+ "dlSubdir": "囷h𓃥\u0016N\u001cmꢖ",+ "dlUri": "http:czhcq"+ },+ "( == 5.2.6 && < 7.4.7 && <= 2.6.5 && <= 4.3.1 && == 8.1.8 && >= 7.8.6 ) || ( == 1.2.6 && < 1.5.3 && < 7.4.8 && > 7.1.6 && <= 2.6.2 && > 3.3.4 && >= 3.3.5 )": {+ "dlHash": "tt",+ "dlSubdir": "9)\u00122",+ "dlUri": "http:rq"+ },+ "( == 7.4.8 && >= 4.4.2 && > 6.6.7 && < 8.4.6 && >= 7.3.2 && < 7.1.5 && == 8.5.8 && >= 3.2.2 && >= 4.3.7 ) || ( < 5.6.6 && <= 3.2.2 && == 7.7.3 )": {+ "dlHash": "ozkesg",+ "dlSubdir": null,+ "dlUri": "http:edoswym"+ },+ "unknown_versioning": {+ "dlHash": "udi",+ "dlSubdir": {+ "RegexDir": "-&\u0012^"+ },+ "dlUri": "https:hctzs"+ }+ },+ "Linux_Gentoo": {+ "( <= 8.1.2 && >= 4.3.6 )": {+ "dlHash": "epfbajcz",+ "dlSubdir": null,+ "dlUri": "https:z"+ },+ "unknown_versioning": {+ "dlHash": "muali",+ "dlSubdir": "\u0008%s",+ "dlUri": "http:dd"+ }+ }+ }+ },+ "viChangeLog": "https:ieqx",+ "viPostInstall": "hqpy",+ "viPostRemove": "vbupaa",+ "viPreCompile": "lu",+ "viSourceDL": {+ "dlHash": "l",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "viTags": [+ "{=6𨠘𩩎\u0011e",+ "old",+ "Prerelease",+ "base-5.8.1",+ "Latest",+ "Latest",+ "base-8.7.3"+ ]+ }+ }+ },+ "globalTools": {+ "ShimGen": {+ "dlHash": "",+ "dlSubdir": "+\u0016}9愔NIHa",+ "dlUri": "https:erxujsdtnkvfqdelcufbxpvllocyoo"+ }+ },+ "toolRequirements": {+ "GHCup": {+ "3.8.8": {+ "Darwin": {+ "( <= 8.6.2 && > 2.3.4 && < 4.3.4 )": {+ "distroPKGs": [+ "is",+ "j",+ "ucr",+ "vyzatm",+ "pt",+ "tzzuu",+ "k"+ ],+ "notes": ""+ },+ "( == 2.3.5 )": {+ "distroPKGs": [+ "i",+ "uxt",+ "v"+ ],+ "notes": "mexlmar"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "cxwguwb"+ ],+ "notes": "znpm"+ }+ },+ "FreeBSD": {+ "( < 6.3.1 && > 5.6.4 && == 3.4.3 ) || ( > 2.1.6 && < 2.4.2 && < 5.4.4 && >= 5.6.5 && > 2.8.4 && >= 6.3.1 && < 8.1.1 && < 3.2.5 )": {+ "distroPKGs": [+ "w",+ "fvdnmed",+ "grzy"+ ],+ "notes": "e"+ },+ "( <= 1.2.6 && == 1.8.2 && <= 1.4.6 && > 2.8.2 && < 3.6.6 && == 5.9.8 && > 2.7.3 && >= 2.3.6 ) || ( < 6.2.1 && <= 6.3.3 ) || ( > 2.2.7 && >= 3.1.5 ) || ( >= 7.3.6 && < 7.3.2 && == 1.6.1 && <= 5.2.3 && <= 1.7.1 && >= 4.2.4 && < 3.7.7 && <= 1.6.7 ) || ( == 4.2.3 && <= 3.4.8 && <= 1.7.8 && == 1.8.3 && >= 7.3.8 && < 5.8.4 && <= 2.1.7 ) || ( >= 5.3.1 && == 7.6.7 && <= 6.6.8 && >= 3.1.6 && == 2.3.2 )": {+ "distroPKGs": [+ "qaq",+ "otd",+ "fsp",+ "pxpj",+ "zmdl",+ "apt",+ "otspy"+ ],+ "notes": "jy"+ },+ "( <= 5.5.3 && >= 2.3.7 && == 5.6.6 && == 2.6.6 )": {+ "distroPKGs": [+ "",+ "vhze",+ "cfiu",+ "bpo",+ "",+ "",+ ""+ ],+ "notes": "rtx"+ },+ "( >= 1.3.3 && <= 3.6.8 && < 1.4.9 && >= 4.4.4 ) || ( > 8.7.4 && == 1.4.6 && < 4.2.6 && == 5.6.5 && >= 8.2.6 && > 5.3.4 )": {+ "distroPKGs": [+ "wlnl",+ "p"+ ],+ "notes": ""+ },+ "( >= 6.2.7 && <= 7.4.2 && < 3.2.3 ) || ( < 3.4.1 && == 6.5.7 && <= 8.2.4 && >= 5.1.5 )": {+ "distroPKGs": [+ "t",+ "jqybihqs",+ "d",+ "foxcxcid",+ "",+ "",+ "jkmhkou"+ ],+ "notes": "cquuylfu"+ }+ },+ "Linux_AmazonLinux": {+ "( <= 6.7.4 ) || ( < 8.6.5 && == 2.8.7 && == 1.2.4 && == 4.2.2 && < 2.8.4 && >= 3.3.7 && >= 1.5.2 && <= 5.5.5 ) || ( > 4.1.5 && <= 7.6.4 && == 8.3.5 && > 6.7.7 )": {+ "distroPKGs": [],+ "notes": "xk"+ },+ "( <= 8.7.6 && > 7.2.8 && <= 4.3.6 && > 8.2.1 && <= 5.8.8 && > 2.7.5 ) || ( == 2.5.7 && == 8.5.1 && <= 8.1.3 && <= 3.2.4 && < 3.2.7 && <= 3.4.1 && == 1.8.1 && <= 8.2.8 )": {+ "distroPKGs": [+ "",+ "konnrns",+ "",+ "rloopixg",+ "lbdf",+ "kscrid",+ "qukqmvzd"+ ],+ "notes": "ast"+ },+ "( == 4.5.7 && >= 5.8.5 && == 4.4.2 && == 5.4.1 && < 1.2.7 && < 1.6.5 && == 5.8.8 && >= 4.8.3 )": {+ "distroPKGs": [+ "rcn",+ "e"+ ],+ "notes": "dd"+ },+ "( == 4.7.1 && > 5.7.7 && > 6.8.8 && >= 6.8.7 && >= 2.7.4 && < 2.2.2 && == 2.4.6 && > 6.5.1 ) || ( < 2.8.2 && <= 5.5.6 && >= 4.8.4 && == 8.3.4 )": {+ "distroPKGs": [+ "xbqtwto",+ "qhd",+ "onn"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "dyyge"+ ],+ "notes": "ckgs"+ }+ },+ "Linux_Ubuntu": {},+ "Windows": {+ "( < 6.3.6 && <= 9.7.6 && >= 1.3.8 ) || ( == 2.7.2 && > 2.2.6 )": {+ "distroPKGs": [+ "",+ "duwb"+ ],+ "notes": "o"+ },+ "( <= 2.7.4 && <= 1.2.4 && <= 6.3.5 && <= 1.4.2 && >= 6.4.8 && < 5.3.3 && <= 6.2.6 && <= 3.7.7 && > 4.2.2 )": {+ "distroPKGs": [+ "",+ "xsgonn"+ ],+ "notes": "zzxj"+ },+ "( <= 4.6.8 && == 5.5.7 ) || ( < 5.2.3 && == 4.7.5 && >= 6.7.5 && >= 4.2.2 && >= 5.7.1 )": {+ "distroPKGs": [+ "",+ "rjnnh",+ "riupvqfk",+ "lv",+ "",+ "zkfozzz",+ "mzqlhr",+ "eo"+ ],+ "notes": "etgfqx"+ }+ }+ },+ "unknown_version": {+ "FreeBSD": {+ "( < 4.1.3 ) || ( <= 1.7.6 && > 1.8.7 && <= 4.5.6 && > 5.3.8 && < 2.3.6 && == 3.1.2 && == 1.8.2 ) || ( >= 7.8.3 && < 6.2.6 )": {+ "distroPKGs": [+ "ejdmkuof",+ "oxt"+ ],+ "notes": "qzt"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "x",+ "eaoos",+ ""+ ],+ "notes": "dek"+ }+ },+ "Windows": {+ "( < 1.5.4 && > 7.1.3 && == 3.6.8 && > 5.1.1 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "v"+ },+ "( == 2.7.6 && <= 5.6.2 && > 6.6.5 && >= 7.6.4 && > 5.5.4 && < 2.4.1 && < 8.4.4 && < 3.8.5 )": {+ "distroPKGs": [+ "",+ "f",+ "swwrrrp",+ "wufesm"+ ],+ "notes": "pbdn"+ },+ "( > 3.7.5 )": {+ "distroPKGs": [+ "s",+ "fwo",+ "wsvlvnm",+ "forzyd"+ ],+ "notes": "p"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "cpd",+ "lkmpz",+ "eeoamioh",+ "fshpc",+ "hshlaiav",+ "",+ "z",+ "ibwzlhbg"+ ],+ "notes": "hi"+ }+ }+ }+ },+ "HLS": {+ "1.3.3": {+ "Darwin": {+ "( < 4.5.4 && < 6.1.3 && <= 7.7.5 && == 7.6.5 ) || ( <= 5.6.1 ) || ( >= 6.3.6 && == 5.5.7 && > 2.6.3 && > 1.6.3 && > 7.7.5 && > 7.3.2 && >= 7.1.7 && >= 6.3.4 ) || ( >= 1.2.6 && == 3.6.8 && < 3.3.6 && == 6.4.5 ) || ( == 2.4.4 && < 7.1.1 && >= 5.6.5 && <= 1.4.1 && >= 3.3.4 && == 4.1.5 )": {+ "distroPKGs": [+ "mfqx",+ "w",+ "qsajnee",+ "aj",+ "xww",+ "ylnwzfql",+ "amo"+ ],+ "notes": "trxvpd"+ },+ "( <= 8.2.4 && == 7.8.2 )": {+ "distroPKGs": [+ "",+ "",+ "ekmsih",+ "ihpwp",+ "unaddaf"+ ],+ "notes": "gujtjk"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "nzhubfzi",+ "ebm",+ "z",+ "hptvoimo",+ "fzqt"+ ],+ "notes": "lcntathl"+ }+ },+ "FreeBSD": {+ "( == 6.2.6 && < 6.5.2 && >= 2.4.5 && == 1.7.3 && >= 5.4.8 ) || ( > 3.6.8 && >= 1.7.6 && <= 7.5.3 && == 1.4.6 && >= 3.6.4 && <= 4.2.8 ) || ( >= 4.6.7 && < 2.6.8 && < 4.5.2 && < 2.4.1 && == 6.5.2 && >= 3.3.1 && < 4.7.2 )": {+ "distroPKGs": [+ "igeawz",+ "ayzc",+ "cjttq",+ "tdqdbx"+ ],+ "notes": "wdu"+ },+ "( >= 7.3.8 && >= 1.5.6 && > 8.4.3 && <= 8.3.2 && > 4.8.5 && >= 3.8.3 && < 3.1.8 && < 7.6.4 && <= 1.4.1 )": {+ "distroPKGs": [],+ "notes": "veh"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "mcnhl",+ ""+ ],+ "notes": "f"+ }+ },+ "Linux_RedHat": {+ "( < 7.6.1 && < 8.5.2 ) || ( < 8.7.1 && < 4.3.7 && == 6.4.8 && <= 6.8.2 && < 4.4.6 && <= 1.4.7 ) || ( <= 5.4.5 ) || ( > 1.6.6 && < 3.6.1 && >= 5.5.2 && >= 3.8.8 && <= 4.1.8 && == 1.2.2 ) || ( > 8.2.3 && > 4.1.8 )": {+ "distroPKGs": [+ "knomd",+ "uxxdor",+ "vqtg",+ "",+ "fmgml",+ "qp",+ "ehra",+ ""+ ],+ "notes": "hx"+ },+ "( <= 6.5.2 && <= 1.6.4 && < 1.7.2 && == 1.2.1 && == 8.6.5 && == 2.7.8 && == 7.3.6 )": {+ "distroPKGs": [+ "gazfmkmn",+ "uy",+ "dyjuemzc",+ "uf",+ "any",+ "cjyl"+ ],+ "notes": "a"+ },+ "( == 3.5.6 && <= 7.2.1 && >= 2.7.4 && < 2.3.3 && == 4.3.2 && >= 2.8.6 ) || ( > 7.8.3 && < 2.1.7 && < 4.8.7 && >= 4.1.7 && == 2.1.8 ) || ( > 9.6.3 && >= 4.5.8 && <= 8.6.5 && == 3.8.7 && > 4.5.7 )": {+ "distroPKGs": [+ "rtk",+ "yakgb",+ "smsqb",+ "dfb"+ ],+ "notes": "psztz"+ },+ "( > 7.7.4 && > 2.2.6 && < 7.6.4 && <= 4.8.6 && == 4.2.2 ) || ( >= 5.4.7 ) || ( == 5.2.3 && > 5.7.1 && == 3.3.3 && > 6.2.4 ) || ( >= 2.3.4 ) || ( > 6.6.5 && >= 2.3.2 && >= 8.6.5 && > 4.1.2 && > 1.2.1 && <= 1.8.3 && >= 8.7.4 && == 5.2.4 ) || ( < 5.5.4 && == 7.4.4 && >= 7.5.5 && == 8.8.7 ) || ( > 5.7.5 && >= 1.3.5 && >= 2.4.6 && == 3.4.1 && == 7.5.8 && >= 5.4.2 && <= 4.1.3 && >= 5.3.8 ) || ( == 6.1.5 && == 1.2.8 && > 4.5.2 && <= 8.8.2 && < 2.3.3 ) || ( <= 6.8.2 && == 8.7.1 && > 6.7.2 && >= 3.4.2 && == 1.4.6 && <= 5.3.3 && > 2.4.2 && <= 8.6.7 ) || ( == 7.9.6 && <= 9.5.3 && <= 5.7.3 && <= 5.3.7 && < 2.4.3 && >= 5.5.6 && >= 6.1.1 && < 3.6.3 )": {+ "distroPKGs": [+ "thq",+ "oxvewnt",+ "zyomsmxb",+ "i",+ "ueldegli",+ "cy",+ "frmfmwf",+ "rqld"+ ],+ "notes": "rcpm"+ },+ "( >= 4.8.2 && > 4.5.1 && < 1.6.2 && == 3.4.7 && < 4.6.1 && >= 3.7.4 && <= 1.2.3 ) || ( == 5.8.2 && > 2.5.6 && < 1.1.7 && > 4.5.3 && >= 2.6.3 && > 1.1.1 && >= 1.2.2 && > 4.2.3 )": {+ "distroPKGs": [],+ "notes": "svkwghyq"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "fse",+ "yvnbdb",+ "vmwmwq",+ "f"+ ],+ "notes": "dld"+ }+ },+ "Windows": {+ "( == 2.7.5 && >= 4.7.3 && >= 6.2.6 && == 4.2.3 && < 6.3.2 && > 3.8.8 && < 2.7.6 && == 5.5.6 && <= 5.7.5 )": {+ "distroPKGs": [+ "vln",+ "knpawo",+ "befujdbg"+ ],+ "notes": "zsaphh"+ },+ "( == 8.6.7 && <= 7.5.2 && <= 1.2.8 && >= 1.8.8 && < 4.5.6 && == 3.5.3 ) || ( < 5.4.2 && >= 2.3.2 && >= 2.1.4 )": {+ "distroPKGs": [],+ "notes": "k"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "fqacbif",+ "nci"+ ],+ "notes": "hyun"+ }+ }+ },+ "5.4.1": {+ "FreeBSD": {+ "( <= 5.5.5 && >= 8.1.4 && == 4.7.5 )": {+ "distroPKGs": [+ "xjv",+ "qvgd",+ "fkv"+ ],+ "notes": "lrcs"+ }+ },+ "Linux_Exherbo": {+ "( <= 1.8.4 && > 6.4.8 && == 1.8.7 && > 2.4.6 && < 5.6.5 && >= 2.7.5 && == 3.5.7 && >= 5.7.5 && >= 8.5.2 ) || ( > 7.5.2 && >= 7.1.2 && <= 4.6.3 ) || ( >= 5.2.7 && == 7.2.5 && <= 6.8.5 ) || ( == 5.3.8 && <= 8.6.5 && <= 2.1.8 && == 3.2.8 && >= 8.7.3 && > 5.7.6 && >= 2.7.4 && >= 1.2.1 && == 6.3.1 ) || ( >= 8.8.1 && == 6.3.7 && <= 6.2.6 && < 6.3.3 && <= 2.4.1 )": {+ "distroPKGs": [+ "kjlflwy"+ ],+ "notes": "nko"+ },+ "( <= 2.6.8 && > 7.5.5 ) || ( == 1.7.7 )": {+ "distroPKGs": [+ "xkobhgf",+ "xbig",+ "hyvrxo",+ "rbowkze",+ "ehvurc"+ ],+ "notes": "sjlmqhy"+ },+ "( >= 1.2.1 && == 5.8.1 )": {+ "distroPKGs": [+ "pqe",+ "qyncvj",+ ""+ ],+ "notes": "olonfr"+ },+ "( >= 8.5.3 && == 7.5.8 && >= 7.6.6 )": {+ "distroPKGs": [+ "p",+ "k",+ "qvribbeu"+ ],+ "notes": "dolph"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "uyuzjir",+ "yj",+ "jkqolzz",+ "ojfyzb",+ "iheyg",+ "mgr",+ "qslruh",+ "qjuuf"+ ],+ "notes": "hsfdnod"+ }+ }+ },+ "8.5.8": {+ "Windows": {}+ }+ }+ }+ },+ {+ "ghcupDownloads": {+ "GHC": {+ "1.1.1": {+ "viArch": {},+ "viChangeLog": "http:msr",+ "viPostInstall": null,+ "viPostRemove": "jpehk",+ "viPreCompile": "ucz",+ "viSourceDL": {+ "dlHash": "nryawf",+ "dlSubdir": {+ "RegexDir": "?EJ8"+ },+ "dlUri": "https:zxekodom"+ },+ "viTags": []+ },+ "3.2.1": {+ "viArch": {+ "A_32": {},+ "A_PowerPC": {+ "Darwin": {+ "( == 8.2.1 && >= 6.3.1 && < 7.6.4 )": {+ "dlHash": "jw",+ "dlSubdir": {+ "RegexDir": "d\u001aV"+ },+ "dlUri": "http:ipksro"+ },+ "( == 8.2.5 && <= 1.1.2 && <= 6.6.8 && >= 1.8.1 && < 2.5.9 ) || ( <= 8.4.8 && <= 2.4.4 && >= 3.5.5 && < 7.2.1 && <= 7.4.7 && == 1.1.7 ) || ( <= 5.5.6 )": {+ "dlHash": "ml",+ "dlSubdir": "y^",+ "dlUri": "https:kcd"+ },+ "( > 2.3.5 ) || ( <= 6.7.8 && > 5.8.5 )": {+ "dlHash": "zocxzp",+ "dlSubdir": {+ "RegexDir": "cv,eP"+ },+ "dlUri": "https:bhery"+ },+ "( > 5.3.3 && > 4.3.6 && >= 7.5.2 && >= 9.8.1 && >= 2.3.5 && >= 6.8.6 && == 7.6.2 ) || ( <= 4.8.2 )": {+ "dlHash": "nqde",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( > 7.7.7 && >= 6.2.5 && == 6.1.1 && <= 7.7.3 && < 7.3.2 )": {+ "dlHash": "hymmh",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:afmc"+ },+ "( >= 7.3.2 && > 6.8.7 && >= 2.4.3 && == 3.2.3 && < 5.7.2 )": {+ "dlHash": "z",+ "dlSubdir": null,+ "dlUri": "https:ouwr"+ },+ "unknown_versioning": {+ "dlHash": "gxk",+ "dlSubdir": "\u0007䉂F\u0007",+ "dlUri": "https:nozhwwvx"+ }+ },+ "FreeBSD": {+ "( < 3.6.8 && == 1.7.1 && >= 5.8.2 && > 7.7.2 && >= 4.1.3 && < 2.1.4 && == 2.7.3 )": {+ "dlHash": "vchn",+ "dlSubdir": "𝄜𡒉q_",+ "dlUri": "http:l"+ },+ "( == 3.4.5 && <= 5.3.2 && <= 1.4.1 ) || ( > 1.2.5 && == 5.2.4 && >= 2.1.7 && >= 2.1.1 && > 1.4.6 && < 3.2.6 && >= 4.2.7 )": {+ "dlHash": "odqiaot",+ "dlSubdir": "UC\u0019",+ "dlUri": "http:gxdmxj"+ },+ "( == 4.1.7 ) || ( < 4.7.5 && < 3.5.7 && < 4.7.8 && <= 5.3.4 && <= 8.5.8 && > 3.7.8 )": {+ "dlHash": "",+ "dlSubdir": "g!:jJ",+ "dlUri": "https:aumrk"+ },+ "( >= 7.4.7 && <= 3.6.1 && < 1.1.7 && > 8.6.1 )": {+ "dlHash": "sfmq",+ "dlSubdir": "o\u0019⦶𡛧8qo",+ "dlUri": "http:hlpd"+ },+ "unknown_versioning": {+ "dlHash": "oad",+ "dlSubdir": "iV8𦥢𠩿w\u0003",+ "dlUri": "http:sgrjou"+ }+ },+ "Windows": {+ "( < 4.2.7 && <= 6.6.1 && >= 2.3.2 && < 6.8.7 && == 7.1.4 && >= 3.9.5 ) || ( >= 1.5.9 && == 3.3.3 && >= 4.4.8 ) || ( < 5.1.2 && > 5.4.7 && >= 8.1.8 && < 2.8.3 ) || ( <= 2.8.6 && >= 5.6.1 && == 1.1.2 && > 6.7.6 && == 2.7.5 && < 5.6.1 && > 2.8.2 && > 1.6.6 && >= 1.4.3 )": {+ "dlHash": "tmr",+ "dlSubdir": {+ "RegexDir": "𗈦𧠘tt"+ },+ "dlUri": "http:"+ },+ "( < 5.3.4 )": {+ "dlHash": "ww",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( < 7.6.6 && > 7.1.9 && > 8.1.1 && <= 8.3.2 && == 8.6.4 )": {+ "dlHash": "cmq",+ "dlSubdir": "0\u0012",+ "dlUri": "https:c"+ },+ "( == 2.6.6 && < 8.5.2 && <= 1.1.7 && > 8.2.3 && == 1.1.3 && == 4.3.5 ) || ( > 5.8.7 )": {+ "dlHash": "ty",+ "dlSubdir": null,+ "dlUri": "https:v"+ },+ "( == 6.7.6 && > 5.6.2 && == 6.6.3 && < 6.3.6 ) || ( == 1.1.1 )": {+ "dlHash": "mwqqdxk",+ "dlSubdir": "z.w",+ "dlUri": "http:sj"+ },+ "( > 3.3.7 && < 6.3.6 && <= 7.6.2 && < 2.3.3 && < 1.4.3 ) || ( == 1.7.8 ) || ( >= 7.6.1 && >= 6.8.5 && <= 6.6.1 )": {+ "dlHash": "rbvgspn",+ "dlSubdir": "IW",+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:bm"+ }+ }+ },+ "A_Sparc64": {+ "FreeBSD": {+ "( < 7.8.4 && <= 5.2.4 && < 4.6.7 && > 1.2.3 && < 2.5.6 && < 2.5.1 )": {+ "dlHash": "j",+ "dlSubdir": "\u0019#3Un𑀗",+ "dlUri": "https:gbzkvhqs"+ },+ "( <= 7.7.7 && <= 1.6.3 && == 5.1.4 && == 7.7.2 )": {+ "dlHash": "bznb",+ "dlSubdir": "l3𭶒",+ "dlUri": "https:bt"+ },+ "( == 5.1.1 && == 5.3.1 && < 4.6.2 && > 4.2.8 && == 4.9.1 && > 3.5.8 )": {+ "dlHash": "",+ "dlSubdir": "\u000ew:rjR/",+ "dlUri": "https:sbvbxki"+ },+ "( == 6.7.6 && >= 4.3.7 ) || ( >= 1.7.1 && <= 6.2.1 && > 3.3.6 && <= 8.6.2 && >= 7.2.5 && < 2.3.4 )": {+ "dlHash": "lr",+ "dlSubdir": {+ "RegexDir": "{'"+ },+ "dlUri": "http:igua"+ },+ "( > 6.4.3 && > 7.5.1 && < 1.8.5 && >= 7.6.5 && >= 3.2.2 && == 5.6.2 && >= 7.5.4 )": {+ "dlHash": "ycgruziu",+ "dlSubdir": {+ "RegexDir": "𪌘`𫯠.𩂘"+ },+ "dlUri": "https:mvjzpp"+ },+ "( >= 2.8.4 && < 7.2.8 && < 4.2.8 && <= 8.6.5 && < 8.2.1 ) || ( <= 2.8.7 && >= 3.3.1 && < 7.6.1 ) || ( >= 3.4.7 && < 8.6.1 && <= 3.3.4 && <= 2.6.6 && < 7.8.5 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:kbv"+ },+ "( >= 7.3.6 && < 6.3.4 && > 4.1.8 && == 4.8.1 && == 7.4.3 ) || ( > 2.7.1 && >= 1.6.3 && == 9.2.2 && > 3.6.2 && == 5.8.4 && == 4.3.3 && == 2.1.7 && == 5.5.8 ) || ( > 5.4.2 && <= 7.2.5 && < 3.7.4 )": {+ "dlHash": "nau",+ "dlSubdir": null,+ "dlUri": "http:nedcdh"+ },+ "unknown_versioning": {+ "dlHash": "suxqku",+ "dlSubdir": null,+ "dlUri": "https:fpb"+ }+ },+ "Windows": {+ "( >= 6.7.6 && > 1.1.4 )": {+ "dlHash": "zhwg",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:d"+ }+ }+ }+ },+ "viChangeLog": "https:",+ "viPostInstall": "nvs",+ "viPostRemove": null,+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "n",+ "dlSubdir": "kGow",+ "dlUri": "http:tkxzfxcq"+ },+ "viTags": [+ "Latest",+ "Prerelease",+ "base-1.8.7",+ "Prerelease",+ "base-7.7.6",+ "𩺈𥲬\u0015A~",+ "old"+ ]+ },+ "4.5.3": {+ "viArch": {+ "A_ARM64": {+ "Darwin": {+ "( < 8.6.5 && <= 4.3.2 && >= 5.4.2 && == 8.8.7 ) || ( >= 8.1.5 ) || ( >= 4.8.3 && < 6.1.2 && > 8.6.1 )": {+ "dlHash": "nxsbqgg",+ "dlSubdir": "",+ "dlUri": "https:h"+ },+ "( <= 6.4.1 && > 4.2.7 && >= 7.1.8 ) || ( < 5.3.5 && <= 8.7.1 )": {+ "dlHash": "w",+ "dlSubdir": {+ "RegexDir": "\u0000xTw"+ },+ "dlUri": "http:jrpvjp"+ },+ "( <= 7.3.8 && > 5.2.4 && == 2.4.3 && == 1.8.7 )": {+ "dlHash": "gteuvfyd",+ "dlSubdir": {+ "RegexDir": "\u000b7k\n.\u001d"+ },+ "dlUri": "http:irdtcou"+ },+ "( <= 7.7.3 && <= 8.5.4 && < 4.4.2 && < 5.4.1 && <= 1.7.1 ) || ( == 3.7.3 && >= 6.6.7 ) || ( < 6.8.7 && > 8.3.7 && >= 5.6.1 && < 4.4.2 && > 6.5.5 ) || ( >= 7.7.1 && > 3.2.1 && > 1.7.3 && <= 4.4.7 && < 2.3.7 )": {+ "dlHash": "tmkmrweg",+ "dlSubdir": "r\u0001\u0004Vtl",+ "dlUri": "http:dsfwi"+ },+ "( > 8.7.7 && > 5.1.1 && > 6.4.3 ) || ( < 1.8.1 && >= 8.4.8 && == 5.5.8 ) || ( > 5.2.3 && < 4.4.5 ) || ( < 7.8.8 && >= 5.7.2 && == 8.3.1 && > 7.1.2 && <= 5.1.3 && >= 5.7.4 && > 2.2.5 )": {+ "dlHash": "dnx",+ "dlSubdir": "-a",+ "dlUri": "https:vccsw"+ },+ "( >= 2.4.1 && < 7.3.3 && < 8.6.5 && > 2.7.8 && == 7.6.8 && == 5.2.1 && < 4.5.4 && < 4.5.4 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "w\u001d"+ },+ "dlUri": "https:kveaqx"+ },+ "( >= 6.1.1 && >= 8.8.4 && == 4.6.8 && < 6.2.8 && <= 6.2.7 )": {+ "dlHash": "ccssyt",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:maknsyl"+ }+ },+ "FreeBSD": {+ "( < 1.3.1 ) || ( <= 5.3.3 && <= 4.3.3 && >= 1.1.5 && == 4.3.7 && < 3.5.8 && > 6.7.4 && == 5.3.1 )": {+ "dlHash": "eipjsn",+ "dlSubdir": {+ "RegexDir": "\u0017z\u0004g^"+ },+ "dlUri": "https:aj"+ },+ "( < 4.2.8 && <= 2.4.8 )": {+ "dlHash": "dfurzt",+ "dlSubdir": "w",+ "dlUri": "http:zhthj"+ },+ "( <= 1.1.2 && <= 5.3.7 && <= 7.4.1 )": {+ "dlHash": "luazsl",+ "dlSubdir": {+ "RegexDir": "X叫\tc{\u0011"+ },+ "dlUri": "https:"+ },+ "( == 1.4.1 && > 6.1.2 && < 7.4.8 && == 1.7.5 && == 8.5.4 && <= 8.2.6 && < 2.2.5 && > 2.3.4 && >= 7.2.5 )": {+ "dlHash": "ft",+ "dlSubdir": {+ "RegexDir": "]"+ },+ "dlUri": "https:boattr"+ },+ "unknown_versioning": {+ "dlHash": "miqzq",+ "dlSubdir": "",+ "dlUri": "http:kh"+ }+ },+ "Windows": {+ "( <= 2.5.3 && <= 2.8.8 && >= 5.1.4 )": {+ "dlHash": "tutjkoq",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:rlsh"+ },+ "( <= 5.1.7 && < 3.6.4 && > 8.6.8 && >= 2.3.7 )": {+ "dlHash": "lvios",+ "dlSubdir": "\tZ",+ "dlUri": "http:khovdftf"+ },+ "( > 8.6.3 && > 5.6.3 && > 1.2.1 && > 7.8.5 && == 2.4.8 && < 4.2.6 && <= 5.8.5 && == 4.2.7 )": {+ "dlHash": "xlpqa",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:mnh"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 1.7.7 && > 1.8.8 && == 2.2.1 && <= 2.8.4 && <= 2.5.6 && == 4.6.8 && < 4.2.2 && <= 4.3.8 && > 6.1.4 ) || ( >= 6.2.3 && > 1.3.2 && < 2.8.4 && == 2.1.6 ) || ( >= 4.5.5 && >= 6.2.6 && <= 2.2.5 && == 7.7.4 && == 3.2.4 && > 1.4.6 && <= 7.3.4 && >= 1.1.3 ) || ( <= 2.4.7 && > 2.6.6 && >= 3.6.8 && <= 6.3.8 && >= 5.4.8 && <= 8.4.2 && == 3.4.5 && > 3.4.8 )": {+ "dlHash": "ilt",+ "dlSubdir": null,+ "dlUri": "https:vki"+ },+ "( <= 3.3.4 && <= 2.2.8 && >= 7.2.5 )": {+ "dlHash": "kvbd",+ "dlSubdir": null,+ "dlUri": "http:fhe"+ },+ "( <= 6.7.8 && == 8.8.1 && >= 6.3.1 && == 8.8.4 && > 7.5.7 ) || ( >= 8.4.4 ) || ( < 6.1.7 )": {+ "dlHash": "ct",+ "dlSubdir": "lkP",+ "dlUri": "http:hik"+ },+ "( == 8.8.6 && <= 6.8.5 && > 3.1.2 && == 8.1.1 && < 2.4.6 && <= 3.7.2 && >= 7.8.4 && >= 7.1.4 && > 3.1.4 )": {+ "dlHash": "vzn",+ "dlSubdir": "ks\u0006t𧲳@`𪐯",+ "dlUri": "http:cem"+ },+ "unknown_versioning": {+ "dlHash": "nftgjger",+ "dlSubdir": null,+ "dlUri": "http:yr"+ }+ },+ "FreeBSD": {+ "( == 7.4.8 && > 4.6.3 && > 2.5.4 && < 2.2.1 && <= 4.5.4 && > 2.2.2 && >= 6.3.6 && > 8.4.2 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:orrhja"+ },+ "unknown_versioning": {+ "dlHash": "jofic",+ "dlSubdir": "",+ "dlUri": "https:"+ }+ },+ "Linux_Exherbo": {+ "( < 1.2.4 && <= 7.1.2 && >= 1.3.3 && == 8.7.5 && >= 2.6.3 && <= 8.1.3 && > 4.6.7 && == 7.8.6 && == 3.4.4 )": {+ "dlHash": "",+ "dlSubdir": "\u000bv𓐋R\"",+ "dlUri": "http:w"+ },+ "( < 7.2.6 && > 6.6.1 && < 6.5.5 && > 7.8.7 && == 7.7.7 ) || ( <= 3.3.4 && < 4.3.6 && >= 8.3.3 )": {+ "dlHash": "bb",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:"+ },+ "( <= 4.1.8 && == 7.8.5 && < 2.4.4 && > 8.4.4 && > 1.2.3 && >= 2.4.3 && >= 1.5.6 ) || ( <= 1.2.4 && <= 9.7.4 && < 6.1.3 && == 2.3.7 && >= 8.3.8 && <= 8.7.6 && > 6.1.1 && > 3.6.8 && >= 6.2.7 )": {+ "dlHash": "jmoi",+ "dlSubdir": "\u0016\u000fm𝄴𫹪司",+ "dlUri": "http:viupudu"+ },+ "( <= 8.6.3 && == 4.3.3 && < 3.1.6 && <= 7.8.2 && >= 5.1.3 )": {+ "dlHash": "b",+ "dlSubdir": "\u001e\u0011",+ "dlUri": "https:l"+ },+ "( >= 5.3.3 && >= 4.5.2 && >= 3.5.2 && >= 8.6.4 && < 2.6.6 && <= 4.4.8 ) || ( > 7.5.2 && < 1.8.5 && >= 7.6.8 && == 3.6.1 && > 4.7.2 ) || ( > 1.6.5 && <= 4.4.6 && == 7.8.7 && < 8.2.3 ) || ( < 6.2.1 )": {+ "dlHash": "mp",+ "dlSubdir": {+ "RegexDir": "\u0006*t\r/\""+ },+ "dlUri": "http:sccwj"+ },+ "unknown_versioning": {+ "dlHash": "xec",+ "dlSubdir": {+ "RegexDir": "G𘃮⒩\u0010𦻗0𡕂"+ },+ "dlUri": "http:hhrq"+ }+ }+ }+ },+ "viChangeLog": "https:vyih",+ "viPostInstall": "vouuw",+ "viPostRemove": "widnqidl",+ "viPreCompile": "hdykow",+ "viSourceDL": {+ "dlHash": "in",+ "dlSubdir": "\u000f<",+ "dlUri": "https:bxumqu"+ },+ "viTags": [+ "Recommended",+ "Latest",+ "Latest",+ "base-1.5.2",+ "Latest",+ "old"+ ]+ },+ "7.3.9": {+ "viArch": {+ "A_ARM": {+ "FreeBSD": {+ "( < 6.6.7 && < 6.4.6 && == 5.2.2 && >= 1.8.5 && == 1.8.4 && == 6.4.5 && == 8.9.2 && >= 2.4.5 ) || ( >= 8.3.8 )": {+ "dlHash": "out",+ "dlSubdir": "B瑝I\u001f\r!",+ "dlUri": "http:pjbx"+ },+ "( > 5.6.2 && < 4.1.7 && <= 2.8.6 && >= 8.5.8 && == 7.6.5 && < 4.4.3 && < 8.1.6 && == 2.4.8 && < 1.7.8 ) || ( >= 6.5.5 && <= 5.8.2 && < 7.3.5 && >= 3.5.1 ) || ( > 8.6.7 && == 5.3.1 ) || ( < 8.8.3 && >= 3.2.5 )": {+ "dlHash": "fcxsqlfb",+ "dlSubdir": null,+ "dlUri": "https:folcufqg"+ },+ "( >= 3.4.5 && < 1.5.1 && < 8.7.8 && < 4.7.5 && < 6.7.8 && == 8.1.3 && <= 1.1.5 )": {+ "dlHash": "c",+ "dlSubdir": {+ "RegexDir": "D>𨰎\u0017"+ },+ "dlUri": "http:lea"+ }+ }+ },+ "A_PowerPC": {+ "Darwin": {+ "( < 4.8.4 && > 6.6.6 )": {+ "dlHash": "dd",+ "dlSubdir": "\u000b.A$9<4",+ "dlUri": "http:une"+ },+ "( <= 3.3.5 && >= 5.8.8 && <= 1.7.7 && == 4.2.3 && == 6.2.8 && < 8.6.8 && <= 3.6.7 && == 4.1.5 && >= 7.5.5 ) || ( == 5.3.6 && == 6.6.7 && == 6.1.8 )": {+ "dlHash": "zcpeywm",+ "dlSubdir": {+ "RegexDir": "\u0001"+ },+ "dlUri": "http:imos"+ },+ "( <= 6.1.5 && < 4.1.4 && < 3.4.3 )": {+ "dlHash": "uyxazzw",+ "dlSubdir": null,+ "dlUri": "https:pbdznpji"+ },+ "( == 4.2.8 && <= 4.1.1 && < 3.8.2 )": {+ "dlHash": "f",+ "dlSubdir": "\u0000c",+ "dlUri": "https:x"+ },+ "( > 4.5.1 && >= 3.1.4 && <= 8.5.2 && >= 5.3.6 && == 4.3.2 && >= 6.1.7 && < 2.2.7 && <= 4.1.7 && == 6.6.5 ) || ( <= 1.7.6 && == 6.8.4 && < 7.2.8 && == 4.4.5 && > 6.5.2 && > 3.8.4 && >= 1.8.3 && >= 4.6.2 ) || ( < 7.8.7 && >= 2.8.8 && <= 2.1.3 && >= 6.8.6 && < 5.3.3 && < 8.4.3 && >= 1.3.8 ) || ( >= 1.6.5 && >= 8.4.5 && > 5.8.2 && > 7.2.4 && >= 1.8.5 && >= 7.7.4 && <= 6.6.7 && < 5.5.6 )": {+ "dlHash": "",+ "dlSubdir": "\u00079]셹",+ "dlUri": "http:fqknjwto"+ },+ "unknown_versioning": {+ "dlHash": "yikf",+ "dlSubdir": null,+ "dlUri": "https:"+ }+ },+ "FreeBSD": {+ "( <= 2.8.7 && == 5.7.8 && == 1.4.5 && < 4.7.6 ) || ( <= 1.6.6 && < 1.2.2 && <= 8.5.8 && < 4.2.1 && == 3.2.6 && < 3.5.4 )": {+ "dlHash": "ehipcwem",+ "dlSubdir": {+ "RegexDir": "'+5cy^\u0015w"+ },+ "dlUri": "http:nghrw"+ },+ "( == 2.1.2 && == 3.3.7 && < 1.8.6 && >= 3.2.3 )": {+ "dlHash": "es",+ "dlSubdir": null,+ "dlUri": "http:clhbgk"+ },+ "( > 3.5.6 && >= 8.4.4 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\t𤹽_"+ },+ "dlUri": "https:znwsq"+ },+ "( > 6.8.5 )": {+ "dlHash": "k",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( >= 1.2.4 && >= 7.2.5 && <= 8.3.2 && >= 7.9.1 && > 1.2.1 && > 4.8.5 && == 1.4.5 && >= 8.2.8 && <= 3.6.4 )": {+ "dlHash": "",+ "dlSubdir": "h",+ "dlUri": "https:aslrdeog"+ },+ "( >= 6.5.7 && == 8.8.4 && > 3.1.2 && < 5.4.6 )": {+ "dlHash": "margu",+ "dlSubdir": null,+ "dlUri": "http:o"+ },+ "unknown_versioning": {+ "dlHash": "kkbgx",+ "dlSubdir": "",+ "dlUri": "http:b"+ }+ },+ "Linux_Alpine": {+ "( < 5.4.7 && < 5.2.7 && == 6.5.2 && > 8.7.7 && == 4.4.5 && >= 6.1.8 && == 3.7.4 && >= 6.1.7 && >= 6.3.2 ) || ( > 6.6.4 && >= 5.1.2 && == 3.5.5 && <= 8.7.1 && == 1.4.7 && >= 2.1.6 ) || ( == 6.3.8 && > 7.4.5 && < 6.1.8 && >= 7.7.3 && == 7.4.3 ) || ( > 6.5.1 && >= 4.6.3 && >= 1.3.6 && == 3.3.7 && > 5.2.8 && > 5.4.2 && == 4.1.2 && < 4.4.4 )": {+ "dlHash": "",+ "dlSubdir": "\u0019",+ "dlUri": "https:jnyhk"+ },+ "( <= 3.4.2 ) || ( > 4.7.6 )": {+ "dlHash": "l",+ "dlSubdir": {+ "RegexDir": "p䣫p夌\u000b"+ },+ "dlUri": "http:airv"+ },+ "( == 1.1.1 && >= 7.5.6 && <= 6.6.7 && < 6.5.7 && <= 4.5.3 ) || ( >= 6.6.1 && < 6.1.3 && >= 5.6.8 )": {+ "dlHash": "jxlcd",+ "dlSubdir": {+ "RegexDir": "1\u0004q\u0004\u000bp"+ },+ "dlUri": "https:qju"+ },+ "( > 8.8.8 && == 2.2.4 && < 1.3.3 && <= 5.8.3 && == 9.7.3 && <= 4.7.4 && > 5.2.1 && > 5.4.3 && >= 3.5.8 )": {+ "dlHash": "prz",+ "dlSubdir": null,+ "dlUri": "http:fmxu"+ },+ "( >= 3.2.1 ) || ( == 8.4.2 && == 3.1.7 && <= 4.3.2 && >= 4.5.3 && > 2.5.1 && == 6.4.3 && < 7.7.7 && < 4.5.1 && < 5.2.5 )": {+ "dlHash": "agj",+ "dlSubdir": null,+ "dlUri": "http:trxnu"+ },+ "( >= 7.3.6 && <= 8.1.3 && == 1.5.2 && >= 5.5.8 && >= 1.6.5 ) || ( > 2.7.3 && <= 5.1.3 && < 5.1.6 && > 1.6.4 ) || ( >= 8.6.5 && <= 7.3.7 && <= 1.5.4 && <= 8.3.6 && >= 2.4.2 && >= 1.4.6 && == 3.8.5 && <= 1.5.1 ) || ( <= 5.1.6 && == 3.8.3 && == 8.6.7 )": {+ "dlHash": "lcixc",+ "dlSubdir": {+ "RegexDir": "\u0008"+ },+ "dlUri": "http:mfehes"+ }+ },+ "Linux_Gentoo": {+ "( <= 5.4.3 && <= 1.1.2 && <= 3.1.6 && > 7.3.7 )": {+ "dlHash": "hjsiwis",+ "dlSubdir": null,+ "dlUri": "https:gbkl"+ },+ "( <= 8.8.6 && > 5.8.8 && <= 6.4.3 ) || ( < 1.6.7 && == 2.7.2 && < 8.7.5 && == 6.4.1 )": {+ "dlHash": "wg",+ "dlSubdir": {+ "RegexDir": "\u00120"+ },+ "dlUri": "https:lbplj"+ },+ "( == 3.2.3 && > 1.7.7 ) || ( > 2.8.4 && == 4.5.8 && > 1.1.7 && > 5.3.6 && == 4.5.7 && == 5.5.5 && >= 4.1.1 )": {+ "dlHash": "gbmvy",+ "dlSubdir": {+ "RegexDir": ">\u001a,ctN\""+ },+ "dlUri": "http:lz"+ },+ "unknown_versioning": {+ "dlHash": "rsg",+ "dlSubdir": null,+ "dlUri": "https:nhfn"+ }+ },+ "Windows": {+ "( <= 5.7.2 && > 3.7.2 && <= 2.8.1 && > 5.7.7 && > 5.8.8 )": {+ "dlHash": "nq",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:ixyrv"+ },+ "( == 3.7.3 && < 2.4.1 && <= 6.5.1 && >= 5.8.5 && <= 1.6.1 )": {+ "dlHash": "ihidhhjx",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:igku"+ },+ "( >= 3.8.7 && <= 8.2.7 && >= 2.4.3 && == 3.5.5 ) || ( <= 2.1.6 && < 1.2.4 ) || ( <= 2.2.4 && == 6.7.4 && <= 2.2.7 && > 6.3.4 && <= 2.2.2 && < 4.5.6 )": {+ "dlHash": "vnegcs",+ "dlSubdir": {+ "RegexDir": "𥜸bB"+ },+ "dlUri": "https:nykc"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 2.7.2 && > 5.7.3 && >= 3.2.8 && >= 5.1.2 && <= 4.3.5 ) || ( < 8.8.7 && > 7.5.6 && == 2.6.1 && < 7.3.4 && < 3.8.2 )": {+ "dlHash": "ewuc",+ "dlSubdir": null,+ "dlUri": "https:wkbxqiru"+ },+ "unknown_versioning": {+ "dlHash": "avfkdxc",+ "dlSubdir": null,+ "dlUri": "https:tidz"+ }+ },+ "Linux_RedHat": {+ "( <= 1.8.7 && < 6.3.3 && < 3.4.7 && > 7.1.6 && <= 8.6.4 && >= 3.5.7 && < 1.2.1 && < 5.7.2 && > 6.8.5 )": {+ "dlHash": "bzfxiwv",+ "dlSubdir": "",+ "dlUri": "http:iy"+ },+ "( <= 7.3.4 && >= 7.4.7 && >= 8.3.6 && == 4.7.4 && > 4.8.1 && > 6.4.2 && <= 1.1.1 && >= 7.6.7 ) || ( <= 6.7.1 && >= 1.6.1 && > 2.2.8 && > 6.5.3 && < 2.5.2 && >= 8.5.1 )": {+ "dlHash": "q",+ "dlSubdir": {+ "RegexDir": "Q@\u0008"+ },+ "dlUri": "https:w"+ },+ "( == 7.1.3 && < 4.2.4 && > 8.7.1 && == 3.8.5 && > 3.1.1 && > 4.7.4 && > 3.4.2 && >= 3.8.1 && == 4.2.1 ) || ( > 4.8.8 && == 1.2.2 && > 1.6.5 && == 4.5.8 && <= 6.4.7 && >= 1.8.4 && == 3.4.6 ) || ( < 3.7.6 && >= 4.1.1 && <= 7.1.7 && < 6.5.1 && > 5.8.6 && == 6.5.7 && <= 5.6.5 && >= 4.6.2 && >= 4.1.5 )": {+ "dlHash": "dgk",+ "dlSubdir": null,+ "dlUri": "https:nmdta"+ },+ "( >= 4.2.5 && >= 8.5.2 && > 3.4.7 && > 1.7.1 && < 4.4.5 && < 6.3.1 && < 6.8.8 && < 3.1.6 && < 3.6.6 )": {+ "dlHash": "bdpmtqaj",+ "dlSubdir": {+ "RegexDir": ">"+ },+ "dlUri": "https:sc"+ },+ "( >= 6.7.7 && < 1.3.8 && >= 8.5.2 && >= 8.1.8 && >= 5.5.8 )": {+ "dlHash": "chkuwzm",+ "dlSubdir": null,+ "dlUri": "http:nyxojqj"+ },+ "( >= 7.1.5 )": {+ "dlHash": "",+ "dlSubdir": "`Udg",+ "dlUri": "https:ocfrq"+ },+ "unknown_versioning": {+ "dlHash": "tldaewpk",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:adh"+ }+ },+ "Windows": {+ "( < 6.5.3 && > 8.2.7 && == 3.8.8 && > 4.8.1 && <= 4.7.4 && > 2.8.5 && <= 3.3.8 && > 4.5.4 && >= 5.3.7 )": {+ "dlHash": "mge",+ "dlSubdir": {+ "RegexDir": "1/\u000bs"+ },+ "dlUri": "http:tbdbit"+ },+ "( <= 8.2.4 )": {+ "dlHash": "j",+ "dlSubdir": "+R'S",+ "dlUri": "http:"+ },+ "( > 3.4.3 && == 3.6.5 && < 4.4.6 && == 7.7.3 && < 7.4.9 && == 5.4.4 && >= 3.8.8 && >= 8.1.1 && >= 7.5.8 )": {+ "dlHash": "ommt",+ "dlSubdir": "",+ "dlUri": "https:vflte"+ },+ "( > 4.2.6 && > 1.3.2 && < 4.2.2 && >= 2.2.5 && < 8.6.3 && >= 7.6.7 && >= 7.6.6 )": {+ "dlHash": "s",+ "dlSubdir": {+ "RegexDir": "\u001dZr42':"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "u"+ },+ "dlUri": "https:dfn"+ }+ }+ },+ "A_Sparc": {+ "Linux_UnknownLinux": {+ "( < 3.1.3 && < 4.8.7 && > 3.5.8 && > 4.8.3 && <= 7.1.1 && > 1.2.7 && > 5.7.8 ) || ( < 6.6.3 )": {+ "dlHash": "ypvau",+ "dlSubdir": "",+ "dlUri": "https:gsms"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:q"+ }+ }+ }+ },+ "viChangeLog": "https:bfhznfsd",+ "viPostInstall": null,+ "viPostRemove": "vhzr",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "ooajpjt",+ "dlSubdir": {+ "RegexDir": "\"\u0018\u0006"+ },+ "dlUri": "https:nphl"+ },+ "viTags": [+ "old",+ "base-1.6.1",+ "Prerelease",+ "old"+ ]+ }+ },+ "GHCup": {+ "2.6.7": {+ "viArch": {+ "A_PowerPC": {+ "Darwin": {+ "( == 1.7.8 && < 7.8.5 && > 4.8.8 )": {+ "dlHash": "qh",+ "dlSubdir": "쒩𝖄",+ "dlUri": "https:nvlaywb"+ },+ "( == 2.7.8 && <= 3.2.4 && <= 5.2.2 && >= 8.8.5 && <= 1.3.3 && == 2.7.4 && > 3.7.5 && <= 4.1.7 )": {+ "dlHash": "",+ "dlSubdir": "0b!",+ "dlUri": "http:wzjfn"+ },+ "( == 7.8.8 && <= 8.6.6 ) || ( < 6.8.4 && > 5.5.1 && < 3.5.6 && < 3.4.8 && > 3.2.6 && < 6.7.4 && <= 1.3.8 )": {+ "dlHash": "tgensz",+ "dlSubdir": null,+ "dlUri": "https:i"+ },+ "( > 2.8.4 && == 1.2.5 && >= 2.4.2 && <= 3.7.4 ) || ( <= 1.4.6 ) || ( <= 8.7.1 && <= 2.4.2 && <= 7.5.8 && <= 5.8.1 )": {+ "dlHash": "uy",+ "dlSubdir": null,+ "dlUri": "https:wgj"+ },+ "( >= 2.6.7 && == 2.4.4 && > 8.7.6 && == 3.6.6 && == 6.3.6 && > 1.6.3 && > 2.8.5 && >= 7.3.8 && >= 6.6.5 )": {+ "dlHash": "xw",+ "dlSubdir": {+ "RegexDir": "𮎥 9+\u001e"+ },+ "dlUri": "https:kkhercs"+ },+ "unknown_versioning": {+ "dlHash": "edtdhv",+ "dlSubdir": null,+ "dlUri": "http:jcfsvmz"+ }+ }+ }+ },+ "viChangeLog": "http:o",+ "viPostInstall": "z",+ "viPostRemove": null,+ "viPreCompile": null,+ "viSourceDL": null,+ "viTags": [+ "base-2.6.5",+ "Latest",+ "\u0005s톕$\"g",+ "Prerelease"+ ]+ },+ "3.5.3": {+ "viArch": {+ "A_ARM": {+ "FreeBSD": {+ "( < 6.6.6 )": {+ "dlHash": "dphmbn",+ "dlSubdir": {+ "RegexDir": "艵CC"+ },+ "dlUri": "http:s"+ },+ "( >= 7.5.8 && <= 5.7.4 && <= 2.8.2 && == 7.1.7 && >= 6.7.7 && == 6.8.5 && <= 7.1.2 && < 3.7.7 )": {+ "dlHash": "mafldknc",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:vdohp"+ }+ },+ "Linux_AmazonLinux": {},+ "Linux_Debian": {+ "( <= 4.1.1 && >= 6.2.4 && >= 5.5.3 && <= 4.3.9 && >= 3.1.5 ) || ( <= 3.3.1 && == 4.1.7 && < 8.6.6 && < 8.3.7 && == 8.4.6 && <= 2.2.7 && <= 5.4.1 )": {+ "dlHash": "hsmazga",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( <= 5.1.3 && <= 6.2.2 && > 4.8.8 && < 2.6.4 && > 2.10.5 && == 4.2.5 && <= 5.5.2 ) || ( >= 1.3.8 && > 7.2.3 && >= 7.3.5 && == 1.1.8 && == 8.5.1 && < 2.4.6 && >= 3.5.6 ) || ( > 6.6.4 && > 6.4.1 && == 5.4.8 && >= 1.5.7 && >= 8.4.3 && == 7.3.7 && == 6.9.5 && < 3.2.5 && <= 6.2.5 ) || ( == 6.7.8 && < 2.1.7 && == 4.3.5 && > 7.4.1 && > 8.4.2 && < 7.6.5 && <= 5.4.8 && >= 4.4.6 ) || ( > 1.1.8 && >= 1.7.8 )": {+ "dlHash": "dy",+ "dlSubdir": {+ "RegexDir": "𪘠穴7<cxo`"+ },+ "dlUri": "https:dyt"+ },+ "( == 3.5.1 ) || ( == 1.3.6 && < 4.7.3 && == 3.7.5 && == 7.3.7 && > 8.7.1 )": {+ "dlHash": "wkd",+ "dlSubdir": {+ "RegexDir": "f1𩥲🍩V"+ },+ "dlUri": "https:qimf"+ },+ "( == 8.1.2 && <= 3.1.1 && == 5.6.6 && == 5.7.4 && > 4.4.6 && == 1.2.7 && == 6.1.3 && < 4.6.2 && <= 3.4.6 ) || ( <= 1.4.6 && == 6.7.5 && < 4.2.6 && < 6.3.4 && >= 4.6.2 && > 2.4.8 )": {+ "dlHash": "yw",+ "dlSubdir": null,+ "dlUri": "https:j"+ },+ "( > 4.8.7 && < 6.7.5 && >= 5.5.5 && < 6.6.2 && == 5.3.3 && == 1.2.8 && < 6.2.1 && >= 8.4.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0005"+ },+ "dlUri": "https:"+ },+ "( > 6.2.3 && > 3.8.7 && >= 5.4.7 && <= 8.7.6 && > 7.1.8 && < 4.6.1 && < 5.3.1 && == 6.6.6 && < 2.8.8 ) || ( >= 2.4.7 && >= 8.2.3 && > 4.1.7 && == 6.2.4 && <= 4.7.5 && == 5.7.5 && > 2.8.4 && <= 4.8.1 ) || ( >= 3.3.8 && <= 5.5.3 && == 4.7.8 && < 1.3.7 && <= 6.2.3 && >= 2.5.3 && < 6.8.4 )": {+ "dlHash": "ai",+ "dlSubdir": "}pC\r6",+ "dlUri": "http:"+ }+ },+ "Windows": {+ "( < 3.2.4 && == 3.2.1 && >= 4.5.8 && == 2.8.1 && > 8.8.2 && == 8.8.3 && <= 6.5.2 ) || ( <= 3.8.2 && <= 1.1.3 && > 4.2.4 && == 6.3.1 && >= 2.4.5 && >= 3.5.5 && > 8.1.4 ) || ( < 5.6.4 && <= 4.7.5 )": {+ "dlHash": "ioi",+ "dlSubdir": "zSZc",+ "dlUri": "https:utal"+ },+ "( < 3.7.8 && >= 8.3.2 && < 5.5.8 && >= 8.8.4 && > 7.6.4 && == 8.7.5 && >= 7.3.6 && >= 6.6.6 )": {+ "dlHash": "ggcuk",+ "dlSubdir": null,+ "dlUri": "https:pxqirla"+ },+ "( < 4.6.5 && < 4.1.7 && < 1.1.4 && <= 7.2.6 ) || ( < 4.6.8 )": {+ "dlHash": "twtb",+ "dlSubdir": {+ "RegexDir": "𐐽d𬕍\u0010(𡼙𭪬"+ },+ "dlUri": "https:qrueugz"+ },+ "( == 8.4.1 && >= 8.2.2 )": {+ "dlHash": "qt",+ "dlSubdir": {+ "RegexDir": "h\u0014狵po\u0006"+ },+ "dlUri": "http:jg"+ },+ "( >= 2.2.7 && == 4.7.6 && >= 2.3.6 && < 2.5.1 && >= 4.5.3 ) || ( == 8.7.1 && > 8.5.2 && > 2.4.5 && <= 7.6.2 && < 2.4.2 && < 1.5.3 && >= 4.5.7 && == 7.6.4 )": {+ "dlHash": "pcdigww",+ "dlSubdir": {+ "RegexDir": "J"+ },+ "dlUri": "https:b"+ },+ "( >= 4.4.8 && >= 5.8.5 && == 5.7.8 && == 4.1.8 && >= 8.5.3 && >= 7.5.5 && >= 5.1.7 ) || ( >= 8.4.2 )": {+ "dlHash": "deefs",+ "dlSubdir": null,+ "dlUri": "http:r"+ },+ "( >= 7.4.8 && > 1.1.2 && >= 1.3.7 && < 6.3.7 && < 8.6.4 && > 1.8.7 )": {+ "dlHash": "",+ "dlSubdir": "d",+ "dlUri": "http:ekozmnf"+ }+ }+ }+ },+ "viChangeLog": "https:qbs",+ "viPostInstall": "",+ "viPostRemove": "o",+ "viPreCompile": "vfij",+ "viSourceDL": null,+ "viTags": [+ "base-5.4.2",+ "Latest",+ "Recommended",+ "Latest",+ "Latest",+ "xZ\u000b",+ "Recommended"+ ]+ },+ "3.8.5": {+ "viArch": {+ "A_64": {+ "Darwin": {+ "( <= 6.4.2 && < 1.7.4 && > 6.2.4 && > 2.8.3 && < 8.3.8 )": {+ "dlHash": "hq",+ "dlSubdir": {+ "RegexDir": "暂\u00120"+ },+ "dlUri": "https:gp"+ },+ "( == 1.6.4 && < 4.5.4 && >= 5.7.2 && >= 8.7.3 && == 2.6.7 ) || ( < 4.8.2 && > 2.3.5 && > 7.2.2 && == 1.7.8 && == 6.1.5 && <= 1.1.7 && < 3.8.6 && <= 1.1.7 ) || ( < 7.5.4 && >= 7.2.2 && <= 7.1.4 && <= 8.4.3 )": {+ "dlHash": "wc",+ "dlSubdir": "%#AwZ",+ "dlUri": "https:"+ },+ "( == 5.2.1 && == 6.8.2 )": {+ "dlHash": "hbvo",+ "dlSubdir": {+ "RegexDir": "\u0001\u000fj\u001fJ\u001b-"+ },+ "dlUri": "https:rmawlp"+ },+ "( == 5.7.1 && >= 3.1.3 && > 1.2.7 && >= 3.7.6 && < 4.8.3 && <= 2.8.8 && > 5.1.2 && >= 6.5.5 ) || ( >= 8.8.5 && <= 2.2.8 && < 5.1.7 && < 8.4.1 && == 6.2.7 && > 2.3.6 && < 2.3.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "𭻪"+ },+ "dlUri": "http:dkfp"+ },+ "( > 2.1.2 && > 6.8.4 && >= 1.7.5 && <= 8.2.5 && <= 8.4.6 && == 1.3.2 && > 2.5.8 && < 6.2.8 )": {+ "dlHash": "qhef",+ "dlSubdir": {+ "RegexDir": "\u0002𪧑5\t"+ },+ "dlUri": "http:bsdxvxm"+ },+ "( > 4.8.7 && > 5.2.2 && >= 5.3.8 ) || ( == 4.7.2 && >= 5.3.4 ) || ( >= 5.2.5 && == 3.4.2 && == 7.4.6 && >= 6.2.2 ) || ( == 1.3.8 && > 3.2.6 && == 3.2.4 && == 4.5.6 && == 5.7.8 )": {+ "dlHash": "pkhmlyjk",+ "dlSubdir": {+ "RegexDir": "HASFC"+ },+ "dlUri": "http:j"+ },+ "( >= 7.3.4 && <= 4.4.1 && < 5.3.3 && >= 8.7.1 && <= 8.8.8 && >= 3.3.6 && >= 8.8.3 && <= 5.1.3 ) || ( >= 1.1.6 && == 6.8.6 && < 1.4.3 && == 8.3.7 && > 5.2.5 && < 5.1.2 && < 5.1.5 && == 2.6.6 ) || ( < 8.4.3 && <= 2.2.9 )": {+ "dlHash": "hvmbi",+ "dlSubdir": "(𦑩 ",+ "dlUri": "https:"+ }+ },+ "FreeBSD": {+ "( <= 4.5.6 && <= 5.2.1 && > 5.7.6 && < 4.6.1 && >= 8.7.7 ) || ( < 2.5.2 && <= 5.1.7 && == 1.4.5 && <= 4.6.8 && <= 8.8.3 )": {+ "dlHash": "wep",+ "dlSubdir": "^𧴫🜗0筻",+ "dlUri": "http:hoo"+ }+ },+ "Linux_Alpine": {},+ "Linux_Exherbo": {+ "( <= 6.8.4 && > 2.5.3 && <= 6.8.3 && >= 5.2.7 && > 5.1.6 && > 4.1.7 && > 2.8.6 )": {+ "dlHash": "m",+ "dlSubdir": "𠾚\u001c𠧯3",+ "dlUri": "http:h"+ },+ "( <= 8.1.2 && <= 6.3.8 && < 7.7.1 && == 1.7.1 && <= 6.7.2 && > 2.6.8 && >= 6.6.3 && >= 1.8.2 ) || ( < 5.4.5 && > 4.4.6 && >= 8.7.6 && <= 5.5.3 && == 5.4.3 && > 2.1.8 ) || ( > 3.5.3 && > 8.9.1 && < 7.2.6 && >= 8.8.7 && == 7.3.5 && <= 3.4.9 && == 8.3.6 && > 7.4.3 && < 1.6.8 )": {+ "dlHash": "thagzqnr",+ "dlSubdir": null,+ "dlUri": "https:abt"+ },+ "( >= 1.2.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:hoh"+ },+ "( >= 7.3.7 && <= 8.8.5 && <= 6.3.7 && >= 6.3.8 ) || ( >= 4.6.4 && >= 5.6.5 ) || ( == 8.8.7 && > 5.4.1 && < 7.7.7 && == 6.3.5 )": {+ "dlHash": "kkqykbwp",+ "dlSubdir": {+ "RegexDir": "\u0001謔='"+ },+ "dlUri": "http:wexa"+ },+ "unknown_versioning": {+ "dlHash": "ddyofhc",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:ndkmbf"+ }+ }+ }+ },+ "viChangeLog": "https:byvvu",+ "viPostInstall": "ezahxgy",+ "viPostRemove": "",+ "viPreCompile": null,+ "viSourceDL": null,+ "viTags": [+ "old"+ ]+ },+ "4.1.6": {+ "viArch": {+ "A_ARM64": {+ "Darwin": {+ "( > 2.1.1 && >= 6.5.5 && < 7.7.7 && <= 8.4.8 && == 4.5.3 && < 8.2.1 && < 2.6.3 ) || ( == 5.2.7 && >= 1.4.6 && == 5.4.3 && < 3.6.8 )": {+ "dlHash": "ns",+ "dlSubdir": "LV\u0019/K𒌦",+ "dlUri": "https:svzhpnlj"+ },+ "unknown_versioning": {+ "dlHash": "qgnmnmgo",+ "dlSubdir": "Zk{wퟕ",+ "dlUri": "http:coevmkyo"+ }+ },+ "FreeBSD": {+ "( < 2.1.4 && < 4.6.2 && >= 3.2.3 && == 8.4.3 && == 1.5.2 && == 4.2.7 && < 5.2.6 )": {+ "dlHash": "xp",+ "dlSubdir": null,+ "dlUri": "https:byf"+ },+ "( < 7.1.7 && > 4.6.3 && < 3.6.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "𧑏\u0013Q\u001e>M"+ },+ "dlUri": "http:rrly"+ }+ },+ "Linux_CentOS": {+ "( == 7.6.3 && <= 6.6.8 && <= 1.4.6 && >= 1.6.3 && < 1.8.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:wjiqiwoy"+ },+ "( >= 6.4.5 )": {+ "dlHash": "zackkuu",+ "dlSubdir": null,+ "dlUri": "http:zjqhnp"+ }+ },+ "Linux_Debian": {+ "( <= 5.1.2 && == 6.1.8 && > 4.4.2 && > 2.8.4 && == 5.3.6 && == 4.1.8 && >= 1.1.8 && > 6.4.6 && <= 5.3.5 )": {+ "dlHash": "heg",+ "dlSubdir": {+ "RegexDir": "\\\rL"+ },+ "dlUri": "http:bmszc"+ },+ "( >= 6.5.3 && == 7.7.7 && >= 7.8.7 && < 7.5.6 && < 6.3.6 && <= 1.4.4 && > 5.3.8 && < 7.1.2 && < 5.4.6 )": {+ "dlHash": "qgkaxhg",+ "dlSubdir": {+ "RegexDir": "⎬\u001d"+ },+ "dlUri": "http:jghpnbkw"+ }+ },+ "Windows": {+ "( <= 3.3.3 && == 5.8.7 && == 7.3.3 && < 2.6.2 && <= 5.7.4 && > 6.5.1 ) || ( >= 6.8.7 && < 6.5.2 && > 3.6.8 && >= 3.3.1 ) || ( <= 1.2.8 && < 7.7.3 && >= 3.5.2 && == 1.8.2 && == 5.3.4 )": {+ "dlHash": "efdkrber",+ "dlSubdir": null,+ "dlUri": "http:lkie"+ },+ "( <= 4.2.3 )": {+ "dlHash": "menprp",+ "dlSubdir": {+ "RegexDir": "\u0011𩨘g𭈱\u0014"+ },+ "dlUri": "http:l"+ },+ "( <= 6.5.2 && == 6.3.3 && >= 3.4.5 && < 4.2.5 && <= 5.1.8 && <= 1.4.7 && <= 5.9.3 )": {+ "dlHash": "z",+ "dlSubdir": {+ "RegexDir": "9𤼅\u0014-N"+ },+ "dlUri": "http:sump"+ },+ "( > 2.2.4 && == 5.1.1 )": {+ "dlHash": "bvaqte",+ "dlSubdir": "@5\r",+ "dlUri": "http:jwmi"+ },+ "( >= 5.5.2 && <= 9.4.1 && < 3.5.8 && >= 3.2.3 && >= 5.8.6 && <= 7.3.6 )": {+ "dlHash": "gxo",+ "dlSubdir": {+ "RegexDir": "\u000b፞\u0019H?㡊c"+ },+ "dlUri": "http:mzzufsi"+ },+ "( >= 7.4.6 && <= 7.3.2 && >= 5.8.6 )": {+ "dlHash": "",+ "dlSubdir": "䆹kDT\u0014eP",+ "dlUri": "https:ott"+ },+ "unknown_versioning": {+ "dlHash": "eq",+ "dlSubdir": {+ "RegexDir": "\""+ },+ "dlUri": "https:xozfq"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( >= 6.4.8 && < 1.8.2 && == 3.1.3 && >= 1.2.8 )": {+ "dlHash": "wj",+ "dlSubdir": null,+ "dlUri": "https:zya"+ },+ "unknown_versioning": {+ "dlHash": "jlaf",+ "dlSubdir": "𩽚|$mHx",+ "dlUri": "https:r"+ }+ },+ "Linux_Alpine": {},+ "Linux_Gentoo": {+ "unknown_versioning": {+ "dlHash": "yagybkgh",+ "dlSubdir": "\u0000(\u0011hzfs\u0003",+ "dlUri": "https:yb"+ }+ }+ },+ "A_Sparc": {+ "FreeBSD": {+ "( >= 4.7.7 && >= 7.2.3 )": {+ "dlHash": "yn",+ "dlSubdir": null,+ "dlUri": "http:pwgzs"+ }+ },+ "Windows": {+ "( < 8.3.6 && <= 3.7.4 && >= 3.8.8 ) || ( > 5.8.1 && == 3.7.6 && > 6.7.8 && >= 7.3.4 && >= 8.4.9 ) || ( <= 3.8.3 && == 7.8.6 && <= 2.2.2 && == 4.2.5 && == 8.1.1 )": {+ "dlHash": "jidr",+ "dlSubdir": "P\r\u000b$^,",+ "dlUri": "http:"+ },+ "( >= 2.3.8 ) || ( >= 1.3.7 && > 1.8.4 && < 3.3.1 && == 4.6.6 && >= 1.1.7 && < 8.4.1 ) || ( >= 7.6.4 && < 2.6.7 && < 5.3.5 && == 2.3.7 && >= 2.1.7 && <= 5.4.6 && == 3.5.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0017䕑C|(@#"+ },+ "dlUri": "https:ntyz"+ },+ "unknown_versioning": {+ "dlHash": "cycz",+ "dlSubdir": "=7{e?7s",+ "dlUri": "http:jmfirsyl"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": "qrvyqt",+ "viPostRemove": null,+ "viPreCompile": null,+ "viSourceDL": null,+ "viTags": [+ "Latest",+ "old"+ ]+ },+ "7.5.4": {+ "viArch": {+ "A_64": {+ "Darwin": {+ "( == 4.8.1 && >= 7.2.3 && < 4.7.4 && < 7.2.7 && > 8.6.3 && <= 3.6.7 && < 3.1.1 && > 3.6.7 && >= 4.1.2 ) || ( <= 5.6.4 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0015S)풲Nl"+ },+ "dlUri": "https:arztgqs"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:zkgic"+ }+ },+ "FreeBSD": {},+ "Linux_Debian": {+ "( < 1.8.2 && == 6.4.8 ) || ( > 6.5.4 && <= 8.1.5 && > 6.4.2 && == 2.8.4 && < 7.3.4 && <= 4.6.3 && < 4.7.8 && == 3.6.3 ) || ( == 9.8.2 && < 3.7.2 && == 1.3.4 && < 7.4.3 && == 4.3.2 && > 3.1.1 && < 3.3.4 && == 8.3.4 && >= 6.4.7 ) || ( > 3.3.2 && == 2.6.2 )": {+ "dlHash": "z",+ "dlSubdir": "l",+ "dlUri": "http:ykslmmau"+ },+ "( <= 4.8.3 && <= 1.6.7 && < 5.1.5 && > 7.4.5 && < 1.8.8 && <= 6.6.4 && >= 5.7.8 && < 3.7.3 )": {+ "dlHash": "me",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:vavj"+ },+ "( == 5.6.3 && == 3.6.4 && == 4.2.4 && >= 6.7.8 ) || ( < 2.1.8 && == 1.5.2 && >= 2.6.7 && > 4.1.5 && <= 3.5.7 && >= 4.4.3 )": {+ "dlHash": "oarq",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( > 3.2.3 && < 6.3.3 && >= 1.1.1 && < 3.2.3 && < 3.3.7 ) || ( == 3.3.8 && >= 7.8.7 && >= 7.7.6 && > 1.3.1 && <= 7.7.2 && > 8.7.1 && >= 8.5.7 && >= 5.1.4 && < 5.8.8 ) || ( >= 5.2.2 && <= 4.3.4 && > 4.7.8 && >= 1.1.4 && <= 3.2.8 && >= 2.7.8 && < 5.3.2 && >= 1.3.7 && < 1.8.9 )": {+ "dlHash": "ljzlkcd",+ "dlSubdir": "#\u0007𩜜&",+ "dlUri": "http:"+ },+ "( > 6.7.3 && >= 2.1.4 && < 2.5.7 && == 5.3.2 ) || ( < 4.3.7 && > 4.3.3 && <= 7.5.5 && == 3.8.6 && <= 5.4.3 && == 6.4.3 && <= 8.2.3 ) || ( <= 2.8.8 && <= 7.4.5 && == 5.5.7 && == 1.6.1 )": {+ "dlHash": "orsdzj",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( > 7.4.3 && <= 2.8.4 && > 5.6.2 && >= 8.6.6 && == 5.2.4 && <= 8.5.7 && <= 2.1.2 && > 4.3.1 && < 5.8.1 )": {+ "dlHash": "s",+ "dlSubdir": "\u0000🂓ʰ0>7",+ "dlUri": "https:txboc"+ },+ "( >= 3.4.7 ) || ( < 4.5.6 && > 6.5.2 && > 8.7.8 && > 6.5.7 && >= 6.1.7 && < 1.2.8 && > 5.2.6 ) || ( > 6.1.2 && == 1.2.8 && == 4.1.2 && == 5.6.2 ) || ( == 6.3.6 && >= 8.8.7 && == 7.5.4 && >= 6.1.6 && > 2.8.1 && >= 6.6.6 )": {+ "dlHash": "ydqvh",+ "dlSubdir": null,+ "dlUri": "https:qpfmrjtm"+ },+ "( >= 4.3.4 && > 2.5.8 ) || ( <= 8.2.7 && >= 3.5.2 && >= 2.8.6 )": {+ "dlHash": "dhshzt",+ "dlSubdir": "",+ "dlUri": "https:rs"+ }+ },+ "Linux_Mint": {+ "unknown_versioning": {+ "dlHash": "br",+ "dlSubdir": {+ "RegexDir": "yd2'"+ },+ "dlUri": "https:xb"+ }+ },+ "Windows": {+ "( < 2.6.2 && >= 7.5.6 && >= 2.5.1 && > 4.1.7 && == 3.7.6 && <= 5.7.4 && < 8.1.1 && <= 2.3.2 && > 8.1.6 )": {+ "dlHash": "ur",+ "dlSubdir": null,+ "dlUri": "https:kk"+ },+ "( == 8.7.4 && == 3.3.2 && > 1.6.5 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "vB\u0004:\u000f𥞩𣂂"+ },+ "dlUri": "https:jt"+ }+ }+ },+ "A_ARM64": {+ "Darwin": {+ "( <= 6.2.4 && > 2.7.3 && == 2.6.2 && < 2.6.2 && == 6.2.1 && == 5.3.4 ) || ( > 3.3.8 && <= 1.2.6 && < 1.4.1 && > 3.3.5 ) || ( > 5.3.8 && >= 6.3.2 && < 7.7.7 && <= 3.7.5 && > 8.6.7 ) || ( > 7.1.8 ) || ( <= 7.7.7 && >= 8.3.1 && == 3.8.7 && >= 2.3.4 && >= 7.1.6 && <= 2.8.6 && == 8.7.5 && == 7.5.4 && == 2.6.6 )": {+ "dlHash": "qixyb",+ "dlSubdir": null,+ "dlUri": "http:pqhsghmp"+ },+ "( == 1.6.1 && > 5.3.6 && < 3.6.1 ) || ( < 6.6.5 && > 7.5.1 && >= 6.7.7 && <= 2.8.4 && <= 4.5.7 && >= 5.5.5 ) || ( == 5.6.5 && > 5.2.4 && >= 5.4.8 && > 5.3.2 && <= 1.8.4 && == 3.8.4 && > 4.7.6 && == 4.8.2 && == 5.8.2 ) || ( == 5.5.1 && < 3.8.5 && < 2.5.4 && < 8.5.2 )": {+ "dlHash": "dslpy",+ "dlSubdir": {+ "RegexDir": "\tn"+ },+ "dlUri": "http:afjsf"+ },+ "( == 6.4.3 && == 3.8.3 ) || ( <= 6.8.8 && > 1.3.8 && == 3.6.1 ) || ( < 2.6.9 && < 2.7.5 )": {+ "dlHash": "indejbow",+ "dlSubdir": "1y\u001d",+ "dlUri": "http:vwdyp"+ },+ "( > 2.3.4 && >= 3.7.6 && == 8.3.7 ) || ( == 3.5.5 && > 1.4.4 && <= 3.6.5 && < 1.5.3 && <= 6.2.7 && > 6.3.3 )": {+ "dlHash": "v",+ "dlSubdir": "\r \u0016>\u00165",+ "dlUri": "https:rfb"+ },+ "( > 7.1.5 && == 5.6.5 && == 7.1.4 && == 2.5.3 && == 4.1.4 && == 2.5.7 && <= 5.5.3 && == 6.1.2 && < 4.3.6 )": {+ "dlHash": "",+ "dlSubdir": "|𠨅폼J",+ "dlUri": "http:owigjnql"+ },+ "unknown_versioning": {+ "dlHash": "cd",+ "dlSubdir": null,+ "dlUri": "http:mlwluq"+ }+ },+ "FreeBSD": {+ "( < 6.6.8 && == 8.1.1 && < 1.6.1 && > 1.9.5 && == 2.3.6 && >= 6.5.2 && > 4.1.4 )": {+ "dlHash": "shtw",+ "dlSubdir": "\u001c",+ "dlUri": "https:kivuhhhv"+ },+ "( == 7.8.6 && == 4.4.6 && >= 4.5.1 ) || ( <= 6.1.4 ) || ( <= 2.8.3 && > 2.1.8 )": {+ "dlHash": "wphkqts",+ "dlSubdir": "V𬆅",+ "dlUri": "https:yds"+ },+ "( > 3.1.1 && <= 1.6.5 && >= 2.4.4 && == 5.8.2 && > 6.4.4 && < 5.6.1 && < 5.1.3 )": {+ "dlHash": "twy",+ "dlSubdir": null,+ "dlUri": "https:uvb"+ },+ "( > 4.7.2 && == 7.3.2 && == 6.6.4 && > 1.2.1 && > 6.7.2 && < 6.3.7 && < 7.1.1 && < 6.4.4 )": {+ "dlHash": "xdgf",+ "dlSubdir": null,+ "dlUri": "http:jq"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "APUd0>\u001b\u000e",+ "dlUri": "http:hretebdg"+ }+ },+ "Linux_RedHat": {+ "( == 3.2.3 && <= 3.2.6 && >= 6.2.6 )": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": "𝑒"+ },+ "dlUri": "https:zpo"+ }+ }+ },+ "A_PowerPC": {+ "Darwin": {+ "( == 8.6.3 && == 5.1.3 && >= 3.1.5 ) || ( > 6.8.4 && >= 5.1.5 && > 7.4.3 && >= 4.7.6 && <= 1.2.1 && > 2.5.3 )": {+ "dlHash": "g",+ "dlSubdir": "\u0012𩿚{AJ>",+ "dlUri": "http:j"+ },+ "( > 1.8.2 && == 3.6.5 && < 6.5.7 ) || ( > 1.1.2 && > 8.8.8 && >= 3.4.7 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:t"+ }+ },+ "Windows": {+ "( == 3.4.3 && == 6.5.8 && < 1.2.7 && > 3.4.7 && == 3.2.7 && <= 1.4.8 && > 1.8.4 )": {+ "dlHash": "kawd",+ "dlSubdir": "w",+ "dlUri": "https:v"+ },+ "( == 6.5.1 && == 3.5.1 && >= 7.3.7 ) || ( >= 6.6.1 ) || ( >= 1.8.6 && > 3.8.8 )": {+ "dlHash": "ruv",+ "dlSubdir": "r\u0012",+ "dlUri": "http:pelof"+ },+ "( > 9.4.2 && == 8.6.4 && > 5.5.3 && > 8.4.5 && < 2.4.7 && < 2.7.3 && >= 6.3.8 && > 6.4.1 && < 4.5.7 )": {+ "dlHash": "datbquj",+ "dlSubdir": "hx",+ "dlUri": "http:mdke"+ }+ }+ },+ "A_Sparc": {+ "FreeBSD": {+ "( > 5.6.5 && >= 7.1.7 && < 4.7.4 && == 6.1.5 && > 6.8.4 && > 6.4.6 && == 4.1.4 && > 6.6.5 && > 3.4.1 ) || ( > 1.3.5 && < 1.3.4 && > 8.6.6 && > 1.1.4 && >= 3.1.7 && < 2.1.8 ) || ( > 6.1.3 && <= 5.7.8 && >= 7.2.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "E\u0007y*`\u0010"+ },+ "dlUri": "https:zeeo"+ },+ "( >= 3.6.5 && > 8.1.4 && < 3.3.6 && < 7.6.8 && == 5.4.7 )": {+ "dlHash": "gtjphvh",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( >= 5.7.6 && > 7.2.1 && <= 7.7.1 && < 6.2.6 && <= 6.7.4 && <= 5.7.4 ) || ( > 3.2.4 && == 7.5.3 && >= 8.7.5 && == 1.8.2 && < 7.5.3 && < 2.5.3 )": {+ "dlHash": "zexby",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:ce"+ },+ "unknown_versioning": {+ "dlHash": "lngrop",+ "dlSubdir": "I\u001b\u0012",+ "dlUri": "https:axxxyb"+ }+ },+ "Windows": {+ "( == 4.3.1 && <= 3.7.3 && > 8.4.8 && < 1.1.7 && == 5.4.5 ) || ( > 1.2.6 && == 2.3.7 && >= 7.3.7 && == 6.6.7 && <= 3.1.2 && < 7.7.2 )": {+ "dlHash": "tac",+ "dlSubdir": "5^\u0010",+ "dlUri": "http:ix"+ },+ "( > 2.2.5 && < 4.7.6 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "6\u001fj{qL\u0014"+ },+ "dlUri": "https:txpsfu"+ }+ }+ }+ },+ "viChangeLog": "https:qeelkw",+ "viPostInstall": "rialloi",+ "viPostRemove": "hsul",+ "viPreCompile": null,+ "viSourceDL": null,+ "viTags": [+ "鲤"+ ]+ }+ },+ "HLS": {+ "3.3.4": {+ "viArch": {+ "A_32": {+ "Linux_AmazonLinux": {+ "( == 6.5.2 && < 5.3.6 && <= 3.2.1 ) || ( > 5.5.5 && >= 7.3.6 && <= 1.2.4 )": {+ "dlHash": "c",+ "dlSubdir": "",+ "dlUri": "http:k"+ },+ "unknown_versioning": {+ "dlHash": "tfj",+ "dlSubdir": {+ "RegexDir": "C"+ },+ "dlUri": "https:jtcz"+ }+ },+ "Linux_UnknownLinux": {+ "( >= 7.3.5 && > 7.7.1 && < 1.4.4 && > 2.1.5 && < 1.1.5 && > 2.3.8 )": {+ "dlHash": "nirhsoni",+ "dlSubdir": "~]",+ "dlUri": "http:nu"+ },+ "( >= 8.1.2 && < 2.2.7 && >= 3.4.4 && > 4.4.3 )": {+ "dlHash": "qxcu",+ "dlSubdir": null,+ "dlUri": "https:a"+ },+ "unknown_versioning": {+ "dlHash": "g",+ "dlSubdir": {+ "RegexDir": "5z𠌛j#\u0012<"+ },+ "dlUri": "https:afxel"+ }+ }+ },+ "A_64": {+ "Darwin": {+ "( < 5.2.5 && >= 8.5.7 && > 2.4.1 && > 8.6.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "b\r작𥄖S="+ },+ "dlUri": "https:lnmqaiy"+ },+ "( < 8.8.3 && < 5.3.4 && <= 6.3.6 && < 5.3.6 && >= 8.4.5 && <= 8.8.2 && > 4.5.1 ) || ( == 8.3.7 && >= 5.6.5 && >= 6.8.7 ) || ( > 8.5.8 && <= 2.8.7 && >= 4.1.8 && >= 5.6.2 && == 7.8.8 && > 5.2.5 && <= 7.1.1 && < 2.6.5 && >= 3.7.1 )": {+ "dlHash": "x",+ "dlSubdir": null,+ "dlUri": "https:okvp"+ },+ "( == 3.7.7 && == 8.4.5 )": {+ "dlHash": "blgpfubi",+ "dlSubdir": null,+ "dlUri": "https:"+ }+ },+ "FreeBSD": {+ "( < 3.7.5 && >= 5.6.6 && < 8.5.6 && > 2.5.8 && > 6.3.4 && >= 8.4.4 && == 6.3.2 && < 5.7.3 && == 1.8.7 )": {+ "dlHash": "fydsyiu",+ "dlSubdir": {+ "RegexDir": "*\u0010"+ },+ "dlUri": "http:dbe"+ },+ "( <= 1.5.1 && > 1.5.2 && == 2.7.6 && <= 7.5.6 ) || ( == 3.2.5 && >= 8.4.2 && > 3.4.4 && == 1.5.2 && > 5.4.3 && == 3.7.1 && >= 1.2.4 )": {+ "dlHash": "fcgbmjuu",+ "dlSubdir": null,+ "dlUri": "http:gejyrysd"+ },+ "( > 3.5.3 && >= 2.8.6 && < 1.4.1 && >= 4.6.4 && <= 6.7.3 && < 4.4.6 && <= 7.6.4 && >= 7.8.1 )": {+ "dlHash": "qlrv",+ "dlSubdir": {+ "RegexDir": "1"+ },+ "dlUri": "http:cgfmfmu"+ },+ "( > 4.3.3 && <= 6.7.8 && >= 8.2.7 && > 1.4.4 && == 7.8.6 && <= 8.6.5 ) || ( <= 6.2.9 && > 7.6.6 && == 8.3.7 && <= 4.1.1 && <= 8.3.4 && < 1.4.7 && > 1.6.1 && >= 4.4.4 && >= 8.2.3 ) || ( == 7.5.2 && > 4.3.3 && == 4.5.2 && > 1.1.8 && >= 7.8.2 && == 1.2.5 && == 4.1.7 && > 8.2.8 )": {+ "dlHash": "yrnjh",+ "dlSubdir": {+ "RegexDir": "#CM(\u0014Ⴋ/"+ },+ "dlUri": "https:afqj"+ },+ "( > 6.2.2 && < 6.1.8 && == 3.5.8 && <= 5.8.7 && <= 4.6.1 ) || ( <= 7.6.7 && >= 8.6.1 && > 5.6.2 && >= 1.7.4 ) || ( > 8.4.5 && < 4.8.8 && >= 3.2.4 && >= 7.4.4 && >= 5.1.8 && < 4.4.4 && > 1.8.3 && == 2.4.2 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:nbnjupbb"+ }+ },+ "Linux_RedHat": {+ "unknown_versioning": {+ "dlHash": "ltnolr",+ "dlSubdir": {+ "RegexDir": "cju"+ },+ "dlUri": "http:ujv"+ }+ },+ "Windows": {+ "( <= 3.3.1 && == 2.8.4 && < 6.3.2 && < 5.6.5 && == 1.5.6 && > 6.5.6 )": {+ "dlHash": "doryahmb",+ "dlSubdir": {+ "RegexDir": "V4P1f"+ },+ "dlUri": "http:ue"+ },+ "( == 3.8.2 && > 8.4.6 && == 2.3.1 && > 2.1.2 && < 8.8.4 && > 4.6.8 && > 3.2.1 )": {+ "dlHash": "xukmtt",+ "dlSubdir": {+ "RegexDir": "\u001f\u001c\u0011q"+ },+ "dlUri": "https:msqjgrw"+ },+ "( > 1.8.2 && >= 4.3.8 && > 4.6.3 )": {+ "dlHash": "indudm",+ "dlSubdir": {+ "RegexDir": "\nuZ"+ },+ "dlUri": "http:gjel"+ },+ "( > 4.8.4 ) || ( == 8.5.4 && <= 5.8.7 && == 6.5.2 && >= 8.7.5 && <= 3.5.3 && >= 8.8.4 && == 2.7.4 && <= 5.3.2 && > 1.4.4 ) || ( > 4.8.4 && == 4.3.5 && == 3.6.4 && < 3.4.5 && > 4.5.3 )": {+ "dlHash": "jf",+ "dlSubdir": {+ "RegexDir": "\u0012𨡗Ib\u000c\u0006\u0017"+ },+ "dlUri": "http:xloyzzl"+ },+ "unknown_versioning": {+ "dlHash": "wvkcgzn",+ "dlSubdir": "VB",+ "dlUri": "https:xtzz"+ }+ }+ },+ "A_PowerPC": {+ "Darwin": {+ "( <= 7.5.3 && <= 6.7.7 )": {+ "dlHash": "taj",+ "dlSubdir": {+ "RegexDir": "\"\u0011q⩾GV"+ },+ "dlUri": "https:eloedxz"+ },+ "unknown_versioning": {+ "dlHash": "fj",+ "dlSubdir": "S\u0008rA𣉝V",+ "dlUri": "https:"+ }+ },+ "FreeBSD": {+ "( == 8.1.1 && > 3.6.5 && >= 7.1.3 && <= 5.1.8 ) || ( >= 3.8.6 && > 8.6.3 && < 3.6.6 )": {+ "dlHash": "ysecm",+ "dlSubdir": "&5J~돗𠀫\u0000b",+ "dlUri": "https:gjgaliaa"+ },+ "( > 1.3.3 && >= 7.1.7 && >= 4.2.3 && <= 5.8.8 ) || ( >= 5.6.5 && > 8.1.1 ) || ( <= 1.2.2 && >= 2.9.6 && == 8.8.3 && >= 2.5.3 )": {+ "dlHash": "d",+ "dlSubdir": null,+ "dlUri": "https:iu"+ },+ "( >= 1.4.1 )": {+ "dlHash": "ofohu",+ "dlSubdir": null,+ "dlUri": "https:okwryp"+ },+ "( >= 4.4.9 && == 2.3.9 && > 4.7.4 && == 3.5.3 && >= 1.3.1 && > 6.2.1 )": {+ "dlHash": "dxh",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "ccscy",+ "dlSubdir": "_@𦹐jh",+ "dlUri": "http:tjwohjfd"+ }+ },+ "Windows": {}+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 2.2.3 && >= 6.8.1 && >= 8.2.7 && == 6.5.8 && > 3.4.2 ) || ( < 8.2.6 )": {+ "dlHash": "epqvp",+ "dlSubdir": {+ "RegexDir": "穟#"+ },+ "dlUri": "https:"+ },+ "( < 7.5.4 && < 4.7.6 && >= 2.8.2 && <= 1.5.1 && <= 1.3.1 && == 7.8.8 && == 6.4.5 && > 2.6.3 && < 5.8.7 ) || ( > 7.2.2 && == 3.8.5 && >= 1.5.1 ) || ( > 1.1.2 && > 5.9.1 && >= 8.6.4 && < 5.9.6 && == 3.6.6 && >= 5.6.1 ) || ( == 4.1.4 && <= 2.8.7 && > 5.5.2 )": {+ "dlHash": "nnfts",+ "dlSubdir": "",+ "dlUri": "https:ggpra"+ },+ "( == 4.7.3 && <= 7.3.8 && >= 6.2.8 && >= 7.1.6 && > 2.4.7 && > 6.7.8 && == 8.1.6 && > 4.4.2 )": {+ "dlHash": "y",+ "dlSubdir": null,+ "dlUri": "https:inyt"+ },+ "unknown_versioning": {+ "dlHash": "fsqit",+ "dlSubdir": null,+ "dlUri": "http:caj"+ }+ },+ "FreeBSD": {},+ "Windows": {+ "( <= 3.2.3 && < 3.7.1 && == 5.2.3 ) || ( > 3.2.6 && < 4.6.8 && == 2.6.6 && >= 6.7.5 && == 8.1.3 && <= 1.4.2 && <= 8.2.6 && >= 4.6.6 && > 6.2.8 )": {+ "dlHash": "zxrespu",+ "dlSubdir": "|i듷",+ "dlUri": "https:xw"+ },+ "unknown_versioning": {+ "dlHash": "hzdhpjxt",+ "dlSubdir": ".𬞮6",+ "dlUri": "https:m"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( == 7.3.8 && > 2.3.1 && >= 6.2.2 && < 1.7.5 && == 1.5.3 )": {+ "dlHash": "yzwt",+ "dlSubdir": "1%\u0014\u001epRn",+ "dlUri": "https:d"+ },+ "unknown_versioning": {+ "dlHash": "bwigbxt",+ "dlSubdir": {+ "RegexDir": "𮥾𤱿\u0000\t\u0008YqP"+ },+ "dlUri": "http:cwf"+ }+ },+ "FreeBSD": {+ "( <= 2.7.7 && > 8.2.7 && > 7.3.2 && < 4.8.1 && < 4.3.6 && > 5.2.3 && >= 7.8.7 )": {+ "dlHash": "thgnybjp",+ "dlSubdir": {+ "RegexDir": "|=p{𦍳0"+ },+ "dlUri": "http:"+ },+ "( == 7.6.5 && > 5.6.5 && > 8.1.6 && < 1.2.2 && <= 5.3.2 && >= 7.2.8 && < 7.4.8 && == 4.7.3 && > 8.4.5 )": {+ "dlHash": "i",+ "dlSubdir": null,+ "dlUri": "https:nmra"+ },+ "( > 3.7.4 && >= 2.2.8 && < 4.7.8 ) || ( >= 6.1.2 && == 5.2.6 && > 6.4.4 && < 1.7.1 )": {+ "dlHash": "o",+ "dlSubdir": null,+ "dlUri": "http:lwot"+ }+ },+ "Linux_AmazonLinux": {+ "( < 1.8.2 && <= 3.5.8 && < 4.5.3 && < 1.8.8 && >= 5.2.8 ) || ( < 7.7.6 && >= 5.5.3 && < 9.6.3 && == 1.8.1 && == 8.1.6 )": {+ "dlHash": "q",+ "dlSubdir": null,+ "dlUri": "http:yvctjvv"+ },+ "( <= 3.1.3 && > 4.7.5 && <= 4.2.4 && <= 8.4.7 ) || ( >= 2.8.7 && > 4.3.7 && < 7.1.3 && >= 8.8.5 )": {+ "dlHash": "zlvo",+ "dlSubdir": "+i𣒤W",+ "dlUri": "https:x"+ },+ "( <= 5.8.4 && >= 6.6.2 && >= 1.4.6 && <= 3.3.1 && <= 7.8.5 && < 4.6.7 && < 1.2.4 && == 6.7.5 && >= 3.4.8 ) || ( < 8.4.2 && < 1.8.8 && <= 3.5.4 && > 2.4.7 && >= 4.6.1 && > 1.2.4 && > 1.4.4 ) || ( < 5.6.6 && > 6.7.1 && > 4.2.1 && < 7.2.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:qba"+ },+ "( >= 4.5.5 && == 2.3.7 && >= 8.9.5 && == 3.4.6 && >= 8.7.2 && == 6.3.2 && <= 8.6.5 && > 1.4.7 && <= 3.8.5 ) || ( == 2.7.3 && == 2.7.7 && <= 2.4.4 && <= 1.1.4 && < 1.4.8 && == 5.3.6 && == 8.2.6 && == 7.6.8 )": {+ "dlHash": "jkrdtfwp",+ "dlSubdir": "\u001d\u001b4W2",+ "dlUri": "https:puhvb"+ },+ "( >= 5.1.3 && < 6.3.7 && >= 2.1.8 && == 2.2.6 && == 2.5.1 && < 7.2.5 && > 6.3.7 && <= 7.6.2 && < 5.7.5 ) || ( < 3.4.2 && == 6.8.7 && > 6.8.8 && >= 4.5.8 )": {+ "dlHash": "xzhwuuwo",+ "dlSubdir": {+ "RegexDir": "1z\u0010f"+ },+ "dlUri": "https:xldgdelr"+ }+ },+ "Windows": {+ "( < 2.4.2 && == 6.5.7 && > 4.2.7 && < 1.3.3 && == 1.8.8 ) || ( <= 6.4.8 && <= 3.5.1 && == 7.8.1 && < 1.7.5 ) || ( < 2.5.3 && > 7.2.7 && >= 5.5.8 && > 4.3.2 && > 8.4.6 && <= 4.8.1 && < 6.2.4 && > 7.9.5 && >= 2.5.2 )": {+ "dlHash": "jszvmnk",+ "dlSubdir": {+ "RegexDir": "9#뇚b5💆෭"+ },+ "dlUri": "https:dxjg"+ },+ "( >= 7.6.5 && == 1.8.6 && >= 4.5.2 && <= 4.7.1 && == 3.6.6 && >= 4.9.5 && > 5.7.6 && <= 8.5.6 )": {+ "dlHash": "brdc",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:og"+ },+ "( >= 8.3.8 && <= 2.6.5 && == 7.5.3 && >= 4.4.5 && >= 5.2.2 && <= 5.3.8 && < 7.4.2 && == 4.5.5 )": {+ "dlHash": "xniljeaq",+ "dlSubdir": null,+ "dlUri": "http:fmsmgdi"+ }+ }+ }+ },+ "viChangeLog": "http:kg",+ "viPostInstall": "nr",+ "viPostRemove": null,+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "pd",+ "dlSubdir": "*O,1",+ "dlUri": "https:fbar"+ },+ "viTags": [+ "Recommended",+ "Prerelease",+ "Recommended",+ "Prerelease",+ "",+ "Ctj",+ "|Wd`"+ ]+ },+ "3.5.1": {+ "viArch": {+ "A_32": {+ "FreeBSD": {+ "( < 2.2.2 && == 2.1.4 && > 4.8.4 && < 1.2.6 && <= 2.5.5 )": {+ "dlHash": "lsiwpbak",+ "dlSubdir": {+ "RegexDir": "Po"+ },+ "dlUri": "https:urhnxwc"+ },+ "( <= 1.1.6 && <= 7.1.8 && > 8.3.7 && == 7.5.8 ) || ( < 2.6.4 && < 2.6.1 && > 3.8.3 && > 4.6.1 && <= 5.8.4 && <= 3.4.7 ) || ( < 5.3.7 ) || ( == 3.8.8 && >= 2.3.2 && == 6.1.4 )": {+ "dlHash": "rhj",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( <= 8.2.4 && == 4.5.7 && < 6.7.4 && <= 7.3.3 && <= 6.5.5 && < 5.8.7 && < 8.5.4 && >= 7.7.8 ) || ( <= 7.5.6 && >= 2.5.2 )": {+ "dlHash": "f",+ "dlSubdir": {+ "RegexDir": "AZCVL"+ },+ "dlUri": "http:"+ },+ "( >= 5.8.4 && <= 6.8.4 && == 4.8.3 && == 5.6.6 && <= 7.2.1 )": {+ "dlHash": "de",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( >= 6.1.9 ) || ( <= 8.7.7 && <= 7.8.3 && <= 6.3.8 )": {+ "dlHash": "offcnt",+ "dlSubdir": "W<tf𗾦p\u0015",+ "dlUri": "https:giyvsn"+ },+ "( >= 7.3.8 && >= 7.7.6 ) || ( <= 1.1.1 && > 7.5.3 && <= 2.8.5 && < 5.8.2 && == 1.1.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "0F"+ },+ "dlUri": "https:ybu"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": ",𮣾\u001a\t",+ "dlUri": "http:oayha"+ }+ },+ "Linux_Debian": {+ "( > 4.3.7 && <= 6.3.7 && > 2.2.7 && <= 7.5.4 && < 8.3.6 )": {+ "dlHash": "dvibqiyn",+ "dlSubdir": null,+ "dlUri": "https:fvhtgonv"+ },+ "( >= 8.3.7 && >= 8.2.8 && == 8.8.5 && <= 5.3.6 && < 2.2.2 ) || ( >= 8.2.3 && >= 8.2.4 && == 3.4.5 && == 2.2.6 && > 1.4.2 && < 2.1.2 && < 7.8.7 && <= 4.6.2 )": {+ "dlHash": "nyzwqmb",+ "dlSubdir": "",+ "dlUri": "https:picwcz"+ }+ },+ "Linux_RedHat": {+ "( >= 8.7.1 && < 1.8.4 && >= 4.7.3 && >= 2.3.7 )": {+ "dlHash": "bdf",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:ccfxgv"+ }+ },+ "Linux_UnknownLinux": {+ "( > 1.1.8 && == 2.1.6 ) || ( >= 8.7.6 && < 6.1.2 && > 5.8.5 && > 7.6.5 && <= 2.1.6 ) || ( == 3.3.3 && < 1.7.6 && < 3.5.3 && > 3.8.5 && < 1.2.2 && < 5.5.3 && <= 2.2.8 ) || ( <= 3.6.5 && == 3.7.4 && <= 8.1.5 )": {+ "dlHash": "ilrcfrq",+ "dlSubdir": "~Ꮧ",+ "dlUri": "https:zzyvjaqh"+ }+ },+ "Windows": {+ "( >= 7.1.5 && > 5.3.3 && < 6.6.5 && == 3.5.5 && >= 7.8.1 && < 2.3.4 && <= 5.6.4 )": {+ "dlHash": "h",+ "dlSubdir": null,+ "dlUri": "https:"+ }+ }+ }+ },+ "viChangeLog": "https:cjxxlk",+ "viPostInstall": "avh",+ "viPostRemove": "eegqaxeq",+ "viPreCompile": "cyrqrsay",+ "viSourceDL": null,+ "viTags": [+ "Latest",+ "base-5.4.5",+ "base-1.6.1",+ "l淋",+ "old",+ "Latest",+ "Recommended"+ ]+ },+ "4.2.2": {+ "viArch": {+ "A_ARM": {},+ "A_ARM64": {+ "Linux_Mint": {+ "( < 2.1.4 && >= 4.7.7 && <= 6.6.1 && > 5.2.2 && >= 5.8.7 && <= 5.6.3 && > 3.6.6 )": {+ "dlHash": "cdptyyqb",+ "dlSubdir": "m",+ "dlUri": "http:fqhe"+ },+ "( <= 8.3.2 && < 7.4.7 && > 8.4.8 && < 5.2.6 && >= 2.3.6 && >= 3.2.2 && > 1.7.4 ) || ( > 7.6.1 && == 8.3.2 && > 5.3.2 && < 4.1.2 && <= 1.8.6 && == 5.7.6 && == 3.6.5 && < 8.2.1 ) || ( <= 4.4.7 && == 3.3.2 && >= 7.7.3 && <= 8.1.6 && >= 8.8.1 && > 7.3.5 && == 8.8.4 && <= 1.1.5 )": {+ "dlHash": "qayx",+ "dlSubdir": null,+ "dlUri": "https:xaijo"+ },+ "( == 2.7.5 && > 2.1.2 && > 7.5.2 && >= 4.6.7 )": {+ "dlHash": "kfhfzig",+ "dlSubdir": null,+ "dlUri": "http:s"+ },+ "( == 5.6.8 && == 6.1.1 && == 7.8.4 && > 2.2.7 && == 5.4.4 && <= 1.5.3 ) || ( >= 2.4.3 && <= 5.6.2 && == 5.7.6 && >= 8.7.7 && < 2.5.7 ) || ( > 2.7.8 && < 1.1.6 && <= 1.8.6 && < 4.1.2 && > 8.7.7 && >= 8.6.4 && < 6.5.7 && <= 2.3.1 && >= 8.9.4 ) || ( < 1.5.8 && >= 7.1.5 && >= 6.5.5 ) || ( >= 5.4.8 && <= 1.5.3 && < 6.5.8 && == 1.3.1 && >= 1.7.4 && > 2.2.6 && == 7.7.5 )": {+ "dlHash": "zneyu",+ "dlSubdir": "",+ "dlUri": "http:kyubn"+ },+ "( >= 1.3.5 && < 7.7.8 ) || ( >= 4.4.1 && >= 2.4.1 && == 8.2.7 && <= 1.4.2 ) || ( > 7.4.3 )": {+ "dlHash": "rnjhn",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "( >= 4.6.1 && < 3.2.5 ) || ( < 8.8.1 && > 1.1.6 && == 3.3.4 && == 1.5.3 ) || ( > 4.2.2 && < 3.1.1 && < 2.1.1 && >= 5.4.2 && == 3.1.5 && >= 2.5.1 && <= 7.1.5 )": {+ "dlHash": "osyeym",+ "dlSubdir": null,+ "dlUri": "http:pn"+ },+ "unknown_versioning": {+ "dlHash": "aj",+ "dlSubdir": null,+ "dlUri": "http:ag"+ }+ },+ "Windows": {+ "( < 9.7.8 && > 7.3.8 && < 1.1.5 ) || ( <= 6.3.7 && == 3.2.7 )": {+ "dlHash": "usxvrp",+ "dlSubdir": "S\u0010\u000fV%]}",+ "dlUri": "https:ocorq"+ },+ "( == 1.6.7 && > 7.6.4 )": {+ "dlHash": "zrcpaahf",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:npswdqmd"+ },+ "unknown_versioning": {+ "dlHash": "gggdx",+ "dlSubdir": "+S\u001e",+ "dlUri": "https:fxpcpwl"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": null,+ "viPostRemove": null,+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "p",+ "dlSubdir": {+ "RegexDir": "4"+ },+ "dlUri": "http:xht"+ },+ "viTags": [+ "Prerelease",+ "base-1.5.6",+ "r𦇚:",+ "Recommended",+ "Recommended",+ "Latest"+ ]+ },+ "4.4.1": {+ "viArch": {+ "A_ARM64": {+ "Darwin": {+ "( < 4.6.3 && < 5.3.6 && >= 2.7.7 ) || ( > 6.6.7 && > 7.4.8 && >= 4.6.7 && > 8.2.8 && <= 8.1.5 && == 4.3.1 && <= 7.1.6 && < 4.5.4 ) || ( <= 2.7.4 && > 1.2.2 && < 1.6.3 && <= 6.8.3 && <= 1.7.4 && >= 4.4.3 && < 9.7.8 && > 2.6.4 && < 5.2.5 ) || ( >= 8.7.7 && < 7.5.1 && < 4.5.7 && > 5.1.4 && <= 5.2.6 && > 1.1.2 && == 7.4.5 && > 6.6.3 && < 7.6.7 )": {+ "dlHash": "qqa",+ "dlSubdir": "zs𪍞k",+ "dlUri": "http:uck"+ },+ "( <= 8.3.8 && <= 4.8.2 && < 5.6.6 && == 2.3.2 && >= 6.5.4 && == 5.8.8 && > 2.6.3 && >= 3.6.4 && > 5.5.1 ) || ( == 6.1.5 && >= 7.5.2 && > 1.2.8 && == 8.6.2 && == 8.4.2 && > 4.5.4 ) || ( <= 3.6.6 && >= 4.4.4 && <= 5.2.2 && > 3.8.4 )": {+ "dlHash": "reipslix",+ "dlSubdir": "^\n\u000f攀\u001fh\u0004#",+ "dlUri": "http:fkou"+ },+ "( == 3.7.1 && > 1.4.5 && < 1.5.4 && <= 1.3.3 && >= 5.4.8 && < 6.2.2 && < 7.3.3 )": {+ "dlHash": "jcwx",+ "dlSubdir": null,+ "dlUri": "https:berdwsdy"+ },+ "( == 4.1.7 && == 4.4.7 )": {+ "dlHash": "yzlmajbn",+ "dlSubdir": {+ "RegexDir": ":\u0014Nys\u0012\u000b"+ },+ "dlUri": "http:mjf"+ },+ "( > 5.6.6 && <= 3.3.8 && >= 6.7.6 && >= 1.1.5 && < 5.2.4 ) || ( >= 1.5.7 && == 8.5.1 && <= 5.7.3 && > 6.3.8 && >= 5.3.1 )": {+ "dlHash": "rtz",+ "dlSubdir": "o",+ "dlUri": "https:iutwc"+ },+ "unknown_versioning": {+ "dlHash": "k",+ "dlSubdir": "\u0003\u000eV`𢯈B",+ "dlUri": "http:wu"+ }+ },+ "FreeBSD": {+ "( <= 1.8.6 && >= 5.5.5 && < 1.6.5 )": {+ "dlHash": "mopjcf",+ "dlSubdir": {+ "RegexDir": "⡎䷏&\u000f"+ },+ "dlUri": "https:qbosah"+ },+ "( <= 4.1.8 && == 6.3.5 && == 2.2.6 && == 8.7.6 && <= 4.1.8 )": {+ "dlHash": "gmdplpf",+ "dlSubdir": {+ "RegexDir": "薅\u0010\u001a𩰛𝃜]C>"+ },+ "dlUri": "http:vtae"+ },+ "unknown_versioning": {+ "dlHash": "film",+ "dlSubdir": {+ "RegexDir": "E\u000b(p\u0007}"+ },+ "dlUri": "https:bmnqqjkc"+ }+ }+ },+ "A_PowerPC64": {},+ "A_Sparc64": {}+ },+ "viChangeLog": "https:lh",+ "viPostInstall": "k",+ "viPostRemove": "dxqp",+ "viPreCompile": "fzrbyso",+ "viSourceDL": {+ "dlHash": "sx",+ "dlSubdir": {+ "RegexDir": "c"+ },+ "dlUri": "https:elvykpa"+ },+ "viTags": [+ "Recommended",+ "Latest",+ "Latest",+ "Recommended"+ ]+ },+ "5.7.2": {+ "viArch": {+ "A_PowerPC": {+ "FreeBSD": {}+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 4.4.7 && < 8.6.8 && > 8.4.5 && <= 7.5.5 ) || ( == 8.3.1 && == 2.4.5 && < 8.8.6 && <= 8.4.2 && >= 1.1.8 ) || ( > 7.1.2 && >= 5.8.1 ) || ( >= 8.8.5 && <= 4.4.5 && <= 3.8.5 && <= 5.8.1 && >= 7.2.3 ) || ( >= 1.4.1 && > 5.5.5 && >= 8.5.4 && == 5.4.6 && > 5.4.8 && >= 2.4.4 && < 5.2.1 && >= 1.8.5 && >= 1.2.7 )": {+ "dlHash": "ducdkx",+ "dlSubdir": null,+ "dlUri": "https:p"+ },+ "( < 5.3.5 && > 7.4.5 && > 5.2.1 && > 3.8.8 ) || ( == 7.5.1 )": {+ "dlHash": "nbqeao",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:"+ },+ "( == 8.4.2 && >= 7.5.7 && >= 5.5.7 && < 8.1.6 && >= 4.5.5 && == 4.2.1 && < 8.3.3 )": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": "𭾶"+ },+ "dlUri": "https:uogbl"+ },+ "( == 8.6.4 && == 8.5.7 && > 3.4.5 && == 3.6.5 && == 4.2.2 )": {+ "dlHash": "lpy",+ "dlSubdir": "",+ "dlUri": "https:illgbj"+ },+ "( >= 4.5.5 && == 3.7.6 && > 7.6.7 && < 3.4.6 && == 7.5.2 && >= 2.1.3 ) || ( >= 5.6.2 && <= 5.5.7 && > 3.4.8 )": {+ "dlHash": "d",+ "dlSubdir": {+ "RegexDir": "[dF/"+ },+ "dlUri": "https:jepvwkr"+ },+ "( >= 8.5.4 && > 5.1.4 && > 8.5.4 && > 7.8.7 && <= 6.3.4 && < 5.1.7 && > 4.4.8 ) || ( <= 1.2.4 && > 5.8.5 && < 8.7.2 && <= 9.8.8 && >= 1.8.6 && < 1.3.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "w"+ },+ "dlUri": "https:ijvo"+ }+ },+ "Linux_Alpine": {},+ "Linux_AmazonLinux": {+ "( < 1.1.2 && < 1.3.4 && == 2.8.6 )": {+ "dlHash": "zdeh",+ "dlSubdir": {+ "RegexDir": "=\u0007𥥶"+ },+ "dlUri": "http:anqnx"+ },+ "( <= 7.7.3 && <= 2.7.3 && < 6.2.7 && <= 5.3.1 && < 2.1.6 )": {+ "dlHash": "saz",+ "dlSubdir": "𘆭\u0003_LW",+ "dlUri": "https:zwus"+ },+ "( == 7.5.1 && <= 7.4.7 && > 3.4.4 && < 1.1.8 && == 8.1.6 ) || ( > 4.6.8 && <= 6.1.2 && == 5.2.7 && <= 6.8.2 && < 2.2.1 && > 6.5.8 )": {+ "dlHash": "qzbaw",+ "dlSubdir": {+ "RegexDir": "+"+ },+ "dlUri": "http:oy"+ },+ "( >= 2.2.1 && > 8.2.2 && == 1.3.5 )": {+ "dlHash": "saegszjf",+ "dlSubdir": {+ "RegexDir": "wk"+ },+ "dlUri": "https:lomlu"+ },+ "( >= 2.3.2 )": {+ "dlHash": "k",+ "dlSubdir": null,+ "dlUri": "https:llmgzpt"+ },+ "unknown_versioning": {+ "dlHash": "fgd",+ "dlSubdir": {+ "RegexDir": ";Rw\u000eE"+ },+ "dlUri": "https:po"+ }+ },+ "Linux_Exherbo": {}+ },+ "A_Sparc": {+ "Darwin": {+ "( == 3.4.3 && > 5.7.5 && < 2.2.7 && >= 1.5.2 && == 6.6.2 && == 8.4.2 && >= 5.7.4 && <= 5.8.7 )": {+ "dlHash": "tq",+ "dlSubdir": {+ "RegexDir": "\u001e0"+ },+ "dlUri": "https:hzze"+ },+ "( == 5.2.5 )": {+ "dlHash": "yse",+ "dlSubdir": {+ "RegexDir": "𧞃𝆆7"+ },+ "dlUri": "https:lsx"+ },+ "( > 1.2.5 )": {+ "dlHash": "azdtn",+ "dlSubdir": "Oxh/'z;",+ "dlUri": "http:uoykkx"+ },+ "( >= 1.1.8 && < 6.8.1 && <= 7.5.9 )": {+ "dlHash": "ndmew",+ "dlSubdir": {+ "RegexDir": "\u0005\u0016"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "rsie",+ "dlSubdir": {+ "RegexDir": "=$j4"+ },+ "dlUri": "https:"+ }+ },+ "Linux_CentOS": {+ "( <= 6.8.1 && < 4.2.2 && == 2.6.8 && <= 4.2.7 && >= 3.5.7 && > 7.8.6 && == 5.6.4 && < 1.1.4 && == 1.2.4 ) || ( > 4.4.9 && == 5.5.6 && == 8.7.3 && > 7.5.5 && <= 6.2.4 )": {+ "dlHash": "vbuinqjx",+ "dlSubdir": "Lt[ow+\u0000",+ "dlUri": "http:xn"+ },+ "( <= 7.1.5 && == 4.2.8 && > 3.4.8 && >= 8.5.3 && > 6.3.5 )": {+ "dlHash": "ii",+ "dlSubdir": "\u0015𭒣C\u0011}𠘠u",+ "dlUri": "http:"+ },+ "( == 8.7.4 && < 5.2.4 && >= 6.3.7 && > 1.4.2 && <= 5.4.1 && > 1.4.6 && < 5.7.3 && >= 2.5.3 && >= 3.6.1 )": {+ "dlHash": "pypjqrm",+ "dlSubdir": "\u0012𢷿丑\u000b\u0019\u0010%",+ "dlUri": "http:r"+ },+ "( > 8.6.4 && == 2.5.6 && == 3.7.4 )": {+ "dlHash": "vxkrzmnh",+ "dlSubdir": "cl\u000cIv띗Q",+ "dlUri": "http:oho"+ },+ "unknown_versioning": {+ "dlHash": "zlqsk",+ "dlSubdir": "",+ "dlUri": "https:e"+ }+ },+ "Linux_UnknownLinux": {+ "( > 7.1.5 && == 3.3.7 && > 1.6.3 && == 5.6.4 && > 4.2.2 && >= 2.2.8 && > 3.2.7 )": {+ "dlHash": "hezhhc",+ "dlSubdir": "lU𥃎!",+ "dlUri": "http:m"+ },+ "( > 7.7.4 && >= 8.5.2 && == 2.6.5 && > 4.3.5 ) || ( < 4.4.5 && <= 7.6.2 && == 6.2.3 && < 3.8.5 && > 3.1.7 && < 2.3.2 && > 6.1.5 && < 8.3.3 && >= 7.8.2 ) || ( < 4.5.2 && <= 4.7.4 && <= 4.8.8 && > 5.6.2 && < 1.5.5 && >= 4.6.3 && <= 2.5.5 && <= 6.5.4 && == 6.5.5 ) || ( > 3.6.3 && < 3.9.6 ) || ( == 8.1.1 && <= 4.5.6 && == 3.3.3 && < 2.2.7 && > 3.5.5 && < 6.8.1 && <= 1.1.6 )": {+ "dlHash": "jprpkha",+ "dlSubdir": "\u001d㔏\u001etiAp",+ "dlUri": "http:shpgtrlh"+ },+ "( >= 1.1.6 && <= 7.4.4 && <= 1.2.5 && <= 6.6.2 && >= 4.8.3 && <= 6.4.1 ) || ( > 8.2.4 ) || ( < 4.5.4 && <= 2.2.3 && >= 4.7.6 && < 4.8.6 )": {+ "dlHash": "gvsl",+ "dlSubdir": {+ "RegexDir": "\\x.n"+ },+ "dlUri": "http:aymkolr"+ }+ },+ "Windows": {+ "( < 6.6.2 && < 5.4.3 && < 3.3.3 && < 8.4.3 && >= 1.5.2 && <= 1.3.1 && >= 5.7.2 && == 1.5.8 && < 3.6.4 ) || ( < 5.3.2 && >= 6.5.2 && > 1.2.1 && == 5.5.7 && <= 6.6.5 && == 7.1.1 && <= 7.1.2 && <= 9.1.5 && > 8.7.2 ) || ( < 7.1.6 && <= 4.7.5 && < 8.3.5 && == 9.7.2 && > 4.5.3 && == 6.7.5 && < 7.6.9 ) || ( < 8.1.3 && > 5.6.6 && < 3.5.8 && >= 3.6.1 && > 8.4.5 && < 7.7.6 )": {+ "dlHash": "sbiw",+ "dlSubdir": {+ "RegexDir": "e\u0003[𡁘=U"+ },+ "dlUri": "https:"+ },+ "( < 7.7.4 && >= 1.4.1 && <= 1.2.6 && < 2.8.6 && >= 6.5.5 && == 5.2.1 ) || ( > 6.1.1 && >= 5.4.1 && < 3.6.7 && == 1.3.2 ) || ( > 6.2.7 && >= 6.4.8 ) || ( <= 3.2.2 && < 7.8.4 && < 7.5.7 && < 2.2.4 && > 4.1.1 && == 5.5.5 && > 4.4.8 && >= 6.7.7 )": {+ "dlHash": "hoz",+ "dlSubdir": {+ "RegexDir": "V9 \u0004ubr𡵐"+ },+ "dlUri": "https:g"+ },+ "( == 8.8.6 && <= 4.4.1 ) || ( <= 7.5.3 && == 1.2.4 && >= 1.2.2 && <= 8.6.2 && > 8.3.7 )": {+ "dlHash": "pjnhs",+ "dlSubdir": null,+ "dlUri": "https:um"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 8.3.6 && == 2.8.4 && >= 3.6.8 && > 3.1.3 ) || ( < 6.3.5 && <= 1.8.7 ) || ( < 4.8.4 ) || ( <= 7.10.1 && < 8.4.6 && < 8.6.5 && > 8.2.7 )": {+ "dlHash": "ng",+ "dlSubdir": {+ "RegexDir": "\r>펜:P\u0016y"+ },+ "dlUri": "https:qtq"+ },+ "( >= 4.8.2 ) || ( > 2.3.3 && < 1.5.7 && <= 4.4.4 && == 6.7.7 ) || ( > 6.6.1 )": {+ "dlHash": "",+ "dlSubdir": "𗹁+&YDQ",+ "dlUri": "http:friwzsyr"+ },+ "unknown_versioning": {+ "dlHash": "xss",+ "dlSubdir": "𗨙\u0012\u001d(",+ "dlUri": "http:lajll"+ }+ },+ "FreeBSD": {+ "( < 8.4.1 && <= 2.4.7 && <= 6.3.1 && > 1.5.8 && < 2.4.5 && < 2.7.3 && < 1.7.8 && > 5.1.3 && >= 8.2.3 )": {+ "dlHash": "qsxgm",+ "dlSubdir": null,+ "dlUri": "https:dw"+ }+ },+ "Linux_AmazonLinux": {+ "( < 5.5.2 && > 9.8.1 && < 5.5.2 && < 1.3.2 && >= 7.7.8 && > 5.3.3 && < 4.8.5 && == 4.8.3 )": {+ "dlHash": "",+ "dlSubdir": "\u000eAHL",+ "dlUri": "https:z"+ }+ },+ "Linux_UnknownLinux": {+ "( < 4.5.7 && == 5.2.8 && <= 2.3.7 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:rmnj"+ },+ "( <= 8.3.7 ) || ( < 7.8.3 && <= 2.5.7 && <= 3.6.8 && == 4.5.1 && < 4.5.1 && >= 2.6.7 && == 6.6.5 && <= 3.8.4 && < 2.3.6 ) || ( == 6.8.7 && <= 6.4.7 && <= 7.7.3 ) || ( >= 4.6.1 && > 1.1.1 && > 2.5.6 ) || ( == 6.2.1 && <= 8.1.8 && <= 6.7.6 && < 4.4.6 && >= 6.3.5 && <= 4.3.6 )": {+ "dlHash": "mgdkqcvr",+ "dlSubdir": null,+ "dlUri": "http:delcj"+ },+ "( == 1.7.3 && < 8.2.4 && < 5.2.1 && < 1.6.6 && == 4.5.4 ) || ( >= 7.3.5 && < 1.5.5 && >= 4.1.7 )": {+ "dlHash": "ueszcmiv",+ "dlSubdir": {+ "RegexDir": "R<\u0017𦹞!?\t:"+ },+ "dlUri": "https:xbwvpa"+ },+ "( == 8.8.6 && <= 5.5.7 && <= 4.8.6 )": {+ "dlHash": "hg",+ "dlSubdir": {+ "RegexDir": "T"+ },+ "dlUri": "https:qe"+ },+ "( > 2.4.1 )": {+ "dlHash": "cmp",+ "dlSubdir": null,+ "dlUri": "https:ianumul"+ },+ "( >= 8.6.2 && < 3.6.3 && <= 6.3.3 && <= 4.6.5 && >= 3.4.7 )": {+ "dlHash": "qxdwz",+ "dlSubdir": {+ "RegexDir": "\t6"+ },+ "dlUri": "https:naua"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u000e"+ },+ "dlUri": "https:bztmrj"+ }+ },+ "Windows": {+ "( < 2.4.5 && == 6.6.3 && >= 4.1.4 && == 5.5.8 && >= 8.7.2 && < 3.6.5 && <= 5.7.8 ) || ( < 8.5.8 ) || ( <= 4.2.2 )": {+ "dlHash": "ewrntm",+ "dlSubdir": {+ "RegexDir": "\rN"+ },+ "dlUri": "http:ri"+ },+ "( > 6.3.4 && <= 6.8.1 && > 3.8.7 && <= 2.1.6 && == 4.7.1 && >= 2.7.5 )": {+ "dlHash": "asbdc",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:fkhd"+ }+ }+ }+ },+ "viChangeLog": "https:uwr",+ "viPostInstall": "m",+ "viPostRemove": "nwnzw",+ "viPreCompile": "s",+ "viSourceDL": {+ "dlHash": "dinptoca",+ "dlSubdir": {+ "RegexDir": "Z)"+ },+ "dlUri": "http:xszo"+ },+ "viTags": [+ "base-6.2.8",+ "Prerelease",+ "Prerelease",+ "Recommended"+ ]+ },+ "7.1.4": {+ "viArch": {+ "A_32": {+ "FreeBSD": {+ "( >= 6.6.4 && > 1.5.3 ) || ( < 5.5.8 && <= 4.8.5 && == 1.8.2 && < 1.4.2 && < 4.5.5 ) || ( > 8.3.5 && >= 4.4.4 && >= 1.2.8 && < 8.8.5 && >= 2.3.5 && < 3.6.5 && > 8.5.5 && >= 4.6.2 ) || ( <= 1.6.7 && == 2.7.4 && <= 5.5.1 && > 3.2.5 && < 3.1.4 && < 8.4.1 && >= 3.7.3 && < 4.5.1 ) || ( == 8.6.7 && < 6.6.4 && < 1.7.3 && < 5.8.2 && >= 2.5.8 && < 4.5.1 && > 3.7.3 ) || ( >= 6.2.2 && >= 5.6.7 && > 8.6.8 && < 4.8.6 && == 1.4.8 && == 4.7.1 )": {+ "dlHash": "idemaw",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:mprfajjb"+ }+ }+ },+ "A_PowerPC": {+ "Windows": {+ "( < 4.4.3 && <= 8.2.4 && < 1.1.4 && < 2.3.7 && == 5.1.7 )": {+ "dlHash": "sbnlym",+ "dlSubdir": null,+ "dlUri": "http:lsllshp"+ },+ "( <= 3.5.2 && == 4.7.1 && == 4.2.1 ) || ( < 7.5.1 && == 1.7.1 )": {+ "dlHash": "tn",+ "dlSubdir": "ꆹcJG𨼻R\u0008",+ "dlUri": "https:lzz"+ },+ "( >= 1.4.4 && <= 4.8.7 && > 8.7.2 && >= 1.5.4 && > 6.1.5 && == 6.6.7 && < 7.8.7 && > 6.4.2 ) || ( >= 6.8.2 )": {+ "dlHash": "oxdc",+ "dlSubdir": "\u000fK?",+ "dlUri": "http:gisrws"+ },+ "( >= 2.6.8 && >= 1.7.1 && < 4.3.1 && == 1.2.5 ) || ( <= 9.7.6 && == 8.5.5 && < 4.1.3 && > 7.8.8 && == 3.1.7 && >= 6.4.5 && <= 8.7.4 && < 2.3.4 && < 7.1.4 ) || ( > 7.7.8 && < 6.6.4 && > 4.1.7 && >= 2.6.1 && >= 5.7.7 && >= 3.2.1 && >= 8.6.6 ) || ( < 7.7.7 && < 6.3.7 && < 4.8.2 && <= 2.2.1 && == 4.2.3 && == 1.6.7 ) || ( < 1.2.5 && > 5.7.8 && >= 6.2.2 && == 3.2.8 && < 8.7.2 && == 8.8.6 && <= 3.6.1 ) || ( == 5.2.5 && == 1.6.7 && == 2.7.5 && == 5.8.8 && == 8.8.1 )": {+ "dlHash": "s",+ "dlSubdir": null,+ "dlUri": "https:r"+ },+ "( >= 3.1.8 ) || ( > 3.6.7 && >= 4.8.6 && <= 1.7.7 && == 1.1.6 && >= 3.2.4 ) || ( == 5.6.3 )": {+ "dlHash": "pct",+ "dlSubdir": null,+ "dlUri": "https:itnqkzx"+ },+ "( >= 4.4.2 && >= 6.2.8 && < 3.4.5 && < 2.4.3 && < 8.2.5 && == 9.4.8 )": {+ "dlHash": "pvbizf",+ "dlSubdir": {+ "RegexDir": "`cB"+ },+ "dlUri": "https:erzkam"+ },+ "( >= 5.4.5 )": {+ "dlHash": "ptkpbfy",+ "dlSubdir": null,+ "dlUri": "http:"+ }+ }+ }+ },+ "viChangeLog": "https:ohqs",+ "viPostInstall": "bquxgn",+ "viPostRemove": null,+ "viPreCompile": "rtzhvw",+ "viSourceDL": {+ "dlHash": "xs",+ "dlSubdir": {+ "RegexDir": "9\u0011\u0013"+ },+ "dlUri": "https:jyl"+ },+ "viTags": [+ "",+ "base-2.5.6",+ "Latest",+ "Recommended",+ "|",+ "Latest",+ "\u0013ADq\u001bX<",+ "base-8.2.4"+ ]+ },+ "8.2.3": {+ "viArch": {+ "A_32": {+ "Linux_Alpine": {+ "( <= 7.8.6 && < 7.7.5 && < 6.1.8 )": {+ "dlHash": "ns",+ "dlSubdir": {+ "RegexDir": ")c~"+ },+ "dlUri": "http:gl"+ },+ "( > 6.7.1 && < 6.8.4 && == 8.6.2 && <= 4.4.1 && >= 1.3.3 && > 6.2.1 && <= 7.6.4 && <= 4.5.5 && <= 4.6.3 )": {+ "dlHash": "qmvnoiyk",+ "dlSubdir": "\u0013qdMQN",+ "dlUri": "https:khnegj"+ }+ }+ },+ "A_64": {},+ "A_PowerPC": {+ "FreeBSD": {+ "( <= 6.7.9 && >= 2.2.3 ) || ( == 7.4.7 ) || ( < 2.5.2 && >= 7.2.5 && <= 6.3.7 && <= 8.5.9 && > 7.8.5 && >= 2.1.3 && < 6.7.8 && == 5.2.6 ) || ( == 3.7.8 && >= 1.8.2 && >= 3.2.7 )": {+ "dlHash": "tn",+ "dlSubdir": "!G\u0019",+ "dlUri": "http:dqcxh"+ },+ "( == 1.2.4 && <= 7.1.8 && > 6.2.5 && >= 1.8.3 && < 6.3.8 && > 4.8.5 && == 5.2.1 )": {+ "dlHash": "qvvvmtin",+ "dlSubdir": "}5\u001b",+ "dlUri": "http:k"+ },+ "( == 3.5.8 )": {+ "dlHash": "sfov",+ "dlSubdir": null,+ "dlUri": "https:pmzz"+ },+ "( == 7.6.4 && < 5.7.8 && == 2.3.2 && >= 1.5.3 )": {+ "dlHash": "itwxvnoj",+ "dlSubdir": {+ "RegexDir": "jN 5"+ },+ "dlUri": "https:yckahel"+ },+ "( >= 4.7.1 && <= 4.7.6 && == 5.1.2 )": {+ "dlHash": "tyhaped",+ "dlSubdir": ",𫯙",+ "dlUri": "https:jf"+ },+ "unknown_versioning": {+ "dlHash": "vebe",+ "dlSubdir": {+ "RegexDir": "㽽\u00045𢮴𢀬E"+ },+ "dlUri": "http:exrteiuk"+ }+ },+ "Linux_Gentoo": {+ "( == 3.7.3 && >= 6.8.5 && >= 4.2.2 && < 5.7.5 && >= 4.4.8 && == 3.3.5 )": {+ "dlHash": "ohr",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( >= 5.3.5 ) || ( <= 8.6.7 && == 5.3.5 && > 6.7.3 && >= 4.4.5 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\t𞹧PHI{G"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "sij",+ "dlSubdir": "",+ "dlUri": "https:nc"+ }+ }+ }+ },+ "viChangeLog": "http:bxw",+ "viPostInstall": "bxdutem",+ "viPostRemove": null,+ "viPreCompile": "dl",+ "viSourceDL": {+ "dlHash": "uvy",+ "dlSubdir": "𦏴>𪂓:",+ "dlUri": "https:"+ },+ "viTags": [+ "base-4.1.8",+ "Latest",+ "Latest",+ "base-8.8.7",+ "𠖛",+ "恦AD假n#",+ "Prerelease"+ ]+ },+ "8.3.5": {+ "viArch": {+ "A_32": {+ "Darwin": {},+ "FreeBSD": {+ "( < 3.7.2 && == 8.1.1 && == 8.5.8 && <= 7.1.6 )": {+ "dlHash": "upnwalg",+ "dlSubdir": {+ "RegexDir": "S\u001a\u0012\u0010U{@\u001a"+ },+ "dlUri": "https:zfzxsr"+ },+ "( <= 2.6.2 && > 8.1.1 && == 5.5.3 && <= 3.4.3 && <= 5.2.5 && >= 3.1.3 && <= 6.4.8 && == 8.5.3 && > 2.5.5 ) || ( == 6.4.8 && >= 1.2.4 && > 2.4.8 && < 2.5.5 && < 3.1.4 && <= 5.4.5 && > 5.5.8 && < 6.3.2 && <= 7.4.3 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0005"+ },+ "dlUri": "https:xgr"+ },+ "( > 6.3.6 && < 7.4.3 && > 5.6.2 && > 6.2.5 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "y\"#L`≢\u001b\\"+ },+ "dlUri": "http:anqycvhw"+ },+ "( > 8.6.1 && <= 2.2.1 && <= 1.5.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "Q𝂲"+ },+ "dlUri": "https:mvrmar"+ },+ "unknown_versioning": {+ "dlHash": "zd",+ "dlSubdir": {+ "RegexDir": "\u000buT"+ },+ "dlUri": "http:npq"+ }+ },+ "Windows": {+ "( > 2.5.7 && >= 6.6.5 && >= 4.1.2 && == 1.1.7 && > 7.5.3 && > 4.3.1 )": {+ "dlHash": "rufoyb",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:jibihdg"+ }+ }+ },+ "A_64": {+ "Darwin": {+ "unknown_versioning": {+ "dlHash": "wmuz",+ "dlSubdir": null,+ "dlUri": "https:gxnnplbf"+ }+ },+ "Linux_Fedora": {+ "( < 5.8.1 && >= 6.7.6 ) || ( < 6.4.8 && > 6.6.7 && < 3.7.3 && < 8.8.8 && <= 8.4.1 && <= 4.3.5 ) || ( < 7.3.4 && > 6.5.6 && >= 8.3.8 && < 7.7.7 )": {+ "dlHash": "quhz",+ "dlSubdir": {+ "RegexDir": "🄺I%W.\u0006"+ },+ "dlUri": "https:qq"+ },+ "( <= 5.3.4 && == 7.6.7 && == 8.6.7 && > 6.3.2 && == 4.7.4 && >= 3.7.3 && < 3.5.1 && == 3.4.6 && >= 5.7.5 )": {+ "dlHash": "j",+ "dlSubdir": {+ "RegexDir": "\u000b~"+ },+ "dlUri": "https:ocyagjo"+ },+ "( > 2.4.2 ) || ( <= 3.4.6 && > 7.5.4 && >= 1.8.1 && == 2.5.4 && == 8.6.4 && == 6.4.4 && >= 6.4.5 && >= 5.7.9 && < 5.7.5 )": {+ "dlHash": "czc",+ "dlSubdir": null,+ "dlUri": "https:wmc"+ },+ "( > 2.6.1 && <= 6.8.6 && <= 2.4.5 && >= 3.7.7 && >= 1.4.5 && < 9.8.7 )": {+ "dlHash": "fqydhn",+ "dlSubdir": "F\u0015Ft9Ux",+ "dlUri": "https:mhqid"+ },+ "( >= 2.4.4 && >= 4.6.5 && < 5.2.2 && == 8.1.1 && < 1.1.2 && >= 3.3.6 ) || ( == 4.5.1 && <= 6.2.4 && > 2.3.2 && <= 8.3.6 && <= 4.1.3 ) || ( < 7.7.3 && == 7.2.7 && > 4.8.2 ) || ( == 8.6.4 && > 8.6.5 && <= 6.1.5 && == 6.1.7 && >= 6.1.3 && >= 2.4.6 && >= 5.2.6 && >= 3.2.5 )": {+ "dlHash": "dbzbtd",+ "dlSubdir": {+ "RegexDir": "v"+ },+ "dlUri": "https:zzzqzb"+ },+ "( >= 4.7.3 && >= 4.5.4 && < 7.6.1 && < 1.8.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\r"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "vuuyiub",+ "dlSubdir": null,+ "dlUri": "http:wjlaqmh"+ }+ }+ },+ "A_ARM": {+ "Darwin": {+ "( < 7.5.5 && > 8.4.6 && > 5.7.6 && < 4.6.3 ) || ( < 6.1.4 )": {+ "dlHash": "",+ "dlSubdir": "~hjbE\u0004tV",+ "dlUri": "https:aiibqb"+ }+ },+ "FreeBSD": {+ "( < 8.8.3 && < 1.4.4 && >= 8.3.6 && >= 2.8.4 && == 5.5.1 && == 2.5.4 && == 2.4.8 ) || ( > 7.6.4 )": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": "h`𨐝\u001d\\\u001e"+ },+ "dlUri": "http:oj"+ },+ "( <= 4.8.7 && >= 4.1.7 && >= 4.3.4 && < 2.7.1 && <= 1.1.2 && >= 6.2.1 && >= 7.6.5 && <= 7.6.5 ) || ( < 6.8.3 && <= 5.6.3 && < 5.6.1 && < 4.4.8 && < 3.2.2 && < 6.1.3 && > 6.6.1 && == 6.8.6 ) || ( < 2.4.1 && >= 3.1.6 && <= 6.2.8 && <= 3.1.4 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:jwqoyf"+ },+ "( > 2.1.1 && == 5.1.5 ) || ( >= 2.6.1 && == 4.2.1 && == 2.6.5 )": {+ "dlHash": "qp",+ "dlSubdir": "<\u001ch",+ "dlUri": "http:ph"+ },+ "( > 8.5.4 && <= 1.1.6 && >= 4.6.3 && < 3.1.3 )": {+ "dlHash": "yh",+ "dlSubdir": {+ "RegexDir": "\"\n"+ },+ "dlUri": "https:mwkddafr"+ },+ "( >= 3.7.2 && < 3.5.1 && == 8.4.8 && <= 3.1.3 && < 4.4.3 && == 5.1.3 && > 4.3.3 && == 5.5.1 && == 5.3.2 )": {+ "dlHash": "",+ "dlSubdir": "JJ\t\u000ec4\u001fU",+ "dlUri": "http:"+ }+ },+ "Linux_Debian": {+ "( < 6.1.7 && < 3.5.7 )": {+ "dlHash": "fh",+ "dlSubdir": "Y𑶠|",+ "dlUri": "http:nsq"+ },+ "( == 3.8.3 && > 2.8.7 && <= 7.5.2 )": {+ "dlHash": "tlywl",+ "dlSubdir": "𘠫\u00027\u0011",+ "dlUri": "http:tksugex"+ },+ "( == 6.4.5 && > 4.8.6 && > 5.5.5 ) || ( <= 6.4.2 && <= 1.1.7 && <= 7.5.8 && == 1.2.7 && <= 1.6.2 && > 6.4.8 && >= 3.8.4 && >= 7.7.6 )": {+ "dlHash": "kahlv",+ "dlSubdir": {+ "RegexDir": ";"+ },+ "dlUri": "https:ddf"+ },+ "( > 3.7.2 && >= 6.8.8 && < 5.5.4 && <= 1.2.5 && >= 1.4.6 && > 5.2.1 && < 1.3.2 && <= 3.6.9 )": {+ "dlHash": "d",+ "dlSubdir": {+ "RegexDir": "b7x"+ },+ "dlUri": "https:hvhadvpp"+ }+ },+ "Windows": {+ "( <= 2.1.5 && <= 4.1.4 && > 3.5.2 && >= 7.4.9 ) || ( < 5.4.6 && == 6.6.7 && <= 6.4.4 )": {+ "dlHash": "ahcwf",+ "dlSubdir": {+ "RegexDir": "𡓖\u0011\n9-"+ },+ "dlUri": "https:jzn"+ },+ "( <= 8.3.5 && >= 8.2.7 && >= 6.6.1 && > 6.4.7 && == 2.4.7 && > 3.2.3 ) || ( == 8.8.4 && <= 7.8.5 && >= 3.7.7 && == 5.1.2 && >= 5.8.2 && <= 7.8.6 && <= 2.4.6 ) || ( < 6.5.7 && <= 8.3.4 && >= 7.8.3 && < 6.7.3 && >= 6.3.4 ) || ( >= 4.5.1 && > 7.4.8 ) || ( <= 6.3.1 && < 5.4.2 && > 2.6.5 && <= 3.1.2 && >= 6.6.1 && <= 7.5.8 && == 8.6.6 && < 8.8.3 ) || ( >= 7.3.4 && <= 8.7.2 && <= 6.8.1 && > 7.5.8 && > 7.4.1 && >= 1.7.3 && <= 3.1.3 ) || ( <= 1.6.1 && > 2.3.5 && <= 8.4.4 && >= 4.8.3 && >= 8.5.4 ) || ( == 2.3.6 && <= 3.4.6 ) || ( < 6.7.8 && <= 8.8.8 && > 5.7.3 )": {+ "dlHash": "aaupe",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:"+ },+ "( == 3.6.4 && > 5.2.2 && <= 6.3.8 ) || ( < 8.8.7 && > 7.6.2 && >= 5.4.7 )": {+ "dlHash": "cgffxchv",+ "dlSubdir": "Up",+ "dlUri": "http:rab"+ }+ }+ },+ "A_PowerPC64": {+ "Windows": {+ "( < 3.2.1 && < 2.2.2 )": {+ "dlHash": "d",+ "dlSubdir": {+ "RegexDir": "Fx𐢨6\u0004{En"+ },+ "dlUri": "https:jvdpt"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 1.7.2 && >= 8.6.7 && > 6.2.8 ) || ( < 7.5.5 && <= 4.1.2 && < 7.7.6 && >= 2.7.7 )": {+ "dlHash": "drpolxtq",+ "dlSubdir": {+ "RegexDir": "?42𪯜'`"+ },+ "dlUri": "http:td"+ },+ "( >= 1.7.8 ) || ( < 8.3.5 && >= 4.2.3 && == 4.5.8 && < 3.6.1 )": {+ "dlHash": "pekvm",+ "dlSubdir": {+ "RegexDir": "\u0003\u0005\u000b𨰇0|"+ },+ "dlUri": "http:"+ },+ "( >= 7.2.1 && >= 4.9.4 && <= 6.6.2 && < 8.6.1 && <= 7.3.6 && >= 1.4.1 && == 1.5.1 && >= 3.8.7 ) || ( < 7.4.6 && > 4.6.4 && >= 2.1.6 )": {+ "dlHash": "gqeotyo",+ "dlSubdir": "%!_",+ "dlUri": "http:oj"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "𥳒\u0014S\u0004\u001c",+ "dlUri": "http:uuq"+ }+ },+ "FreeBSD": {+ "( == 7.3.1 && > 8.2.6 && == 8.10.1 && <= 3.7.7 && == 3.2.5 && < 2.4.5 && > 2.2.2 && <= 4.1.5 )": {+ "dlHash": "puog",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:ebnp"+ },+ "( >= 5.2.7 && <= 2.4.6 && <= 1.1.3 && <= 3.5.8 && >= 2.8.1 && > 7.2.5 && >= 5.2.4 ) || ( >= 3.1.3 && >= 1.3.4 && < 5.1.2 && >= 2.7.8 && == 2.2.2 && > 7.3.3 && <= 7.7.7 ) || ( == 3.1.6 )": {+ "dlHash": "phkfvhsv",+ "dlSubdir": null,+ "dlUri": "https:osimbv"+ },+ "( >= 6.7.1 && >= 3.4.4 && <= 3.8.2 && <= 5.8.8 ) || ( <= 2.6.3 && == 2.4.6 && < 2.8.7 && < 8.2.3 && <= 6.4.1 && > 1.2.1 && >= 1.3.6 ) || ( <= 8.8.8 && < 7.3.1 && < 4.6.6 && == 1.5.4 && <= 8.7.1 && == 1.8.1 && >= 3.8.5 && == 7.2.6 ) || ( >= 7.2.4 && < 1.4.4 && <= 1.6.1 && <= 1.3.2 && < 7.3.8 && >= 6.5.5 && <= 5.6.1 )": {+ "dlHash": "rz",+ "dlSubdir": {+ "RegexDir": "\u0006𫮚𣱗"+ },+ "dlUri": "https:u"+ },+ "unknown_versioning": {+ "dlHash": "oftrpiyv",+ "dlSubdir": "=kG$",+ "dlUri": "https:smqfx"+ }+ },+ "Linux_Ubuntu": {+ "( < 2.3.2 && > 7.5.8 && < 6.7.8 && > 8.7.2 && >= 2.7.2 )": {+ "dlHash": "jv",+ "dlSubdir": null,+ "dlUri": "https:tjev"+ },+ "( < 3.3.5 && == 1.2.6 && == 7.4.2 && < 8.7.2 )": {+ "dlHash": "uiqrfbw",+ "dlSubdir": "|(V",+ "dlUri": "http:exa"+ },+ "( < 6.4.8 && > 5.3.4 && < 5.1.8 && >= 2.3.6 && <= 8.3.7 )": {+ "dlHash": "nhni",+ "dlSubdir": {+ "RegexDir": "\u0012𤳐N𢞶6,M"+ },+ "dlUri": "https:ihop"+ },+ "( < 7.6.5 && > 9.4.5 && > 4.4.6 && > 2.8.3 && <= 1.8.3 && > 8.8.1 && >= 5.1.5 && <= 7.4.7 && >= 2.1.8 )": {+ "dlHash": "hpxs",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( <= 1.2.2 && < 7.4.6 ) || ( > 1.7.4 && > 5.3.3 && >= 4.1.7 && == 5.8.5 && < 2.4.3 ) || ( == 1.2.8 ) || ( < 8.2.8 && >= 4.2.4 && == 5.3.8 && > 5.7.2 && >= 6.6.7 ) || ( > 2.7.6 && < 1.4.5 && == 1.8.2 && == 8.4.8 && > 3.2.3 )": {+ "dlHash": "yxlmduc",+ "dlSubdir": {+ "RegexDir": "\riG0"+ },+ "dlUri": "https:ifbsqd"+ },+ "( == 4.6.1 && <= 4.7.1 && > 5.3.5 && <= 3.6.6 ) || ( > 1.1.5 && > 5.5.3 && <= 6.7.2 && <= 2.4.5 && > 2.1.6 && >= 8.6.1 && > 6.1.1 && < 5.5.3 ) || ( <= 1.4.2 ) || ( < 1.1.1 && < 6.8.8 && < 5.8.8 && <= 6.6.6 && <= 6.6.8 && <= 2.7.2 && < 1.8.6 && > 1.2.1 ) || ( <= 1.7.2 && > 7.1.2 && < 2.6.7 && <= 3.5.7 && > 5.7.3 && == 1.4.3 ) || ( > 4.2.2 && <= 9.6.8 && > 4.5.8 && > 8.1.1 && >= 6.4.3 && < 4.9.8 && > 4.2.8 && < 4.1.7 && >= 1.4.7 ) || ( <= 5.4.5 )": {+ "dlHash": "mfajsov",+ "dlSubdir": "|峖}㷞𪘘4",+ "dlUri": "https:tzp"+ },+ "( > 6.8.1 && == 3.6.1 && == 9.2.3 )": {+ "dlHash": "v",+ "dlSubdir": {+ "RegexDir": "|."+ },+ "dlUri": "http:"+ },+ "( >= 3.2.5 )": {+ "dlHash": "fe",+ "dlSubdir": null,+ "dlUri": "https:pogqw"+ }+ },+ "Windows": {+ "( <= 4.6.5 && > 2.1.2 && == 8.5.3 )": {+ "dlHash": "xaz",+ "dlSubdir": null,+ "dlUri": "https:ph"+ },+ "( == 8.1.7 && > 1.5.1 && >= 8.2.1 && <= 8.6.2 && >= 3.2.4 && < 2.6.7 && <= 5.5.5 ) || ( >= 8.1.5 && <= 6.2.2 && == 8.1.5 && > 6.4.2 && <= 1.3.8 && < 7.1.7 && < 1.4.7 && <= 4.7.4 && >= 3.1.4 ) || ( <= 5.4.8 && <= 3.3.4 )": {+ "dlHash": "h",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:"+ },+ "( > 6.2.6 && < 4.2.6 && < 4.2.3 && >= 7.1.1 && > 8.7.7 && >= 4.7.6 && < 7.1.8 && >= 8.3.1 ) || ( < 6.5.4 && >= 4.8.4 && <= 3.3.3 && == 8.4.7 && <= 2.6.2 ) || ( > 2.7.2 && >= 8.7.4 && <= 3.2.8 && > 4.5.6 && < 5.3.7 && < 3.3.6 && > 7.5.4 && > 1.3.8 && <= 4.8.8 ) || ( > 8.4.6 && > 2.5.8 && < 7.8.2 && <= 7.5.5 && == 5.5.4 && <= 1.5.1 && >= 1.4.2 && == 3.8.3 ) || ( >= 8.2.3 && < 3.7.6 && <= 5.5.8 && > 2.3.2 && <= 5.8.3 && == 3.2.1 && < 1.5.3 && == 7.6.7 && == 4.4.8 ) || ( == 3.8.6 && < 2.3.6 && == 5.7.3 && == 1.1.1 && >= 1.2.1 && < 1.2.1 && > 5.2.5 && < 8.2.2 && <= 1.3.9 )": {+ "dlHash": "aun",+ "dlSubdir": "\u0014",+ "dlUri": "https:vyh"+ },+ "( >= 7.6.1 && >= 6.8.3 && <= 5.4.6 && > 7.7.3 && >= 4.2.2 && >= 4.5.2 && == 2.5.3 && < 5.2.4 ) || ( <= 5.1.7 && == 8.5.4 && < 8.8.2 && >= 8.8.2 && <= 1.2.4 && > 7.8.4 && <= 5.2.1 && == 1.8.6 )": {+ "dlHash": "xcztgbln",+ "dlSubdir": "G\u0017㈳",+ "dlUri": "https:ee"+ },+ "unknown_versioning": {+ "dlHash": "e",+ "dlSubdir": "",+ "dlUri": "https:jgwkqwtr"+ }+ }+ }+ },+ "viChangeLog": "http:lkbs",+ "viPostInstall": "ocvjmosz",+ "viPostRemove": "b",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "jo",+ "dlSubdir": {+ "RegexDir": ">\u000b"+ },+ "dlUri": "http:qvxkdkm"+ },+ "viTags": [+ "Prerelease",+ "Prerelease",+ "%R灡𑈃pS",+ "Latest"+ ]+ }+ }+ },+ "globalTools": {+ "ShimGen": {+ "dlHash": "klhtnqpbmfgiduwrvzmgzupwgmc",+ "dlSubdir": null,+ "dlUri": "https:tvaqj"+ }+ },+ "toolRequirements": {+ "HLS": {+ "2.6.9": {+ "Linux_CentOS": {+ "( <= 3.7.3 && > 8.1.3 && == 5.8.1 && > 2.8.4 && < 2.5.2 && <= 1.5.3 && < 1.6.5 && <= 5.5.8 )": {+ "distroPKGs": [+ "wirvs",+ "gq",+ "uutgyger"+ ],+ "notes": "lpkr"+ }+ }+ },+ "4.2.1": {+ "FreeBSD": {+ "( < 7.2.7 && >= 1.8.5 && > 5.2.1 && >= 7.6.1 && >= 2.5.8 && < 7.2.5 )": {+ "distroPKGs": [+ "ez",+ "cwpd",+ "so",+ "jory"+ ],+ "notes": "kcxli"+ },+ "( == 1.1.2 && == 5.8.7 && >= 1.2.1 && <= 8.6.3 )": {+ "distroPKGs": [+ "jbnm",+ "lrwdfm",+ "phzq",+ "lnumqp",+ "plfni"+ ],+ "notes": "ik"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "crcrrqm",+ "sdtaay",+ "t",+ "hwklejk"+ ],+ "notes": "p"+ }+ }+ },+ "4.4.6": {+ "Darwin": {+ "( < 3.1.5 )": {+ "distroPKGs": [+ "akstmo"+ ],+ "notes": "n"+ },+ "( <= 5.8.2 && <= 7.5.3 && > 4.7.2 && <= 5.7.6 && >= 6.7.4 && > 4.6.1 && > 2.6.3 && == 5.6.6 && < 2.8.7 ) || ( == 1.9.4 && >= 6.6.2 && >= 4.6.8 && >= 6.8.3 && > 6.1.8 ) || ( > 7.6.8 ) || ( > 8.5.5 && == 5.1.7 ) || ( == 2.5.7 && <= 4.6.3 && > 6.1.6 && >= 7.8.8 && == 1.8.4 ) || ( == 6.8.6 && == 2.8.5 && == 1.2.3 && > 8.2.4 && >= 5.6.3 && == 5.2.7 && < 7.8.2 && == 3.3.8 && == 4.3.2 )": {+ "distroPKGs": [+ "rwgny",+ "nxuevo",+ "",+ "zq"+ ],+ "notes": "hhurntm"+ },+ "( <= 6.7.4 && <= 6.4.1 && <= 3.1.8 && >= 3.4.8 && <= 1.7.2 )": {+ "distroPKGs": [+ "dmm",+ "bxi",+ "bmyosi",+ "nqmse",+ "fqcgru",+ "qa"+ ],+ "notes": "d"+ },+ "( == 2.1.5 && < 9.8.6 && == 7.3.8 && <= 3.4.3 && < 2.7.5 && >= 8.7.8 && > 8.4.6 && > 4.5.3 && > 2.8.6 )": {+ "distroPKGs": [+ "ma",+ "zob",+ "j",+ "lbfsj",+ "bebobpqr",+ "dwcv",+ ""+ ],+ "notes": "cbcf"+ },+ "( == 3.5.1 && > 2.3.7 && == 5.4.3 && < 2.6.1 && <= 2.2.3 && <= 6.4.8 && == 8.3.1 )": {+ "distroPKGs": [+ "ejjtbxp",+ "kpsab",+ "nlmyp",+ "zrepqiyc",+ "",+ "l"+ ],+ "notes": "atywoot"+ },+ "( == 6.4.4 && == 1.4.6 && == 7.7.3 && <= 8.7.3 && == 3.4.5 && < 5.3.8 && == 7.8.8 && >= 4.1.7 ) || ( > 5.5.8 && <= 7.3.6 && <= 1.4.4 && <= 1.4.2 && > 2.2.2 ) || ( <= 6.3.8 && >= 1.4.8 && == 3.2.2 && > 8.3.7 && > 2.1.8 && == 7.2.5 ) || ( == 1.7.8 ) || ( == 3.4.3 && <= 6.8.6 && >= 2.3.2 && >= 5.7.6 && > 3.6.4 && > 2.5.4 && >= 1.3.3 && < 4.2.2 && == 8.5.6 ) || ( > 4.3.8 ) || ( >= 1.5.7 && > 5.7.2 && > 8.2.8 && == 7.7.6 && > 6.8.4 && > 1.3.8 && == 8.7.3 ) || ( <= 3.2.1 && > 8.4.3 && == 1.2.2 && < 3.4.3 && < 1.6.1 )": {+ "distroPKGs": [+ "agdiyds",+ "mwhqlxj",+ "zi",+ "ftoucr"+ ],+ "notes": "yaw"+ },+ "( > 8.7.8 && < 8.7.1 && > 4.7.5 && < 6.3.1 && > 1.1.2 && >= 4.3.3 && >= 8.8.5 )": {+ "distroPKGs": [],+ "notes": "h"+ }+ },+ "FreeBSD": {+ "( < 2.3.3 && >= 7.1.3 && >= 4.1.3 && > 9.3.3 && >= 5.6.3 && <= 4.1.7 )": {+ "distroPKGs": [+ "f",+ "asozbk",+ "b",+ "ummxn",+ "upkwzdqf",+ ""+ ],+ "notes": "ucffxs"+ },+ "( < 2.7.2 && < 6.7.2 && >= 6.3.4 && < 8.6.8 && >= 7.1.7 && <= 6.3.4 && < 6.3.3 && >= 7.4.4 && == 6.8.2 )": {+ "distroPKGs": [+ "",+ "cb",+ "rpozzj",+ "jxygirfn",+ "",+ "borz"+ ],+ "notes": "khxeo"+ },+ "( == 1.2.1 && < 2.1.5 && == 3.1.8 && < 4.5.7 && < 7.7.3 ) || ( > 2.5.8 ) || ( > 4.6.1 && > 2.4.7 && == 3.1.2 ) || ( > 8.8.8 && == 6.1.5 && <= 4.4.7 && == 2.8.8 && < 7.8.2 && == 1.6.7 )": {+ "distroPKGs": [+ "l",+ "uqzct",+ "md",+ "rfzjv"+ ],+ "notes": "kquino"+ },+ "( == 1.5.3 && > 4.8.4 && <= 1.4.6 && > 5.6.1 && == 3.6.7 && == 4.2.6 && == 6.7.4 && == 5.2.6 ) || ( < 4.1.3 && >= 1.8.5 && <= 9.7.5 && <= 7.2.1 && > 7.3.2 && <= 5.7.1 ) || ( == 2.1.4 && == 6.2.5 && == 5.3.8 && > 8.3.3 && == 1.2.2 && >= 6.1.6 && <= 8.8.1 && >= 3.3.2 && == 6.7.2 ) || ( > 8.6.3 && < 6.4.7 && > 8.3.1 && > 4.6.5 && > 5.5.1 && > 3.4.6 && >= 4.2.8 ) || ( == 1.4.6 && == 8.5.5 && <= 6.5.5 && < 7.1.4 && > 4.5.3 && >= 2.7.5 && > 8.4.4 )": {+ "distroPKGs": [+ "wkeluhb",+ "giseovf",+ "famosezn",+ "oaw",+ "dpwjcpu"+ ],+ "notes": "ucgalle"+ },+ "( == 3.7.1 && < 2.7.5 && < 8.6.7 && < 4.1.1 && < 6.8.3 && >= 6.1.1 && >= 5.4.2 ) || ( == 1.5.3 )": {+ "distroPKGs": [],+ "notes": "h"+ },+ "( >= 7.1.7 && >= 1.1.2 && >= 5.4.8 && == 3.6.2 && <= 7.1.7 && == 7.7.8 && == 7.4.1 ) || ( == 6.6.5 && >= 8.3.7 && <= 6.2.1 )": {+ "distroPKGs": [+ "a",+ "vp"+ ],+ "notes": "b"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "nzscbd",+ "nysx",+ "yejurp",+ "vsf",+ "znhyxda",+ "jeev"+ ],+ "notes": ""+ }+ },+ "Linux_AmazonLinux": {+ "( < 4.2.7 && >= 7.2.1 && <= 4.7.5 && > 6.6.6 && < 3.6.2 && > 5.8.2 )": {+ "distroPKGs": [+ "azrlxw",+ "h",+ "tchk"+ ],+ "notes": "ql"+ },+ "( >= 2.6.7 && >= 1.1.5 && < 7.6.4 && == 8.4.6 && < 7.5.4 )": {+ "distroPKGs": [+ "kizgzmo",+ "dmznhcm",+ "su",+ "dyn",+ "dpilob",+ "gyry"+ ],+ "notes": "lxbsmwe"+ },+ "( >= 4.8.8 && >= 4.2.2 && == 2.7.6 && == 6.4.8 && == 3.7.4 ) || ( <= 6.5.8 )": {+ "distroPKGs": [+ "zj",+ "w",+ "ox",+ "dn",+ "mokjnrs",+ "aghl",+ "zdhp"+ ],+ "notes": "hcvvin"+ },+ "( >= 5.5.2 ) || ( <= 4.6.3 )": {+ "distroPKGs": [+ "aquei",+ "pn",+ "snj",+ "eboybndj",+ "yqhzlk",+ "bs"+ ],+ "notes": "jpscotgr"+ },+ "( >= 6.4.5 && == 2.6.8 && <= 8.5.7 && == 2.5.4 && == 2.2.1 && <= 8.2.8 && > 2.1.4 )": {+ "distroPKGs": [+ "fega"+ ],+ "notes": "t"+ },+ "( >= 8.3.8 && < 2.6.7 && < 6.3.5 && <= 8.8.3 && < 7.1.6 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "sd"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "jso",+ "kkld",+ "nccxwi",+ "po",+ "bj"+ ],+ "notes": "zefdmicl"+ }+ },+ "Windows": {+ "( < 2.2.5 && < 3.6.3 && < 2.2.1 && == 4.7.6 && < 4.5.7 && == 4.6.3 )": {+ "distroPKGs": [+ "xdoqizf"+ ],+ "notes": "rsi"+ },+ "( == 2.5.7 && < 4.8.5 && >= 1.6.7 && == 5.8.7 && == 3.7.4 && < 7.5.6 )": {+ "distroPKGs": [],+ "notes": ""+ },+ "( == 6.6.2 && > 8.2.5 && == 6.2.6 && > 1.5.3 && <= 6.5.9 && < 7.2.5 && == 4.3.3 )": {+ "distroPKGs": [+ "q",+ "sededmi",+ "wtdjel",+ "",+ "ycuunpwv",+ "xu",+ "hvhoozza"+ ],+ "notes": ""+ },+ "( > 2.6.3 && < 3.1.6 && < 4.2.3 && < 4.4.6 && <= 6.6.6 && <= 8.3.7 )": {+ "distroPKGs": [+ "xk",+ "tj",+ "apibg",+ "vtkv"+ ],+ "notes": "u"+ },+ "( >= 4.6.3 && > 4.2.6 && <= 3.8.1 && > 1.7.4 && >= 6.8.5 && >= 3.7.6 && > 3.6.7 )": {+ "distroPKGs": [+ "",+ "dkwycdq",+ "mri",+ "yhc",+ "zzyhkq",+ "naefngl",+ "",+ ""+ ],+ "notes": "tr"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "f",+ "d",+ "ynjdzpx",+ "tls",+ "qb"+ ],+ "notes": "vizfzbqv"+ }+ }+ },+ "4.4.7": {+ "Windows": {+ "( < 6.7.7 && >= 2.7.8 && <= 7.5.1 && < 2.5.2 && >= 5.9.8 && >= 6.1.4 && >= 6.6.3 && >= 5.6.2 ) || ( < 1.3.8 && <= 4.5.8 && <= 5.7.1 && > 7.7.1 && < 4.3.7 && < 3.1.5 && < 3.7.6 && > 3.2.6 ) || ( <= 8.3.7 && >= 8.4.6 && >= 3.2.2 && == 8.1.1 && > 5.1.3 && >= 8.7.8 && == 5.8.1 && <= 2.4.4 && >= 6.5.3 ) || ( <= 6.7.8 && >= 7.7.2 && < 5.3.8 && >= 1.5.8 && < 5.3.3 && <= 5.2.1 && < 5.2.3 && > 8.4.8 && == 6.4.5 )": {+ "distroPKGs": [+ "nskluq",+ "irxkqesp",+ "uerkjx",+ "ymhwpos",+ "xrku",+ "zwh"+ ],+ "notes": ""+ },+ "( <= 3.2.1 && < 2.1.4 )": {+ "distroPKGs": [+ "e",+ "vmfh"+ ],+ "notes": "prsgeyvq"+ },+ "( > 6.6.1 && >= 7.7.6 && <= 7.3.3 && == 1.1.1 && < 7.3.3 && < 3.5.5 )": {+ "distroPKGs": [+ "",+ "hxiurhbl",+ "dqfhp",+ "irtv",+ "bsbnkzj"+ ],+ "notes": "zuum"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "zwly",+ "uy",+ "mgd",+ "fd",+ "gr",+ "a",+ "npcccgbq",+ "nldzw"+ ],+ "notes": "chth"+ }+ }+ },+ "4.7.6": {+ "Darwin": {+ "unknown_versioning": {+ "distroPKGs": [+ "wgbezy",+ "aaw",+ "cgwao",+ "hxq",+ "m",+ "oht",+ "ienz",+ "a"+ ],+ "notes": "ml"+ }+ },+ "FreeBSD": {+ "( == 6.8.8 && < 1.2.4 && > 2.6.4 ) || ( > 2.1.2 && >= 3.1.7 && >= 9.2.6 )": {+ "distroPKGs": [+ "jly",+ "ov"+ ],+ "notes": "etfad"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "j",+ "eabpp",+ "ribldfq",+ "xopdlh",+ "kmzjng",+ "kv"+ ],+ "notes": "khx"+ }+ },+ "Linux_Alpine": {+ "( < 1.4.6 && < 6.6.1 )": {+ "distroPKGs": [+ "rxprewfv",+ "gi",+ "ebjjn",+ "cra"+ ],+ "notes": "hcutvfg"+ },+ "( < 6.6.7 && <= 5.2.8 )": {+ "distroPKGs": [+ "dpc",+ "",+ "pjll",+ "",+ "seye"+ ],+ "notes": "jx"+ },+ "( < 6.6.8 && > 7.3.8 && < 6.6.7 ) || ( <= 6.5.1 && == 1.5.3 && <= 8.8.7 && < 5.5.3 && <= 3.2.4 && == 3.4.1 && >= 5.8.7 && > 6.8.1 ) || ( <= 3.3.8 && >= 2.7.3 && > 9.2.4 && == 1.6.5 )": {+ "distroPKGs": [+ "fog",+ "abvht",+ "snxcwz",+ "",+ "cynjlc",+ "dxv",+ "fhnpul",+ "iacqocc"+ ],+ "notes": "xwbdinll"+ },+ "( <= 5.5.6 && >= 7.1.8 && < 7.7.5 ) || ( == 6.3.5 && <= 7.5.6 && < 2.5.1 && > 6.7.4 && <= 8.7.6 && < 7.5.9 && > 5.1.6 && == 6.1.6 && == 7.3.4 ) || ( < 6.1.4 && <= 7.1.5 && == 5.4.3 && > 3.2.3 && > 8.1.1 && < 8.8.6 ) || ( < 6.6.2 && > 7.7.3 )": {+ "distroPKGs": [+ "xtzhlgds"+ ],+ "notes": "mmchv"+ },+ "( == 2.1.2 && >= 3.5.2 && >= 1.4.1 && > 3.7.1 && < 2.1.3 && >= 4.8.7 && > 4.1.2 )": {+ "distroPKGs": [],+ "notes": "ak"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "qwlcbnev"+ ],+ "notes": "gqhxexjp"+ }+ },+ "Linux_CentOS": {+ "( < 4.7.2 && <= 1.3.5 && <= 8.4.2 && == 2.5.5 && < 8.1.2 && >= 6.8.2 && >= 1.6.8 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "vr"+ },+ "( < 5.5.2 && >= 5.7.1 && > 4.5.2 && == 5.6.4 && > 1.2.2 && >= 5.1.5 )": {+ "distroPKGs": [+ "fgr",+ "comgnpzo",+ "iw",+ "vhmspa"+ ],+ "notes": "wo"+ },+ "( < 8.8.1 && <= 8.4.3 && == 8.1.1 && > 5.1.1 && >= 8.2.2 && < 3.2.3 && < 6.4.8 ) || ( > 8.8.7 && == 6.1.7 && < 7.7.5 && == 6.7.8 && > 4.5.1 && > 4.3.2 && <= 6.8.1 && < 1.4.7 )": {+ "distroPKGs": [+ "cwcczif",+ "ngg",+ "kv",+ "f"+ ],+ "notes": ""+ },+ "( <= 3.3.2 && < 7.7.8 && == 8.7.4 && >= 8.6.4 && == 7.8.8 )": {+ "distroPKGs": [+ "khak",+ "pm",+ "ez",+ "yvpxhmq",+ "yiymbpzs",+ "dq",+ "ybb"+ ],+ "notes": "ganr"+ },+ "( == 1.2.8 && >= 4.6.4 ) || ( < 3.1.6 && < 2.3.8 && <= 4.3.3 && >= 6.2.9 && >= 7.1.2 && <= 8.6.8 && == 2.6.1 ) || ( == 3.3.5 && < 6.6.2 && <= 3.1.4 && >= 1.6.7 && > 2.1.2 ) || ( < 2.8.1 && == 3.5.4 && <= 1.2.8 && >= 4.4.2 && > 3.7.7 && >= 3.4.9 && > 4.1.6 && <= 1.1.5 ) || ( >= 1.7.8 && <= 8.7.6 && == 7.8.1 && >= 4.3.1 )": {+ "distroPKGs": [+ "pukbsyqg",+ "hvkoinnw",+ "l",+ "qx"+ ],+ "notes": "cuja"+ },+ "( == 4.4.4 && >= 5.1.4 && < 2.6.5 && == 7.8.6 )": {+ "distroPKGs": [+ "cvlx",+ "kxzu",+ "uoqf"+ ],+ "notes": "qef"+ },+ "( > 8.7.4 && < 7.6.4 ) || ( < 2.8.7 && == 4.8.7 && >= 4.5.2 && <= 6.5.5 && == 7.3.6 && == 1.4.5 )": {+ "distroPKGs": [+ "ttnepvsp",+ "",+ "qestrgg",+ "of"+ ],+ "notes": "f"+ }+ },+ "Windows": {+ "( < 4.6.1 && < 5.6.3 && >= 1.7.6 )": {+ "distroPKGs": [+ "yzt",+ "wrwx",+ "nbm",+ "yt"+ ],+ "notes": "peycffn"+ },+ "( == 8.4.5 && <= 3.2.4 && < 5.3.1 && == 9.6.5 && > 8.1.2 && >= 2.3.2 ) || ( >= 6.3.8 && <= 3.1.3 && >= 1.1.7 && == 5.6.7 && >= 4.8.4 && < 2.5.8 && < 9.5.7 && > 1.3.3 )": {+ "distroPKGs": [+ "leym",+ "sppllv"+ ],+ "notes": "ycjhs"+ },+ "( > 8.5.1 && >= 1.4.7 && == 1.1.6 && == 8.5.1 ) || ( < 1.3.5 && <= 6.6.2 && > 4.8.5 && <= 1.1.1 && > 6.6.1 && > 6.2.3 ) || ( < 2.8.4 && == 4.8.3 && == 5.1.4 && > 6.5.8 && == 6.8.3 && < 7.6.6 )": {+ "distroPKGs": [+ "",+ "nao",+ "gptlbuz",+ "kf",+ "g",+ "zsflyg",+ "gk",+ "ntqvszc"+ ],+ "notes": "mtiphl"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "tx",+ "inmw",+ "",+ "vifjw",+ "m"+ ],+ "notes": "iiyihow"+ }+ }+ },+ "5.1.4": {+ "FreeBSD": {+ "( < 7.3.6 && < 6.1.3 && < 1.1.8 && == 1.2.1 && <= 5.4.4 && == 6.2.5 && > 2.1.1 && >= 8.7.1 && <= 4.9.8 )": {+ "distroPKGs": [+ "vm",+ "iyzp",+ "zfy",+ "",+ ""+ ],+ "notes": "agku"+ },+ "( <= 4.3.4 && < 4.7.4 && >= 5.7.1 )": {+ "distroPKGs": [+ "mu",+ "",+ "lfnyo",+ "",+ "mkme"+ ],+ "notes": "adn"+ },+ "( <= 7.5.7 && == 8.8.1 )": {+ "distroPKGs": [+ "micrru",+ "uwnmeqko"+ ],+ "notes": "ovpeoh"+ },+ "( == 6.10.3 && <= 7.8.6 && < 1.7.6 && <= 8.6.8 && < 8.3.8 ) || ( <= 7.6.8 && == 4.6.8 && >= 3.4.5 && > 8.3.1 && > 2.6.7 && >= 7.2.4 && == 5.3.3 ) || ( > 8.3.4 && == 5.3.4 && <= 2.1.7 && == 5.5.3 && >= 5.1.8 && == 3.3.1 && >= 4.1.3 )": {+ "distroPKGs": [+ "djmpss",+ "abh",+ "fqvmfis",+ "t",+ "xaxr"+ ],+ "notes": ""+ },+ "( > 4.6.2 && == 6.7.1 )": {+ "distroPKGs": [+ "grnj",+ "g",+ "",+ "",+ "jcqcuxq",+ "uyagfsvz",+ "oivajoec",+ "xujy"+ ],+ "notes": "wwjq"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "pimdo",+ "fnf",+ "lwii",+ "ut",+ "v"+ ],+ "notes": "zscajjj"+ }+ },+ "Linux_Alpine": {+ "( == 5.3.4 && == 1.2.7 && > 2.3.2 && <= 3.2.8 && <= 2.8.6 && > 6.3.6 && <= 8.4.3 )": {+ "distroPKGs": [+ "sphikwtl",+ "zeyjmy"+ ],+ "notes": "fdju"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "mj"+ }+ },+ "Linux_CentOS": {+ "( < 1.2.7 && == 8.4.1 && == 5.4.7 && == 3.2.7 && < 7.8.7 ) || ( <= 4.5.1 && >= 2.8.7 && >= 4.4.8 && == 5.7.2 && > 3.3.4 && > 9.3.6 ) || ( == 4.4.8 && > 4.2.3 && > 5.7.8 && <= 5.4.4 && == 5.4.1 && > 3.3.8 )": {+ "distroPKGs": [+ "iioq",+ "stzw",+ "yfyhh"+ ],+ "notes": "yzbes"+ },+ "( <= 3.1.7 && > 3.8.7 && > 9.1.5 && > 1.5.1 && <= 4.7.2 && == 1.5.6 && > 8.5.8 && == 4.1.4 && <= 3.4.6 )": {+ "distroPKGs": [+ "cfvb"+ ],+ "notes": "bymqimbe"+ },+ "( > 1.4.1 && == 7.4.2 && >= 2.4.5 && < 3.5.5 )": {+ "distroPKGs": [+ "odmuij",+ "np",+ "xzfu",+ "krq",+ "uc",+ "etkkxnll",+ "ewse"+ ],+ "notes": "m"+ },+ "( > 6.3.2 && == 1.1.2 && > 5.5.8 && <= 2.7.7 && > 7.3.9 && > 7.6.8 && >= 1.1.5 && > 5.3.2 && > 1.4.2 )": {+ "distroPKGs": [+ "opdf",+ "dgvbvpn",+ "cdjh",+ "aqwspzk",+ "xbta",+ "ojgd",+ ""+ ],+ "notes": "phlvaphc"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "qwee"+ }+ },+ "Linux_Debian": {+ "( <= 2.1.7 && >= 4.7.6 && <= 6.3.7 && > 7.5.4 && == 2.8.2 ) || ( < 8.4.3 && > 6.3.4 && < 3.6.1 && >= 5.2.6 && < 5.1.4 && < 6.2.6 )": {+ "distroPKGs": [+ "",+ "wngslavs",+ "b",+ "cxofcwnd",+ "arsgc"+ ],+ "notes": "nygs"+ },+ "( <= 2.4.2 && < 3.8.2 && == 1.8.2 && <= 7.7.4 && < 6.8.2 && < 1.3.2 && > 3.8.4 && > 8.6.6 && <= 6.2.7 )": {+ "distroPKGs": [+ "mukmu"+ ],+ "notes": "ztoe"+ },+ "( >= 6.2.7 )": {+ "distroPKGs": [+ "ysxckmm"+ ],+ "notes": "oabufgpl"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "adacln",+ "qrutj",+ "tqczqx",+ "nstauvs",+ "pkhwz",+ "mgcoa",+ "e"+ ],+ "notes": "mxewbc"+ }+ },+ "Windows": {+ "( <= 3.2.7 && < 8.5.6 && <= 2.5.2 && == 4.8.4 && == 7.5.3 && > 3.8.3 && == 1.7.6 && <= 8.3.6 && == 6.1.5 ) || ( >= 4.8.7 && <= 2.6.2 && > 6.8.5 && >= 5.2.6 && < 3.4.8 )": {+ "distroPKGs": [+ "gepkbc",+ "jmvg",+ "hdflb"+ ],+ "notes": "xuvsiuni"+ },+ "( <= 5.2.5 && > 5.3.2 && >= 3.4.5 && < 8.3.2 && <= 1.6.4 ) || ( < 3.7.8 ) || ( > 8.1.5 && <= 3.9.1 && <= 3.5.7 && < 5.3.8 && >= 2.6.4 && < 4.3.5 && >= 5.2.5 && < 5.1.1 && >= 3.5.4 ) || ( <= 3.8.1 && <= 7.3.7 && == 1.2.2 ) || ( == 3.8.5 ) || ( > 5.2.5 && <= 4.5.2 && <= 1.7.8 && < 1.5.1 && > 1.7.3 && == 4.8.6 && > 6.8.1 && == 8.5.7 && <= 7.5.6 ) || ( == 4.2.4 && > 3.8.1 )": {+ "distroPKGs": [+ "cgg",+ "p",+ "symxp",+ "uf",+ "p"+ ],+ "notes": "ctnhts"+ },+ "( <= 6.6.8 && < 8.2.2 && < 5.2.5 ) || ( > 3.7.2 && >= 6.8.4 ) || ( == 7.1.3 && == 8.2.6 && == 2.5.1 && <= 7.3.5 && > 3.7.8 && == 5.7.3 && == 2.1.4 )": {+ "distroPKGs": [+ "lab",+ "wwl",+ "fklgzup",+ "qdtkjm",+ ""+ ],+ "notes": "ycabtrhu"+ },+ "( == 3.1.5 && == 6.5.7 && > 3.4.8 && > 5.8.7 && > 2.7.2 && > 3.8.4 && < 3.2.1 ) || ( >= 8.8.2 && < 7.6.2 && <= 6.7.6 && <= 4.8.7 && <= 7.6.5 && >= 7.8.3 )": {+ "distroPKGs": [+ "galnxfu",+ "ue",+ "lzftv"+ ],+ "notes": ""+ },+ "( == 4.4.6 && == 8.4.2 && > 6.3.2 ) || ( == 2.3.4 && < 6.8.8 && == 6.1.8 && == 2.2.6 && > 6.3.3 && >= 5.3.7 && < 2.8.8 && > 7.6.2 && >= 6.3.6 )": {+ "distroPKGs": [+ "cep"+ ],+ "notes": "xiesxu"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ugdkt"+ ],+ "notes": "gxycxs"+ }+ }+ },+ "9.4.8": {+ "Linux_Mint": {+ "( < 6.3.8 && > 5.4.4 && == 4.5.3 ) || ( > 8.3.2 && >= 3.6.2 && > 7.8.4 && == 5.1.5 && > 6.3.2 && == 6.7.3 && == 3.8.8 && > 1.7.1 )": {+ "distroPKGs": [+ "q",+ "",+ "pzb",+ "ex"+ ],+ "notes": "bmbxgf"+ },+ "( <= 8.5.5 && == 1.6.2 && <= 4.2.3 && <= 8.3.7 && == 6.6.1 && >= 4.3.8 ) || ( > 2.3.5 && == 4.4.3 && > 4.6.2 ) || ( <= 8.4.4 && == 6.3.1 && < 8.3.7 && >= 5.4.8 && < 7.5.3 && > 7.3.1 )": {+ "distroPKGs": [+ "uvj",+ "eqhumgck",+ "al",+ "lywl",+ "onirmq"+ ],+ "notes": "ajkzcsf"+ },+ "( == 2.8.6 && >= 4.5.8 && >= 4.3.2 && > 6.5.2 && == 6.7.6 && >= 5.2.6 ) || ( >= 8.2.6 && > 7.3.5 && > 6.6.5 )": {+ "distroPKGs": [+ "ohhb",+ "rnu",+ "r"+ ],+ "notes": "dgzwlznq"+ },+ "( > 6.1.4 && < 5.1.5 && <= 4.2.5 && >= 8.1.1 && >= 3.5.6 && <= 2.7.8 && == 5.1.5 && < 2.7.4 ) || ( <= 5.5.8 && == 7.1.7 && >= 8.3.8 && <= 6.4.6 && <= 7.3.4 )": {+ "distroPKGs": [+ "q",+ "daxlja",+ "ocvkasdv"+ ],+ "notes": "h"+ },+ "( >= 6.4.4 && <= 2.7.1 && > 4.2.4 && < 1.2.5 ) || ( <= 7.2.1 && <= 8.8.7 && >= 9.3.2 && > 1.2.7 )": {+ "distroPKGs": [+ "bdew",+ "oodf",+ "mplr",+ "xwyqlqu",+ "cb",+ "",+ "tpjct"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "pomqbebm"+ ],+ "notes": "jblhrssj"+ }+ }+ },+ "unknown_version": {+ "Darwin": {+ "( < 3.6.3 && > 4.7.10 && >= 2.3.4 && >= 7.8.7 && >= 8.5.3 && >= 7.2.8 && < 5.7.4 && > 2.1.3 )": {+ "distroPKGs": [],+ "notes": "jtyhnss"+ },+ "( <= 1.1.1 ) || ( == 1.5.4 && >= 7.1.3 && > 3.1.4 && == 3.7.2 && < 2.1.5 && >= 1.7.4 && <= 8.2.3 && > 1.4.7 && == 8.5.6 )": {+ "distroPKGs": [+ "gvkxzqa",+ "e"+ ],+ "notes": "rmzl"+ },+ "( > 7.5.8 && < 7.6.1 && < 2.4.4 ) || ( < 4.1.3 && == 7.5.7 && >= 2.8.2 && == 2.7.1 && == 2.1.7 && == 8.4.3 && < 2.3.4 && < 7.1.1 && >= 1.7.2 )": {+ "distroPKGs": [+ "m",+ "zptgozr"+ ],+ "notes": "bzfqj"+ },+ "( > 8.2.8 && < 4.5.6 && >= 7.4.5 && <= 4.1.4 && == 4.8.1 && > 6.2.8 && >= 3.7.5 && <= 5.2.8 && == 8.5.3 )": {+ "distroPKGs": [+ "vwkf",+ "rje",+ "wawyniw",+ "",+ "uukrzq"+ ],+ "notes": "lleoqw"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "mcvi",+ "grlw"+ ],+ "notes": "koewqj"+ }+ },+ "Linux_AmazonLinux": {+ "( < 4.3.1 && < 8.5.4 && > 1.4.5 && == 3.4.3 && < 6.5.6 && >= 5.3.4 && == 8.2.4 ) || ( == 2.1.7 && == 5.4.3 && < 6.2.7 )": {+ "distroPKGs": [+ "nryyfely"+ ],+ "notes": "xt"+ },+ "( == 7.7.2 && >= 6.6.1 )": {+ "distroPKGs": [+ "udrqfp",+ "jwvb",+ "nwhtexfp",+ "dbbntal",+ "",+ ""+ ],+ "notes": "hgkvkp"+ },+ "( > 5.1.5 && >= 1.3.3 && >= 6.2.4 && >= 5.6.1 && < 6.8.5 && >= 7.7.4 ) || ( < 4.5.3 && < 6.5.4 && > 1.1.7 && >= 4.7.2 && == 4.6.8 && == 3.6.6 && >= 2.6.2 )": {+ "distroPKGs": [+ "fon",+ "zcbjd"+ ],+ "notes": "c"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "gwhelip",+ "",+ "o",+ "",+ "pnxjsj",+ "sm"+ ],+ "notes": "gbwcyqq"+ }+ },+ "Linux_CentOS": {+ "unknown_versioning": {+ "distroPKGs": [+ "j",+ "uxreylp",+ "amqpm",+ "j",+ "pkyhsdk"+ ],+ "notes": "jctli"+ }+ },+ "Windows": {+ "( < 8.4.2 && == 6.5.5 && < 1.8.3 && == 2.5.1 && > 4.8.5 && > 3.2.2 ) || ( < 5.8.7 ) || ( > 6.8.3 && > 1.7.6 && > 2.1.6 && == 1.7.6 && == 4.2.4 && < 4.4.7 )": {+ "distroPKGs": [+ "hti",+ "mbmqoxj",+ "w",+ "pvbt",+ "c",+ ""+ ],+ "notes": "nn"+ },+ "( < 8.5.3 && >= 3.1.6 && < 1.2.4 && > 5.1.6 && < 7.6.3 && >= 4.3.8 && < 8.3.4 ) || ( == 7.7.5 && >= 3.5.6 && >= 4.7.4 && >= 8.6.7 && <= 5.7.4 && < 6.8.8 && > 1.7.8 ) || ( <= 3.2.1 && == 8.1.2 && < 6.4.1 ) || ( <= 3.3.4 && > 2.6.8 && <= 2.7.5 )": {+ "distroPKGs": [+ "gwx",+ "z"+ ],+ "notes": "nuqq"+ },+ "( <= 3.4.6 && > 6.6.7 && < 1.1.2 && > 3.6.8 && < 4.4.5 && <= 5.5.8 ) || ( == 7.8.1 && >= 8.1.6 && > 5.6.3 && == 1.1.6 ) || ( > 4.3.2 && <= 6.7.8 && > 3.8.2 && < 6.7.3 && >= 4.3.1 && > 2.7.3 && > 5.3.1 )": {+ "distroPKGs": [+ "s",+ "iufzivg",+ "doyrcmr",+ "ktwph",+ "pmma",+ "",+ "deponq",+ ""+ ],+ "notes": "twm"+ },+ "( == 7.3.4 && >= 5.3.8 ) || ( == 4.6.2 && >= 6.7.1 && > 2.6.2 && < 6.8.4 && > 5.3.4 )": {+ "distroPKGs": [+ "xcskjzlb",+ "uarb",+ "f",+ "jmanhh",+ "s",+ "hln",+ "gsvbfupu"+ ],+ "notes": "jabw"+ },+ "( >= 4.2.1 ) || ( > 7.7.2 )": {+ "distroPKGs": [+ "owf"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "k",+ "sxhg",+ "exh",+ "cmrnvuhg",+ "qxmkj"+ ],+ "notes": "gu"+ }+ }+ }+ }+ }+ },+ {+ "ghcupDownloads": {+ "GHC": {+ "1.7.7": {+ "viArch": {+ "A_32": {+ "Darwin": {+ "( <= 1.7.1 && <= 4.3.8 && < 7.2.3 && >= 8.7.1 && > 6.3.4 && >= 6.8.1 && < 1.1.8 && == 5.2.3 ) || ( > 1.3.7 && <= 6.7.5 )": {+ "dlHash": "bw",+ "dlSubdir": "\u0018n#KhO",+ "dlUri": "http:vdxnm"+ },+ "( <= 6.4.4 && <= 3.6.3 && > 3.8.1 && == 4.4.7 && >= 2.3.4 ) || ( > 8.7.5 && >= 1.3.6 ) || ( > 5.6.2 && == 8.4.4 && >= 2.3.7 && > 6.5.5 ) || ( >= 1.2.4 && < 5.2.3 && >= 5.6.5 && >= 1.1.2 && >= 4.2.7 ) || ( > 1.4.7 && < 4.8.6 && < 5.4.3 && >= 3.8.2 )": {+ "dlHash": "q",+ "dlSubdir": null,+ "dlUri": "https:wx"+ },+ "( <= 7.5.7 && <= 6.5.1 && < 1.4.3 && == 5.8.7 )": {+ "dlHash": "vcp",+ "dlSubdir": null,+ "dlUri": "https:ltdcvvn"+ },+ "( > 7.2.5 && < 4.8.5 && <= 7.4.1 && < 7.4.1 && >= 2.8.8 && == 2.2.5 && <= 2.6.5 && <= 1.6.1 && < 6.2.7 )": {+ "dlHash": "xqcoct",+ "dlSubdir": null,+ "dlUri": "http:c"+ },+ "unknown_versioning": {+ "dlHash": "hn",+ "dlSubdir": "",+ "dlUri": "http:dxaxrgi"+ }+ },+ "FreeBSD": {+ "( < 6.8.2 && == 4.8.1 && <= 8.5.8 && == 5.1.4 && == 8.4.8 ) || ( <= 8.1.1 && >= 6.3.5 && == 1.2.6 && <= 1.6.6 && < 1.1.2 && == 2.8.3 && <= 3.5.4 && < 7.7.8 )": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": "P3𨑰💑ળQ"+ },+ "dlUri": "https:yb"+ },+ "( < 7.5.3 && < 5.6.3 && > 9.1.6 && > 1.2.6 ) || ( > 6.1.7 && > 5.7.3 && < 1.2.2 && == 6.8.2 && == 6.7.5 && < 4.7.7 ) || ( < 2.3.3 && == 3.2.6 )": {+ "dlHash": "x",+ "dlSubdir": "\\Rm𒎙䀾",+ "dlUri": "http:eu"+ },+ "( <= 8.8.6 && == 8.2.1 && == 5.6.2 && < 6.6.2 && < 7.3.3 && >= 6.1.3 )": {+ "dlHash": "jmkcu",+ "dlSubdir": null,+ "dlUri": "http:t"+ },+ "unknown_versioning": {+ "dlHash": "qfl",+ "dlSubdir": null,+ "dlUri": "https:qii"+ }+ },+ "Linux_AmazonLinux": {+ "( < 5.2.4 && < 3.4.1 && >= 2.1.6 && > 2.5.1 && >= 5.4.6 && < 7.4.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "T𗖂u\r"+ },+ "dlUri": "https:e"+ },+ "( < 8.8.3 && <= 1.6.1 && < 4.3.3 && < 8.6.5 && > 8.1.2 && >= 5.3.6 && <= 3.2.3 && <= 9.2.3 && > 7.7.5 ) || ( >= 3.5.1 && <= 7.3.2 && >= 2.4.3 && <= 5.2.2 && <= 6.6.5 && >= 8.2.1 && > 7.4.3 )": {+ "dlHash": "yzakihw",+ "dlSubdir": {+ "RegexDir": "\"M"+ },+ "dlUri": "https:"+ },+ "( <= 1.5.2 && >= 2.1.2 && == 3.6.2 && > 5.8.4 && <= 8.5.6 && > 6.4.4 && == 1.7.6 && <= 7.3.2 ) || ( == 5.3.1 && > 2.2.7 && >= 7.7.5 && > 4.5.1 && == 1.1.7 && == 5.6.3 ) || ( > 1.7.6 && > 2.4.6 && <= 2.3.4 && >= 4.7.1 && < 8.4.5 && <= 7.3.7 && <= 4.4.8 && == 6.4.5 && == 5.4.5 )": {+ "dlHash": "az",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "( <= 4.5.4 && < 8.4.7 && >= 3.2.2 && <= 6.4.8 && >= 2.5.8 && == 8.4.2 && > 7.6.3 && > 5.1.7 )": {+ "dlHash": "dw",+ "dlSubdir": {+ "RegexDir": "*k"+ },+ "dlUri": "http:krxdz"+ },+ "( >= 2.7.1 && == 2.5.2 && >= 4.8.5 && == 2.8.4 && == 3.2.2 ) || ( >= 1.7.7 ) || ( == 6.8.6 ) || ( <= 2.3.3 && >= 8.7.2 && <= 1.8.4 && <= 3.6.7 && >= 1.7.7 && > 1.7.3 && == 1.2.7 && >= 7.5.5 && <= 8.2.2 ) || ( >= 2.3.3 && == 3.4.5 && > 2.4.6 && <= 6.1.6 && >= 7.2.4 ) || ( <= 7.7.7 && == 1.6.7 ) || ( == 6.4.8 && >= 7.2.3 ) || ( == 2.1.2 && < 4.1.5 && <= 2.3.5 && <= 1.2.3 && > 1.4.4 && == 7.3.8 && > 6.5.1 && == 5.1.8 && >= 8.2.2 ) || ( <= 8.6.8 && >= 4.8.7 && == 1.7.5 && > 4.7.3 && < 5.3.3 && == 4.8.7 && < 4.7.4 )": {+ "dlHash": "",+ "dlSubdir": "I2gHI𬖱&A",+ "dlUri": "https:vljqum"+ },+ "( >= 3.4.8 && > 7.1.2 && >= 7.8.8 ) || ( <= 1.4.7 && < 3.7.5 && >= 5.3.2 && == 1.3.4 && >= 7.2.4 && == 6.3.7 )": {+ "dlHash": "awiz",+ "dlSubdir": ";NFJ\u000e9",+ "dlUri": "https:nizhdk"+ },+ "unknown_versioning": {+ "dlHash": "oe",+ "dlSubdir": {+ "RegexDir": "𖦲"+ },+ "dlUri": "https:j"+ }+ },+ "Linux_Exherbo": {+ "( < 6.5.6 && > 4.7.1 && >= 1.6.5 && > 6.2.1 )": {+ "dlHash": "nfeucwv",+ "dlSubdir": {+ "RegexDir": "\u0013\u0002\u0015𒍺\u0005q?"+ },+ "dlUri": "http:phn"+ },+ "( <= 4.7.2 && == 4.9.7 && >= 1.1.2 && >= 6.4.7 && < 5.4.5 && >= 5.7.2 && <= 4.5.1 && >= 7.6.5 && == 5.6.1 )": {+ "dlHash": "a",+ "dlSubdir": {+ "RegexDir": "C5H"+ },+ "dlUri": "https:knd"+ },+ "( <= 6.1.5 && <= 2.2.2 && < 2.5.3 ) || ( <= 5.4.1 && >= 1.4.6 && >= 6.2.4 ) || ( < 4.8.5 && < 7.3.5 && > 8.5.5 && <= 7.6.1 ) || ( == 3.3.3 && >= 1.6.1 && < 1.2.7 ) || ( == 4.4.4 && < 5.6.2 && <= 7.2.1 && <= 8.2.7 && <= 3.1.3 && >= 8.8.5 && <= 3.8.7 && > 7.4.2 ) || ( > 1.6.4 && > 3.7.5 && < 8.6.6 && <= 2.5.2 && == 3.5.2 && == 3.3.5 && >= 4.1.7 ) || ( >= 6.4.7 && < 4.6.3 && >= 8.7.6 && <= 6.6.2 ) || ( <= 4.8.5 && <= 2.3.4 && > 2.3.5 && < 8.6.2 && > 7.4.5 && > 6.4.3 ) || ( > 7.2.1 && <= 1.6.3 && < 8.2.8 && > 2.5.2 && < 4.5.7 && > 3.4.7 && <= 4.8.8 && <= 1.4.1 && > 2.4.7 ) || ( <= 3.5.2 ) || ( > 1.6.4 && < 4.3.3 && < 1.1.6 && <= 5.8.2 && <= 8.9.8 && > 6.4.1 )": {+ "dlHash": "tlv",+ "dlSubdir": "\u0002",+ "dlUri": "http:tuyec"+ }+ },+ "Linux_UnknownLinux": {}+ },+ "A_PowerPC": {+ "Darwin": {+ "( <= 8.8.3 )": {+ "dlHash": "jusmuda",+ "dlSubdir": null,+ "dlUri": "http:tsbt"+ },+ "( == 3.2.1 && == 8.6.2 && >= 7.8.6 && > 2.5.3 && == 5.2.8 && > 8.1.7 && <= 7.4.7 ) || ( == 1.7.2 && >= 4.4.3 && <= 6.8.6 && > 2.1.6 )": {+ "dlHash": "",+ "dlSubdir": "~0䋶]较",+ "dlUri": "http:wjz"+ },+ "unknown_versioning": {+ "dlHash": "kgeasled",+ "dlSubdir": "m𒍪y`",+ "dlUri": "https:bdmslflx"+ }+ },+ "FreeBSD": {+ "( <= 5.3.5 && > 4.6.3 && < 3.8.7 && >= 3.5.9 ) || ( < 7.4.1 && == 3.7.8 && > 4.7.1 && > 1.4.2 && >= 5.8.7 && >= 5.2.1 && == 5.5.4 && >= 2.2.4 )": {+ "dlHash": "lzbjcrv",+ "dlSubdir": "pA!X",+ "dlUri": "https:"+ },+ "( == 7.4.7 && == 7.6.7 && == 7.3.4 && >= 8.4.4 && == 1.3.5 && == 6.4.2 ) || ( < 8.2.2 && < 5.4.1 )": {+ "dlHash": "oub",+ "dlSubdir": ",",+ "dlUri": "http:jcyuhga"+ },+ "( > 2.1.5 )": {+ "dlHash": "mrxyju",+ "dlSubdir": null,+ "dlUri": "https:ixmyjr"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "]嗑\rsQd "+ },+ "dlUri": "https:"+ }+ },+ "Windows": {+ "( < 3.2.7 && == 7.5.8 && > 6.3.8 && <= 2.7.5 && < 5.3.2 )": {+ "dlHash": "wanmlhwd",+ "dlSubdir": {+ "RegexDir": "\u0011E\u0007𤛩2"+ },+ "dlUri": "https:vclviii"+ },+ "( < 3.4.2 && > 7.4.6 && == 2.2.4 && == 5.8.2 && > 8.1.6 && >= 5.2.5 && == 2.8.2 && >= 3.1.2 && >= 6.8.6 )": {+ "dlHash": "wbnegg",+ "dlSubdir": null,+ "dlUri": "https:m"+ },+ "( <= 2.3.4 && == 1.6.5 && > 8.3.7 && < 8.1.3 ) || ( == 7.1.2 && >= 7.4.6 && > 1.1.2 )": {+ "dlHash": "mftjqkc",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( == 6.5.6 && >= 6.4.4 && < 7.1.6 && == 1.2.6 && < 8.3.2 && >= 3.8.1 && == 4.2.1 )": {+ "dlHash": "uftgz",+ "dlSubdir": "\u000e7#",+ "dlUri": "http:xzwdqjc"+ },+ "unknown_versioning": {+ "dlHash": "amefdje",+ "dlSubdir": null,+ "dlUri": "http:q"+ }+ }+ },+ "A_Sparc": {},+ "A_Sparc64": {+ "Darwin": {+ "( < 4.8.2 && < 1.1.2 && == 7.7.2 && == 8.6.8 && > 7.5.1 && <= 4.5.3 && == 6.3.5 ) || ( < 2.7.4 && <= 7.8.7 && > 9.2.3 && < 7.3.2 ) || ( == 6.5.4 && <= 1.5.7 && < 4.2.6 && <= 1.5.8 && < 4.7.8 && >= 2.6.3 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "hi𭗈#"+ },+ "dlUri": "http:jqrpsqo"+ },+ "( <= 7.8.1 && <= 5.4.1 && <= 1.6.2 ) || ( >= 8.7.2 && <= 7.8.6 && >= 7.2.2 && <= 1.4.1 && == 5.3.4 && == 3.3.7 )": {+ "dlHash": "z",+ "dlSubdir": {+ "RegexDir": "𢓋"+ },+ "dlUri": "https:"+ },+ "( == 8.1.7 && < 4.5.3 && < 7.4.1 && <= 1.7.6 && < 4.1.2 && <= 7.4.8 && < 4.7.3 && >= 8.1.4 && >= 3.7.1 )": {+ "dlHash": "hcvnqoo",+ "dlSubdir": {+ "RegexDir": "M\u001d\u001b\u0001"+ },+ "dlUri": "http:hmrfzi"+ },+ "( > 3.8.7 )": {+ "dlHash": "ja",+ "dlSubdir": "\u0002\u0004m𪑜T",+ "dlUri": "http:"+ },+ "( > 5.2.8 && >= 8.6.6 && > 5.6.2 && < 1.7.7 && <= 8.8.5 && > 4.1.3 && >= 4.7.2 && < 5.8.6 && <= 6.3.5 ) || ( >= 8.7.3 && == 6.3.6 && <= 2.3.3 && <= 2.6.1 && >= 6.4.2 ) || ( == 7.8.1 && > 8.5.3 && >= 8.4.6 )": {+ "dlHash": "ly",+ "dlSubdir": "\u000bႺ𘌤",+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "zorpbt",+ "dlSubdir": "+.;Im7",+ "dlUri": "https:lrrquhf"+ }+ },+ "FreeBSD": {+ "( < 7.1.4 && == 6.8.1 && >= 1.8.8 && <= 1.1.3 && == 4.8.2 && < 3.8.1 && < 8.1.4 ) || ( >= 6.2.3 && > 4.5.3 && > 7.2.5 && <= 5.1.7 && == 4.7.8 && < 5.6.1 && <= 5.8.2 ) || ( == 7.5.1 && >= 1.4.6 && >= 7.6.6 ) || ( <= 6.5.2 ) || ( == 4.8.5 && < 4.1.2 && > 6.2.3 && <= 7.1.4 && >= 5.7.2 && < 4.6.6 ) || ( <= 7.8.5 && >= 5.7.7 && < 2.8.6 && == 4.2.6 && <= 4.1.6 && > 4.8.5 && <= 5.4.7 )": {+ "dlHash": "yaevnip",+ "dlSubdir": "\u001e \u000b}𥮊",+ "dlUri": "https:txyf"+ },+ "( == 1.4.1 && > 4.8.8 ) || ( > 3.4.2 && >= 2.6.5 && <= 5.1.8 && <= 8.4.5 )": {+ "dlHash": "vavjj",+ "dlSubdir": {+ "RegexDir": "Ww1"+ },+ "dlUri": "http:rzlab"+ },+ "unknown_versioning": {+ "dlHash": "k",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:pdyrj"+ }+ }+ }+ },+ "viChangeLog": "http:mjfe",+ "viPostInstall": null,+ "viPostRemove": null,+ "viPreCompile": "rkmaobn",+ "viSourceDL": {+ "dlHash": "gbhvafgn",+ "dlSubdir": "c",+ "dlUri": "http:vhrje"+ },+ "viTags": [+ "Recommended",+ "old",+ "Prerelease",+ "base-8.2.1",+ "old",+ "Latest",+ "base-8.5.8"+ ]+ },+ "2.1.4": {+ "viArch": {+ "A_32": {+ "Darwin": {+ "( <= 4.4.4 && <= 6.5.3 )": {+ "dlHash": "dqlpyh",+ "dlSubdir": "sj\"\u001a",+ "dlUri": "http:"+ },+ "( == 7.1.4 )": {+ "dlHash": "or",+ "dlSubdir": {+ "RegexDir": "6\t{𐇮𩛑\u0018"+ },+ "dlUri": "http:h"+ }+ },+ "FreeBSD": {},+ "Linux_AmazonLinux": {+ "( == 1.6.3 && > 2.1.1 && <= 5.1.5 && < 8.2.7 && < 7.4.3 && > 5.3.2 )": {+ "dlHash": "zmazx",+ "dlSubdir": null,+ "dlUri": "http:iuv"+ },+ "( == 5.7.3 && > 8.5.8 && <= 4.7.8 )": {+ "dlHash": "iy",+ "dlSubdir": {+ "RegexDir": "!("+ },+ "dlUri": "https:"+ },+ "( > 3.4.7 && > 4.6.4 && <= 3.2.7 && == 6.7.8 && > 7.6.5 && < 7.4.1 && <= 8.5.1 && >= 8.5.6 && < 7.7.2 ) || ( == 3.3.3 ) || ( >= 5.6.7 && == 7.4.7 )": {+ "dlHash": "i",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:fbfojc"+ },+ "( > 5.4.7 && >= 1.4.8 )": {+ "dlHash": "idvcwdwb",+ "dlSubdir": "M",+ "dlUri": "http:"+ },+ "( >= 1.2.1 && == 8.5.1 && < 1.2.1 && > 3.4.8 && > 5.7.4 && <= 4.4.8 && == 8.6.5 ) || ( == 4.2.4 && <= 2.3.4 && >= 6.4.4 && == 3.7.5 && <= 3.6.5 && > 4.4.4 ) || ( > 4.6.5 && <= 5.7.6 && > 7.5.8 && < 2.1.7 && == 5.5.3 && == 2.6.1 && < 3.3.6 && < 6.4.4 ) || ( == 2.8.5 && > 1.4.8 && > 8.1.5 && > 8.6.8 && >= 4.4.4 && >= 7.7.2 && > 7.7.4 && >= 1.6.5 && >= 6.1.3 ) || ( < 7.8.2 )": {+ "dlHash": "v",+ "dlSubdir": null,+ "dlUri": "https:ihxawj"+ },+ "unknown_versioning": {+ "dlHash": "srmnkhs",+ "dlSubdir": "w",+ "dlUri": "https:iapulx"+ }+ },+ "Linux_Debian": {+ "( < 4.8.4 && == 4.8.4 && == 1.2.7 && >= 6.4.3 && > 6.5.6 && < 5.4.3 )": {+ "dlHash": "biqb",+ "dlSubdir": "L\u0005_y?",+ "dlUri": "http:auttlat"+ },+ "( < 6.1.6 && >= 4.1.8 )": {+ "dlHash": "atb",+ "dlSubdir": {+ "RegexDir": "^@]o"+ },+ "dlUri": "http:ze"+ },+ "( > 3.1.1 && > 1.8.3 && >= 2.5.8 && <= 2.1.4 )": {+ "dlHash": "oa",+ "dlSubdir": null,+ "dlUri": "http:gw"+ },+ "( >= 5.8.4 && == 5.6.3 && > 3.2.7 && >= 7.7.4 && >= 10.7.2 && < 1.3.8 && >= 5.1.4 && <= 6.1.7 && < 1.2.8 ) || ( == 8.1.5 && < 3.2.6 )": {+ "dlHash": "sqbv",+ "dlSubdir": {+ "RegexDir": "h_>4"+ },+ "dlUri": "http:cunv"+ },+ "( >= 7.7.7 && >= 1.1.1 && <= 1.1.7 && < 5.7.2 && == 8.2.4 && > 2.7.5 && <= 8.3.2 )": {+ "dlHash": "ki",+ "dlSubdir": null,+ "dlUri": "http:dbk"+ },+ "unknown_versioning": {+ "dlHash": "ofg",+ "dlSubdir": "𫅅SV䆘",+ "dlUri": "http:btrl"+ }+ },+ "Windows": {+ "( < 8.4.7 && > 2.2.3 && == 5.1.7 && < 7.4.5 && == 4.5.2 && > 3.9.3 )": {+ "dlHash": "qqoa",+ "dlSubdir": "\u0011o7𢤍uC",+ "dlUri": "http:"+ },+ "( <= 4.6.2 && >= 7.1.4 && == 2.1.2 && < 4.5.3 && > 1.8.4 && <= 6.7.5 && < 4.4.2 ) || ( > 5.3.5 )": {+ "dlHash": "bfokctlr",+ "dlSubdir": null,+ "dlUri": "http:spziffm"+ },+ "( == 4.5.6 && == 8.8.1 && < 4.3.1 && <= 6.5.3 && > 3.3.3 && == 2.1.2 && < 7.4.3 ) || ( >= 7.8.1 && > 7.1.8 )": {+ "dlHash": "djupyqxp",+ "dlSubdir": null,+ "dlUri": "http:vta"+ },+ "( >= 5.1.6 && == 1.6.8 && <= 3.3.7 && <= 1.8.6 && > 7.1.6 && < 8.3.8 && <= 4.4.4 ) || ( < 7.4.5 && < 8.5.5 && <= 3.7.2 && == 3.1.1 )": {+ "dlHash": "bft",+ "dlSubdir": "P62𣍵`",+ "dlUri": "https:tjys"+ }+ }+ },+ "A_ARM": {+ "Darwin": {+ "( <= 1.8.8 && == 4.7.3 && > 2.7.5 && == 2.3.8 && == 5.4.6 && <= 7.3.8 && >= 6.4.2 && < 2.2.3 && <= 7.7.3 )": {+ "dlHash": "komdbct",+ "dlSubdir": null,+ "dlUri": "http:eoqb"+ },+ "( == 2.4.3 && >= 4.2.5 && == 7.5.5 && >= 3.6.7 && < 7.7.3 ) || ( >= 8.6.7 && == 8.3.6 && == 3.2.5 && < 6.1.3 )": {+ "dlHash": "mhjpic",+ "dlSubdir": null,+ "dlUri": "https:rh"+ },+ "( > 8.5.5 && < 8.4.6 && >= 1.3.4 )": {+ "dlHash": "ogzavkh",+ "dlSubdir": "\u001c",+ "dlUri": "https:qdedqmsk"+ },+ "( >= 6.1.2 )": {+ "dlHash": "rkxgri",+ "dlSubdir": "\u0008𬦬\u0014𭙪T\u0005",+ "dlUri": "http:pxwx"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "ftl𢱫",+ "dlUri": "http:emvzoio"+ }+ }+ },+ "A_PowerPC": {+ "FreeBSD": {+ "( < 7.4.1 && < 2.8.7 && == 7.5.8 && <= 2.3.6 && <= 2.7.5 && < 3.8.6 && >= 3.1.3 && <= 2.8.8 && == 5.7.8 ) || ( >= 3.4.3 && >= 1.4.6 && <= 1.3.3 && == 2.7.5 && < 2.5.1 && <= 8.7.1 && <= 1.8.3 && >= 5.8.1 && == 4.6.8 ) || ( < 7.4.3 && < 8.5.3 && < 3.1.3 && <= 4.3.8 && == 4.6.4 && > 1.3.4 && == 6.1.5 ) || ( > 8.1.8 && <= 4.6.6 && <= 1.5.2 ) || ( <= 2.4.8 && == 4.4.2 && > 6.2.8 && == 7.5.4 )": {+ "dlHash": "",+ "dlSubdir": "\u000b#u\u000b𨵯\u0016;2",+ "dlUri": "https:hoayenv"+ },+ "( <= 2.1.7 && >= 2.1.5 && == 6.6.8 && < 5.5.7 )": {+ "dlHash": "e",+ "dlSubdir": "𣸡K1\u0012\u000e",+ "dlUri": "https:m"+ },+ "( > 4.6.5 && == 2.6.4 ) || ( > 6.1.8 && <= 2.2.1 && <= 5.4.3 && == 3.4.3 && >= 2.7.8 ) || ( > 8.7.4 && > 1.1.4 && > 4.3.4 && >= 7.3.5 && > 8.8.6 && > 3.1.4 && <= 8.5.5 && > 1.8.2 ) || ( <= 8.6.5 && == 1.4.7 && < 8.5.2 && > 3.1.7 && > 5.7.2 && < 4.4.8 )": {+ "dlHash": "jmfktdt",+ "dlSubdir": "`(",+ "dlUri": "http:hzrfdde"+ },+ "( > 6.5.8 && == 6.4.6 && >= 3.2.6 && < 3.7.4 && <= 2.4.6 && >= 1.5.1 )": {+ "dlHash": "jr",+ "dlSubdir": {+ "RegexDir": "\r\u0003\u001aG)"+ },+ "dlUri": "https:anraq"+ },+ "( > 7.6.7 )": {+ "dlHash": "buem",+ "dlSubdir": {+ "RegexDir": "谆ܔ𗡘\u0001@iNw"+ },+ "dlUri": "https:q"+ }+ },+ "Linux_AmazonLinux": {+ "( < 8.6.7 && == 8.2.7 && > 8.5.1 ) || ( <= 5.5.4 ) || ( == 4.2.6 && < 5.8.4 && >= 5.4.2 && > 2.8.2 )": {+ "dlHash": "x",+ "dlSubdir": {+ "RegexDir": "6u\\$r"+ },+ "dlUri": "https:ql"+ },+ "( <= 3.8.2 && == 4.5.7 && == 4.1.7 && >= 7.1.5 && > 8.6.2 && <= 8.1.5 && == 7.6.4 && <= 4.8.1 && < 7.8.3 )": {+ "dlHash": "wx",+ "dlSubdir": null,+ "dlUri": "https:m"+ },+ "( == 5.8.7 && == 4.1.6 && == 4.1.3 && >= 5.7.7 && <= 3.5.8 && <= 5.7.4 && < 7.6.7 ) || ( >= 5.8.7 && <= 5.3.4 && == 4.6.6 && <= 1.6.1 && < 1.3.4 && > 5.6.4 && <= 3.5.5 )": {+ "dlHash": "yftv",+ "dlSubdir": null,+ "dlUri": "http:ts"+ },+ "( >= 1.7.7 && > 3.7.3 && > 7.3.7 && <= 3.5.3 && <= 5.5.4 && > 8.6.5 && >= 6.7.2 && < 7.7.4 )": {+ "dlHash": "",+ "dlSubdir": "F𡩈@H",+ "dlUri": "https:tgum"+ },+ "( >= 2.1.1 && <= 7.7.6 && <= 2.3.7 && > 7.3.4 && <= 5.2.2 && <= 6.1.4 && < 6.5.8 )": {+ "dlHash": "mx",+ "dlSubdir": {+ "RegexDir": "NB\u000b\r𞸝"+ },+ "dlUri": "https:vbuh"+ },+ "( >= 8.4.1 && > 4.7.4 && == 2.1.9 && < 7.7.7 && == 4.6.4 && > 9.3.1 && > 1.2.7 ) || ( <= 7.2.8 && < 6.5.4 && < 8.7.1 ) || ( >= 8.9.3 && >= 2.7.4 ) || ( < 5.7.8 && < 4.8.1 && < 5.8.6 && == 8.5.5 && <= 2.7.6 && < 7.1.8 && == 6.4.7 )": {+ "dlHash": "zcy",+ "dlSubdir": {+ "RegexDir": "e"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "(",+ "dlUri": "https:mpjylejt"+ }+ },+ "Linux_CentOS": {+ "unknown_versioning": {+ "dlHash": "ff",+ "dlSubdir": "-zN",+ "dlUri": "https:u"+ }+ },+ "Linux_Mint": {+ "( == 3.1.4 && == 5.1.3 && >= 7.2.1 && >= 5.3.4 && == 1.5.6 && <= 8.8.5 && >= 4.7.6 && < 6.5.4 && < 4.6.1 )": {+ "dlHash": "wegwdgq",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:zyalree"+ },+ "( > 2.7.4 && <= 7.1.4 && > 7.7.8 && < 2.1.2 && == 1.5.7 && < 2.2.4 && > 4.3.1 ) || ( == 4.7.2 && < 4.8.8 && < 7.1.7 && <= 2.4.7 && == 7.5.6 ) || ( >= 3.2.1 && == 2.7.4 ) || ( <= 4.3.2 && >= 4.4.3 && < 1.2.2 ) || ( < 2.8.2 && >= 7.7.3 && < 2.8.4 && < 7.2.3 && == 4.7.3 && >= 7.2.4 && == 6.1.5 && > 7.4.5 )": {+ "dlHash": "fab",+ "dlSubdir": {+ "RegexDir": "M"+ },+ "dlUri": "https:odtazice"+ },+ "( >= 4.8.2 && >= 4.2.1 && <= 3.5.5 && < 5.7.6 )": {+ "dlHash": "d",+ "dlSubdir": "NF=S",+ "dlUri": "https:fdlzdm"+ },+ "unknown_versioning": {+ "dlHash": "alt",+ "dlSubdir": "XΏ\n\u001c[KXi",+ "dlUri": "https:cbhik"+ }+ },+ "Windows": {}+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 3.8.1 && <= 6.2.8 && >= 1.6.7 && == 3.7.5 && == 6.1.8 && >= 3.1.4 )": {+ "dlHash": "xi",+ "dlSubdir": {+ "RegexDir": "\u0000p"+ },+ "dlUri": "http:dcepgx"+ },+ "( == 1.7.8 && < 8.2.5 && >= 2.5.8 && > 6.4.3 && < 8.6.5 && == 2.4.5 && > 8.8.1 && < 1.3.6 )": {+ "dlHash": "s",+ "dlSubdir": "u迤-g",+ "dlUri": "https:"+ },+ "( > 4.6.5 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "𭒆;*\u0005z\u0019\t"+ },+ "dlUri": "https:tyihb"+ },+ "( >= 5.5.6 && == 3.3.7 && <= 4.7.3 && == 2.1.1 && == 7.8.1 )": {+ "dlHash": "aqotx",+ "dlSubdir": null,+ "dlUri": "http:oehnm"+ }+ },+ "FreeBSD": {+ "( < 1.8.2 && > 4.1.6 && >= 3.3.1 && == 8.7.1 && > 4.8.1 && >= 2.4.7 && >= 7.6.2 && == 2.6.1 ) || ( >= 5.4.1 && <= 4.4.1 && == 3.3.8 && == 7.4.6 ) || ( > 5.5.2 && >= 1.3.8 && > 2.9.1 && < 4.1.8 && == 6.3.5 && < 7.2.7 && < 3.2.3 && == 7.5.6 && <= 1.8.4 )": {+ "dlHash": "k",+ "dlSubdir": null,+ "dlUri": "https:mjhmjgdg"+ },+ "( == 5.7.1 )": {+ "dlHash": "pupx",+ "dlSubdir": "~Pl\u0015",+ "dlUri": "http:z"+ },+ "unknown_versioning": {+ "dlHash": "tnckkxev",+ "dlSubdir": "+\t",+ "dlUri": "http:ynpdqh"+ }+ },+ "Linux_CentOS": {+ "( < 1.6.1 && < 8.6.5 && > 3.3.6 && == 2.2.1 && < 8.1.3 && < 8.2.2 && <= 3.7.3 ) || ( <= 8.5.8 && < 1.6.8 && == 6.4.1 && < 1.3.5 && < 3.6.6 && == 6.3.7 && < 4.6.1 ) || ( == 8.3.2 && == 7.8.7 ) || ( == 6.5.3 && == 6.9.7 && <= 4.8.6 && < 2.4.5 && <= 8.3.8 && > 7.7.1 && <= 5.3.1 && <= 7.3.5 )": {+ "dlHash": "bdikn",+ "dlSubdir": "\n\r6%繐",+ "dlUri": "https:l"+ },+ "( == 3.6.3 && <= 5.7.2 && >= 1.5.1 )": {+ "dlHash": "sh",+ "dlSubdir": {+ "RegexDir": "6𡃃迟\u000bv"+ },+ "dlUri": "https:um"+ },+ "( == 5.7.3 && == 8.6.5 && == 8.6.2 ) || ( <= 6.2.8 && < 6.1.6 && <= 2.2.4 && <= 7.7.6 && <= 1.5.8 && > 7.7.7 && > 2.2.7 && <= 6.3.2 && > 5.6.3 )": {+ "dlHash": "tfg",+ "dlSubdir": {+ "RegexDir": "N"+ },+ "dlUri": "https:"+ },+ "( >= 3.7.3 && == 4.1.8 && >= 8.3.6 && == 5.8.2 && < 5.4.1 )": {+ "dlHash": "wyo",+ "dlSubdir": "𡧟I)'cJ",+ "dlUri": "http:dyvi"+ },+ "unknown_versioning": {+ "dlHash": "qiuiabbi",+ "dlSubdir": "\u0008",+ "dlUri": "https:izateonx"+ }+ },+ "Linux_Debian": {+ "( > 8.1.4 && >= 5.1.8 && < 2.4.8 ) || ( >= 4.4.8 && <= 4.4.1 && >= 5.4.4 && >= 5.3.3 && <= 7.1.6 && <= 6.3.1 && <= 2.2.7 )": {+ "dlHash": "ihm",+ "dlSubdir": "_\u0004\"\u0017M#",+ "dlUri": "http:kwqkcy"+ },+ "( >= 5.8.3 && <= 4.7.6 && <= 2.1.4 && > 6.3.8 && < 6.1.5 && >= 1.2.3 && > 2.8.1 && < 6.8.9 ) || ( == 4.2.3 && <= 5.6.4 && == 3.6.6 && <= 6.3.6 && < 4.3.7 && >= 6.1.6 && == 1.6.3 && >= 5.6.8 ) || ( > 4.1.2 && < 6.8.7 && < 3.1.7 && < 8.7.5 && < 2.2.7 )": {+ "dlHash": "cis",+ "dlSubdir": {+ "RegexDir": "᪃\u000c"+ },+ "dlUri": "http:"+ },+ "( >= 6.8.5 && > 7.1.3 && == 8.4.4 && > 7.3.6 ) || ( <= 8.6.8 && < 7.6.7 && == 8.3.5 )": {+ "dlHash": "aslcoc",+ "dlSubdir": "𭲋𣗖cf;𧠘𞹂",+ "dlUri": "http:kij"+ },+ "( >= 8.2.5 && > 4.2.3 && < 3.7.1 && >= 5.1.3 && > 5.2.8 && <= 1.4.3 && <= 3.6.5 && <= 7.3.7 )": {+ "dlHash": "fbaodxtt",+ "dlSubdir": "\u000bV",+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "q",+ "dlSubdir": {+ "RegexDir": "&"+ },+ "dlUri": "http:ofodg"+ }+ },+ "Windows": {+ "( < 8.6.1 && == 7.4.4 ) || ( >= 1.1.1 && <= 8.4.7 && > 1.2.6 && == 8.3.8 ) || ( < 7.3.5 && > 5.7.2 && < 7.6.8 && < 2.1.8 && < 5.5.7 && >= 7.8.7 && > 3.8.8 && > 5.7.4 && >= 5.3.5 )": {+ "dlHash": "gluethg",+ "dlSubdir": null,+ "dlUri": "http:nulcriw"+ },+ "( < 8.6.2 && == 5.1.3 && < 8.5.5 )": {+ "dlHash": "hjdlbo",+ "dlSubdir": {+ "RegexDir": "H\u000c"+ },+ "dlUri": "https:"+ },+ "( <= 1.5.7 && == 1.8.5 && == 3.7.8 && == 4.3.2 && > 6.9.2 && < 2.3.3 && >= 3.7.6 && >= 5.2.6 && == 5.7.3 ) || ( == 6.3.1 && >= 8.8.2 && >= 6.6.3 ) || ( >= 8.4.7 && <= 3.6.6 && >= 6.8.3 && > 1.6.4 && < 2.6.5 && == 2.3.2 && == 3.6.5 && > 6.7.5 && <= 4.3.4 ) || ( >= 7.5.6 && > 3.6.5 && >= 3.4.3 && == 5.1.7 && > 1.9.3 ) || ( == 5.1.6 && > 5.8.7 && == 6.1.4 && >= 4.2.3 && < 5.4.1 && <= 1.8.4 )": {+ "dlHash": "wnqv",+ "dlSubdir": {+ "RegexDir": "'k𮯠\u001e7\u0004"+ },+ "dlUri": "https:mii"+ },+ "( == 3.6.7 && == 7.6.3 && == 8.3.1 && > 4.4.3 )": {+ "dlHash": "ei",+ "dlSubdir": "{먼",+ "dlUri": "http:encsehlw"+ },+ "unknown_versioning": {+ "dlHash": "vtwo",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( <= 1.3.4 && > 7.8.2 && == 1.4.7 && == 2.4.2 && >= 5.2.5 && >= 5.1.6 && <= 1.7.7 && >= 5.3.5 && < 5.7.5 ) || ( < 5.8.3 && >= 8.7.5 && < 5.2.7 )": {+ "dlHash": "as",+ "dlSubdir": "^F罣𮗈",+ "dlUri": "https:idufdly"+ },+ "( > 3.8.7 )": {+ "dlHash": "z",+ "dlSubdir": {+ "RegexDir": "WKVB\n+"+ },+ "dlUri": "http:eife"+ }+ },+ "FreeBSD": {+ "( < 2.8.2 && > 8.3.1 && > 7.4.8 && >= 5.7.3 && < 4.2.7 && == 3.5.7 )": {+ "dlHash": "gcmv",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:zdgiko"+ },+ "( == 1.6.5 && >= 3.4.2 && == 2.2.5 && >= 7.2.7 && > 7.6.8 && >= 4.8.3 && == 1.1.2 && <= 6.4.2 )": {+ "dlHash": "cxv",+ "dlSubdir": null,+ "dlUri": "https:dmixom"+ },+ "( == 2.2.8 ) || ( <= 7.1.6 && <= 7.5.2 && < 5.8.8 && < 7.2.3 && <= 3.7.4 && > 9.1.3 && < 5.4.1 && > 6.5.3 ) || ( > 3.3.8 && == 6.4.3 && == 7.1.5 && < 5.4.1 && >= 4.5.1 && >= 2.5.5 && < 4.7.1 && == 4.1.1 )": {+ "dlHash": "dxdrrp",+ "dlSubdir": {+ "RegexDir": ",/aMx\u000e"+ },+ "dlUri": "https:"+ },+ "( == 4.8.6 && > 2.7.2 && < 2.5.8 && > 3.7.1 && < 5.2.8 && >= 3.2.8 && > 7.6.8 && == 5.2.7 )": {+ "dlHash": "tw",+ "dlSubdir": {+ "RegexDir": "\u0013Z4"+ },+ "dlUri": "http:zsla"+ },+ "( > 4.6.8 && >= 4.4.5 && < 5.5.2 && >= 1.1.6 && <= 2.1.6 && < 7.2.2 && < 6.3.1 && > 1.2.6 )": {+ "dlHash": "r",+ "dlSubdir": "\u00142\r1",+ "dlUri": "http:i"+ },+ "( >= 4.4.4 )": {+ "dlHash": "i",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "mlekl",+ "dlSubdir": "",+ "dlUri": "http:a"+ }+ },+ "Linux_CentOS": {+ "( < 3.3.2 && <= 2.3.3 && < 1.6.7 ) || ( < 5.5.2 && >= 3.6.7 && < 3.7.5 && >= 5.2.7 && <= 8.6.8 && < 3.2.1 )": {+ "dlHash": "uoqh",+ "dlSubdir": {+ "RegexDir": "(y\"𨻥VS"+ },+ "dlUri": "http:mnx"+ },+ "( < 7.1.6 ) || ( <= 3.8.5 && <= 2.1.7 && == 4.6.3 && > 5.7.8 && > 8.2.8 ) || ( == 6.2.5 )": {+ "dlHash": "srrt",+ "dlSubdir": null,+ "dlUri": "http:rksstiq"+ },+ "( < 7.4.6 ) || ( >= 1.8.3 && == 4.4.3 && >= 6.2.8 && == 7.2.8 && >= 6.1.3 && == 2.7.4 )": {+ "dlHash": "bk",+ "dlSubdir": {+ "RegexDir": "\u001c"+ },+ "dlUri": "https:tzsksswz"+ },+ "( < 8.1.8 && == 3.8.8 && == 3.5.6 && >= 3.8.8 ) || ( == 8.4.3 && <= 4.3.2 && == 5.6.1 && <= 3.5.7 && == 1.2.6 && == 8.1.1 && == 5.4.8 && < 4.3.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0015eIs\u0003"+ },+ "dlUri": "http:fu"+ },+ "( > 8.1.5 && >= 6.8.2 && >= 8.5.6 && >= 2.5.5 && <= 3.7.3 && == 5.7.2 && == 6.4.8 )": {+ "dlHash": "ljqxy",+ "dlSubdir": "𭆳4\u0012Ag",+ "dlUri": "http:jvs"+ },+ "( > 9.6.7 && > 5.8.3 && < 2.5.2 && <= 5.4.6 && == 3.4.1 && == 8.2.6 && <= 4.5.8 ) || ( <= 7.2.5 )": {+ "dlHash": "uxtbaz",+ "dlSubdir": {+ "RegexDir": ",=\u0006zLt"+ },+ "dlUri": "https:jf"+ },+ "unknown_versioning": {+ "dlHash": "s",+ "dlSubdir": null,+ "dlUri": "http:b"+ }+ },+ "Windows": {}+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 6.7.3 && <= 1.6.3 ) || ( <= 7.1.7 && >= 6.3.3 && > 4.3.4 )": {+ "dlHash": "fwies",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( <= 2.1.8 )": {+ "dlHash": "iwdkjro",+ "dlSubdir": null,+ "dlUri": "http:tkbxagi"+ },+ "( <= 7.2.1 && < 8.6.6 && < 5.4.3 && <= 6.6.4 && <= 6.5.1 && == 7.3.8 && < 1.6.7 && >= 7.5.1 && < 4.3.2 ) || ( <= 1.4.7 && <= 5.7.2 && > 1.5.8 && <= 7.8.4 && > 8.8.4 && == 7.1.6 ) || ( < 1.8.4 && >= 5.1.7 && <= 5.7.2 && <= 2.2.8 && >= 5.7.6 && >= 5.1.2 && == 4.5.1 && == 8.8.3 && == 1.5.3 ) || ( >= 6.5.8 && <= 5.8.6 && > 3.3.3 && == 7.2.1 && >= 7.3.7 && < 7.3.3 && < 7.2.8 )": {+ "dlHash": "c",+ "dlSubdir": {+ "RegexDir": "X0\u001f<"+ },+ "dlUri": "https:wpuuion"+ },+ "( == 8.8.4 )": {+ "dlHash": "pz",+ "dlSubdir": "",+ "dlUri": "https:nff"+ },+ "( > 3.6.3 && == 3.6.3 && >= 1.2.5 && > 3.7.2 ) || ( == 3.7.8 && >= 6.1.6 && < 5.1.5 && <= 2.3.7 ) || ( >= 6.1.1 && < 5.5.5 && <= 5.7.4 && >= 7.3.1 && == 1.8.3 )": {+ "dlHash": "u",+ "dlSubdir": {+ "RegexDir": "}𥃆r𐐆J\u0007["+ },+ "dlUri": "https:mzem"+ },+ "unknown_versioning": {+ "dlHash": "vd",+ "dlSubdir": null,+ "dlUri": "http:wyr"+ }+ },+ "FreeBSD": {},+ "Linux_Gentoo": {+ "( <= 8.2.3 && <= 4.8.3 && <= 4.4.4 && == 6.3.8 )": {+ "dlHash": "iurnij",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:nkf"+ },+ "( == 3.1.3 && <= 3.1.8 && >= 8.4.5 && >= 5.1.1 && > 1.4.1 && >= 1.3.8 ) || ( == 5.8.6 && < 4.2.4 && >= 3.4.4 && < 6.10.8 && == 7.7.8 && < 8.6.6 && >= 6.5.6 )": {+ "dlHash": "vaiyqwcr",+ "dlSubdir": null,+ "dlUri": "https:mhuyi"+ },+ "( == 4.2.2 && >= 6.6.3 && > 4.3.1 && >= 1.5.1 )": {+ "dlHash": "jwaxea",+ "dlSubdir": "",+ "dlUri": "http:nd"+ },+ "( > 4.2.7 && > 2.7.7 )": {+ "dlHash": "jcjwo",+ "dlSubdir": "+E",+ "dlUri": "http:ll"+ },+ "( >= 4.7.2 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:grwlcqpd"+ }+ },+ "Linux_Mint": {+ "( < 5.3.7 && >= 5.6.7 && <= 2.6.2 && >= 6.1.2 && <= 3.2.1 && == 1.5.8 && > 5.2.5 && <= 7.1.2 && == 4.7.6 )": {+ "dlHash": "w",+ "dlSubdir": "1\u0018\u0014\u0005dP2",+ "dlUri": "https:dgmqu"+ },+ "( <= 6.2.2 && == 6.1.1 )": {+ "dlHash": "p",+ "dlSubdir": "l*`S\u0015",+ "dlUri": "https:ftblpvp"+ },+ "( == 2.7.2 && < 3.3.6 && <= 2.5.5 && > 4.5.8 )": {+ "dlHash": "cnvkgtu",+ "dlSubdir": {+ "RegexDir": "ᮋo1!P\u000cN"+ },+ "dlUri": "http:utqeuk"+ }+ }+ }+ },+ "viChangeLog": "http:",+ "viPostInstall": null,+ "viPostRemove": "hdst",+ "viPreCompile": "lssslq",+ "viSourceDL": null,+ "viTags": [+ "",+ "\u0018\u0017GF\u0018",+ "base-8.7.8"+ ]+ },+ "4.6.8": {+ "viArch": {+ "A_32": {+ "Darwin": {},+ "Windows": {+ "( >= 1.7.8 && > 8.4.7 && < 5.3.6 && < 2.8.1 && >= 4.1.1 && >= 8.1.4 && >= 6.2.8 && == 4.2.5 && > 6.5.3 ) || ( == 6.7.6 && < 8.5.2 && < 1.4.1 && > 1.5.6 && < 6.4.6 ) || ( > 3.3.5 && >= 4.7.5 && == 4.4.6 && <= 6.6.3 && <= 6.4.1 && < 6.8.4 ) || ( >= 3.7.1 && < 2.8.6 && >= 8.3.8 && == 6.3.5 && >= 7.7.2 && >= 7.3.2 && == 1.3.8 && == 8.7.5 )": {+ "dlHash": "onp",+ "dlSubdir": null,+ "dlUri": "http:oec"+ },+ "( >= 8.3.6 )": {+ "dlHash": "aq",+ "dlSubdir": "g\u00028\u0013x",+ "dlUri": "https:h"+ },+ "( >= 8.4.1 && == 5.8.3 && <= 8.5.2 && <= 1.4.4 && >= 5.5.6 && >= 6.7.8 ) || ( > 3.6.8 && <= 3.7.7 && <= 3.4.5 && <= 1.1.4 )": {+ "dlHash": "rjiwqmow",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "( >= 8.4.7 && >= 5.4.8 && <= 4.3.4 && < 3.6.1 && == 7.2.2 && > 5.7.5 )": {+ "dlHash": "gh",+ "dlSubdir": null,+ "dlUri": "https:z"+ },+ "unknown_versioning": {+ "dlHash": "dbchcojz",+ "dlSubdir": null,+ "dlUri": "https:ixw"+ }+ }+ },+ "A_ARM": {+ "Windows": {+ "( < 5.4.3 && <= 1.5.7 && < 8.3.2 && >= 3.6.2 && <= 2.1.7 )": {+ "dlHash": "fgo",+ "dlSubdir": "&K\u0005b",+ "dlUri": "https:ta"+ },+ "( < 8.3.4 && < 3.1.2 && <= 7.7.2 && >= 5.2.7 && > 4.8.2 && >= 4.7.6 && > 5.1.8 && <= 1.4.7 ) || ( < 4.5.6 && < 2.2.6 && <= 3.8.2 && < 8.3.8 && == 8.5.2 && <= 1.3.2 && == 8.8.6 && <= 6.3.4 && <= 4.3.2 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:gmhdy"+ },+ "( <= 2.8.2 && == 4.3.3 && > 4.8.8 && <= 4.2.1 ) || ( <= 7.1.8 && > 8.1.6 && <= 5.6.7 && <= 8.6.1 && <= 4.5.3 && < 4.4.8 ) || ( <= 1.8.7 && > 1.6.2 )": {+ "dlHash": "yu",+ "dlSubdir": {+ "RegexDir": "W𠙜"+ },+ "dlUri": "http:"+ },+ "( == 1.8.6 && <= 5.2.2 && == 1.4.5 && <= 1.7.2 && <= 4.7.3 && > 1.5.6 )": {+ "dlHash": "yqm",+ "dlSubdir": null,+ "dlUri": "https:y"+ },+ "( >= 1.2.1 && > 6.7.5 && == 5.8.6 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:ryjkujc"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( <= 5.8.5 )": {+ "dlHash": "svkpbgb",+ "dlSubdir": "\t\u001f\u0001<",+ "dlUri": "https:dwrmr"+ },+ "( <= 5.8.7 && == 9.8.7 && > 7.4.1 && <= 5.5.5 && <= 6.5.5 && > 1.3.6 && < 2.5.1 )": {+ "dlHash": "foaoly",+ "dlSubdir": null,+ "dlUri": "http:ibpvmwt"+ },+ "( > 3.4.3 && < 3.3.3 && < 6.5.4 && > 2.6.3 && > 6.2.1 && < 7.1.5 && >= 7.3.6 && == 8.1.5 && == 1.8.8 )": {+ "dlHash": "kifq",+ "dlSubdir": "𡭭?",+ "dlUri": "https:qy"+ },+ "( >= 7.5.1 && < 1.5.8 && > 1.3.6 && == 6.2.1 && >= 4.9.4 && > 3.7.7 && < 6.5.5 ) || ( >= 4.6.4 && < 5.8.3 && > 2.4.1 )": {+ "dlHash": "gj",+ "dlSubdir": {+ "RegexDir": "K\u0010\u0017@"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "iy",+ "dlSubdir": null,+ "dlUri": "http:uo"+ }+ },+ "FreeBSD": {+ "( < 4.2.5 && >= 6.8.7 && == 5.5.3 ) || ( >= 1.3.8 && >= 2.8.3 && >= 5.1.8 && < 5.2.3 )": {+ "dlHash": "qlw",+ "dlSubdir": null,+ "dlUri": "https:yaq"+ },+ "( > 2.7.4 && > 4.8.6 && <= 1.6.3 && >= 5.3.8 && == 2.4.2 ) || ( > 5.2.3 && < 5.2.1 && >= 8.5.1 && >= 2.3.5 && < 7.2.1 && > 8.5.8 && > 1.3.4 ) || ( <= 1.5.2 && <= 7.1.3 && > 6.5.5 && <= 7.9.3 && == 5.2.7 && == 1.7.4 ) || ( >= 6.1.6 && >= 6.1.6 && < 5.8.3 && > 6.2.7 && > 6.2.2 && > 1.8.7 && > 5.8.7 )": {+ "dlHash": "ehikcm",+ "dlSubdir": {+ "RegexDir": "V"+ },+ "dlUri": "http:enhzfd"+ },+ "( > 7.7.5 && == 2.1.3 && <= 7.8.2 && > 4.6.6 && > 4.2.4 && == 3.3.1 && > 8.5.2 && < 2.3.6 && == 6.3.6 )": {+ "dlHash": "vnojew",+ "dlSubdir": "",+ "dlUri": "https:d"+ },+ "( >= 7.5.3 && >= 6.3.7 && == 6.8.8 && < 5.3.7 && < 6.8.6 )": {+ "dlHash": "cnjhka",+ "dlSubdir": "^l\u0000",+ "dlUri": "http:up"+ }+ },+ "Linux_AmazonLinux": {+ "( <= 7.6.3 && < 7.2.1 && < 8.6.5 && > 4.3.3 && >= 4.3.1 && >= 6.8.5 )": {+ "dlHash": "wrnb",+ "dlSubdir": "\u001c\u000e#C",+ "dlUri": "https:"+ },+ "( > 2.8.4 && > 1.1.8 && < 7.4.3 && < 5.7.5 && == 8.5.7 && <= 5.1.10 && > 7.3.3 && < 2.8.3 && > 3.7.4 ) || ( > 5.1.2 && >= 5.5.2 && >= 8.2.4 )": {+ "dlHash": "niixhet",+ "dlSubdir": "/Z#轶s",+ "dlUri": "http:cd"+ },+ "unknown_versioning": {+ "dlHash": "h",+ "dlSubdir": "'x🖐",+ "dlUri": "http:sqj"+ }+ },+ "Windows": {+ "( < 1.3.5 && <= 8.5.8 && >= 4.4.3 && >= 8.1.1 && < 8.8.3 && >= 2.5.8 && < 5.2.5 && < 1.8.1 ) || ( == 1.3.3 && < 9.8.5 && >= 8.4.6 && >= 4.9.3 && < 1.7.5 && == 5.2.7 && >= 8.5.2 )": {+ "dlHash": "nu",+ "dlSubdir": null,+ "dlUri": "https:xwteyu"+ },+ "( < 8.2.2 && > 4.6.6 )": {+ "dlHash": "rexgnnk",+ "dlSubdir": "N",+ "dlUri": "https:mexc"+ },+ "( <= 1.3.3 && >= 1.1.2 && < 5.1.7 && >= 5.6.1 && >= 4.8.8 && > 8.3.5 && >= 6.4.1 && >= 4.4.4 ) || ( <= 8.5.1 && == 7.3.6 && >= 6.5.3 && < 2.6.5 ) || ( < 8.2.4 && <= 4.5.1 && < 5.5.6 && >= 1.4.6 && >= 4.5.8 )": {+ "dlHash": "zoppvur",+ "dlSubdir": "x.\u001e\u001e픚܁y4",+ "dlUri": "https:qvbltx"+ },+ "( > 3.4.4 && == 6.7.8 && < 1.2.7 && == 2.3.6 && >= 8.3.6 && > 1.4.1 && < 4.2.7 && == 1.3.2 && == 2.1.8 )": {+ "dlHash": "izhc",+ "dlSubdir": null,+ "dlUri": "http:hxx"+ }+ }+ },+ "A_Sparc": {},+ "A_Sparc64": {+ "Darwin": {+ "( > 7.8.1 && > 1.5.2 && >= 6.1.6 && < 2.8.5 && > 2.7.4 )": {+ "dlHash": "oshmsov",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "qfpke",+ "dlSubdir": "\u0015",+ "dlUri": "http:qsiqnarw"+ }+ },+ "FreeBSD": {+ "unknown_versioning": {+ "dlHash": "pbmdafkf",+ "dlSubdir": {+ "RegexDir": "9*95"+ },+ "dlUri": "http:xvyfh"+ }+ },+ "Linux_AmazonLinux": {+ "( <= 7.6.4 && == 7.3.8 && > 8.2.3 )": {+ "dlHash": "y",+ "dlSubdir": "c",+ "dlUri": "http:psisoa"+ },+ "unknown_versioning": {+ "dlHash": "bzllj",+ "dlSubdir": "𑌜\u0000Q!",+ "dlUri": "https:kramfv"+ }+ },+ "Windows": {+ "( <= 4.6.2 && >= 3.3.8 && >= 2.7.6 && < 9.6.5 ) || ( >= 6.3.1 && <= 5.3.7 && == 5.8.3 && > 1.2.3 ) || ( < 8.2.6 && >= 1.2.7 && >= 1.1.8 && > 4.8.2 && < 3.3.5 && > 8.5.6 && > 9.2.3 )": {+ "dlHash": "dpyem",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:dra"+ },+ "( > 1.2.3 && < 8.8.2 && == 4.4.3 ) || ( < 1.1.2 && >= 1.1.5 && < 4.8.5 ) || ( == 9.6.5 && >= 2.4.5 && > 8.3.2 && < 8.4.1 && > 3.5.8 ) || ( == 3.7.6 && > 1.8.2 && >= 8.1.5 ) || ( >= 2.6.8 )": {+ "dlHash": "re",+ "dlSubdir": null,+ "dlUri": "https:rcrqyfcd"+ },+ "( > 1.6.8 && <= 6.3.7 && < 5.3.8 && >= 8.6.7 )": {+ "dlHash": "zmzes",+ "dlSubdir": "\u0014v!\u000b",+ "dlUri": "https:zsixsi"+ },+ "( > 8.3.5 && <= 6.4.4 && == 7.8.4 && > 5.8.10 && >= 2.3.4 && >= 8.5.3 && < 6.3.5 && == 5.5.8 && >= 2.7.4 )": {+ "dlHash": "iniwnad",+ "dlSubdir": {+ "RegexDir": ":\u0001"+ },+ "dlUri": "https:avcjbf"+ },+ "( >= 4.7.3 && >= 5.1.6 && >= 2.6.7 && < 1.4.3 && > 7.2.3 && <= 5.6.5 && <= 5.4.5 && == 1.1.5 && <= 1.6.1 ) || ( < 8.4.3 && > 7.4.3 && >= 7.5.5 && >= 6.5.4 && > 1.5.7 && <= 8.4.7 && <= 1.8.2 ) || ( > 7.8.6 && > 8.6.1 && == 5.5.2 && <= 3.2.8 && >= 1.5.6 ) || ( >= 8.7.5 && <= 6.6.6 && < 6.1.1 && == 8.8.5 )": {+ "dlHash": "zitzpm",+ "dlSubdir": null,+ "dlUri": "https:tgce"+ },+ "unknown_versioning": {+ "dlHash": "www",+ "dlSubdir": "9\u0000b\u0004\u0008A",+ "dlUri": "https:yqmvnbjs"+ }+ }+ }+ },+ "viChangeLog": "http:ldlgqtca",+ "viPostInstall": null,+ "viPostRemove": "lp",+ "viPreCompile": "orlne",+ "viSourceDL": {+ "dlHash": "wehnncsi",+ "dlSubdir": "",+ "dlUri": "http:wvxpc"+ },+ "viTags": [+ "base-2.4.5",+ "qg~}\\",+ "Prerelease",+ "base-8.1.6",+ "old",+ "Latest"+ ]+ },+ "5.1.8": {+ "viArch": {+ "A_ARM": {+ "Darwin": {+ "( == 7.8.1 && > 6.6.7 && == 6.4.1 )": {+ "dlHash": "hsf",+ "dlSubdir": {+ "RegexDir": "l,"+ },+ "dlUri": "http:riomvpst"+ },+ "( > 5.2.7 && < 5.2.2 ) || ( <= 7.1.5 && > 4.5.8 && < 4.8.5 && <= 6.2.5 )": {+ "dlHash": "yxpcynp",+ "dlSubdir": {+ "RegexDir": "x\u00197\u001d\u0003"+ },+ "dlUri": "http:adnvjp"+ }+ },+ "FreeBSD": {+ "( < 5.7.3 && >= 8.5.5 && < 8.8.6 && < 4.5.4 )": {+ "dlHash": "xe",+ "dlSubdir": null,+ "dlUri": "http:g"+ },+ "( <= 8.3.8 && == 6.1.8 ) || ( <= 5.3.6 && < 1.8.5 && >= 1.2.5 )": {+ "dlHash": "zphhlee",+ "dlSubdir": null,+ "dlUri": "https:fnfudro"+ },+ "( > 5.7.3 ) || ( <= 7.6.7 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:vjyu"+ },+ "unknown_versioning": {+ "dlHash": "pdhvfp",+ "dlSubdir": {+ "RegexDir": "1cU"+ },+ "dlUri": "https:vpnsbfpf"+ }+ },+ "Linux_Alpine": {+ "( == 1.4.2 && > 2.1.1 && > 3.4.4 && < 7.2.1 && <= 4.8.3 && >= 2.6.10 )": {+ "dlHash": "t",+ "dlSubdir": null,+ "dlUri": "http:usiqo"+ },+ "( > 7.4.1 && == 2.1.3 && > 4.6.1 && < 1.8.3 && >= 1.2.2 && == 8.7.4 && == 3.8.6 )": {+ "dlHash": "ydbo",+ "dlSubdir": null,+ "dlUri": "https:cgija"+ },+ "( >= 6.3.2 && <= 7.2.4 )": {+ "dlHash": "a",+ "dlSubdir": {+ "RegexDir": "\u001f!'d"+ },+ "dlUri": "https:hjonvxp"+ }+ },+ "Linux_Fedora": {+ "( <= 1.3.2 && == 3.4.5 && == 6.8.3 ) || ( <= 3.5.5 && < 2.8.2 ) || ( >= 8.3.3 )": {+ "dlHash": "dsttea",+ "dlSubdir": "",+ "dlUri": "http:ujsa"+ },+ "( >= 5.4.6 && == 2.6.6 && > 6.2.5 && == 4.6.2 && > 8.7.8 ) || ( >= 7.3.7 && < 6.1.4 && == 6.3.2 && >= 7.5.5 && <= 1.1.7 && > 1.3.3 && >= 7.7.3 )": {+ "dlHash": "clvtt",+ "dlSubdir": {+ "RegexDir": "{b猆eY"+ },+ "dlUri": "https:aj"+ },+ "unknown_versioning": {+ "dlHash": "ezobjbei",+ "dlSubdir": null,+ "dlUri": "http:"+ }+ },+ "Linux_Gentoo": {+ "( < 6.3.1 && > 2.7.1 && == 7.8.1 && > 7.6.4 && <= 4.4.8 && == 4.2.3 && == 2.2.2 ) || ( < 7.1.4 && == 5.6.1 )": {+ "dlHash": "qotuck",+ "dlSubdir": {+ "RegexDir": "\u001f\\\u0013"+ },+ "dlUri": "http:"+ },+ "( <= 8.7.5 && <= 6.1.4 && <= 1.6.4 && == 4.5.2 && > 4.5.6 && > 7.1.3 ) || ( < 8.7.4 && > 3.5.2 && >= 1.4.4 && >= 3.7.8 && < 6.1.7 && > 1.4.4 && == 7.8.6 && == 3.1.5 && > 5.8.7 ) || ( <= 3.5.7 && <= 7.2.1 && > 2.8.1 && < 7.5.3 && >= 5.7.5 && >= 8.1.8 ) || ( == 4.1.1 && >= 6.1.7 && >= 6.8.3 && < 6.5.5 && <= 7.1.7 && < 8.3.1 )": {+ "dlHash": "hbxudix",+ "dlSubdir": "\u0011`\u000b",+ "dlUri": "http:ijnns"+ },+ "( == 8.1.7 && >= 4.4.6 && <= 5.1.4 && <= 4.4.3 && == 7.1.6 && <= 5.3.7 && > 4.4.6 && == 8.8.7 )": {+ "dlHash": "m",+ "dlSubdir": "T\u0003\u000e4Y\u0016S",+ "dlUri": "http:vsdyawkv"+ },+ "unknown_versioning": {+ "dlHash": "wv",+ "dlSubdir": {+ "RegexDir": "𡺪\u0000s\u001bq"+ },+ "dlUri": "http:jtkxpge"+ }+ },+ "Windows": {+ "( <= 8.7.6 && >= 4.5.4 && > 3.3.6 && <= 6.3.5 && == 7.2.1 )": {+ "dlHash": "axnjybt",+ "dlSubdir": null,+ "dlUri": "http:qqrr"+ }+ }+ },+ "A_Sparc": {+ "Windows": {+ "( < 1.3.1 && < 6.2.8 && < 5.4.3 && <= 3.4.6 && <= 2.5.7 && >= 6.4.7 && >= 8.7.5 && > 4.3.1 ) || ( > 7.3.8 && > 2.2.7 && < 1.3.8 && > 5.6.2 )": {+ "dlHash": "wqq",+ "dlSubdir": "A_`𦒔",+ "dlUri": "https:wuhync"+ },+ "( <= 3.6.3 && > 2.8.6 && < 7.5.5 && == 3.1.5 && >= 6.8.3 && <= 1.2.4 && <= 5.7.9 ) || ( <= 7.8.6 && == 3.7.2 ) || ( <= 8.5.4 && > 3.2.7 && > 3.1.6 && >= 7.2.4 && > 7.1.5 && <= 5.2.9 && > 2.2.8 && == 5.1.5 ) || ( == 3.7.8 )": {+ "dlHash": "ddpwkw",+ "dlSubdir": "kQw𒐖\u0016i\u0007",+ "dlUri": "http:lprwytzi"+ },+ "( > 5.2.7 && == 8.8.8 )": {+ "dlHash": "jujff",+ "dlSubdir": "짯H^j",+ "dlUri": "http:rjyw"+ },+ "( > 9.2.1 && < 6.3.6 && >= 6.8.8 && >= 3.3.7 )": {+ "dlHash": "tmrcqh",+ "dlSubdir": "2P[v𨻔靷",+ "dlUri": "https:voolr"+ },+ "( >= 5.8.3 ) || ( >= 2.1.6 && >= 7.9.4 && == 1.3.6 && >= 6.4.8 && <= 5.1.7 && > 1.4.1 ) || ( <= 1.3.8 && > 3.8.5 && == 2.3.1 && <= 1.7.5 && >= 1.2.8 && == 2.8.5 && < 5.5.7 && == 6.1.3 )": {+ "dlHash": "dkmvu",+ "dlSubdir": {+ "RegexDir": "<8Z"+ },+ "dlUri": "http:mrg"+ },+ "unknown_versioning": {+ "dlHash": "wzfnufhp",+ "dlSubdir": {+ "RegexDir": "\u0005"+ },+ "dlUri": "http:m"+ }+ }+ }+ },+ "viChangeLog": "http:fpyxhiq",+ "viPostInstall": "izvcv",+ "viPostRemove": "byey",+ "viPreCompile": "lbl",+ "viSourceDL": {+ "dlHash": "jqlydnm",+ "dlSubdir": {+ "RegexDir": "𐬄"+ },+ "dlUri": "http:boiehok"+ },+ "viTags": [+ "",+ "Recommended",+ "\u000e4朗",+ ";vXVjDz",+ "Recommended",+ "Prerelease",+ "~X6*𦥹",+ "base-2.1.6"+ ]+ },+ "5.4.7": {+ "viArch": {},+ "viChangeLog": "https:bn",+ "viPostInstall": "oyil",+ "viPostRemove": "sirzxo",+ "viPreCompile": "hecmex",+ "viSourceDL": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:go"+ },+ "viTags": [+ "9pR𥎷H",+ "base-7.5.6",+ "Recommended"+ ]+ }+ },+ "Stack": {+ "1.1.7": {+ "viArch": {+ "A_ARM": {+ "Darwin": {},+ "Windows": {+ "( <= 8.6.1 && == 3.1.4 ) || ( <= 7.5.4 && == 6.7.2 && <= 8.6.5 && > 2.8.4 && < 2.2.3 && < 2.5.8 && == 1.7.3 ) || ( < 2.6.6 && >= 1.3.8 && == 6.5.1 && == 7.6.6 && == 1.1.8 && < 3.6.3 && == 3.6.6 && > 7.1.5 )": {+ "dlHash": "wrwfbj",+ "dlSubdir": {+ "RegexDir": "n"+ },+ "dlUri": "http:wmjdvfww"+ },+ "( > 5.1.6 && <= 2.5.3 && == 5.7.5 && <= 3.8.6 && > 2.7.3 )": {+ "dlHash": "wyg",+ "dlSubdir": null,+ "dlUri": "http:ndxgzng"+ },+ "unknown_versioning": {+ "dlHash": "qkuseqoo",+ "dlSubdir": {+ "RegexDir": "鱶<┿"+ },+ "dlUri": "http:fqbvx"+ }+ }+ },+ "A_PowerPC": {+ "Darwin": {+ "( < 7.1.1 && >= 2.2.4 && >= 6.6.9 && >= 8.4.6 && < 6.2.7 && >= 4.2.8 ) || ( >= 5.4.8 && > 7.2.8 && < 8.8.8 && >= 4.8.2 && >= 1.6.9 && == 2.2.7 )": {+ "dlHash": "hre",+ "dlSubdir": "",+ "dlUri": "https:bggorit"+ },+ "( == 7.1.2 && <= 3.2.5 && == 4.6.6 && == 4.5.8 && < 5.3.9 && > 5.3.3 && <= 3.7.7 )": {+ "dlHash": "bkhk",+ "dlSubdir": "J\u000c𡷋=lA",+ "dlUri": "http:wvshg"+ },+ "( > 6.5.2 && >= 6.3.4 && >= 1.5.6 && < 5.5.5 && > 7.8.4 && == 5.6.2 && >= 1.7.1 ) || ( < 3.6.8 && > 7.6.2 && == 6.2.1 && <= 4.5.3 && <= 8.7.8 )": {+ "dlHash": "lrel",+ "dlSubdir": "io\u0019",+ "dlUri": "http:tup"+ },+ "( > 7.6.2 && < 2.6.1 && > 4.8.3 && >= 1.6.6 && == 3.6.9 && >= 1.3.2 && > 2.5.7 && >= 8.3.4 )": {+ "dlHash": "fnthp",+ "dlSubdir": "\u0013}",+ "dlUri": "https:x"+ },+ "( > 8.1.2 && < 6.1.5 && == 4.7.7 && > 8.5.5 && <= 3.1.6 && <= 7.8.7 ) || ( <= 1.4.3 && >= 8.3.3 && > 3.3.6 && > 8.6.7 && <= 6.6.5 && >= 7.1.4 && == 2.3.7 )": {+ "dlHash": "ntz",+ "dlSubdir": ".",+ "dlUri": "https:lmndsfs"+ },+ "( >= 1.8.1 )": {+ "dlHash": "z",+ "dlSubdir": "捐\u0004Td㸩\"",+ "dlUri": "http:mrm"+ },+ "( >= 2.8.6 && < 4.8.2 && <= 8.1.5 && >= 3.1.3 && == 2.1.7 && == 1.4.5 )": {+ "dlHash": "rsrtzfj",+ "dlSubdir": "&g\u0005\u0017\\\u0011",+ "dlUri": "http:lbbnws"+ },+ "unknown_versioning": {+ "dlHash": "i",+ "dlSubdir": null,+ "dlUri": "https:vpfuzzn"+ }+ },+ "FreeBSD": {+ "( <= 8.3.8 && > 7.7.6 && >= 2.8.2 && <= 6.6.2 && < 8.3.3 && < 2.1.6 && >= 6.3.6 )": {+ "dlHash": "um",+ "dlSubdir": "ť\u0007Ui\u0019",+ "dlUri": "http:nouvvlv"+ },+ "( > 5.2.3 && > 7.3.2 && < 2.6.7 && <= 6.5.3 && <= 1.7.8 && >= 5.2.7 ) || ( > 8.4.7 && <= 7.3.5 && == 7.3.6 && >= 7.6.3 && > 2.7.4 && > 2.2.1 && > 3.7.8 && < 3.7.3 && < 5.5.2 ) || ( <= 8.5.1 && > 8.6.6 )": {+ "dlHash": "dwbqe",+ "dlSubdir": {+ "RegexDir": "&*"+ },+ "dlUri": "https:poss"+ },+ "( >= 3.2.8 && <= 8.6.2 && >= 6.8.2 && > 3.2.4 && < 5.5.3 && > 4.6.6 && >= 4.7.7 )": {+ "dlHash": "qhvz",+ "dlSubdir": "\u0008'\u0004+eJ",+ "dlUri": "https:tiifqubu"+ },+ "unknown_versioning": {+ "dlHash": "qddt",+ "dlSubdir": "",+ "dlUri": "http:sll"+ }+ },+ "Linux_Fedora": {+ "( == 8.3.3 && >= 8.2.3 && < 4.8.5 && >= 2.5.5 && < 4.5.1 && <= 8.5.7 && == 6.8.8 )": {+ "dlHash": "gfa",+ "dlSubdir": null,+ "dlUri": "https:yawgdtxx"+ },+ "( > 3.4.7 )": {+ "dlHash": "h",+ "dlSubdir": null,+ "dlUri": "https:fuymxv"+ },+ "unknown_versioning": {+ "dlHash": "xpjnh",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:knrk"+ }+ },+ "Windows": {+ "( < 2.1.6 && > 6.7.6 && <= 2.7.7 && == 4.4.2 && > 5.8.4 && > 4.9.1 && == 7.3.1 ) || ( < 8.8.1 && <= 4.7.4 && < 2.7.3 )": {+ "dlHash": "izrlx",+ "dlSubdir": {+ "RegexDir": "\u0019M"+ },+ "dlUri": "http:ziqph"+ },+ "( < 5.4.6 && == 3.5.6 && <= 3.4.1 && < 1.8.7 && == 8.1.6 && <= 7.3.1 && >= 4.1.3 && <= 4.3.2 && <= 6.2.5 )": {+ "dlHash": "qmzhqfx",+ "dlSubdir": {+ "RegexDir": "e\u001d𦄺"+ },+ "dlUri": "http:a"+ },+ "( < 7.3.6 && <= 2.3.3 && <= 6.8.4 && < 3.6.5 && < 6.6.2 && > 8.2.7 && <= 8.4.2 )": {+ "dlHash": "x",+ "dlSubdir": {+ "RegexDir": "\u0008M\u0015i5"+ },+ "dlUri": "https:bfq"+ },+ "( < 8.2.1 && <= 3.6.5 && >= 3.2.5 && < 3.6.3 && <= 6.8.8 && <= 7.1.2 && < 6.6.7 ) || ( == 5.3.8 )": {+ "dlHash": "mfynvk",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:"+ },+ "( == 7.4.7 && >= 7.3.4 && > 3.4.6 && >= 3.5.8 && <= 6.4.5 && <= 1.7.8 && > 1.3.4 ) || ( >= 3.2.6 && > 1.1.4 && > 4.7.7 && >= 5.8.2 && > 1.5.4 ) || ( > 1.4.8 && < 6.5.3 && <= 2.1.6 && < 5.4.6 && < 2.3.6 && == 4.1.6 && > 3.7.4 && >= 2.1.4 && >= 4.7.5 )": {+ "dlHash": "qd",+ "dlSubdir": null,+ "dlUri": "http:rwafnxbm"+ },+ "( == 8.6.2 && >= 6.4.2 && > 7.8.7 && >= 8.5.4 ) || ( == 3.2.3 && >= 3.2.3 && == 2.6.4 && >= 6.1.6 && < 2.3.6 && > 4.4.7 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:ezqdli"+ },+ "( >= 8.3.8 && == 5.4.2 && >= 3.1.1 && > 8.7.3 && < 8.1.8 && == 3.6.8 && >= 6.7.2 && >= 7.2.3 )": {+ "dlHash": "pnitjfax",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:gmgut"+ },+ "unknown_versioning": {+ "dlHash": "rje",+ "dlSubdir": "D&8$co",+ "dlUri": "https:u"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( <= 5.7.3 && <= 3.8.8 && == 8.5.7 && <= 4.2.7 && > 5.2.6 ) || ( >= 6.7.6 && == 5.3.5 && <= 8.7.4 && <= 6.7.1 && >= 4.5.1 && <= 4.5.1 && > 6.7.1 ) || ( < 1.1.4 && > 1.5.8 ) || ( > 6.1.7 && <= 7.3.3 && <= 5.5.2 && < 9.8.1 && > 5.3.2 && == 3.3.7 && <= 5.1.2 && >= 1.3.5 && <= 7.7.2 ) || ( > 3.8.4 && > 1.2.7 && == 5.2.7 && == 3.6.1 ) || ( < 7.7.5 && > 4.6.3 && > 5.5.3 && == 1.3.2 && > 5.8.4 && == 3.8.4 && < 5.7.3 && > 6.3.3 ) || ( <= 3.3.7 && < 1.5.6 && == 4.5.2 && == 8.6.7 && > 5.6.6 && > 8.1.4 && >= 7.3.2 ) || ( > 5.5.2 && <= 4.8.5 && > 1.1.8 && <= 8.3.6 && < 5.5.3 && < 1.8.7 )": {+ "dlHash": "qv",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( <= 7.2.6 && == 2.8.7 && >= 4.6.2 && < 3.1.7 && >= 9.3.4 && < 6.4.8 && <= 1.5.5 ) || ( <= 7.8.5 && < 7.5.2 && > 3.4.2 && == 5.3.3 && < 5.1.7 && <= 4.2.7 ) || ( < 6.8.3 && == 1.8.5 && <= 1.2.4 && == 5.4.6 && >= 8.5.6 && < 7.4.5 && == 2.1.5 && > 8.2.6 ) || ( < 1.8.4 && > 6.2.5 ) || ( == 3.4.3 && >= 2.6.5 && <= 8.7.5 && > 6.6.5 && >= 2.5.8 )": {+ "dlHash": "scr",+ "dlSubdir": "p5'd7",+ "dlUri": "https:qfgses"+ },+ "( > 3.1.1 && == 3.8.5 && <= 5.8.6 && == 8.7.4 && == 7.7.1 && > 2.5.1 && == 3.2.2 ) || ( > 7.4.4 && == 4.5.6 && < 2.3.7 && > 5.9.4 ) || ( <= 8.7.3 && <= 2.2.8 ) || ( == 7.3.1 && < 6.4.4 && <= 2.6.2 && <= 5.1.8 && <= 1.5.2 && > 2.4.8 && <= 8.1.6 && < 3.5.3 ) || ( == 6.9.3 && == 6.8.7 && < 4.3.8 && > 5.1.1 )": {+ "dlHash": "uxpsodg",+ "dlSubdir": "",+ "dlUri": "https:"+ }+ },+ "Linux_UnknownLinux": {+ "( <= 1.6.2 && <= 1.1.6 && > 2.4.6 ) || ( > 6.4.3 && > 3.4.2 && == 6.5.8 && < 2.1.7 && > 5.3.5 && >= 3.6.7 && >= 2.8.1 && > 6.5.6 && < 5.5.3 ) || ( == 1.8.3 && >= 6.3.6 )": {+ "dlHash": "xuvnw",+ "dlSubdir": "%\u001e\u0003H",+ "dlUri": "https:re"+ },+ "( <= 8.1.2 && == 6.7.6 && < 8.4.7 && <= 6.7.8 && == 8.4.5 && <= 8.5.6 && == 1.7.4 )": {+ "dlHash": "folhnudp",+ "dlSubdir": {+ "RegexDir": "\u0008"+ },+ "dlUri": "http:iibsxtdu"+ },+ "( == 3.4.8 && >= 7.3.5 )": {+ "dlHash": "ixsx",+ "dlSubdir": "M\u0011",+ "dlUri": "http:zlwvqywx"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "𤛈+",+ "dlUri": "http:f"+ }+ },+ "Windows": {+ "( < 3.3.5 && > 7.1.2 && <= 8.5.3 && <= 7.3.3 && >= 4.5.3 && >= 4.3.3 && == 1.7.1 && >= 7.2.1 )": {+ "dlHash": "qwugmu",+ "dlSubdir": null,+ "dlUri": "https:alxsg"+ },+ "( < 5.7.8 && < 7.3.1 )": {+ "dlHash": "pnm",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( < 6.8.6 && >= 3.8.5 && < 6.2.8 )": {+ "dlHash": "turghtmr",+ "dlSubdir": "0\u000c𫶮",+ "dlUri": "http:zg"+ },+ "( < 8.7.6 && <= 4.8.5 && == 1.6.3 && >= 4.2.1 && < 6.1.6 && < 2.5.2 && <= 5.1.4 && == 1.5.1 )": {+ "dlHash": "heulheiq",+ "dlSubdir": null,+ "dlUri": "http:um"+ },+ "( > 5.6.1 && < 7.8.4 && <= 6.2.7 && > 6.4.2 && > 8.1.2 && >= 6.4.4 && < 6.3.3 && == 4.1.8 && >= 7.4.1 ) || ( <= 4.4.5 && == 3.3.8 && > 4.8.3 && >= 5.4.5 && >= 3.7.7 )": {+ "dlHash": "ywgaczwd",+ "dlSubdir": null,+ "dlUri": "http:oh"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 7.5.2 && > 2.4.2 && < 6.3.4 && >= 4.8.5 && == 1.4.1 )": {+ "dlHash": "nmehkqcx",+ "dlSubdir": "k\u0005\u0016C\u0014\u000f7\u0018",+ "dlUri": "http:yfvfevp"+ },+ "( == 2.2.5 && < 3.1.6 && >= 4.5.5 && >= 1.5.3 && < 2.7.8 && >= 7.1.7 && <= 4.6.7 && < 1.8.5 && < 4.8.5 ) || ( >= 3.4.7 && > 5.5.4 && <= 2.1.7 && == 4.7.1 && < 3.8.1 && < 5.7.8 && >= 1.2.2 && >= 4.5.8 && == 2.8.3 )": {+ "dlHash": "sa",+ "dlSubdir": null,+ "dlUri": "http:eicb"+ }+ },+ "Windows": {+ "( < 4.4.4 && <= 1.8.4 && < 8.1.1 && == 7.5.2 ) || ( <= 2.7.3 && == 5.7.4 && <= 4.8.6 && > 6.1.4 && > 4.7.4 && > 6.5.8 && <= 7.8.4 )": {+ "dlHash": "q",+ "dlSubdir": {+ "RegexDir": "![𨲔\n𠁆"+ },+ "dlUri": "http:yybnnsxc"+ },+ "( < 4.8.6 && > 4.8.6 && <= 1.2.5 && == 2.6.6 && < 7.2.3 && <= 7.8.6 )": {+ "dlHash": "kmxmkpwn",+ "dlSubdir": "",+ "dlUri": "https:cabvtr"+ },+ "( == 8.1.4 && > 2.7.6 && < 6.8.4 && >= 7.5.4 )": {+ "dlHash": "oupgtano",+ "dlSubdir": {+ "RegexDir": "TY"+ },+ "dlUri": "http:urnoes"+ },+ "( >= 5.4.5 ) || ( < 2.4.7 && > 5.3.4 && <= 5.2.5 && < 4.7.7 && > 2.5.4 && >= 5.1.7 ) || ( > 7.3.5 && <= 4.8.6 && < 3.1.2 && >= 1.7.7 )": {+ "dlHash": "wox",+ "dlSubdir": "t\u000e)\u000b\u0016\u00132",+ "dlUri": "http:lxjsvo"+ },+ "unknown_versioning": {+ "dlHash": "e",+ "dlSubdir": null,+ "dlUri": "http:yfnmhjks"+ }+ }+ }+ },+ "viChangeLog": "http:k",+ "viPostInstall": null,+ "viPostRemove": "pdwctmw",+ "viPreCompile": "apqewk",+ "viSourceDL": {+ "dlHash": "xgebbvvt",+ "dlSubdir": {+ "RegexDir": "ѥ\u0012\u0005J驨\t"+ },+ "dlUri": "http:gji"+ },+ "viTags": []+ },+ "7.2.3": {+ "viArch": {+ "A_32": {},+ "A_ARM": {+ "FreeBSD": {+ "( <= 4.1.5 && == 1.5.3 && >= 8.7.4 && == 6.1.5 )": {+ "dlHash": "nfppnhz",+ "dlSubdir": null,+ "dlUri": "https:gaic"+ },+ "( == 7.2.2 )": {+ "dlHash": "mxtw",+ "dlSubdir": {+ "RegexDir": "\u0016𗂆.a"+ },+ "dlUri": "http:yxf"+ },+ "( > 8.3.2 && < 3.6.2 && >= 2.6.8 && <= 2.6.1 && > 1.3.8 && >= 1.7.3 && > 3.3.1 )": {+ "dlHash": "pc",+ "dlSubdir": ";",+ "dlUri": "https:qvk"+ },+ "( >= 2.1.1 ) || ( >= 1.3.1 && == 3.4.3 && <= 5.5.5 && <= 1.6.6 )": {+ "dlHash": "w",+ "dlSubdir": {+ "RegexDir": "y\u000b𢢂"+ },+ "dlUri": "https:urumk"+ },+ "( >= 4.4.1 && < 5.8.4 && < 7.3.6 && >= 3.6.2 && == 2.5.1 && <= 3.8.1 && >= 3.6.8 ) || ( >= 5.2.7 && < 2.4.5 && >= 1.7.8 && <= 5.1.7 && == 2.3.1 && < 3.3.4 && == 6.1.7 && >= 3.3.2 ) || ( == 7.8.5 && == 1.5.6 && <= 8.7.2 && == 4.1.1 && == 2.5.5 && > 7.2.4 && <= 3.8.5 && < 7.4.6 && <= 3.6.7 )": {+ "dlHash": "izixypd",+ "dlSubdir": "",+ "dlUri": "https:swguk"+ },+ "( >= 7.3.5 && == 5.7.1 && < 3.5.8 && == 3.6.2 && <= 5.7.3 && == 2.1.3 && > 6.1.2 ) || ( == 8.8.1 && == 8.1.3 && > 6.3.3 && <= 7.6.3 )": {+ "dlHash": "qw",+ "dlSubdir": "\u001e+𘛟",+ "dlUri": "http:ojlna"+ },+ "unknown_versioning": {+ "dlHash": "l",+ "dlSubdir": "V",+ "dlUri": "http:ogx"+ }+ },+ "Linux_Exherbo": {+ "unknown_versioning": {+ "dlHash": "mhhh",+ "dlSubdir": {+ "RegexDir": "71"+ },+ "dlUri": "https:xkz"+ }+ },+ "Windows": {+ "( <= 2.6.8 && <= 4.8.2 && == 6.6.2 && > 1.6.4 && >= 8.7.1 && < 4.8.8 && == 7.6.2 ) || ( >= 6.2.1 && > 4.2.6 && == 2.1.8 && <= 6.1.2 )": {+ "dlHash": "mxn",+ "dlSubdir": null,+ "dlUri": "http:aqmyp"+ },+ "( <= 6.6.6 && < 8.1.1 ) || ( == 6.7.5 && > 5.5.6 && < 6.6.4 && == 8.1.3 && <= 2.6.1 && <= 3.3.7 && <= 7.7.6 && > 6.3.6 ) || ( < 1.3.5 && == 7.5.3 && >= 4.4.5 && < 2.6.5 && < 4.8.8 && >= 5.6.8 && <= 8.7.3 && >= 8.7.1 ) || ( < 3.7.1 && == 6.2.1 && >= 1.1.4 && >= 6.4.5 && == 3.8.2 ) || ( <= 8.5.7 && <= 3.5.3 ) || ( > 5.7.3 )": {+ "dlHash": "qvahr",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:xlgj"+ },+ "( == 2.6.1 && < 8.5.6 && > 1.5.8 && == 4.1.5 )": {+ "dlHash": "tdgqfwv",+ "dlSubdir": "$🟉",+ "dlUri": "http:z"+ },+ "( == 3.1.5 && > 7.1.8 && >= 1.2.1 && > 2.3.2 && < 8.3.4 ) || ( >= 6.3.7 && <= 3.4.4 && == 7.8.3 && < 6.8.6 && >= 1.6.5 )": {+ "dlHash": "bkavhkcr",+ "dlSubdir": "\u001e+Q\u0019",+ "dlUri": "http:hm"+ },+ "( > 4.1.7 && == 7.2.1 && == 6.8.4 && <= 6.6.8 && == 7.4.3 && == 5.4.4 && <= 2.7.6 && > 3.8.8 && >= 3.1.7 )": {+ "dlHash": "mixc",+ "dlSubdir": "`Blﴁ",+ "dlUri": "http:kvstfsa"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( < 1.6.3 && >= 2.1.8 && >= 2.4.8 && > 8.5.8 && < 2.5.1 && < 7.6.4 && > 6.3.8 )": {+ "dlHash": "nkp",+ "dlSubdir": null,+ "dlUri": "http:qx"+ },+ "( == 7.8.6 && >= 1.4.7 && > 8.3.5 && < 9.3.1 )": {+ "dlHash": "ifs",+ "dlSubdir": "\u001eA",+ "dlUri": "http:iak"+ },+ "( > 1.8.5 && <= 8.2.7 && > 5.5.9 && > 3.6.8 && >= 4.3.4 && <= 6.2.4 && >= 5.2.2 )": {+ "dlHash": "lmpxdks",+ "dlSubdir": "z\u0004",+ "dlUri": "http:yzqnqut"+ },+ "unknown_versioning": {+ "dlHash": "ryplwoa",+ "dlSubdir": ",",+ "dlUri": "https:bixf"+ }+ }+ }+ },+ "viChangeLog": "http:yzl",+ "viPostInstall": "qecgd",+ "viPostRemove": "zzuiq",+ "viPreCompile": "jwqv",+ "viSourceDL": {+ "dlHash": "uhqdcf",+ "dlSubdir": null,+ "dlUri": "https:hm"+ },+ "viTags": [+ "base-5.5.5",+ "old",+ "base-6.8.1",+ "old",+ "Recommended",+ "base-2.5.2"+ ]+ }+ }+ },+ "globalTools": {+ "ShimGen": {+ "dlHash": "wsvbslzvndggxjtpbrnvsc",+ "dlSubdir": {+ "RegexDir": "4\u001eu#"+ },+ "dlUri": "https:ohrxm"+ }+ },+ "toolRequirements": {+ "Cabal": {+ "7.7.4": {+ "Darwin": {+ "( < 4.3.6 )": {+ "distroPKGs": [+ "gssaww",+ "id",+ "",+ "",+ "nudek"+ ],+ "notes": "ncoyqt"+ },+ "( < 5.7.5 && < 8.1.5 && <= 6.4.1 && == 7.7.7 && <= 3.8.7 && < 7.7.1 && == 8.4.1 && < 3.2.1 && <= 4.6.6 ) || ( >= 4.8.2 && >= 4.3.6 && < 1.6.8 && >= 8.7.4 && <= 7.6.6 && < 1.1.2 && >= 4.4.5 && <= 7.6.1 && < 7.3.5 )": {+ "distroPKGs": [+ "",+ "nrteluta"+ ],+ "notes": ""+ },+ "( > 1.8.3 && < 9.5.2 && >= 1.3.4 && >= 2.4.5 && > 5.5.7 ) || ( <= 7.4.3 && < 2.7.6 && < 1.7.8 && >= 5.8.6 && >= 2.6.5 )": {+ "distroPKGs": [+ "p",+ "pv",+ "jxjgkxy",+ "icnnoeyf",+ "vjjhyhcw",+ "q",+ "iwmwrj",+ "iyvj"+ ],+ "notes": "pvjnje"+ },+ "( >= 6.6.1 && >= 3.7.7 && == 1.3.1 ) || ( <= 4.6.4 && == 3.5.4 && > 1.2.5 && > 6.6.5 && > 5.5.3 && > 3.1.5 ) || ( <= 6.4.2 && == 7.3.3 && < 5.7.2 && <= 9.6.1 ) || ( == 4.8.6 )": {+ "distroPKGs": [+ "yhb",+ "kloj",+ "lywglkj",+ "rfrqfquq",+ "qyu",+ "aajlthx",+ "hpw"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "xlcxzodm"+ }+ },+ "FreeBSD": {+ "( >= 7.4.5 && < 2.8.2 && <= 8.8.7 && == 8.4.1 && < 5.9.6 && <= 5.6.5 && < 6.5.6 && == 1.3.1 )": {+ "distroPKGs": [+ "gs"+ ],+ "notes": "kbzkotf"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "udyih",+ "",+ "yoe"+ ],+ "notes": "jysijo"+ }+ },+ "Linux_AmazonLinux": {+ "( >= 3.8.5 )": {+ "distroPKGs": [+ "udpg",+ "qus",+ "fp",+ "a",+ "kp",+ "ued",+ "zeqe"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "cchshles",+ "pyjfbp",+ "wv",+ "hobjeirt",+ "sogfpzqj",+ "tczx",+ "yyxb",+ ""+ ],+ "notes": "ebmmhf"+ }+ },+ "Linux_Fedora": {}+ },+ "7.8.2": {+ "FreeBSD": {+ "( <= 3.6.7 && <= 4.8.5 && < 1.5.7 && > 5.3.1 && <= 7.5.7 && <= 3.1.4 && > 7.3.4 && > 6.1.7 ) || ( > 3.1.7 && > 5.4.5 && <= 3.6.7 && >= 9.8.3 && > 8.5.8 && < 6.8.1 && == 1.2.6 && == 6.4.5 )": {+ "distroPKGs": [+ "eugqrccr"+ ],+ "notes": "wfp"+ }+ },+ "Windows": {+ "( == 7.4.8 && <= 1.4.4 && <= 2.2.6 ) || ( < 2.1.4 && < 4.5.3 && <= 7.4.3 && > 9.5.8 ) || ( > 8.2.1 )": {+ "distroPKGs": [],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "hcsyomqc",+ "vovh",+ "",+ "iklzzboa",+ "kxpxrmh",+ "kvv",+ "zqk"+ ],+ "notes": "lcovzj"+ }+ }+ },+ "unknown_version": {+ "FreeBSD": {+ "( < 7.6.1 && <= 5.3.4 && == 4.3.1 && < 4.7.8 && >= 3.6.1 && >= 8.7.5 )": {+ "distroPKGs": [+ "mldarfsz",+ "bwiuq"+ ],+ "notes": "b"+ },+ "( >= 2.8.6 && == 4.3.2 && >= 3.2.6 && < 1.7.5 )": {+ "distroPKGs": [+ "tcnnitzp",+ "ywyn",+ "rehieto",+ ""+ ],+ "notes": ""+ },+ "( >= 5.3.6 && <= 4.7.3 && <= 7.5.5 )": {+ "distroPKGs": [+ "bnpybg",+ "mi",+ "wwoaolxq",+ "tmuyozfs",+ "qz",+ "hkfi",+ "wwd"+ ],+ "notes": "nxvco"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "rbtsg",+ "gxahhdcb",+ "tfutbpg",+ "fyqyfn",+ "xmjqoqsd",+ "ix",+ ""+ ],+ "notes": "djegug"+ }+ },+ "Linux_Debian": {+ "( <= 4.5.8 && > 1.6.8 && < 2.7.7 ) || ( <= 2.2.7 && < 1.3.6 && > 6.1.5 && == 1.3.4 && > 4.5.2 && == 4.1.7 ) || ( <= 7.4.7 && <= 1.8.2 && > 5.7.8 && < 6.8.5 && <= 4.3.4 && >= 2.1.6 ) || ( == 2.2.5 && > 1.4.2 && > 3.9.4 )": {+ "distroPKGs": [+ "xiuun",+ "gndvpp",+ "",+ "nmfqlr",+ "zzcjc"+ ],+ "notes": "ytcrtm"+ },+ "( <= 5.8.3 && == 3.4.8 && < 1.4.6 && < 2.5.8 ) || ( >= 4.6.4 && >= 8.7.6 && <= 2.2.8 && <= 2.8.3 && <= 5.3.5 && <= 6.7.3 && < 3.5.2 )": {+ "distroPKGs": [+ "y",+ "kfc",+ "dblcvrfv",+ "wwjuxpk"+ ],+ "notes": "nbve"+ },+ "( == 4.7.1 && < 2.2.6 )": {+ "distroPKGs": [+ "wqy",+ "r",+ "bvhajz",+ "ahxxwx",+ "pgotj",+ "bp",+ "zjblrt"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "lo",+ "wofmkj",+ "ryudcry",+ "hpfq",+ "",+ "onvnodam"+ ],+ "notes": "joxjza"+ }+ },+ "Windows": {+ "( == 4.1.6 && >= 7.3.8 && > 2.2.4 && > 6.4.7 && < 4.8.5 ) || ( >= 2.6.7 && == 4.8.7 && >= 8.8.10 && >= 7.7.4 && == 8.4.6 )": {+ "distroPKGs": [+ "auzmgdb",+ "uauzgst",+ "wuebrkb",+ "r",+ "zsgs",+ "divpsee"+ ],+ "notes": "nbvbsn"+ }+ }+ }+ },+ "GHCup": {+ "3.7.7": {},+ "5.1.7": {+ "FreeBSD": {+ "( < 8.2.8 && > 3.8.3 && >= 1.5.4 && == 2.6.5 )": {+ "distroPKGs": [+ "vyiru",+ "",+ "cedwsfiq",+ "no"+ ],+ "notes": "xufpoxgx"+ },+ "( <= 6.2.2 && == 2.5.5 && <= 5.8.8 && == 4.3.1 ) || ( > 6.5.5 && >= 1.8.1 && >= 4.3.2 && < 8.2.2 && < 1.5.6 )": {+ "distroPKGs": [+ "hrch",+ "xdnp",+ "wocp",+ "mwcinbp",+ "egnkacxp",+ "wgkrtrlm",+ "wqqjrf",+ "nwbqct"+ ],+ "notes": "xak"+ },+ "( > 2.4.7 && == 8.6.4 && <= 3.5.3 )": {+ "distroPKGs": [+ "nnvt",+ "qcag",+ "lxanmo",+ "cd"+ ],+ "notes": "hqfh"+ },+ "( > 5.5.7 && <= 2.6.5 && < 5.4.6 && > 5.1.7 && > 6.3.6 && >= 8.6.8 ) || ( < 7.2.5 && < 2.4.8 && >= 8.4.6 )": {+ "distroPKGs": [],+ "notes": "hgwl"+ },+ "( > 5.7.2 && < 3.7.4 && < 4.1.9 )": {+ "distroPKGs": [+ "mkvre",+ "hgrosv",+ "wgdbiefm",+ "hubdygrq",+ "ecz",+ "luwcu"+ ],+ "notes": "eecr"+ }+ },+ "Linux_Mint": {+ "( < 5.4.3 && == 1.6.1 )": {+ "distroPKGs": [+ "yksmf",+ "lb",+ "rkv",+ "niuik",+ "r",+ "cait"+ ],+ "notes": ""+ },+ "( == 2.8.1 && <= 3.9.5 && > 4.6.5 && < 6.5.1 && <= 1.2.9 && > 7.5.2 ) || ( >= 2.6.3 && <= 8.1.3 && == 4.3.6 && < 6.2.4 && > 4.1.2 && >= 7.5.7 && <= 3.5.7 && > 5.2.6 ) || ( == 8.1.3 && < 2.3.7 && >= 6.7.1 && > 5.3.1 )": {+ "distroPKGs": [+ "gqe",+ "ss",+ "dxxtwv",+ "sqm",+ "",+ "",+ "xbh",+ ""+ ],+ "notes": "jhaoof"+ },+ "( == 3.5.6 && >= 3.1.2 && == 6.6.5 && < 6.1.5 && >= 5.2.6 && > 8.3.1 ) || ( == 8.8.2 && < 4.6.3 && <= 1.3.6 && > 7.2.3 && < 1.8.8 && == 6.5.1 && > 7.1.3 && < 7.5.4 )": {+ "distroPKGs": [+ "whukylb",+ "levkfod",+ "jfvwddyc",+ "x",+ "dgdc",+ ""+ ],+ "notes": "vxiivox"+ },+ "( == 8.8.7 && == 8.6.1 && > 5.1.6 && < 3.7.3 && == 3.2.5 )": {+ "distroPKGs": [+ "pvqob",+ "kepuj"+ ],+ "notes": ""+ }+ },+ "Linux_RedHat": {+ "( < 3.4.8 && < 6.2.2 && > 3.1.5 )": {+ "distroPKGs": [+ "xv",+ "curuc"+ ],+ "notes": "vccm"+ },+ "( <= 4.8.2 && == 6.7.8 && <= 8.6.1 && > 8.3.2 ) || ( > 5.4.5 && < 4.2.7 )": {+ "distroPKGs": [],+ "notes": "liucgcw"+ },+ "( > 1.8.4 && > 7.1.5 && == 6.7.1 && <= 4.6.2 && <= 8.4.2 && > 6.4.1 && < 1.7.7 ) || ( < 1.8.7 && >= 5.6.3 && < 1.8.5 && > 7.8.5 && > 4.6.6 && >= 3.2.3 && > 1.2.2 && <= 8.8.3 && >= 4.3.6 ) || ( == 1.1.8 && == 4.3.4 ) || ( < 2.1.2 && == 7.2.1 && == 7.7.4 && >= 3.7.1 && > 7.3.7 )": {+ "distroPKGs": [+ "yjmdiwv",+ "lhycdgao",+ "yhfdcl",+ "ebqesaso",+ "ojzufgew"+ ],+ "notes": "ohyahmv"+ },+ "( > 2.7.8 && <= 1.2.5 )": {+ "distroPKGs": [+ "aadcv",+ "oq",+ "dbemhgjw",+ "ebgumyc",+ "hp",+ "r",+ "l"+ ],+ "notes": "mywi"+ },+ "( > 3.4.2 ) || ( >= 2.8.7 && == 6.5.4 && > 4.9.5 && > 1.5.3 && == 1.7.7 && < 9.5.3 )": {+ "distroPKGs": [+ "",+ "jmfdo"+ ],+ "notes": "qw"+ },+ "( >= 4.6.7 && < 6.3.8 && > 5.7.8 && < 1.1.4 ) || ( == 5.2.8 && >= 6.6.4 && >= 5.4.7 && >= 1.3.1 )": {+ "distroPKGs": [+ "",+ "r",+ "imy",+ "xuqmfcis",+ "",+ "bljsgpv",+ "p"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "emtfn",+ "a",+ "s",+ "icgpoz",+ "jgenxz",+ "ucxzgbkv"+ ],+ "notes": "nu"+ }+ },+ "Windows": {+ "( < 7.1.3 && >= 6.6.4 && <= 8.7.5 && >= 7.7.7 && <= 7.2.1 && < 7.1.4 && == 1.5.2 && <= 8.2.2 ) || ( >= 4.4.1 && < 2.4.1 && <= 3.4.3 && > 2.2.3 && == 2.7.3 && == 3.2.8 && <= 3.4.6 && >= 3.2.2 ) || ( > 5.5.3 && > 8.1.1 && > 8.4.2 && > 5.8.8 )": {+ "distroPKGs": [],+ "notes": "hfb"+ },+ "( > 8.1.3 && < 8.6.8 && < 3.7.1 && == 7.2.1 )": {+ "distroPKGs": [+ "fuzyvnfa",+ "heud",+ "",+ "whkd"+ ],+ "notes": "jfh"+ },+ "( >= 2.3.7 ) || ( > 5.1.7 && >= 7.4.1 && >= 4.5.7 && < 7.4.5 && <= 5.5.7 && <= 5.3.3 && < 1.6.3 && == 5.3.2 && > 4.6.8 )": {+ "distroPKGs": [+ "tgdxxie",+ "tudedtxa",+ "",+ "r",+ "",+ "qycdk",+ "foid"+ ],+ "notes": "jijhzazh"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "icll"+ }+ }+ },+ "7.3.3": {+ "Darwin": {+ "( < 6.4.2 ) || ( == 7.4.4 && > 1.7.5 && <= 3.2.8 ) || ( <= 2.3.4 && <= 5.6.1 && >= 1.3.6 && == 6.3.1 ) || ( > 3.8.7 && >= 7.7.9 && < 2.1.7 && < 3.7.4 && < 8.8.5 && > 7.8.7 ) || ( <= 5.8.1 && >= 3.3.5 && > 8.1.7 && > 6.1.6 && > 5.3.2 && == 3.4.4 ) || ( < 4.4.8 && <= 8.3.2 && >= 6.1.4 && == 1.8.4 && == 8.5.1 && > 4.5.7 )": {+ "distroPKGs": [+ "d",+ "",+ "mf",+ "ghlvy",+ "tgdro",+ "duudzn"+ ],+ "notes": ""+ },+ "( <= 2.2.7 && > 6.6.2 && < 7.1.8 && == 7.2.3 ) || ( == 5.6.8 && <= 3.2.8 && <= 5.4.4 && <= 6.4.7 && >= 3.4.1 )": {+ "distroPKGs": [+ "pytwx",+ "",+ "f",+ "giqf",+ "kjzcsc",+ ""+ ],+ "notes": ""+ },+ "( == 6.7.3 && > 8.7.6 && > 1.3.7 && == 2.4.7 && < 7.2.5 && == 2.7.7 && <= 1.6.4 && > 4.4.3 ) || ( < 2.7.2 )": {+ "distroPKGs": [+ "awnqrw",+ "",+ "n",+ "cefono",+ "xxd"+ ],+ "notes": "wlzbx"+ },+ "( > 5.5.6 && > 6.4.5 && <= 2.5.4 && <= 7.4.4 && == 6.8.4 && < 1.7.7 && > 5.1.5 )": {+ "distroPKGs": [+ "hbuxtj",+ "ph",+ "",+ "m"+ ],+ "notes": "nvzef"+ },+ "( > 6.2.6 && > 3.4.2 && <= 7.3.4 && >= 1.4.8 && <= 7.4.8 && < 5.1.4 )": {+ "distroPKGs": [+ "ruojwasp",+ "ok",+ "f",+ "ayibt",+ "evnhp"+ ],+ "notes": "egab"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "odpyv"+ ],+ "notes": "im"+ }+ },+ "FreeBSD": {+ "( < 1.5.4 && == 8.3.1 && > 6.6.5 && >= 7.3.1 && <= 5.4.8 && >= 2.6.5 && == 8.8.1 && > 2.3.1 && <= 6.5.3 ) || ( > 7.1.1 && <= 1.1.6 && == 3.1.9 && == 1.1.7 && <= 8.8.8 && <= 6.3.6 ) || ( > 8.6.8 && >= 5.4.4 && > 8.4.5 && < 5.8.3 && <= 6.5.4 && > 8.4.2 && >= 6.4.1 && > 9.1.4 && < 4.6.6 )": {+ "distroPKGs": [+ "",+ "gcmfnce",+ "rly"+ ],+ "notes": "vb"+ },+ "( <= 1.4.4 && == 5.7.4 )": {+ "distroPKGs": [+ "vskpdkr",+ "lwgdeci",+ "a",+ "k",+ "",+ "axn",+ "brwmhtii"+ ],+ "notes": "erla"+ },+ "( > 6.7.2 && == 4.4.4 && >= 4.8.2 && < 2.2.6 )": {+ "distroPKGs": [+ "fpqdf"+ ],+ "notes": ""+ }+ },+ "Linux_Gentoo": {+ "( > 8.2.8 && == 4.2.1 && == 8.3.4 && == 5.1.1 && <= 3.7.2 && < 5.7.5 && <= 1.4.6 && < 4.3.5 ) || ( < 1.4.7 && == 2.7.5 && >= 5.2.3 && > 2.6.7 && == 5.8.5 && > 4.1.6 && >= 6.2.8 && >= 8.7.5 && > 1.7.6 )": {+ "distroPKGs": [+ "nijdeb"+ ],+ "notes": "iftwupn"+ },+ "( > 8.8.7 && <= 5.8.7 && < 4.1.3 && < 4.3.7 && < 7.2.2 )": {+ "distroPKGs": [],+ "notes": "neu"+ },+ "( >= 5.4.5 && == 3.3.10 && > 6.4.1 && == 5.7.4 && < 3.5.1 )": {+ "distroPKGs": [+ "elgrn",+ "eu",+ "h",+ "gm",+ "xruwtb",+ "wbkkaykw",+ "xvosecj",+ "uzg"+ ],+ "notes": "kupnuyy"+ },+ "( >= 5.6.7 ) || ( > 6.5.8 && > 4.4.8 && >= 2.5.7 && == 3.1.5 && < 8.5.5 && < 2.9.6 && < 1.1.8 ) || ( >= 8.3.4 && <= 8.6.3 && == 6.7.6 ) || ( < 8.7.2 && >= 1.6.4 && < 8.1.7 && == 6.5.6 && > 3.8.6 && >= 5.4.7 && <= 3.7.7 && <= 6.4.6 ) || ( <= 7.7.2 && < 7.7.7 && >= 7.6.3 && == 6.7.7 && < 1.8.8 && > 6.5.1 && <= 3.1.3 && <= 3.8.5 ) || ( < 2.6.8 && < 6.6.4 && == 1.5.3 && >= 1.1.1 && == 1.4.7 && > 7.6.2 ) || ( <= 7.5.1 && == 4.8.5 && == 4.6.8 && == 5.3.5 )": {+ "distroPKGs": [+ "vpoe",+ "e",+ "vu",+ "cxtvauww",+ "fhctyap"+ ],+ "notes": "fhzzg"+ }+ },+ "Windows": {+ "( < 2.1.5 && == 2.1.4 )": {+ "distroPKGs": [+ "ptlf",+ "jedqybm",+ "vygog",+ "bczhhp",+ "",+ "txbv",+ "vgb"+ ],+ "notes": "ufdftd"+ },+ "( < 4.5.2 && < 4.6.8 && == 6.6.6 && == 1.3.6 && <= 1.6.3 && < 8.8.6 && == 2.7.4 && < 8.7.1 )": {+ "distroPKGs": [+ "",+ "kin",+ "kr",+ "xjaiphvx",+ "wxhz",+ ""+ ],+ "notes": "rqplchqp"+ },+ "( < 7.5.6 && == 7.1.5 && < 4.7.2 && == 2.7.7 && < 5.2.5 && > 7.5.7 && >= 4.1.3 && < 1.5.4 ) || ( < 6.2.4 && <= 3.3.5 && < 3.1.1 && > 3.5.1 )": {+ "distroPKGs": [+ "nv"+ ],+ "notes": "c"+ },+ "( == 4.2.5 && > 3.3.6 && > 4.4.4 && < 7.5.7 ) || ( == 4.2.8 && <= 8.8.1 && == 5.2.8 && < 3.2.4 && == 1.3.4 && > 8.1.2 && > 5.4.3 && >= 6.7.2 && < 2.8.8 )": {+ "distroPKGs": [+ "lg",+ "jbv",+ "ht",+ "imlehk",+ "",+ "",+ "osxd"+ ],+ "notes": "epyaepo"+ },+ "( == 5.3.7 && < 8.4.8 && <= 6.6.2 && > 1.5.1 && <= 8.1.5 && >= 1.7.7 && > 4.1.6 && == 3.7.6 ) || ( > 2.6.8 && < 6.4.1 && > 6.3.7 && < 3.2.9 && >= 2.6.3 && == 1.7.4 ) || ( < 5.1.4 && > 6.1.4 && == 2.4.1 && >= 8.3.1 && >= 4.8.7 && > 1.2.2 && <= 5.7.3 && > 2.6.1 && > 4.1.6 ) || ( > 7.1.4 && < 4.5.7 ) || ( >= 2.7.4 && > 7.5.2 && < 4.3.3 ) || ( >= 6.5.7 && == 1.8.5 && >= 7.5.6 && >= 5.8.3 && > 4.3.3 )": {+ "distroPKGs": [+ "wn",+ "izgboev",+ "lxtnh",+ "tmdxoxst",+ "zvbzr",+ "mvrm"+ ],+ "notes": ""+ },+ "( >= 6.1.2 && < 5.6.3 && > 2.4.2 )": {+ "distroPKGs": [],+ "notes": "zyd"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "nj",+ "",+ "p"+ ],+ "notes": "qk"+ }+ }+ },+ "unknown_version": {+ "FreeBSD": {},+ "Linux_RedHat": {+ "( < 6.1.2 && < 7.6.3 && == 7.6.10 )": {+ "distroPKGs": [+ "w",+ "k",+ "asrad",+ "tb",+ "j",+ "wqcsgi",+ "mlsyvw",+ "isuvhwy"+ ],+ "notes": "ps"+ },+ "( == 2.6.5 && == 6.5.7 && >= 1.8.6 && == 1.8.7 && > 6.2.2 && > 4.2.3 && >= 6.5.6 ) || ( == 7.8.3 )": {+ "distroPKGs": [+ "r",+ "lhjpr",+ "tbdenuyi",+ "qwnjmeb",+ "f",+ "bphp"+ ],+ "notes": "v"+ },+ "( == 6.8.4 && <= 2.6.3 && > 4.5.3 && < 1.5.5 && < 3.2.4 && == 5.1.7 && == 4.4.2 && <= 4.6.1 && <= 8.7.1 )": {+ "distroPKGs": [+ "haxuy",+ "mqfb",+ "fcyhwk",+ "gdrwaz",+ "cr"+ ],+ "notes": ""+ },+ "( > 5.3.6 && == 5.2.7 && == 6.4.2 )": {+ "distroPKGs": [+ "ozet",+ "bxbpzy",+ "lfhkly",+ "yox",+ "qwhideq",+ "yovwdzy",+ "c",+ "xzbbojb"+ ],+ "notes": ""+ },+ "( >= 3.1.6 && == 6.7.4 && > 5.6.4 && == 3.4.2 ) || ( >= 1.2.6 && == 1.7.8 && > 3.2.1 && >= 3.6.4 ) || ( == 8.7.5 && >= 5.7.3 && > 2.8.1 && <= 3.2.1 && < 1.6.7 && >= 1.8.4 && == 3.2.1 && == 6.8.3 && >= 2.2.8 )": {+ "distroPKGs": [+ "yrb",+ "nhzbt",+ "dcxo",+ "emn",+ "yxeblvu",+ "hcjt"+ ],+ "notes": "mqth"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ewlnro",+ "zxncfa"+ ],+ "notes": "yzlt"+ }+ }+ }+ },+ "Stack": {+ "1.5.3": {+ "Linux_Debian": {+ "( < 5.1.3 && == 4.3.6 && >= 1.7.6 && >= 5.3.1 && == 1.8.4 ) || ( <= 3.6.6 && > 5.8.5 && > 7.4.4 && < 8.6.5 && > 6.5.8 ) || ( < 4.2.1 && < 3.6.5 && == 3.3.8 && <= 8.6.4 ) || ( > 6.3.3 && == 2.3.5 && <= 6.4.5 && == 1.8.3 && > 7.5.7 && > 7.5.6 ) || ( < 4.6.3 && >= 7.8.8 && < 1.5.2 && == 3.6.3 && <= 8.4.8 && == 2.4.3 && <= 7.2.5 && >= 7.2.1 && > 8.6.7 ) || ( == 5.1.8 && == 3.1.8 && >= 7.3.4 && <= 1.4.6 && >= 1.1.3 && < 6.3.4 && >= 8.3.6 )": {+ "distroPKGs": [+ "ilzwkpvh",+ "rjdimce",+ "nlufhh",+ "zprv"+ ],+ "notes": "hj"+ },+ "( <= 8.5.5 && < 4.4.4 && > 1.8.7 && == 7.7.4 && <= 1.8.7 && < 3.5.8 && >= 6.7.2 && < 1.1.3 && > 8.1.3 ) || ( == 1.4.1 && <= 6.6.2 && >= 4.5.7 && == 1.7.6 && >= 2.5.7 ) || ( >= 2.3.3 && <= 2.6.6 && <= 1.4.1 && == 4.2.6 && < 5.8.5 && >= 5.6.2 && == 4.3.8 && == 7.4.8 )": {+ "distroPKGs": [+ "caigu",+ "eupgaskh",+ "o",+ "ohysfg",+ "rbthpn",+ "uub"+ ],+ "notes": "br"+ },+ "( >= 8.1.2 && >= 1.5.7 && > 6.4.4 && < 1.7.2 && >= 6.7.1 && > 6.6.1 && > 4.7.2 )": {+ "distroPKGs": [+ "oefoyoa",+ "lhbl",+ "cg",+ "gm"+ ],+ "notes": "urkvu"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "iqlizflp",+ "",+ "mhs",+ "qpqspxyw",+ "",+ "udg"+ ],+ "notes": "gv"+ }+ },+ "Windows": {}+ },+ "1.6.8": {+ "Darwin": {+ "( <= 2.6.8 && == 2.1.8 && > 3.3.4 && > 4.2.8 && < 8.3.2 && <= 1.8.5 ) || ( > 6.6.6 && <= 8.4.6 && < 8.2.6 && < 6.3.8 && >= 2.7.4 && <= 1.8.6 && >= 7.2.8 ) || ( < 5.8.8 && <= 3.3.6 ) || ( < 3.2.4 && == 7.6.6 ) || ( == 8.6.8 && == 1.7.1 ) || ( < 3.5.5 && < 1.1.7 && == 6.7.4 )": {+ "distroPKGs": [+ "wajbcrez",+ "hxiojcfm",+ "oh",+ "wfzpe",+ "jcfjbsvy",+ "fq",+ "tsu",+ "x"+ ],+ "notes": "n"+ }+ },+ "FreeBSD": {+ "( <= 3.5.4 && >= 5.6.5 && < 7.2.1 ) || ( <= 7.6.6 && >= 4.8.5 && == 8.8.8 && < 1.4.3 && > 3.7.2 && >= 6.4.2 && > 5.1.2 && == 1.2.6 && <= 1.6.5 )": {+ "distroPKGs": [+ "vemgajn",+ "dbj",+ "rneqvo"+ ],+ "notes": "c"+ },+ "( > 7.6.5 && < 3.2.4 && > 6.8.7 && < 3.3.3 && == 3.7.8 && == 1.8.6 && >= 6.4.2 )": {+ "distroPKGs": [+ "ohtxe",+ "",+ "a",+ "jyvasjjz",+ "nea"+ ],+ "notes": "aonbym"+ },+ "( >= 8.8.2 && >= 1.1.2 && == 7.8.8 )": {+ "distroPKGs": [+ "j",+ "tivhxjis",+ "xvywdoyf"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "xtv",+ "jv",+ "metyighs",+ "fab",+ "wlnr",+ ""+ ],+ "notes": "vtm"+ }+ },+ "Windows": {+ "( < 8.8.6 && > 3.8.8 && > 8.8.3 && > 1.5.1 && <= 7.5.7 && <= 8.2.7 && >= 5.6.7 && > 5.6.8 ) || ( >= 5.5.5 && < 8.8.6 && <= 1.2.3 && >= 2.5.7 && == 5.3.6 && > 1.4.3 ) || ( >= 1.5.2 && >= 2.4.2 && == 8.6.8 && < 4.3.4 && == 2.1.2 && > 6.2.6 && <= 8.1.3 && < 6.5.7 )": {+ "distroPKGs": [+ "onxofe",+ "yrjfouxk"+ ],+ "notes": ""+ },+ "( <= 6.4.1 && == 5.7.6 ) || ( <= 7.5.6 && == 4.1.2 ) || ( <= 7.7.7 && <= 1.3.4 && == 7.2.6 && >= 2.8.1 ) || ( < 4.2.1 && <= 5.1.3 && == 4.2.5 && == 6.7.8 && < 1.7.6 && >= 3.4.5 && >= 6.6.3 && < 1.5.2 )": {+ "distroPKGs": [+ "zmbie",+ "se",+ "hfnbp",+ "axcde"+ ],+ "notes": "lsm"+ },+ "( <= 8.4.3 && == 4.1.6 && > 1.1.2 && <= 7.7.5 && <= 6.2.4 && == 8.3.5 && <= 5.4.3 && >= 3.6.4 )": {+ "distroPKGs": [+ "jsddt",+ "lvk",+ "divzj",+ "k",+ "",+ "iennatjp"+ ],+ "notes": "l"+ },+ "( == 5.7.7 && == 2.2.7 && > 9.4.6 && <= 7.1.1 && < 4.2.8 && >= 2.5.3 ) || ( >= 1.4.4 && > 2.3.3 ) || ( <= 1.5.8 && <= 6.3.3 && >= 7.8.1 && == 6.4.5 && >= 4.2.6 && < 6.4.3 ) || ( < 6.3.5 && > 1.3.5 && >= 3.2.6 )": {+ "distroPKGs": [+ "lwhzwki",+ "qtbz",+ "w",+ "ppqh",+ "uz",+ "fyva"+ ],+ "notes": "at"+ },+ "( > 5.3.3 && <= 6.5.7 && >= 8.5.2 && >= 1.1.1 && >= 5.1.8 )": {+ "distroPKGs": [+ "wq",+ "iglnkw"+ ],+ "notes": "anho"+ },+ "( > 7.2.8 && < 6.8.7 && <= 1.1.6 && <= 3.4.1 && <= 2.4.4 && == 4.1.8 )": {+ "distroPKGs": [+ "ldsjpsgg",+ "cpxf"+ ],+ "notes": "ek"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "katmyq"+ ],+ "notes": "kalikqp"+ }+ }+ },+ "2.3.5": {+ "Windows": {+ "( <= 1.8.5 && > 1.2.7 && < 8.5.8 && < 3.3.8 && < 8.3.5 && == 3.4.3 ) || ( <= 1.5.2 && <= 3.5.7 && <= 3.4.2 && < 7.5.1 && < 4.3.6 )": {+ "distroPKGs": [+ "mveyasgh",+ "jr",+ "jqvwiqg"+ ],+ "notes": "huln"+ },+ "( == 8.2.5 && > 7.9.2 && > 4.5.3 && == 2.5.1 && == 4.7.5 && == 5.1.1 && == 6.2.6 ) || ( > 2.5.1 )": {+ "distroPKGs": [+ "",+ "iuvdryqv",+ "mdd",+ "",+ "sqgw"+ ],+ "notes": ""+ },+ "( > 1.8.4 && >= 2.3.7 && >= 7.8.6 && == 6.4.5 ) || ( <= 6.2.4 && < 6.4.3 && >= 8.4.7 )": {+ "distroPKGs": [+ "xkz",+ "",+ "r",+ "zs",+ "vfh",+ "nrjic",+ "svbvze"+ ],+ "notes": "kv"+ },+ "( >= 6.5.4 && <= 5.4.4 && == 6.3.4 && == 3.2.5 && < 2.1.1 && >= 2.4.3 && > 8.5.7 && < 2.7.2 && <= 4.8.4 )": {+ "distroPKGs": [+ "qxcpkeo",+ "wo",+ "oolkjby",+ "iuue",+ "owa"+ ],+ "notes": "epff"+ }+ }+ },+ "5.4.2": {+ "Darwin": {}+ },+ "6.5.6": {+ "Darwin": {+ "( < 7.4.3 && <= 2.3.3 && >= 1.1.7 && < 5.4.1 && >= 4.7.6 && == 1.1.6 && < 6.4.4 && < 3.7.5 && == 3.3.5 ) || ( > 7.2.8 && >= 4.2.1 && == 7.8.8 && >= 6.5.2 && >= 8.4.5 && >= 7.1.6 && >= 6.5.1 ) || ( < 3.8.1 && < 5.6.6 && == 2.4.4 && == 6.7.6 && == 2.8.9 && <= 1.7.7 && == 1.6.5 && <= 1.6.8 && > 3.1.7 ) || ( == 2.6.6 && > 1.3.5 && == 5.4.5 && < 8.2.8 )": {+ "distroPKGs": [+ "urclxg",+ "qgx",+ "oha",+ "iec"+ ],+ "notes": "epkhicoc"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "imw",+ "oqydqr",+ "axi",+ "p",+ "xqht",+ "utrykmz",+ "g",+ "ogbnptrf"+ ],+ "notes": "atapcf"+ }+ },+ "Windows": {+ "( < 1.3.8 && > 3.9.7 && > 8.7.4 && >= 8.4.4 && > 4.8.7 && == 1.5.6 ) || ( <= 2.1.1 && >= 2.5.4 && > 7.2.3 && <= 2.6.2 && <= 8.6.5 && < 7.3.1 && > 4.3.2 && <= 2.3.6 ) || ( < 8.2.5 && < 5.4.8 && > 8.7.4 && >= 7.8.1 && == 1.8.1 && < 4.3.4 && == 5.5.1 && == 8.2.1 && > 1.1.8 )": {+ "distroPKGs": [+ "xs",+ "hapenkaz",+ "ydu",+ "j",+ "zqttb",+ "ngpytclo",+ "uipmqkdp"+ ],+ "notes": "mciw"+ },+ "( <= 1.3.1 && == 2.4.3 && == 9.6.7 && > 8.6.6 && >= 5.4.2 && < 7.2.7 )": {+ "distroPKGs": [+ "sfi"+ ],+ "notes": "aooxb"+ },+ "( > 3.3.7 && == 5.5.5 )": {+ "distroPKGs": [+ "alxipjd",+ "wapbkequ",+ "yhikuqv",+ "wk",+ ""+ ],+ "notes": ""+ },+ "( >= 5.8.4 && <= 1.4.5 && >= 3.4.3 && < 5.5.2 && == 1.4.7 && == 4.4.4 && < 5.1.3 && < 1.4.8 && <= 8.4.4 )": {+ "distroPKGs": [+ "ujdliktw",+ "riaopmvv",+ "jywdkhwm",+ "wl"+ ],+ "notes": "vzqtx"+ },+ "( >= 7.1.3 && < 4.2.4 && <= 1.1.6 && >= 4.8.1 && == 4.2.2 && <= 3.3.5 )": {+ "distroPKGs": [+ "e",+ "kchvri"+ ],+ "notes": "mpntcqbr"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "w",+ "pxhrllc",+ "",+ "qohjo",+ "tjcst",+ "fiojpnd"+ ],+ "notes": "qjf"+ }+ }+ },+ "8.5.8": {+ "Linux_Exherbo": {+ "( < 7.5.4 && >= 7.7.4 && >= 2.3.1 && == 8.7.3 ) || ( >= 6.3.8 && > 8.8.7 && < 6.1.8 && >= 7.6.4 && <= 8.6.4 && < 4.8.2 && >= 8.6.2 && <= 3.8.1 ) || ( <= 5.4.4 && < 1.4.2 && > 7.6.8 && > 2.3.2 )": {+ "distroPKGs": [+ "",+ "wvsxgq",+ "ruljynaj",+ "qvn",+ "de",+ "jm",+ "wf"+ ],+ "notes": "vs"+ },+ "( <= 7.3.8 && > 8.4.2 && <= 4.5.5 && == 8.7.5 && <= 8.2.6 && <= 2.5.6 && < 4.1.8 && <= 1.2.2 )": {+ "distroPKGs": [+ "j",+ "rh",+ "f"+ ],+ "notes": "gil"+ },+ "( > 8.3.5 && >= 8.2.8 && > 8.1.2 && >= 6.1.3 && < 4.2.4 && > 3.10.7 && > 3.8.9 && >= 2.2.3 ) || ( > 2.6.8 && >= 3.7.5 && >= 6.6.6 && >= 7.5.6 && >= 1.1.8 && > 1.6.4 && < 5.3.8 && >= 8.5.8 && <= 7.5.7 )": {+ "distroPKGs": [+ "nt",+ "bt",+ "",+ "jns",+ "ojahw",+ "p",+ "r",+ "z"+ ],+ "notes": ""+ },+ "( > 8.7.7 && == 3.6.3 ) || ( < 8.8.6 && == 2.7.1 && <= 7.1.4 && < 8.7.2 ) || ( > 8.2.8 && > 6.7.7 && <= 7.1.2 && <= 5.3.6 && >= 7.1.5 ) || ( == 6.5.5 && > 5.4.8 && < 8.5.2 && < 3.7.2 && < 6.4.8 && > 4.8.3 && <= 3.8.8 && >= 3.1.5 ) || ( < 6.7.5 && >= 8.4.6 && < 1.4.5 && == 1.4.6 && == 6.2.3 && >= 7.7.1 && <= 5.8.7 && < 4.8.9 && >= 5.3.8 )": {+ "distroPKGs": [+ "qblhrha",+ "oeupoksf",+ "jnnirv",+ "dixeqk",+ "xeqnfz",+ "",+ "",+ "ijub"+ ],+ "notes": "wfmfkrw"+ },+ "( >= 4.4.3 && == 4.6.5 && == 3.5.6 && == 5.4.6 && >= 8.2.1 )": {+ "distroPKGs": [+ "atswfd",+ "cpdjpiwq",+ "ij",+ "dfjymj",+ "xzrnekx",+ "cvbvy",+ "nkxql",+ "dxoxx"+ ],+ "notes": "dnn"+ },+ "( >= 8.8.2 && <= 8.7.4 && > 6.5.2 && == 1.1.8 && >= 7.4.5 && <= 3.3.8 && >= 8.1.3 && < 1.1.6 ) || ( >= 1.8.2 )": {+ "distroPKGs": [+ "tq",+ "uipbblnc",+ "e",+ "apquwcr",+ "",+ "njt",+ "zcgkn"+ ],+ "notes": "cx"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "xobejfb",+ "aujgxzk",+ "ktwiwa",+ "wo",+ "qhm",+ "vytw",+ "khyohup"+ ],+ "notes": "hkjfreg"+ }+ },+ "Linux_Fedora": {+ "( == 1.2.8 ) || ( > 8.6.2 && == 1.1.2 && < 8.6.6 && >= 1.8.7 && == 3.6.2 && < 1.5.8 && >= 4.8.4 && >= 3.5.3 && >= 4.5.5 ) || ( <= 6.1.4 && >= 1.4.3 && == 5.4.1 ) || ( >= 8.1.6 && <= 2.8.7 ) || ( <= 3.7.4 && < 8.4.7 && <= 4.8.8 )": {+ "distroPKGs": [+ "znvdvhyj",+ "uwzqnncv",+ "hq",+ "ugbbmwf",+ "ev",+ "ypwzno"+ ],+ "notes": "itddmu"+ }+ },+ "Linux_Gentoo": {+ "( <= 3.3.7 && < 5.3.7 && >= 8.5.2 && == 4.2.8 && > 7.1.4 && >= 4.2.6 && == 7.4.4 && < 3.7.4 )": {+ "distroPKGs": [+ "xo",+ "iuof",+ "ihd"+ ],+ "notes": "ryagd"+ },+ "( == 5.1.3 && < 4.8.6 && > 8.4.5 && > 8.4.4 && > 2.4.2 )": {+ "distroPKGs": [+ "wbdk"+ ],+ "notes": "hrstj"+ },+ "( >= 4.3.1 && >= 3.6.7 && > 5.6.6 && <= 7.1.2 && < 3.5.7 && < 5.3.4 && > 1.2.1 ) || ( >= 8.7.5 && <= 2.5.2 && >= 5.8.8 && >= 7.7.3 && == 4.6.8 && == 3.2.5 && > 8.5.7 ) || ( <= 2.6.8 && == 6.8.2 && >= 7.1.1 && > 6.1.1 && == 1.1.7 && == 8.3.8 ) || ( > 5.5.2 && == 8.5.6 && < 5.3.8 && >= 7.3.2 && == 6.1.4 ) || ( >= 4.3.8 ) || ( >= 8.1.4 && >= 1.4.1 && == 8.6.3 && <= 1.6.5 )": {+ "distroPKGs": [+ "bygmok",+ "hkhnylfq",+ "y",+ "gxxkdrc",+ "d",+ "krv",+ "tud"+ ],+ "notes": "bli"+ },+ "( >= 7.1.4 && <= 7.6.1 && >= 6.8.4 && >= 2.7.3 && == 9.5.6 && > 1.8.6 && > 4.7.3 ) || ( == 2.2.7 && == 2.6.8 && < 1.3.8 && > 8.4.6 && > 8.7.3 && >= 7.7.7 && > 7.7.3 ) || ( >= 1.5.5 && >= 2.6.3 && >= 3.2.6 && <= 5.6.7 && >= 3.4.1 && == 3.2.7 )": {+ "distroPKGs": [+ "irne"+ ],+ "notes": ""+ }+ },+ "Linux_Mint": {+ "( < 1.4.6 && <= 1.4.4 && < 6.3.3 && <= 5.1.7 && == 7.4.8 && >= 2.3.6 )": {+ "distroPKGs": [],+ "notes": "ya"+ },+ "( <= 8.6.4 && == 6.2.2 && < 4.2.8 && <= 1.3.1 && == 4.4.2 && >= 2.7.7 ) || ( <= 8.1.1 && == 4.1.1 && >= 8.7.4 && < 8.4.4 && == 2.1.8 && >= 3.6.7 && < 8.2.7 && >= 5.7.5 )": {+ "distroPKGs": [+ "xien",+ "",+ "deku",+ "k",+ "ha",+ "qishwz"+ ],+ "notes": "jxl"+ },+ "( <= 8.7.7 && >= 8.3.6 && < 4.2.5 && == 7.8.8 && >= 1.1.4 && <= 3.1.8 ) || ( == 2.7.2 && < 1.1.1 && > 6.4.3 && <= 5.5.7 && <= 8.4.5 && == 2.6.3 && > 3.7.4 && >= 1.8.8 && == 2.6.5 ) || ( >= 3.4.2 && < 4.3.6 && <= 8.5.2 && > 6.1.2 && >= 6.5.4 && < 3.8.8 && <= 3.6.2 ) || ( == 1.2.6 )": {+ "distroPKGs": [+ "bqoz",+ "ivivvo",+ "gy",+ "tfxxg",+ "xk",+ "ld",+ "xwucrv"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "aoefcox",+ "goqnx",+ "q",+ "ldblhn"+ ],+ "notes": "ekin"+ }+ },+ "Windows": {+ "( < 3.8.5 && >= 1.5.3 && < 6.6.1 && > 2.7.1 && < 7.5.7 ) || ( < 4.6.2 ) || ( >= 6.5.4 && == 5.7.2 && <= 2.8.5 && == 5.2.5 )": {+ "distroPKGs": [+ "azjnf"+ ],+ "notes": "ih"+ },+ "( <= 4.6.8 )": {+ "distroPKGs": [+ "grw",+ "u",+ "lhbwes",+ "yjh",+ "whb",+ "l"+ ],+ "notes": "cskadawi"+ },+ "( > 3.6.3 && < 2.4.2 && <= 5.3.5 )": {+ "distroPKGs": [+ "fln",+ "vzflbarx",+ "wyw",+ "ibqw",+ "fi"+ ],+ "notes": "hieyg"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ ""+ ],+ "notes": "jteyunw"+ }+ }+ },+ "unknown_version": {+ "Darwin": {+ "( == 7.3.6 && >= 7.1.6 && <= 2.3.8 && <= 4.4.6 && >= 2.6.7 && > 1.1.6 && == 6.2.2 && > 3.2.4 ) || ( <= 3.7.6 && >= 7.3.7 && >= 5.7.8 && == 7.7.7 && == 8.5.1 && >= 4.4.5 && > 8.6.6 )": {+ "distroPKGs": [+ "iunvxgf",+ "otpjjb"+ ],+ "notes": "jfzqklx"+ },+ "( > 1.1.6 && <= 4.3.6 && <= 1.2.7 && < 5.3.2 && <= 2.7.8 && > 1.5.1 )": {+ "distroPKGs": [+ "quhfwr",+ "qsuj",+ "gobdbfo",+ "tecojcx",+ "ccqxhhev",+ "uk",+ "dicoyexy"+ ],+ "notes": "s"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ib",+ "qg",+ "dvi"+ ],+ "notes": "pmnk"+ }+ },+ "FreeBSD": {+ "( > 4.8.4 && == 1.6.2 && > 5.8.8 && < 2.5.4 && >= 4.6.5 && <= 8.8.5 ) || ( >= 8.5.8 && < 4.3.7 && < 6.2.2 && == 6.3.8 && == 5.6.5 )": {+ "distroPKGs": [],+ "notes": "xttlo"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "gchwmbu",+ "ijbymz",+ "qhvqhge",+ "ri",+ "jcutmf",+ "wqrci"+ ],+ "notes": "id"+ }+ },+ "Linux_UnknownLinux": {+ "( == 3.7.3 ) || ( == 7.5.6 && >= 3.5.2 )": {+ "distroPKGs": [+ "v"+ ],+ "notes": ""+ },+ "( > 1.2.1 && < 1.6.2 && >= 1.2.6 && < 8.8.5 && >= 6.2.8 && < 6.6.3 && < 2.4.6 && > 7.4.5 && < 5.6.4 ) || ( < 4.7.1 && > 1.8.6 && < 2.4.6 && >= 6.3.5 && > 4.5.5 && <= 4.3.5 && > 1.6.5 && == 8.1.2 ) || ( >= 6.3.1 && >= 7.6.7 && > 1.3.4 )": {+ "distroPKGs": [+ "wxal",+ "aqfcgvai",+ "bkevk",+ "kbiwfcj",+ "",+ "cegdtjo",+ "",+ "w"+ ],+ "notes": "xacb"+ },+ "( > 4.8.5 && >= 4.7.7 && > 6.3.2 && > 2.4.8 && == 1.7.3 && == 8.5.3 && >= 4.7.2 && >= 8.3.6 && > 7.1.7 )": {+ "distroPKGs": [+ "dinmq",+ "v",+ "wab",+ "mekyxrvq",+ "ndqjjylq",+ "mkjdg",+ "wobboz",+ "azehaib"+ ],+ "notes": "opeplrwb"+ }+ },+ "Windows": {+ "( > 6.7.6 && >= 5.8.3 && <= 6.8.2 && == 5.8.7 && > 1.2.1 && == 1.3.5 && <= 6.6.5 && > 7.7.4 && > 1.3.5 )": {+ "distroPKGs": [+ "gzgapz",+ "u",+ "",+ "vxyaems",+ "wzkhupqv",+ "faauf",+ "n"+ ],+ "notes": "d"+ }+ }+ }+ }+ }+ },+ {+ "ghcupDownloads": {+ "Cabal": {+ "2.6.1": {+ "viArch": {+ "A_ARM": {+ "Windows": {+ "( <= 8.6.7 ) || ( < 4.5.1 && < 6.6.2 && >= 3.5.2 )": {+ "dlHash": "nba",+ "dlSubdir": null,+ "dlUri": "https:rwkvul"+ },+ "( == 3.4.7 && < 4.7.5 && < 6.2.5 && > 8.7.8 && > 6.5.3 && <= 2.8.2 && > 9.1.1 )": {+ "dlHash": "h",+ "dlSubdir": null,+ "dlUri": "http:ecgu"+ },+ "( == 4.6.8 && < 2.2.5 && == 2.4.1 && == 2.1.8 && > 3.2.3 && < 2.2.7 && > 7.2.1 && <= 4.8.2 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:wh"+ },+ "( >= 5.4.5 && >= 6.4.3 && == 6.4.2 ) || ( < 5.3.8 && < 4.7.5 )": {+ "dlHash": "mt",+ "dlSubdir": "𗘆{$",+ "dlUri": "https:zsqmnhbv"+ },+ "unknown_versioning": {+ "dlHash": "cd",+ "dlSubdir": null,+ "dlUri": "http:akmy"+ }+ }+ },+ "A_PowerPC": {+ "FreeBSD": {+ "( < 3.4.2 && < 4.6.2 && >= 5.1.4 && >= 4.2.2 && <= 1.4.4 )": {+ "dlHash": "fyss",+ "dlSubdir": "t",+ "dlUri": "http:sswb"+ },+ "( == 5.4.6 && >= 4.8.8 && > 8.4.8 && >= 2.9.3 && < 2.8.4 && == 6.8.7 && <= 1.1.1 && <= 1.7.3 && < 4.8.4 )": {+ "dlHash": "obqqlb",+ "dlSubdir": null,+ "dlUri": "http:mb"+ },+ "unknown_versioning": {+ "dlHash": "iuyqy",+ "dlSubdir": "kN𡺣J",+ "dlUri": "https:gq"+ }+ }+ },+ "A_Sparc64": {+ "FreeBSD": {}+ }+ },+ "viChangeLog": null,+ "viPostInstall": null,+ "viPostRemove": "inqxrwxs",+ "viPreCompile": "deajwn",+ "viSourceDL": {+ "dlHash": "xhkk",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:cqreh"+ },+ "viTags": [+ "old",+ "base-6.3.4",+ "Recommended",+ "old",+ "Recommended",+ "S鴖xz",+ "Prerelease"+ ]+ },+ "4.4.4": {+ "viArch": {+ "A_ARM": {+ "Darwin": {+ "( < 6.3.4 && > 5.6.4 && == 2.4.6 && >= 7.4.7 && >= 4.5.2 && < 5.5.2 )": {+ "dlHash": "u",+ "dlSubdir": null,+ "dlUri": "http:h"+ },+ "( <= 1.1.1 && >= 5.4.5 && < 3.1.3 && < 2.1.2 && == 3.6.3 && < 4.4.5 && >= 8.5.8 && > 2.2.8 ) || ( == 3.1.4 && > 6.6.4 && >= 3.5.7 && < 2.1.2 && > 5.5.7 && > 2.1.4 )": {+ "dlHash": "r",+ "dlSubdir": {+ "RegexDir": "N:}?\u0006.?"+ },+ "dlUri": "https:vcyrotix"+ },+ "( == 8.6.7 )": {+ "dlHash": "khewhz",+ "dlSubdir": ")AA*V\u0006",+ "dlUri": "https:ljykrj"+ },+ "( >= 8.2.5 && <= 2.1.4 && <= 7.3.2 && >= 3.6.5 && >= 6.2.6 && == 6.7.1 && < 8.1.4 ) || ( < 1.2.5 && <= 5.3.8 && < 2.5.6 && >= 1.7.7 && < 7.8.6 && <= 4.2.5 && == 3.1.5 && <= 8.6.1 && == 8.4.8 )": {+ "dlHash": "ubpew",+ "dlSubdir": null,+ "dlUri": "http:lldtjs"+ }+ }+ },+ "A_ARM64": {+ "Darwin": {+ "( > 7.5.3 && < 8.7.5 && <= 1.4.5 )": {+ "dlHash": "p",+ "dlSubdir": {+ "RegexDir": "aO"+ },+ "dlUri": "http:dyuqzn"+ },+ "( > 8.6.3 && <= 5.4.8 && < 5.8.7 && >= 4.5.5 && < 1.5.7 && < 2.8.7 && >= 3.8.2 && >= 5.1.7 && > 8.3.6 )": {+ "dlHash": "ekrdvgm",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "lz",+ "dlSubdir": {+ "RegexDir": "q𬺽"+ },+ "dlUri": "http:pixjb"+ }+ },+ "Linux_CentOS": {+ "( <= 3.3.7 && < 6.3.6 && <= 3.8.1 && < 5.3.5 && == 8.6.3 )": {+ "dlHash": "jxf",+ "dlSubdir": {+ "RegexDir": "𥂈\r\u0019𨜤>"+ },+ "dlUri": "http:vu"+ },+ "( > 2.6.3 && <= 5.4.4 && == 2.3.4 && > 6.6.3 && == 6.5.8 && <= 2.6.5 )": {+ "dlHash": "bzo",+ "dlSubdir": "C",+ "dlUri": "https:"+ },+ "( > 4.2.2 && >= 8.2.6 && <= 3.5.1 && == 1.7.1 && < 2.2.6 && >= 6.3.2 && == 8.5.8 && < 2.3.2 ) || ( < 6.5.1 && <= 2.1.2 && < 6.7.3 && >= 4.5.2 && < 4.2.3 && >= 1.1.3 ) || ( < 5.8.4 && >= 7.6.4 && <= 8.7.7 && == 5.6.7 && >= 6.4.4 ) || ( > 6.1.4 && >= 5.6.5 && <= 7.6.5 && <= 1.1.7 )": {+ "dlHash": "uqzyqwl",+ "dlSubdir": {+ "RegexDir": "q\u0003𐬳ro)"+ },+ "dlUri": "http:e"+ },+ "( >= 2.2.5 && == 4.1.2 && == 3.3.6 && < 5.8.6 && <= 1.5.8 && >= 8.7.5 && > 6.8.7 )": {+ "dlHash": "so",+ "dlSubdir": null,+ "dlUri": "https:vfgyc"+ },+ "( >= 4.8.3 && == 4.2.7 && < 6.4.1 && > 8.6.3 && == 3.6.1 && == 3.9.2 && == 5.6.7 ) || ( < 1.4.2 && >= 8.5.6 && <= 4.8.2 && < 6.4.6 && >= 8.4.5 && > 1.6.5 && <= 3.3.4 && >= 4.5.2 && <= 2.1.4 )": {+ "dlHash": "ofug",+ "dlSubdir": "M!蜍vo泩",+ "dlUri": "https:z"+ },+ "unknown_versioning": {+ "dlHash": "ryfdnyc",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:dlfbt"+ }+ },+ "Linux_Exherbo": {+ "( < 7.5.4 && >= 3.8.4 && > 7.8.7 && < 4.8.6 && > 9.2.6 && < 1.7.5 ) || ( >= 6.6.1 && > 2.2.4 ) || ( <= 6.7.3 && > 2.8.4 && >= 5.2.5 && == 2.3.1 && > 7.1.8 && >= 7.4.7 && <= 8.5.7 )": {+ "dlHash": "fgul",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( == 3.7.6 && >= 3.8.8 && <= 8.3.7 && >= 4.2.7 && < 5.2.8 && < 1.8.3 && <= 1.7.2 && < 8.2.4 ) || ( < 7.4.6 && <= 4.3.1 )": {+ "dlHash": "bhldt",+ "dlSubdir": "乡𓋕(\u00086X",+ "dlUri": "https:"+ },+ "( > 3.5.3 && >= 3.2.1 && == 2.3.1 && == 5.7.6 && >= 7.8.6 && > 6.4.6 && == 2.1.2 && > 5.7.5 )": {+ "dlHash": "",+ "dlSubdir": "?,\"Cn",+ "dlUri": "https:yjzb"+ },+ "unknown_versioning": {+ "dlHash": "d",+ "dlSubdir": "𫭫P@",+ "dlUri": "http:iziyzh"+ }+ },+ "Windows": {+ "( < 8.4.2 && <= 6.8.1 && <= 6.7.5 ) || ( < 4.2.1 && >= 8.9.5 && > 6.8.3 && <= 7.4.1 && <= 5.6.1 && >= 1.3.2 && > 8.6.3 && >= 7.4.4 )": {+ "dlHash": "kozxn",+ "dlSubdir": null,+ "dlUri": "http:pa"+ },+ "( <= 1.7.1 && > 4.8.5 && > 4.1.2 && < 8.8.6 && == 2.1.4 )": {+ "dlHash": "fpjjw",+ "dlSubdir": "\u0010\u0003",+ "dlUri": "https:xkau"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( < 8.1.5 && == 7.4.3 && > 3.6.2 && >= 5.7.6 && <= 7.5.3 && <= 8.7.1 && <= 8.8.5 && > 4.4.2 && >= 2.8.8 ) || ( < 1.6.5 && >= 7.8.2 && >= 1.6.2 && <= 6.2.2 ) || ( > 6.6.6 )": {+ "dlHash": "rf",+ "dlSubdir": "\u001f38",+ "dlUri": "https:yel"+ },+ "( == 1.8.2 && <= 3.3.2 && == 3.7.5 && == 5.8.6 )": {+ "dlHash": "qdgwbtbd",+ "dlSubdir": null,+ "dlUri": "http:bwbdes"+ },+ "( >= 1.5.4 && == 4.4.8 && >= 7.2.3 && >= 2.7.8 ) || ( == 8.5.2 )": {+ "dlHash": "hxegyjvb",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:"+ },+ "( >= 6.4.5 && == 3.6.8 && > 6.6.6 ) || ( >= 2.4.1 && < 3.1.7 && < 4.4.5 && == 7.5.6 && > 2.8.7 && >= 5.2.8 && == 2.6.8 && == 6.8.8 && >= 4.3.5 )": {+ "dlHash": "neovfq",+ "dlSubdir": "䕏X|\u0011",+ "dlUri": "https:nxqk"+ },+ "unknown_versioning": {+ "dlHash": "p",+ "dlSubdir": "9",+ "dlUri": "http:eprvaiyk"+ }+ },+ "FreeBSD": {},+ "Linux_Ubuntu": {+ "( <= 2.7.2 && == 7.6.9 && > 4.6.8 && > 8.3.4 && > 3.6.4 ) || ( >= 4.6.2 && >= 3.5.2 && >= 4.7.1 ) || ( <= 6.6.5 && < 7.2.3 ) || ( <= 1.4.3 ) || ( == 3.2.3 && > 6.2.4 && < 4.7.7 && == 7.5.6 )": {+ "dlHash": "qpcdfeo",+ "dlSubdir": "",+ "dlUri": "http:tj"+ },+ "( <= 6.4.5 && == 4.3.6 ) || ( >= 5.4.4 && > 8.8.4 && < 1.7.8 && < 6.5.6 && == 4.2.1 && < 7.7.7 && >= 6.7.3 ) || ( < 8.3.3 && == 2.8.1 && <= 2.4.3 && < 7.3.8 && < 3.3.5 && <= 8.8.4 && >= 6.9.6 && < 3.2.2 && > 3.5.5 ) || ( >= 8.1.3 && < 7.1.5 )": {+ "dlHash": "suosb",+ "dlSubdir": {+ "RegexDir": "Wb'"+ },+ "dlUri": "https:wjrjg"+ },+ "( == 7.7.5 && < 2.7.4 && > 6.4.1 && < 4.7.5 && == 1.8.3 ) || ( > 5.5.4 && >= 7.3.8 && > 2.4.3 && == 5.3.1 && > 7.2.6 && > 3.7.1 && >= 3.6.2 )": {+ "dlHash": "hh",+ "dlSubdir": "<>\u000b\u0010",+ "dlUri": "http:mod"+ },+ "( > 3.7.4 && == 5.5.7 && < 3.1.6 && > 5.4.5 && <= 8.8.6 && <= 1.8.2 && == 8.5.6 && > 5.2.1 ) || ( == 6.3.7 && < 1.2.2 && >= 2.4.5 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:quqnnxi"+ },+ "( >= 5.5.7 ) || ( <= 7.6.2 && < 1.3.2 && > 5.4.6 ) || ( < 5.1.3 && == 3.4.4 && > 6.8.2 ) || ( <= 6.3.6 && == 7.2.2 && < 7.6.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "Q`d\t\u001e.\""+ },+ "dlUri": "https:plnkl"+ },+ "unknown_versioning": {+ "dlHash": "e",+ "dlSubdir": null,+ "dlUri": "https:wz"+ }+ },+ "Windows": {+ "( == 6.8.2 && >= 4.4.7 && < 5.4.7 && > 6.1.2 && == 2.8.8 && <= 3.1.7 && > 6.3.4 && < 2.8.1 && > 6.5.5 ) || ( == 8.1.1 && == 7.5.2 && >= 8.8.6 && <= 3.2.1 ) || ( >= 4.7.8 && == 2.7.7 && <= 7.6.8 && == 3.3.6 && > 3.3.2 && <= 1.1.6 && >= 8.4.8 && < 8.3.2 ) || ( <= 8.1.3 && <= 2.1.8 && >= 8.7.1 && > 1.8.2 ) || ( > 5.4.7 )": {+ "dlHash": "scmd",+ "dlSubdir": {+ "RegexDir": "K\u0017"+ },+ "dlUri": "http:acaozr"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {+ "( < 6.8.5 && == 3.7.8 && >= 1.3.3 && < 7.3.1 && <= 4.2.4 && < 7.2.4 && >= 8.2.5 && <= 4.8.8 && <= 6.6.6 ) || ( == 1.1.1 && < 6.6.8 && == 1.1.3 && > 3.6.3 && >= 6.4.6 && >= 3.2.4 && == 4.8.6 && <= 2.3.4 )": {+ "dlHash": "s",+ "dlSubdir": "$",+ "dlUri": "https:ooxcoce"+ },+ "unknown_versioning": {+ "dlHash": "alklf",+ "dlSubdir": "𥍄",+ "dlUri": "https:xiiekknw"+ }+ },+ "FreeBSD": {+ "( < 4.3.3 && <= 8.3.3 && > 3.8.7 && <= 7.1.5 && > 6.7.8 ) || ( <= 6.2.5 && > 4.3.1 && >= 3.4.6 && > 8.2.7 && <= 5.6.2 && == 3.4.7 && >= 3.6.8 && >= 2.8.7 && >= 5.4.7 )": {+ "dlHash": "t",+ "dlSubdir": "",+ "dlUri": "https:xxw"+ },+ "( == 2.4.5 && >= 1.2.4 && <= 1.5.7 && < 7.7.7 && == 1.7.3 && < 8.9.2 && >= 7.5.7 && < 5.6.6 )": {+ "dlHash": "kaiitxg",+ "dlSubdir": "|8;_W",+ "dlUri": "https:"+ },+ "( > 8.6.5 && < 3.8.1 && > 1.2.7 && <= 6.7.5 && == 4.7.5 && < 1.1.6 && >= 4.8.8 && < 1.6.6 && == 1.3.2 )": {+ "dlHash": "",+ "dlSubdir": "\u001e",+ "dlUri": "http:cu"+ },+ "( >= 2.8.6 && <= 3.1.7 && == 3.5.5 ) || ( >= 8.7.7 && < 3.3.4 ) || ( <= 3.4.5 && > 2.5.1 && < 8.3.2 && > 4.5.8 && == 3.8.1 ) || ( <= 5.3.5 && < 2.3.7 && > 7.6.8 && <= 8.6.4 && < 6.8.2 && > 1.1.7 && >= 8.1.1 && <= 5.8.4 )": {+ "dlHash": "rk",+ "dlSubdir": {+ "RegexDir": "\u0018g"+ },+ "dlUri": "http:uqcqsq"+ },+ "unknown_versioning": {+ "dlHash": "frmfld",+ "dlSubdir": {+ "RegexDir": "Up\u0012"+ },+ "dlUri": "http:fin"+ }+ },+ "Linux_Debian": {+ "( < 8.8.7 ) || ( >= 5.8.6 && <= 5.3.4 && <= 2.5.5 && >= 1.2.5 && < 3.5.5 && <= 8.2.3 && <= 3.4.8 ) || ( > 5.3.6 && == 3.5.6 ) || ( < 4.6.7 && == 3.4.2 && >= 1.2.3 && < 2.9.8 && <= 4.2.3 && <= 1.4.2 ) || ( == 3.3.2 && >= 5.4.6 ) || ( < 1.7.3 && < 5.6.8 && == 8.2.8 && >= 2.3.3 && >= 6.8.1 && == 4.2.2 && <= 5.7.8 && == 2.7.2 ) || ( == 8.2.4 && >= 7.4.7 && >= 5.7.8 && < 2.3.3 && < 6.2.1 && >= 6.4.4 && < 7.1.8 )": {+ "dlHash": "alvfc",+ "dlSubdir": "\njVu\u0006",+ "dlUri": "https:blmqqjg"+ }+ },+ "Windows": {+ "( >= 1.3.2 ) || ( == 1.2.6 && >= 8.8.7 && >= 5.9.8 && == 8.5.7 && < 7.4.1 && < 6.3.6 && > 5.5.2 && <= 5.8.1 && > 5.2.3 ) || ( <= 6.7.1 && == 8.5.4 ) || ( < 7.1.1 && == 6.3.3 && < 4.3.8 && < 3.2.6 && > 7.2.1 && <= 3.8.1 && <= 4.4.3 ) || ( <= 6.1.2 && <= 8.5.4 && == 7.5.8 && == 7.6.5 && <= 5.8.6 && > 8.5.6 && <= 3.3.2 && < 5.5.5 && == 7.6.7 )": {+ "dlHash": "ccgo",+ "dlSubdir": "C󠄩%\u0002$\u0015",+ "dlUri": "https:ynpn"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": "rvzk",+ "viPostRemove": "r",+ "viPreCompile": "",+ "viSourceDL": null,+ "viTags": [+ "base-5.1.7",+ "Prerelease",+ "old",+ "Latest"+ ]+ },+ "5.5.4": {+ "viArch": {+ "A_32": {+ "Darwin": {+ "( < 1.8.8 && > 1.1.4 && < 8.1.8 && > 6.5.3 && <= 1.5.6 && == 2.1.7 && > 7.2.5 ) || ( <= 6.6.7 && >= 1.7.2 && > 4.5.6 && >= 8.6.4 && < 3.7.6 )": {+ "dlHash": "szxh",+ "dlSubdir": "\u0003",+ "dlUri": "https:svln"+ },+ "( < 7.2.5 )": {+ "dlHash": "w",+ "dlSubdir": ",𨆮𑀓\u001d\u001a𘞏\u0002",+ "dlUri": "http:d"+ },+ "( <= 4.8.6 && < 7.2.1 && < 2.7.3 && >= 5.5.3 && == 6.8.3 && < 8.6.6 )": {+ "dlHash": "vfp",+ "dlSubdir": "\u0001\rzMu",+ "dlUri": "https:tgjyxtd"+ },+ "( == 8.2.1 && >= 3.3.4 )": {+ "dlHash": "okvtnyrf",+ "dlSubdir": null,+ "dlUri": "https:qnwrmivt"+ },+ "( == 8.4.8 && < 4.3.7 && == 6.3.1 ) || ( >= 4.2.6 && >= 6.1.5 && >= 2.4.7 && == 6.4.3 && == 7.6.2 && == 2.5.3 )": {+ "dlHash": "z",+ "dlSubdir": {+ "RegexDir": "@𣿁\u0005\u001f`"+ },+ "dlUri": "https:rsqni"+ },+ "( > 8.6.5 && > 1.7.3 && < 7.1.4 && < 2.3.6 && == 3.2.1 && == 4.7.2 ) || ( <= 6.5.2 && < 4.4.1 && == 7.8.6 && <= 2.7.7 && <= 3.6.8 && == 8.2.5 && > 2.7.4 && == 7.1.8 && <= 6.3.9 ) || ( == 3.7.3 && <= 8.8.7 && >= 5.3.4 && < 1.3.1 ) || ( == 6.8.3 && <= 1.6.2 && == 2.5.6 && < 8.1.6 && > 6.2.1 )": {+ "dlHash": "kwqmqliw",+ "dlSubdir": {+ "RegexDir": "e\u0015+Mi)"+ },+ "dlUri": "https:bljfq"+ },+ "( >= 2.3.1 && < 4.3.1 && > 3.5.6 && == 7.7.1 && <= 1.1.8 && > 6.1.4 && <= 6.7.8 ) || ( > 3.2.1 && > 2.7.4 && < 8.3.7 && >= 4.4.1 && < 8.7.1 && < 3.8.4 && <= 8.6.2 ) || ( == 3.5.8 && <= 8.6.7 )": {+ "dlHash": "ukwb",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:uqd"+ },+ "( >= 4.3.3 ) || ( >= 2.4.3 && <= 6.7.7 && >= 2.5.8 && <= 8.5.2 )": {+ "dlHash": "m",+ "dlSubdir": {+ "RegexDir": "%e6"+ },+ "dlUri": "http:uc"+ }+ },+ "FreeBSD": {+ "( < 4.1.2 && < 1.5.1 && == 2.3.8 && == 3.8.6 ) || ( < 5.7.7 && <= 6.7.2 && == 8.2.2 && > 3.7.7 && == 1.2.1 && > 2.4.3 && > 7.1.2 && <= 8.8.4 && > 1.2.5 )": {+ "dlHash": "wrtg",+ "dlSubdir": "D",+ "dlUri": "https:otmhlvd"+ },+ "( < 5.6.1 && <= 7.4.7 && == 4.2.6 ) || ( >= 4.3.5 && == 9.2.1 ) || ( > 7.4.7 && <= 1.7.1 && < 3.7.7 && > 4.3.2 )": {+ "dlHash": "ov",+ "dlSubdir": null,+ "dlUri": "http:yuzete"+ },+ "( > 1.7.2 && == 1.7.4 && >= 4.5.4 && < 8.8.7 && <= 5.2.5 && >= 2.8.4 ) || ( < 5.1.4 && <= 8.8.6 && > 6.2.3 && <= 2.4.8 && > 4.7.2 && == 1.3.8 && < 4.5.1 )": {+ "dlHash": "xjqgtkyw",+ "dlSubdir": "}᱅c𛀟鲠",+ "dlUri": "https:xsbv"+ },+ "( >= 1.4.4 && > 7.7.3 )": {+ "dlHash": "bxjqadm",+ "dlSubdir": {+ "RegexDir": "u\u0017'"+ },+ "dlUri": "http:"+ },+ "( >= 2.4.6 && == 8.8.1 && < 4.2.6 && == 5.5.7 && > 6.3.5 && < 5.3.1 && == 6.6.2 )": {+ "dlHash": "dvewwwk",+ "dlSubdir": {+ "RegexDir": "_𪴆"+ },+ "dlUri": "https:yypgzcow"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "http:oxxrap"+ }+ },+ "Linux_Alpine": {+ "( >= 7.4.3 && == 2.6.3 ) || ( < 3.2.4 ) || ( == 5.1.2 && == 6.2.7 ) || ( > 1.6.4 && >= 8.3.3 && == 7.6.3 && < 1.5.6 && == 5.4.7 && == 1.7.4 && <= 5.8.1 && == 8.1.4 && == 3.1.4 ) || ( > 1.8.10 && >= 3.2.6 && <= 1.6.7 && <= 6.8.8 && <= 1.1.5 && <= 6.8.2 && <= 6.1.1 && >= 8.7.1 ) || ( >= 6.2.3 && >= 3.6.2 && <= 8.5.5 && < 5.4.8 && == 5.3.4 && == 5.8.6 && < 2.1.1 ) || ( < 7.6.5 && == 2.4.2 && < 7.7.2 && == 2.3.7 && > 4.1.7 && < 2.1.4 && >= 3.4.2 )": {+ "dlHash": "zu",+ "dlSubdir": {+ "RegexDir": "jE%e"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "uarpryes",+ "dlSubdir": "gZ𨟖𡬉&",+ "dlUri": "http:yz"+ }+ },+ "Windows": {+ "( <= 2.8.1 && < 3.4.5 && < 4.5.5 && < 5.6.5 && > 6.3.2 && < 7.7.7 )": {+ "dlHash": "azrdb",+ "dlSubdir": "\u0019𗮻Vx𪳒",+ "dlUri": "https:mwh"+ },+ "( <= 3.1.4 && < 8.8.4 && == 5.6.3 && <= 6.5.3 && >= 3.3.7 )": {+ "dlHash": "",+ "dlSubdir": "\u0019Q\u001dLV",+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "miyxqr",+ "dlSubdir": {+ "RegexDir": "\u000b\u0008<r?"+ },+ "dlUri": "http:vxmy"+ }+ }+ },+ "A_PowerPC": {+ "Darwin": {+ "( == 8.1.1 ) || ( <= 1.1.1 && > 7.1.7 && == 5.5.2 && == 6.7.5 ) || ( >= 2.5.2 && >= 4.5.8 && < 1.3.6 ) || ( < 8.5.4 && < 3.2.2 && > 7.4.1 && <= 1.2.2 && <= 6.5.1 ) || ( <= 6.7.8 && >= 1.4.4 )": {+ "dlHash": "",+ "dlSubdir": "#ZD",+ "dlUri": "https:m"+ },+ "( >= 3.7.7 && < 5.6.2 && <= 5.1.5 && >= 7.5.7 && == 4.1.2 && <= 6.3.4 && >= 7.4.3 && < 7.8.4 ) || ( > 2.3.2 && == 8.4.1 && >= 6.7.3 ) || ( < 8.1.5 && <= 7.1.7 && > 1.2.7 && >= 3.2.2 && < 4.5.4 && <= 1.6.7 && > 3.5.2 && >= 4.1.7 && == 9.5.2 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:qx"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:rffdtxl"+ }+ },+ "Linux_Alpine": {+ "( < 7.7.4 ) || ( == 7.5.1 && == 8.7.5 && == 4.7.8 && < 5.1.8 ) || ( == 3.8.7 && >= 4.5.7 && >= 4.2.8 ) || ( <= 1.5.5 && < 7.4.8 && < 3.8.8 && >= 4.2.8 && >= 1.5.2 && == 5.4.6 ) || ( > 3.4.9 && < 7.2.2 && < 1.2.8 && >= 1.7.2 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:dwgathh"+ }+ },+ "Linux_Debian": {+ "( == 3.3.8 && >= 3.6.2 && == 8.4.5 )": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": "s/"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "vgfvqc",+ "dlSubdir": null,+ "dlUri": "https:iqceaav"+ }+ },+ "Windows": {+ "( < 2.1.4 && == 5.3.6 && >= 4.5.8 && <= 5.4.1 )": {+ "dlHash": "upzgn",+ "dlSubdir": "mjP*'\u0014;",+ "dlUri": "https:"+ },+ "( < 4.1.3 && <= 3.2.4 && < 5.4.7 && > 3.3.3 && >= 4.5.8 && >= 7.2.2 && > 8.4.7 && == 7.5.8 && <= 6.1.8 )": {+ "dlHash": "v",+ "dlSubdir": "+l`",+ "dlUri": "http:zjhmtwit"+ },+ "( == 2.6.8 && == 1.2.6 && >= 1.2.6 && >= 6.2.7 )": {+ "dlHash": "u",+ "dlSubdir": {+ "RegexDir": "R2O"+ },+ "dlUri": "https:cqjft"+ },+ "( >= 7.4.1 )": {+ "dlHash": "padwcr",+ "dlSubdir": "",+ "dlUri": "https:zdpk"+ },+ "unknown_versioning": {+ "dlHash": "ovyghnzd",+ "dlSubdir": {+ "RegexDir": "𭏧-𣚝𦵸%"+ },+ "dlUri": "https:swwbay"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( <= 3.3.5 && < 5.8.3 && > 7.3.7 && == 4.8.4 && > 2.8.5 && >= 3.5.5 && < 2.1.1 ) || ( < 2.1.1 && > 1.7.8 && > 4.5.1 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:vnmakzpj"+ },+ "( == 6.6.2 && >= 5.3.6 && >= 6.6.8 && <= 8.8.4 )": {+ "dlHash": "t",+ "dlSubdir": {+ "RegexDir": ")"+ },+ "dlUri": "https:kspgm"+ },+ "( >= 6.7.1 && == 3.2.2 )": {+ "dlHash": "zostube",+ "dlSubdir": {+ "RegexDir": "d"+ },+ "dlUri": "https:opytbot"+ },+ "unknown_versioning": {+ "dlHash": "yzaypslt",+ "dlSubdir": {+ "RegexDir": ";(WVj"+ },+ "dlUri": "https:tu"+ }+ },+ "Linux_AmazonLinux": {+ "( == 4.5.4 && == 4.3.3 )": {+ "dlHash": "mrykti",+ "dlSubdir": null,+ "dlUri": "https:jwwlgb"+ },+ "( >= 6.7.6 && == 6.6.1 && == 8.5.1 && >= 4.1.7 && <= 5.6.7 )": {+ "dlHash": "bywn",+ "dlSubdir": {+ "RegexDir": "I$84"+ },+ "dlUri": "https:qxe"+ }+ },+ "Linux_Fedora": {+ "( < 3.7.8 && < 6.7.1 )": {+ "dlHash": "lmjbe",+ "dlSubdir": "~li\u0005",+ "dlUri": "http:masyyyi"+ },+ "( < 3.8.6 && < 3.8.3 && < 4.1.1 && == 2.8.6 && <= 8.4.4 && >= 6.1.6 )": {+ "dlHash": "uds",+ "dlSubdir": "!tR_@r",+ "dlUri": "http:h"+ },+ "( <= 1.8.3 && >= 4.7.6 && >= 8.4.6 && < 6.8.1 && < 5.2.2 && == 5.5.3 && == 4.4.4 ) || ( == 8.5.2 ) || ( == 7.1.1 && <= 1.5.6 )": {+ "dlHash": "ull",+ "dlSubdir": "\n\tp",+ "dlUri": "https:"+ },+ "( >= 2.5.3 && == 3.2.1 && == 8.8.6 && < 6.3.8 && == 4.6.7 && > 1.2.8 ) || ( > 2.1.6 && >= 1.5.4 && == 7.3.7 && == 6.5.3 )": {+ "dlHash": "nkyae",+ "dlSubdir": {+ "RegexDir": "\u0000|\""+ },+ "dlUri": "https:z"+ },+ "( >= 5.1.2 && > 1.3.7 && < 7.5.3 && >= 8.1.5 && <= 8.4.6 && > 1.1.8 && == 7.4.6 && < 6.7.2 && > 7.8.2 ) || ( == 5.3.6 && >= 2.1.3 && < 7.8.2 ) || ( < 6.7.2 && == 4.2.7 && <= 3.5.1 && >= 2.8.2 ) || ( >= 3.2.1 && <= 2.5.2 && > 4.6.1 && < 7.7.1 && <= 2.2.5 && >= 1.5.3 && <= 1.8.6 && <= 8.1.2 )": {+ "dlHash": "tv",+ "dlSubdir": {+ "RegexDir": "O"+ },+ "dlUri": "https:mp"+ },+ "( >= 5.8.7 && < 3.6.5 && <= 3.7.2 && < 5.8.3 && <= 3.7.7 && >= 2.3.1 )": {+ "dlHash": "slqegtxl",+ "dlSubdir": {+ "RegexDir": "\u0019𩯺"+ },+ "dlUri": "http:uzr"+ }+ },+ "Windows": {+ "( <= 2.4.2 && < 3.7.4 && >= 9.3.5 )": {+ "dlHash": "zdg",+ "dlSubdir": {+ "RegexDir": "\u001bz$"+ },+ "dlUri": "http:akyf"+ },+ "( == 1.4.4 && >= 6.6.3 && == 5.6.2 && == 4.6.4 && <= 8.1.1 && > 2.6.7 )": {+ "dlHash": "jaaw",+ "dlSubdir": "\u0004",+ "dlUri": "https:zbftlp"+ },+ "( == 6.5.5 && >= 6.9.4 && < 6.1.3 ) || ( == 3.6.4 && == 2.1.7 && < 7.3.5 && > 6.5.3 && > 1.2.3 ) || ( >= 8.7.4 && <= 6.2.1 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:sdq"+ },+ "( > 2.7.7 && > 5.2.8 && == 1.8.3 && > 4.1.7 && == 6.1.2 && <= 7.4.4 )": {+ "dlHash": "geudefh",+ "dlSubdir": "E\u0010",+ "dlUri": "http:gmqlggt"+ },+ "( > 9.4.5 && < 1.6.5 && > 5.8.8 && < 5.8.2 && == 8.8.5 && == 6.4.3 && == 1.8.7 && >= 3.4.9 ) || ( <= 8.4.2 && < 4.5.6 && == 3.1.7 && == 1.3.1 && <= 5.7.7 && > 4.5.7 && >= 6.8.1 && == 7.8.1 && > 8.4.4 ) || ( < 8.1.6 && <= 8.4.3 && < 2.7.1 && >= 4.6.8 && >= 2.8.2 && == 4.7.8 && == 3.8.6 )": {+ "dlHash": "tdfcpaf",+ "dlSubdir": null,+ "dlUri": "http:"+ }+ }+ },+ "A_Sparc64": {+ "FreeBSD": {+ "( < 3.2.8 && >= 6.7.2 && > 7.6.1 && == 7.6.4 && <= 8.1.4 && >= 8.8.4 && >= 7.2.6 )": {+ "dlHash": "um",+ "dlSubdir": "Fd\u0012K\\X",+ "dlUri": "https:zfroo"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": "jrkzdq",+ "viPostRemove": "p",+ "viPreCompile": "",+ "viSourceDL": {+ "dlHash": "fi",+ "dlSubdir": "𖬄\u0002\u001f\\ྡ\u000e",+ "dlUri": "http:fkd"+ },+ "viTags": [+ "i2𓄗k\u0008}려",+ "Latest",+ "base-1.8.1",+ "Recommended"+ ]+ },+ "5.6.4": {+ "viArch": {+ "A_32": {},+ "A_ARM": {+ "Darwin": {+ "( <= 3.2.3 )": {+ "dlHash": "nhj",+ "dlSubdir": "j\u0018",+ "dlUri": "https:lodjw"+ },+ "( <= 3.5.9 && <= 5.2.8 && <= 5.2.5 && > 2.7.4 && < 6.7.7 ) || ( >= 7.6.5 && > 3.3.3 && < 4.2.8 && == 2.8.8 && <= 2.8.6 && <= 3.1.8 )": {+ "dlHash": "qnnol",+ "dlSubdir": {+ "RegexDir": "$𮌺H\u0014\u001b\r"+ },+ "dlUri": "http:juyve"+ },+ "( == 1.1.7 && >= 7.8.2 && <= 3.1.9 && < 7.4.3 && > 7.6.3 && < 4.5.3 )": {+ "dlHash": "hs",+ "dlSubdir": null,+ "dlUri": "http:jnghp"+ },+ "( == 1.3.7 && >= 2.8.4 && < 6.1.3 && <= 1.3.2 ) || ( <= 2.3.1 && == 6.7.6 && >= 2.1.1 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:yt"+ },+ "( == 2.4.2 && >= 6.7.5 && > 4.1.2 && < 7.5.8 && <= 7.2.4 && > 5.2.7 && <= 5.3.3 )": {+ "dlHash": "wc",+ "dlSubdir": {+ "RegexDir": "b问"+ },+ "dlUri": "https:plpfenuv"+ },+ "unknown_versioning": {+ "dlHash": "exg",+ "dlSubdir": {+ "RegexDir": "𫫅x\u001e1I"+ },+ "dlUri": "https:elxsev"+ }+ },+ "FreeBSD": {+ "( >= 6.8.8 && > 8.4.6 && == 1.8.7 )": {+ "dlHash": "nctpa",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:t"+ }+ },+ "Linux_AmazonLinux": {+ "( <= 2.6.6 && < 1.7.2 && < 3.3.1 && < 1.1.5 && <= 5.4.3 && <= 6.4.4 && <= 5.3.3 && == 7.6.1 && > 5.3.3 )": {+ "dlHash": "w",+ "dlSubdir": "",+ "dlUri": "http:"+ },+ "( == 1.1.6 && < 1.7.5 && > 1.1.1 ) || ( <= 7.5.3 && == 2.6.4 && == 7.5.4 && == 4.5.3 && > 4.5.1 && >= 7.5.8 && <= 8.6.1 )": {+ "dlHash": "noooemo",+ "dlSubdir": null,+ "dlUri": "https:buidiali"+ },+ "( == 1.4.4 && > 5.6.2 ) || ( < 4.7.7 && == 5.1.1 ) || ( >= 1.8.4 && < 6.5.4 && <= 4.5.5 && <= 7.5.7 )": {+ "dlHash": "ponghely",+ "dlSubdir": {+ "RegexDir": "T\u001f\u0004"+ },+ "dlUri": "http:vtrycyu"+ },+ "( == 3.4.6 && < 4.2.1 && < 2.2.4 && <= 8.4.3 )": {+ "dlHash": "gwweuux",+ "dlSubdir": null,+ "dlUri": "https:kkky"+ },+ "( > 3.4.2 && < 1.4.1 && == 4.2.4 && == 4.8.6 && > 8.8.4 )": {+ "dlHash": "ddp",+ "dlSubdir": {+ "RegexDir": "A\u0010u\u001a\u0010n9"+ },+ "dlUri": "http:cfb"+ },+ "( > 7.3.3 && == 5.7.2 )": {+ "dlHash": "h",+ "dlSubdir": null,+ "dlUri": "https:agxim"+ },+ "( >= 2.4.5 && > 1.3.2 && <= 4.8.3 && > 7.4.5 && < 4.8.3 && == 5.3.7 && == 6.4.8 )": {+ "dlHash": "f",+ "dlSubdir": {+ "RegexDir": "]L+𡝨"+ },+ "dlUri": "http:av"+ },+ "( >= 7.4.4 && > 4.4.1 ) || ( <= 4.8.7 && >= 3.5.7 && <= 4.7.7 && > 2.3.2 && > 7.7.7 && > 3.2.4 )": {+ "dlHash": "mun",+ "dlSubdir": null,+ "dlUri": "https:jmvd"+ }+ },+ "Linux_Ubuntu": {+ "( < 2.7.2 && == 1.4.8 && == 4.7.8 && == 1.2.8 && == 4.7.8 && >= 8.5.8 && > 8.7.7 && < 8.6.2 )": {+ "dlHash": "fwocarzh",+ "dlSubdir": null,+ "dlUri": "http:zrb"+ },+ "( == 5.7.6 )": {+ "dlHash": "heszgzh",+ "dlSubdir": null,+ "dlUri": "http:ysn"+ }+ }+ },+ "A_PowerPC": {+ "FreeBSD": {+ "( < 4.3.6 && == 4.3.4 && >= 6.8.5 ) || ( < 3.2.1 && == 7.8.1 && > 8.2.2 && >= 1.1.5 && < 1.8.5 && == 6.1.4 && <= 8.2.7 && >= 4.6.5 )": {+ "dlHash": "brbhmm",+ "dlSubdir": "\u000c\u0017>~",+ "dlUri": "http:plrcc"+ },+ "( < 7.2.7 && >= 6.3.8 && < 8.1.8 && >= 7.4.3 && <= 7.5.1 && < 2.5.7 && < 2.6.6 && < 4.8.8 ) || ( <= 4.7.4 && <= 6.8.8 && > 3.3.7 && <= 4.3.5 )": {+ "dlHash": "ozrofyr",+ "dlSubdir": "f\u0001𪩅)",+ "dlUri": "http:nd"+ },+ "( >= 4.5.6 && == 10.2.6 && < 1.5.1 && < 1.4.6 && <= 4.4.7 && >= 8.8.7 )": {+ "dlHash": "qjgvie",+ "dlSubdir": "",+ "dlUri": "http:aygddh"+ },+ "unknown_versioning": {+ "dlHash": "ko",+ "dlSubdir": {+ "RegexDir": "\u0019Y\u001cx\u000e\u0008"+ },+ "dlUri": "https:wum"+ }+ }+ },+ "A_Sparc": {+ "FreeBSD": {+ "( < 8.2.6 && >= 8.7.7 && < 3.3.4 && >= 7.2.2 && >= 8.2.7 ) || ( >= 2.2.7 )": {+ "dlHash": "rihuawnm",+ "dlSubdir": {+ "RegexDir": "]9"+ },+ "dlUri": "https:j"+ },+ "unknown_versioning": {+ "dlHash": "rkuoviu",+ "dlSubdir": "\u001c\\m\u001f",+ "dlUri": "http:"+ }+ },+ "Windows": {+ "( < 7.3.3 && == 5.6.3 )": {+ "dlHash": "d",+ "dlSubdir": {+ "RegexDir": "\u0000"+ },+ "dlUri": "https:pgdya"+ },+ "( <= 2.4.3 && > 3.1.1 && >= 4.2.2 ) || ( == 4.2.1 && > 6.6.7 && == 8.9.3 && < 4.3.2 && == 8.4.2 && < 4.4.3 && >= 3.6.3 ) || ( == 1.2.7 && <= 1.2.5 && == 8.7.1 && == 5.5.3 )": {+ "dlHash": "bcxkmksa",+ "dlSubdir": {+ "RegexDir": "𓀇yi"+ },+ "dlUri": "https:dne"+ },+ "( <= 5.1.8 && > 4.2.2 )": {+ "dlHash": "jnxev",+ "dlSubdir": {+ "RegexDir": "Kqb"+ },+ "dlUri": "https:jd"+ },+ "( == 4.4.4 && == 4.6.1 && == 1.1.1 && > 6.3.6 && > 7.5.3 && > 8.5.7 )": {+ "dlHash": "jf",+ "dlSubdir": null,+ "dlUri": "http:abtpp"+ },+ "( >= 3.7.3 ) || ( <= 8.2.6 )": {+ "dlHash": "ur",+ "dlSubdir": "t4\u0012\u0003?",+ "dlUri": "https:sscb"+ },+ "( >= 7.3.3 && < 5.3.7 && <= 7.2.6 && >= 1.6.7 && > 2.7.2 && >= 3.7.3 && <= 5.2.3 && == 4.9.4 ) || ( == 5.5.6 && >= 1.7.7 ) || ( > 4.3.1 && > 2.3.8 && <= 6.4.3 && < 8.7.6 && >= 7.8.6 && <= 3.7.5 && < 1.4.2 && < 5.4.3 )": {+ "dlHash": "ywnviwk",+ "dlSubdir": "oB<jzs",+ "dlUri": "http:nkqbz"+ },+ "unknown_versioning": {+ "dlHash": "sghjd",+ "dlSubdir": null,+ "dlUri": "https:bh"+ }+ }+ }+ },+ "viChangeLog": null,+ "viPostInstall": null,+ "viPostRemove": "hcftjbb",+ "viPreCompile": "qy",+ "viSourceDL": null,+ "viTags": [+ "\u000c\u0001E\u0012\u0015",+ "base-2.6.6",+ "old",+ "base-3.9.4",+ "Prerelease",+ ">/~l\u0019\u0001F\u0003",+ "base-4.4.6"+ ]+ },+ "6.7.3": {+ "viArch": {},+ "viChangeLog": null,+ "viPostInstall": "",+ "viPostRemove": null,+ "viPreCompile": "hr",+ "viSourceDL": {+ "dlHash": "pd",+ "dlSubdir": {+ "RegexDir": "\u0014𐑙L"+ },+ "dlUri": "https:vva"+ },+ "viTags": [+ "old",+ "old"+ ]+ },+ "8.5.5": {+ "viArch": {},+ "viChangeLog": "http:aymm",+ "viPostInstall": null,+ "viPostRemove": "nhlcatpc",+ "viPreCompile": "wjakrdnl",+ "viSourceDL": {+ "dlHash": "rx",+ "dlSubdir": {+ "RegexDir": "\u0001t\u00086\u0018\u0016"+ },+ "dlUri": "https:hnxkujs"+ },+ "viTags": [+ "Latest",+ "Latest",+ "base-3.6.3",+ "Recommended"+ ]+ },+ "8.6.5": {+ "viArch": {+ "A_32": {+ "Darwin": {},+ "FreeBSD": {},+ "Linux_Alpine": {+ "( == 5.7.1 && == 7.8.3 )": {+ "dlHash": "to",+ "dlSubdir": null,+ "dlUri": "http:lyc"+ },+ "unknown_versioning": {+ "dlHash": "fhjivhnl",+ "dlSubdir": "𬗫\u0001𐧇Tf",+ "dlUri": "http:"+ }+ },+ "Linux_UnknownLinux": {+ "( < 1.7.7 && >= 3.4.3 && > 8.7.7 && > 4.1.7 && == 1.6.7 && < 7.6.7 && < 3.1.4 && < 7.7.1 ) || ( >= 6.3.6 ) || ( > 2.1.1 && < 4.8.7 && <= 8.3.7 && == 8.5.3 && >= 8.1.4 && == 5.3.2 && <= 1.6.2 )": {+ "dlHash": "u",+ "dlSubdir": "s",+ "dlUri": "https:tzzmxsd"+ },+ "( < 5.2.1 && < 2.7.7 && > 7.4.3 && >= 1.6.6 ) || ( >= 1.3.4 ) || ( == 2.4.5 && == 6.8.1 && >= 6.6.2 && == 3.1.4 && == 8.5.5 ) || ( <= 6.4.4 && < 1.6.5 && >= 6.2.4 && > 6.5.8 && == 6.7.5 && < 3.1.1 && >= 4.8.7 && == 1.6.2 ) || ( <= 2.3.6 ) || ( >= 2.8.5 && <= 5.7.5 ) || ( > 8.7.7 && > 1.4.4 && >= 6.1.5 ) || ( <= 6.4.6 ) || ( > 5.3.7 && >= 1.2.5 && >= 7.8.5 && > 6.6.3 && < 5.7.5 && <= 6.8.3 && >= 7.7.7 && > 3.4.6 && < 1.3.6 ) || ( < 3.8.4 && > 6.5.1 && == 2.8.2 && > 5.4.4 )": {+ "dlHash": "ccnkwy",+ "dlSubdir": {+ "RegexDir": "x估j"+ },+ "dlUri": "http:ywfbuck"+ },+ "( == 6.9.2 && > 8.2.4 && > 5.5.2 && <= 7.2.5 && == 7.7.4 )": {+ "dlHash": "y",+ "dlSubdir": "<룗OQcy",+ "dlUri": "https:mhsn"+ },+ "( >= 2.1.2 && > 1.6.6 && <= 5.7.3 && > 7.2.3 && == 3.2.6 && > 6.1.4 && > 5.6.3 && >= 2.5.8 )": {+ "dlHash": "llqhnq",+ "dlSubdir": {+ "RegexDir": "\u0007𭁽"+ },+ "dlUri": "https:xzxg"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "/hX𣕻",+ "dlUri": "http:ee"+ }+ }+ },+ "A_64": {+ "Darwin": {+ "( <= 3.3.4 && <= 6.2.6 && > 5.2.8 && < 7.6.5 && >= 2.6.4 && < 4.1.7 && > 7.4.2 && < 4.2.4 && == 3.4.6 )": {+ "dlHash": "tbvymm",+ "dlSubdir": {+ "RegexDir": "\u001bP(D"+ },+ "dlUri": "http:ej"+ },+ "( == 2.7.3 && > 2.7.7 && >= 6.1.6 && <= 5.4.1 && > 1.6.1 )": {+ "dlHash": "h",+ "dlSubdir": null,+ "dlUri": "https:kvgehbkd"+ },+ "( == 7.4.6 && > 2.7.7 )": {+ "dlHash": "bjoprws",+ "dlSubdir": "t9;柧Wc@",+ "dlUri": "http:uhvgu"+ },+ "( > 2.2.1 && <= 5.2.4 && == 3.2.1 && == 5.5.4 && > 5.7.7 )": {+ "dlHash": "qkgevfn",+ "dlSubdir": "z𨸍y",+ "dlUri": "https:hq"+ },+ "( > 8.9.2 && > 5.7.8 && <= 1.1.6 && < 4.5.3 && > 4.1.5 && <= 1.7.2 )": {+ "dlHash": "issb",+ "dlSubdir": {+ "RegexDir": "I~\u0016N{\u0012"+ },+ "dlUri": "https:dbntysf"+ },+ "( >= 6.7.4 && > 7.7.5 && <= 3.2.5 && >= 8.1.2 && < 8.4.2 && >= 2.1.8 && == 1.6.5 && >= 6.5.5 ) || ( <= 6.5.2 && >= 5.8.1 && <= 7.3.5 && >= 4.8.6 && > 1.3.2 && == 4.8.5 ) || ( <= 6.2.1 && == 3.9.7 && <= 3.6.3 && >= 4.4.6 && <= 5.6.4 && > 7.1.5 && == 2.2.2 ) || ( < 6.3.7 && < 7.4.6 && < 7.2.3 && > 1.4.3 && < 2.3.6 && > 1.8.6 && == 2.6.5 && > 4.5.3 && == 8.1.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "FEg"+ },+ "dlUri": "https:fan"+ },+ "unknown_versioning": {+ "dlHash": "hhak",+ "dlSubdir": null,+ "dlUri": "https:mnokna"+ }+ },+ "FreeBSD": {+ "( == 2.2.4 && >= 4.2.7 && > 3.5.2 && == 5.2.5 ) || ( < 8.1.7 && == 2.2.6 && < 3.7.4 && <= 5.8.2 && <= 6.7.6 && < 6.7.8 && == 2.3.8 ) || ( >= 5.5.5 && <= 7.3.2 && > 8.4.8 && < 1.8.5 && <= 4.7.3 && < 5.4.7 && > 2.1.7 ) || ( == 4.5.4 && == 8.6.5 && < 8.7.2 && > 7.8.5 && > 5.7.2 && >= 3.5.8 ) || ( > 1.2.6 && >= 5.1.5 && <= 2.2.6 && <= 7.8.4 ) || ( < 8.3.3 && >= 1.5.6 && == 2.5.2 && < 7.7.8 && < 7.1.7 && == 7.2.7 && <= 1.8.4 )": {+ "dlHash": "fgm",+ "dlSubdir": {+ "RegexDir": "𮄸𩽀𪂣"+ },+ "dlUri": "https:w"+ }+ },+ "Linux_RedHat": {+ "( == 5.4.3 ) || ( == 1.2.2 && > 6.4.8 && > 8.4.4 && <= 3.2.2 ) || ( >= 3.6.7 && > 4.7.2 && > 5.6.2 ) || ( <= 9.6.1 && < 7.3.3 && == 6.8.4 && >= 4.2.6 && < 5.3.1 )": {+ "dlHash": "",+ "dlSubdir": "m\u0017",+ "dlUri": "http:qdbgl"+ }+ }+ },+ "A_ARM64": {+ "Darwin": {+ "( < 3.8.3 && <= 8.2.3 && == 6.3.7 && <= 8.6.6 && >= 8.2.8 ) || ( <= 7.5.9 && < 8.5.4 && > 1.4.6 && >= 8.8.2 ) || ( > 2.5.6 && >= 1.8.6 && <= 1.5.4 && == 4.5.1 && > 3.7.3 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:pik"+ },+ "( < 3.8.8 && >= 5.4.8 && == 5.8.4 ) || ( == 7.5.8 && == 3.4.6 )": {+ "dlHash": "ak",+ "dlSubdir": "",+ "dlUri": "https:owmkms"+ },+ "( == 5.6.4 && > 3.5.5 && <= 1.2.3 && <= 8.6.2 && < 4.1.5 && <= 3.6.7 && >= 1.1.3 && > 1.2.5 )": {+ "dlHash": "mapdp",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( >= 6.4.6 && < 6.4.8 && > 6.7.2 && > 7.6.6 && <= 3.8.8 )": {+ "dlHash": "lhizbvxj",+ "dlSubdir": "",+ "dlUri": "http:n"+ },+ "unknown_versioning": {+ "dlHash": "lima",+ "dlSubdir": {+ "RegexDir": "|"+ },+ "dlUri": "http:cnriwg"+ }+ },+ "FreeBSD": {+ "( < 5.2.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "C=o\n葇"+ },+ "dlUri": "http:zx"+ },+ "( <= 4.5.6 && == 2.1.8 && <= 5.4.2 && < 6.5.2 && < 4.8.3 && < 4.4.4 && == 2.3.3 && == 8.8.4 )": {+ "dlHash": "djkw",+ "dlSubdir": "灸'",+ "dlUri": "http:gcamczj"+ },+ "( == 5.6.9 && >= 2.2.2 && == 7.4.1 && == 7.4.8 && >= 3.1.7 && <= 7.3.3 && < 1.8.1 && >= 5.4.4 && == 1.2.3 ) || ( == 1.7.6 && > 6.5.5 && <= 3.4.4 && > 2.1.4 && > 6.1.8 ) || ( >= 7.8.4 ) || ( == 1.8.8 && > 1.3.8 )": {+ "dlHash": "zb",+ "dlSubdir": {+ "RegexDir": "YHxt["+ },+ "dlUri": "http:quckrw"+ },+ "( > 7.8.2 && <= 7.5.2 && > 1.3.1 && == 2.4.3 )": {+ "dlHash": "mrot",+ "dlSubdir": {+ "RegexDir": "\u0008\u0011"+ },+ "dlUri": "http:cfndzfih"+ },+ "( >= 6.5.3 && >= 8.8.2 && < 6.3.8 && == 5.7.4 && < 1.1.2 && > 4.3.2 && <= 1.7.3 ) || ( <= 2.2.4 && > 3.2.3 && >= 7.8.4 )": {+ "dlHash": "rsruw",+ "dlSubdir": "ST",+ "dlUri": "https:gi"+ },+ "( >= 6.8.8 ) || ( == 8.4.4 && <= 1.4.8 && <= 1.7.3 && == 5.7.3 && == 8.7.6 )": {+ "dlHash": "yzj",+ "dlSubdir": {+ "RegexDir": "\u000cj\t<s\u000b"+ },+ "dlUri": "http:nrnum"+ },+ "unknown_versioning": {+ "dlHash": "ie",+ "dlSubdir": "-",+ "dlUri": "https:hdbvxq"+ }+ },+ "Linux_Debian": {+ "( == 4.3.1 && > 1.2.5 && < 3.8.6 && == 2.6.1 && == 6.7.5 && >= 4.2.1 && > 7.8.5 && <= 1.6.2 )": {+ "dlHash": "enrgiq",+ "dlSubdir": "\u0011",+ "dlUri": "https:pzewlt"+ },+ "( >= 4.3.2 && == 1.2.3 && < 2.2.2 && == 4.1.2 && > 6.2.1 && == 4.8.8 && <= 3.2.4 && < 5.7.4 )": {+ "dlHash": "j",+ "dlSubdir": {+ "RegexDir": "\u000c"+ },+ "dlUri": "http:ddgwjz"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "27",+ "dlUri": "http:jxy"+ }+ },+ "Windows": {+ "( <= 5.4.1 && <= 5.6.3 && == 5.4.7 ) || ( == 4.1.6 && < 4.4.7 && >= 2.8.5 && <= 8.2.5 && >= 5.4.7 && > 7.2.4 && >= 2.8.1 )": {+ "dlHash": "o",+ "dlSubdir": "\u0004폙ZB↬c呓",+ "dlUri": "http:"+ },+ "( > 4.3.5 && <= 3.3.6 && >= 1.5.1 && >= 5.4.3 && <= 8.5.6 && <= 3.4.2 && == 3.4.4 )": {+ "dlHash": "hrdswdd",+ "dlSubdir": {+ "RegexDir": "O7{5'"+ },+ "dlUri": "http:sgl"+ },+ "( > 7.5.2 && >= 4.2.8 && <= 2.3.7 && >= 1.1.7 && == 6.5.7 && < 1.2.3 ) || ( >= 3.8.7 && <= 6.8.9 && >= 3.1.8 && < 1.2.2 && >= 7.7.7 && >= 8.8.1 && < 3.8.3 && == 8.2.2 && == 7.1.8 )": {+ "dlHash": "jgij",+ "dlSubdir": null,+ "dlUri": "https:edmqwn"+ },+ "( > 8.5.4 && == 4.8.6 )": {+ "dlHash": "jc",+ "dlSubdir": "",+ "dlUri": "http:rsfo"+ }+ }+ },+ "A_Sparc64": {+ "FreeBSD": {+ "( <= 3.2.4 && <= 1.7.5 && == 6.5.4 && >= 3.5.6 && > 8.5.8 && == 1.8.8 && >= 6.2.2 && > 2.4.1 && < 6.5.3 ) || ( == 8.2.8 && == 4.2.6 && >= 7.1.1 && > 1.1.7 && < 6.6.1 && >= 3.3.3 && < 2.1.3 && == 3.1.8 && >= 5.5.7 ) || ( <= 5.8.5 && > 8.8.4 && >= 3.3.1 && < 4.2.3 && < 6.6.1 && == 1.7.6 && == 3.7.2 && == 8.8.3 ) || ( >= 5.3.7 && < 8.3.3 && < 8.2.7 && == 6.6.6 && >= 6.2.5 && > 4.7.6 )": {+ "dlHash": "uep",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:fbkflgrx"+ },+ "( == 1.4.3 && < 5.7.1 && == 5.2.2 && == 6.7.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( == 3.4.1 && >= 4.8.3 && < 5.5.7 )": {+ "dlHash": "ppebw",+ "dlSubdir": "os𦱮\"[\u0014\\",+ "dlUri": "http:gyeqjg"+ },+ "( > 7.1.7 && < 4.7.3 ) || ( == 8.3.4 && <= 1.6.1 && < 5.8.2 && <= 4.6.2 )": {+ "dlHash": "uclcp",+ "dlSubdir": "imvrW8",+ "dlUri": "https:sruvzphl"+ },+ "( > 8.8.6 && < 1.4.7 && >= 5.1.3 && > 4.7.1 && > 3.7.1 && > 6.1.3 && == 1.4.6 && == 1.2.7 && == 8.3.2 )": {+ "dlHash": "drw",+ "dlSubdir": {+ "RegexDir": "𓐑\u0012<"+ },+ "dlUri": "https:q"+ },+ "( >= 2.5.6 && >= 5.2.5 && <= 5.5.6 && >= 7.3.8 )": {+ "dlHash": "krlkoet",+ "dlSubdir": {+ "RegexDir": "?+K_/鉊"+ },+ "dlUri": "http:twoj"+ },+ "unknown_versioning": {+ "dlHash": "ocrajo",+ "dlSubdir": {+ "RegexDir": " k'"+ },+ "dlUri": "https:pu"+ }+ },+ "Linux_Fedora": {+ "( < 2.4.3 && <= 6.8.5 )": {+ "dlHash": "rzp",+ "dlSubdir": null,+ "dlUri": "https:yozg"+ },+ "( < 8.6.5 && < 2.4.7 && > 3.7.7 && == 1.7.4 && < 7.7.5 && <= 7.4.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "( < 9.8.7 && >= 5.2.3 )": {+ "dlHash": "m",+ "dlSubdir": "e5?$",+ "dlUri": "http:xkveipv"+ },+ "( == 6.6.1 && <= 8.8.1 && > 4.3.4 && > 4.6.4 && >= 3.5.4 && > 4.6.5 && >= 5.6.2 ) || ( >= 3.2.3 && > 4.5.1 && <= 5.4.9 ) || ( < 6.4.8 && > 3.2.3 && >= 2.5.7 && <= 6.2.7 && <= 5.3.3 ) || ( > 4.6.2 && < 7.6.5 && == 2.1.6 && <= 1.8.3 && <= 2.3.7 && <= 2.4.3 ) || ( <= 7.1.3 && >= 6.1.4 && >= 8.3.6 )": {+ "dlHash": "aul",+ "dlSubdir": null,+ "dlUri": "http:lqdsohxv"+ },+ "( > 8.6.5 && >= 2.5.1 && == 4.7.2 && == 8.4.6 && <= 6.2.5 && <= 7.2.8 && > 6.9.3 )": {+ "dlHash": "jiocnbg",+ "dlSubdir": {+ "RegexDir": "𐝉QMY)瑲u"+ },+ "dlUri": "https:eomdx"+ },+ "unknown_versioning": {+ "dlHash": "i",+ "dlSubdir": "m=C\u001a\u0013n簻",+ "dlUri": "http:"+ }+ },+ "Linux_Mint": {}+ }+ },+ "viChangeLog": "https:h",+ "viPostInstall": "cey",+ "viPostRemove": "bbuscyjp",+ "viPreCompile": "fvw",+ "viSourceDL": {+ "dlHash": "zeqioqpo",+ "dlSubdir": "\u0017Wo\u0013T𡤌~",+ "dlUri": "http:glb"+ },+ "viTags": [+ "Latest",+ "4k",+ "䈇k#",+ "\nḤ",+ "v斾)k",+ "Prerelease",+ "Latest"+ ]+ }+ },+ "GHC": {},+ "GHCup": {},+ "Stack": {}+ },+ "globalTools": {+ "ShimGen": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "𧄻\u001fkTY.UB-𣛍㶌𗓽𘈐\u0001V7.G/J𗌮N\u0013鐼"+ },+ "dlUri": "https:t"+ }+ },+ "toolRequirements": {+ "Cabal": {+ "3.5.4": {+ "Windows": {+ "( <= 2.1.1 && == 6.8.3 && == 5.1.6 )": {+ "distroPKGs": [+ "qsfhiyb",+ "qpy"+ ],+ "notes": "hpgk"+ },+ "( <= 7.3.2 && <= 8.5.4 && < 4.1.8 && < 6.8.8 && == 1.2.8 && == 4.7.6 && >= 2.2.6 && == 6.4.5 )": {+ "distroPKGs": [],+ "notes": "nygaa"+ },+ "( == 7.5.2 && >= 3.6.4 && >= 6.2.2 ) || ( <= 2.2.5 && >= 3.6.8 && == 4.4.8 && < 8.3.5 && <= 6.8.5 && > 7.8.8 )": {+ "distroPKGs": [+ "kojqvk",+ "mwraym",+ "eh",+ "drimpqji",+ "puh",+ "bh",+ ""+ ],+ "notes": ""+ },+ "( > 4.4.4 && <= 4.6.7 && <= 5.3.2 && < 8.1.2 && == 1.6.2 && >= 5.1.7 && == 7.6.1 && == 7.8.1 && >= 4.6.3 ) || ( >= 1.8.5 && > 3.4.8 && < 5.2.8 && < 8.4.1 && <= 7.3.4 && > 4.2.6 && < 7.1.3 )": {+ "distroPKGs": [+ "",+ "ohjmhrv",+ "b",+ "kxbfkise"+ ],+ "notes": "wfmrp"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "",+ "k",+ "xr",+ "b",+ "rq"+ ],+ "notes": "qnby"+ }+ }+ },+ "7.6.7": {+ "FreeBSD": {},+ "Linux_AmazonLinux": {+ "( <= 5.6.6 && <= 8.6.2 && > 7.8.5 && == 3.6.8 && <= 8.8.5 && <= 6.5.7 && == 1.7.6 && >= 9.2.4 && <= 1.3.1 ) || ( == 3.2.2 && >= 5.1.2 && < 7.6.2 && >= 3.1.2 ) || ( <= 5.2.4 && <= 7.2.8 && == 3.2.2 && >= 7.5.1 && <= 8.8.7 && >= 1.6.2 && < 7.1.4 && < 3.7.2 && < 7.6.2 )": {+ "distroPKGs": [+ "e",+ "bgiv",+ "",+ "ucxlxxt",+ "uydea",+ "pwedqy"+ ],+ "notes": "sdl"+ },+ "( == 4.1.7 && <= 8.7.6 && >= 1.8.2 && <= 5.8.4 )": {+ "distroPKGs": [],+ "notes": "rgptzhcm"+ },+ "( > 2.7.8 && > 2.3.3 )": {+ "distroPKGs": [+ "ctwbidj",+ "nosr",+ "",+ "qn",+ "hoqdj",+ "clmq",+ "vfrxbxki"+ ],+ "notes": "am"+ },+ "( > 2.8.7 && < 8.5.3 && > 3.8.7 && <= 1.1.5 && <= 7.5.2 && <= 5.7.5 && <= 2.5.2 && >= 2.5.1 ) || ( > 7.3.3 && <= 2.4.8 ) || ( >= 8.6.2 && > 1.8.2 && == 7.1.6 && < 1.3.7 && <= 7.7.2 && < 8.5.8 ) || ( >= 6.8.1 && < 1.6.8 )": {+ "distroPKGs": [],+ "notes": "fg"+ },+ "( > 3.7.8 && > 2.4.7 && <= 1.8.5 && == 1.6.6 && == 8.4.8 && >= 2.5.6 && > 5.1.4 )": {+ "distroPKGs": [+ "ae",+ "eg",+ ""+ ],+ "notes": "e"+ },+ "( > 6.9.8 && < 7.2.4 && <= 1.4.8 && < 8.3.6 && <= 4.4.5 && > 3.6.5 && <= 4.7.6 && < 7.2.3 )": {+ "distroPKGs": [+ "sqotn",+ "woyn",+ "rhan",+ "wfdlpq",+ "gbhz",+ "b"+ ],+ "notes": "ml"+ },+ "( >= 6.6.6 && > 7.4.4 && < 4.4.8 ) || ( < 8.2.7 && >= 8.3.5 && > 7.7.7 && == 8.6.6 && == 5.1.9 && <= 8.5.7 && <= 2.1.5 && == 8.4.5 && > 5.4.8 )": {+ "distroPKGs": [+ "tzmjqbv",+ "ddw",+ "td",+ "l",+ "pzobfl",+ "vfw",+ "xswhghkv",+ "ym"+ ],+ "notes": "kptwvk"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "f",+ "wbkfbu",+ "vlcddzs",+ "hrdjadn",+ "l",+ "hp",+ "ryix"+ ],+ "notes": "ezsdxlbo"+ }+ },+ "Linux_Gentoo": {+ "( <= 3.2.5 && >= 8.7.3 && > 3.7.5 && < 6.5.8 && > 2.2.5 && >= 4.7.3 )": {+ "distroPKGs": [+ "vuhr",+ "chctdzvb",+ "qn"+ ],+ "notes": "pypzkb"+ },+ "( <= 4.7.4 && == 3.5.4 && < 1.7.2 && <= 4.5.4 && == 8.2.4 ) || ( >= 7.8.7 && > 6.4.1 ) || ( <= 3.5.3 && > 2.3.8 && < 8.3.5 && >= 3.1.5 ) || ( < 5.1.4 && <= 7.5.8 && > 2.1.6 && == 7.7.6 && > 5.8.8 && == 7.8.4 && < 8.4.7 )": {+ "distroPKGs": [+ "rss",+ "rhzxpsvd",+ "g"+ ],+ "notes": "hxqkrb"+ }+ },+ "Linux_Mint": {+ "( <= 7.6.6 && > 1.6.3 && >= 6.8.7 && < 3.6.6 ) || ( < 8.8.6 && > 5.4.8 ) || ( < 2.2.3 && > 8.3.5 && == 2.6.3 )": {+ "distroPKGs": [+ "slesljw",+ "",+ "",+ "iwgcaa",+ "sho"+ ],+ "notes": "fasphwzs"+ },+ "( == 4.1.3 && < 4.3.5 && < 6.1.4 && <= 8.6.3 ) || ( >= 3.8.7 && <= 7.2.4 && > 3.1.1 && >= 8.7.3 )": {+ "distroPKGs": [+ "hmm"+ ],+ "notes": "mzbvu"+ },+ "( > 6.6.7 && > 1.1.1 && == 3.7.1 && <= 8.7.4 && <= 7.7.6 && <= 8.8.4 && == 2.3.3 && > 7.3.6 ) || ( >= 6.5.3 && < 1.8.4 && < 5.5.6 && == 6.5.6 && < 6.3.8 )": {+ "distroPKGs": [+ "iab",+ "",+ "egqdeay",+ "bpclusl"+ ],+ "notes": "icof"+ },+ "( >= 6.2.2 && > 5.5.2 ) || ( == 2.4.6 && > 8.4.6 && < 8.6.5 && <= 4.4.8 )": {+ "distroPKGs": [+ "sheoeo",+ "kjgwbu"+ ],+ "notes": "ltshsmgj"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "yndsfw",+ "",+ "fbcj",+ "biedq",+ "hynmyjt",+ "anj",+ "xl",+ "rnran"+ ],+ "notes": "imvsso"+ }+ },+ "Linux_Ubuntu": {+ "( <= 6.7.2 && > 4.2.2 && <= 8.3.7 && > 6.4.7 && == 2.6.7 && >= 5.8.7 && >= 4.8.8 && > 4.2.2 )": {+ "distroPKGs": [+ "c",+ "qqqofkk",+ "yyvvx"+ ],+ "notes": "ewsidbyv"+ },+ "( > 6.1.3 && > 8.1.8 && <= 6.4.1 && > 8.4.2 && >= 3.5.5 )": {+ "distroPKGs": [+ "tpyco",+ "s",+ "zzit",+ "qmoayrrt",+ "fzcm",+ "lnjntl",+ "ogcgncy"+ ],+ "notes": "j"+ },+ "( >= 5.3.6 && >= 4.8.3 && <= 7.4.1 && > 6.3.8 && >= 7.8.2 && > 1.6.3 && >= 4.7.3 && >= 4.7.4 ) || ( <= 4.1.6 && <= 2.8.4 && <= 6.4.2 ) || ( > 2.5.8 && == 8.3.4 ) || ( > 7.7.5 && > 6.1.6 && == 1.5.3 )": {+ "distroPKGs": [+ "ozoplpq",+ "rruitlb",+ ""+ ],+ "notes": "dj"+ },+ "( >= 5.8.5 && == 6.4.5 && < 5.4.6 && < 8.3.6 && > 1.8.7 && >= 6.6.3 && >= 1.1.8 && > 7.8.5 && <= 3.4.8 )": {+ "distroPKGs": [+ "kurr",+ "wsodd"+ ],+ "notes": "iepulwka"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "iwa",+ "xkbpobx"+ ],+ "notes": "grdctf"+ }+ },+ "Windows": {}+ },+ "8.5.7": {+ "FreeBSD": {+ "( < 2.7.5 && > 1.4.8 && > 2.7.5 ) || ( <= 9.5.5 && <= 4.1.7 && < 8.6.4 ) || ( >= 8.4.4 && > 8.2.7 && <= 6.5.4 && == 3.4.6 && > 2.6.2 && <= 4.3.6 )": {+ "distroPKGs": [],+ "notes": ""+ },+ "( <= 7.6.8 && >= 3.4.6 && <= 1.1.4 && > 3.7.3 && == 6.7.1 && <= 4.5.6 && >= 3.2.6 && == 4.6.2 ) || ( == 5.3.7 ) || ( >= 6.6.6 && == 6.4.7 && > 7.5.1 && > 7.5.3 && > 6.3.2 && < 1.6.2 && >= 7.4.7 && <= 4.5.2 && >= 7.8.7 )": {+ "distroPKGs": [],+ "notes": "pumw"+ },+ "( > 3.2.2 && <= 4.8.3 && >= 2.1.5 && >= 3.6.7 && == 7.2.5 && >= 3.2.8 )": {+ "distroPKGs": [+ "tujczwt"+ ],+ "notes": "zrsmswu"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "dbksfg"+ }+ }+ },+ "unknown_version": {+ "Darwin": {+ "unknown_versioning": {+ "distroPKGs": [+ "ylzfeh",+ "pol",+ "",+ "fnifqhh",+ "rip"+ ],+ "notes": "gs"+ }+ },+ "FreeBSD": {+ "( == 7.2.3 && <= 2.6.8 )": {+ "distroPKGs": [+ "x",+ "pem"+ ],+ "notes": "nkfrzoj"+ },+ "( > 5.3.7 && <= 5.7.2 && < 5.6.5 && > 5.7.3 ) || ( >= 1.6.5 && <= 6.7.8 && == 4.6.6 && > 8.4.4 ) || ( > 4.1.8 && >= 8.8.4 && >= 1.3.4 ) || ( >= 3.3.1 && >= 6.5.8 && > 1.4.3 && < 2.2.5 && >= 4.8.2 && > 4.6.6 && > 1.4.8 )": {+ "distroPKGs": [+ "ygfftg",+ "qf",+ "waxq",+ "fvebqtb",+ "ywqnr",+ "c"+ ],+ "notes": "cescmmz"+ }+ },+ "Linux_Alpine": {+ "( == 5.7.2 && >= 2.7.6 && < 3.2.7 && > 8.5.3 && == 3.4.1 ) || ( < 6.8.1 && == 6.2.5 && > 5.3.1 ) || ( >= 5.2.3 && >= 1.3.4 && < 7.7.7 ) || ( < 8.5.6 && == 2.3.2 && == 2.5.6 && >= 6.1.3 && < 4.6.5 && >= 8.1.4 && == 8.4.4 && >= 5.4.2 && >= 1.7.3 ) || ( == 7.3.4 && > 3.4.7 && <= 3.2.8 && > 3.8.1 && == 7.6.4 && <= 3.7.3 && >= 7.3.3 && > 5.6.3 && <= 2.2.6 ) || ( == 4.6.5 && < 7.2.4 ) || ( <= 4.3.3 && == 4.7.3 && > 3.2.7 && == 8.7.3 )": {+ "distroPKGs": [],+ "notes": "rkzni"+ }+ },+ "Linux_AmazonLinux": {+ "( >= 2.5.5 && >= 4.5.4 && <= 6.7.4 && <= 3.7.9 && > 5.4.1 ) || ( > 6.5.8 && <= 3.8.4 && <= 1.1.1 && == 2.6.7 && == 6.8.1 )": {+ "distroPKGs": [+ "d",+ "wbld",+ "",+ "ebq",+ "wmxvv",+ "llrikqmc",+ "odtlc",+ ""+ ],+ "notes": "bmuumgg"+ }+ }+ }+ },+ "GHC": {+ "1.4.6": {+ "FreeBSD": {+ "( <= 6.8.6 && > 7.5.4 && >= 6.3.7 && > 5.5.6 && >= 1.8.8 && > 1.3.2 && <= 3.5.2 && >= 6.6.6 ) || ( == 2.1.1 && < 6.7.6 && >= 6.6.8 && >= 1.1.6 && > 1.4.6 && > 5.5.4 && > 2.5.8 && > 4.8.7 )": {+ "distroPKGs": [+ "vcv",+ "lfeqch"+ ],+ "notes": "ywa"+ },+ "( == 6.6.7 && <= 4.2.7 && == 3.3.5 ) || ( <= 8.4.5 && >= 2.3.6 )": {+ "distroPKGs": [+ "ywavrg",+ "kegl",+ "gv",+ "uc"+ ],+ "notes": "iub"+ }+ },+ "Linux_CentOS": {+ "( < 2.4.1 ) || ( == 7.1.6 && <= 4.4.7 && >= 4.3.5 && >= 2.8.7 && == 6.7.5 && >= 5.1.5 && == 6.7.6 && >= 3.7.7 )": {+ "distroPKGs": [],+ "notes": "adqanxk"+ },+ "( < 3.1.8 && <= 2.4.5 )": {+ "distroPKGs": [+ "snqplalp",+ "cghjans"+ ],+ "notes": "gtfaix"+ },+ "( <= 2.3.6 && <= 7.6.1 && < 1.6.4 && < 6.2.5 && < 8.2.2 && >= 4.3.5 && >= 1.4.2 )": {+ "distroPKGs": [],+ "notes": "vxwlgz"+ },+ "( == 7.5.6 && == 4.1.7 && == 2.7.1 && < 4.2.3 && > 5.5.1 )": {+ "distroPKGs": [+ "bvfi",+ "usgclvng",+ "ptdx",+ "clhhxcwf",+ "foz",+ "vfig",+ "z"+ ],+ "notes": "o"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "bspn",+ "qnmyed"+ ],+ "notes": "lu"+ }+ },+ "Linux_Fedora": {+ "( < 4.5.4 && > 1.2.1 && <= 7.2.5 && <= 2.5.5 ) || ( < 2.5.7 && == 4.6.1 && > 1.1.1 && < 3.6.8 ) || ( < 2.6.1 && <= 7.6.2 && < 6.1.3 && <= 3.8.6 && >= 8.6.6 && >= 4.3.2 && == 1.7.8 ) || ( == 6.3.2 && >= 5.1.4 && > 4.2.2 && < 6.1.1 && >= 1.2.5 && == 3.7.4 && == 1.5.6 )": {+ "distroPKGs": [+ "oz",+ "zlmbcew",+ "flcwbul",+ "ropxh",+ "xp",+ "afddqb"+ ],+ "notes": ""+ },+ "( <= 6.7.4 && > 2.1.5 && > 3.2.3 && == 8.2.3 && > 8.2.6 && == 4.6.1 && < 6.6.3 ) || ( <= 1.8.3 && < 8.4.6 && > 6.3.2 && > 6.5.8 )": {+ "distroPKGs": [+ "vwgdyz",+ "lqhco"+ ],+ "notes": "li"+ },+ "( > 8.3.7 && <= 3.2.8 && < 2.1.7 && > 1.7.2 && > 8.5.2 && == 8.1.1 && < 2.5.7 )": {+ "distroPKGs": [+ "lyb",+ "sibwyq",+ "isusbbg",+ "rks"+ ],+ "notes": ""+ },+ "( >= 8.6.3 && >= 4.8.7 && > 1.5.8 && >= 7.8.3 && == 5.3.7 && < 1.4.2 && > 8.3.8 && >= 1.1.2 )": {+ "distroPKGs": [+ "aqgdwc"+ ],+ "notes": "fcram"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "bavvhx",+ "pgf",+ "fpdc",+ "cbfquh",+ "jmpjf",+ "gl"+ ],+ "notes": "sqnw"+ }+ },+ "Linux_Ubuntu": {+ "( <= 5.3.6 && >= 6.2.6 && > 4.2.7 && < 1.4.1 && > 3.7.7 && >= 5.8.6 && == 3.2.7 && <= 5.2.5 && < 7.5.3 ) || ( >= 5.3.7 && >= 4.2.6 && < 2.5.2 && < 5.1.5 && <= 2.5.8 && > 4.1.7 && >= 7.2.2 )": {+ "distroPKGs": [+ "qdbpk",+ "zuiwnrq",+ "q",+ "q",+ "zvvffds",+ "ukdpt",+ "qxsymsjr"+ ],+ "notes": "axmak"+ },+ "( <= 8.8.2 && >= 1.6.2 && >= 1.8.7 && >= 5.4.6 && < 6.8.7 && < 3.7.2 )": {+ "distroPKGs": [+ "soql",+ "q",+ "ez",+ "gurqfstb"+ ],+ "notes": "wdgawbm"+ }+ },+ "Windows": {+ "( < 1.6.1 )": {+ "distroPKGs": [+ "mhihyfij"+ ],+ "notes": "bsdigyw"+ },+ "( == 8.2.4 && < 2.6.2 && >= 7.6.4 && < 4.6.1 && <= 6.1.6 && > 2.6.8 ) || ( <= 7.2.1 && > 9.7.5 && >= 7.8.6 ) || ( == 1.5.3 && == 7.8.2 && > 5.1.5 && == 4.4.3 && == 2.5.1 && > 4.8.7 ) || ( > 2.3.7 && < 4.1.7 && < 1.3.2 && < 6.6.8 && < 7.7.3 && <= 5.5.6 ) || ( == 2.6.4 && >= 7.1.8 ) || ( == 3.5.8 && >= 7.8.7 && > 8.7.4 && < 6.3.6 && < 5.7.4 )": {+ "distroPKGs": [],+ "notes": "jmijgzuf"+ },+ "( > 7.1.5 && > 2.3.4 && == 4.7.6 && <= 8.1.6 && < 4.1.2 && > 1.2.7 && == 4.5.4 && == 2.8.8 )": {+ "distroPKGs": [+ "o",+ "",+ "zzufoxs",+ "hec",+ "ukqu"+ ],+ "notes": ""+ },+ "( >= 3.1.2 && <= 6.4.8 && <= 1.8.6 && == 7.8.6 && > 2.6.3 && <= 7.3.5 && <= 4.2.5 ) || ( < 5.7.3 && > 6.7.2 && > 5.8.8 ) || ( >= 3.7.8 && < 3.3.2 && <= 1.6.2 && >= 6.2.5 && == 6.4.8 && <= 4.6.1 )": {+ "distroPKGs": [+ "p",+ "ifpp",+ "lgvixe",+ "",+ "o",+ ""+ ],+ "notes": "ykizfmgd"+ },+ "( >= 4.2.4 ) || ( < 4.1.2 )": {+ "distroPKGs": [+ "",+ "hcmixu",+ "hgzd"+ ],+ "notes": "kf"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "t",+ "x",+ "bpbppl"+ ],+ "notes": ""+ }+ }+ },+ "5.4.3": {+ "Darwin": {+ "( <= 2.5.7 && < 6.7.3 && < 1.4.2 && <= 1.6.2 && < 8.7.5 && > 6.2.5 && > 4.6.6 )": {+ "distroPKGs": [+ "olfx",+ "cy",+ "n"+ ],+ "notes": "pprpuvng"+ },+ "( <= 4.2.6 && == 2.7.1 && == 1.3.3 && < 7.4.1 && > 7.5.7 && >= 1.5.2 && >= 2.8.1 && == 5.4.4 )": {+ "distroPKGs": [+ "hnlvcrb"+ ],+ "notes": ""+ },+ "( <= 8.5.8 && < 7.2.7 && >= 3.3.3 && == 7.4.1 && == 2.3.7 && >= 2.6.5 && > 1.3.5 && >= 8.1.8 && > 1.3.6 ) || ( >= 8.4.4 && >= 7.8.2 && <= 5.8.3 && > 5.4.3 ) || ( >= 3.6.6 && > 1.3.8 && >= 2.5.1 && > 5.7.1 ) || ( > 6.2.2 )": {+ "distroPKGs": [+ "xwdfcbak",+ "iu"+ ],+ "notes": "cbhqwomo"+ },+ "( > 3.1.5 && > 5.6.6 && <= 3.6.2 && >= 7.4.2 && < 1.6.8 && <= 2.1.1 && < 1.4.4 && == 4.5.6 && <= 7.6.5 ) || ( >= 3.1.8 && < 4.7.7 && > 4.7.2 && <= 5.7.3 && == 4.3.6 && < 1.8.2 && <= 4.6.7 && > 7.7.2 && >= 5.7.3 )": {+ "distroPKGs": [],+ "notes": "m"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "kdnfkitl",+ "tesdb",+ "dw",+ "ndqql",+ ""+ ],+ "notes": "flhlvny"+ }+ },+ "FreeBSD": {+ "( <= 6.6.1 && <= 8.4.2 && > 7.3.5 && < 6.5.3 && > 2.3.1 )": {+ "distroPKGs": [],+ "notes": "ydwim"+ },+ "( > 3.5.2 && <= 7.3.1 && > 7.2.3 && >= 8.1.5 && > 5.3.5 && == 3.5.9 ) || ( < 8.2.2 ) || ( > 7.6.8 && <= 3.7.5 && > 7.4.1 && >= 3.3.6 && <= 6.4.8 && < 1.8.6 && > 3.9.8 && >= 7.7.8 )": {+ "distroPKGs": [+ "o",+ "yf"+ ],+ "notes": "b"+ },+ "( > 5.6.3 && >= 3.2.8 && == 7.3.1 && == 4.7.8 && == 4.4.3 && >= 5.3.7 )": {+ "distroPKGs": [+ "cuonjv",+ "fysd",+ "mlyvogq",+ "gvxwuhr",+ "kou",+ "m",+ "izaqpsfa",+ "ktuonx"+ ],+ "notes": "h"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "uxn",+ "ammmqus",+ "heb",+ "aa",+ "mbmn",+ "qgzasjz",+ "tnkh"+ ],+ "notes": "xejapol"+ }+ },+ "Windows": {+ "( < 1.4.4 && < 1.7.6 && < 8.2.7 ) || ( == 4.8.1 && > 7.1.4 && > 6.7.1 && < 3.4.4 && >= 6.7.6 && > 7.4.4 ) || ( == 1.8.4 && <= 8.3.8 && < 2.3.6 && < 3.7.3 && <= 7.3.1 && > 3.4.7 && >= 5.4.4 )": {+ "distroPKGs": [+ "jjatomm",+ "rzgualk",+ "pvqf",+ "flpy",+ "ilt",+ "ss",+ "jc",+ "dsrvh"+ ],+ "notes": ""+ },+ "( < 7.7.7 && == 6.5.4 && > 7.7.5 && >= 2.2.5 && < 7.7.7 && == 1.8.4 && < 8.8.1 && >= 6.4.6 ) || ( < 5.5.1 && <= 5.3.8 && >= 8.7.2 && >= 4.6.3 && > 5.1.2 && == 7.1.8 )": {+ "distroPKGs": [+ "digusbja",+ "nhejw",+ "cpiei",+ "pxhnzzf",+ "lw",+ "j",+ "wxe",+ "wxadgza"+ ],+ "notes": "iicoggp"+ },+ "( <= 7.1.5 && >= 8.2.3 && <= 8.7.7 && >= 5.3.1 && > 1.5.3 && == 2.5.6 && > 4.1.4 && == 4.6.4 && <= 6.3.6 ) || ( > 6.7.3 && <= 8.6.6 && == 1.4.6 ) || ( <= 8.8.6 && > 1.8.6 && == 8.6.4 && > 7.4.6 && > 5.2.5 && >= 2.1.2 )": {+ "distroPKGs": [+ "zf",+ ""+ ],+ "notes": "rh"+ },+ "( <= 8.3.1 && <= 5.1.3 && < 3.3.3 && == 6.1.1 && == 8.7.2 && == 7.3.5 && >= 5.7.2 && == 2.7.6 && > 8.1.1 )": {+ "distroPKGs": [],+ "notes": "njgkph"+ },+ "( > 1.5.9 && == 8.5.1 && < 5.8.8 && > 1.1.4 && > 6.5.4 )": {+ "distroPKGs": [],+ "notes": "vvqonk"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "tubxdr",+ "",+ "",+ "lbee",+ "fvttbd",+ "pucevfp"+ ],+ "notes": "wyyegbi"+ }+ }+ },+ "9.7.3": {+ "Darwin": {},+ "FreeBSD": {+ "( < 6.5.7 && <= 2.7.5 )": {+ "distroPKGs": [+ "bzdrd",+ "nvvjxcrl",+ "hx",+ "avfevog",+ "wvdk"+ ],+ "notes": "xyew"+ },+ "( <= 1.3.5 && <= 6.4.3 && < 6.1.1 && < 6.4.1 && < 7.2.4 ) || ( > 2.5.4 && >= 7.2.1 && == 6.6.7 )": {+ "distroPKGs": [+ "oq",+ "e",+ "mcekd",+ "uwlkps",+ "mdrpcuvz",+ "xna"+ ],+ "notes": "opsyv"+ },+ "( <= 2.3.5 && == 5.1.3 && == 7.3.3 && == 3.3.5 && >= 7.5.6 && >= 1.4.4 && <= 2.5.4 && > 5.2.2 )": {+ "distroPKGs": [+ "",+ "vc",+ "ge"+ ],+ "notes": "izaozo"+ },+ "( == 3.7.7 ) || ( == 3.7.8 && == 8.2.6 )": {+ "distroPKGs": [+ "arujm",+ "juyjro",+ "xknf",+ "bxea",+ "p"+ ],+ "notes": "oakt"+ },+ "( == 4.9.3 && > 3.4.8 && > 1.5.2 && > 3.3.8 && < 8.7.1 && > 1.2.2 && < 3.6.2 && <= 7.3.6 && <= 3.4.6 ) || ( < 3.2.2 && <= 1.2.1 && < 6.1.7 && <= 4.1.8 && >= 2.4.2 ) || ( < 8.2.2 && == 8.3.1 && <= 7.6.4 && >= 6.2.7 && > 3.5.8 && > 5.2.2 && == 8.7.8 ) || ( > 8.1.2 && < 8.5.5 && == 7.6.5 && >= 5.8.8 && == 4.8.7 && > 7.6.1 && <= 2.2.7 ) || ( >= 3.5.8 && >= 2.6.3 && >= 3.5.4 && > 4.4.1 )": {+ "distroPKGs": [+ "wzscgmk",+ "zjso",+ "idzohph",+ "d",+ "wzbuth",+ "rqks"+ ],+ "notes": "mmr"+ },+ "( > 8.4.5 && > 3.7.5 && <= 4.4.4 && > 2.5.2 && > 5.4.3 ) || ( < 6.8.4 && <= 3.5.5 ) || ( > 1.4.5 && <= 7.6.2 && <= 5.7.4 && > 2.7.8 )": {+ "distroPKGs": [+ "iblr",+ "nfra"+ ],+ "notes": "h"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "qgqlsf",+ "jqgukzul",+ "deguw",+ "t"+ ],+ "notes": "zo"+ }+ }+ },+ "unknown_version": {+ "FreeBSD": {+ "( <= 3.6.1 && >= 8.8.3 && > 2.4.3 && < 3.4.2 && < 8.1.2 && == 4.1.4 ) || ( < 1.6.3 && <= 7.7.6 && > 6.8.3 && <= 8.6.6 )": {+ "distroPKGs": [+ "k"+ ],+ "notes": "kda"+ },+ "( == 1.7.5 && == 3.6.7 && >= 7.4.2 && > 7.4.2 ) || ( <= 6.7.4 && > 1.9.8 && <= 1.7.2 && <= 5.2.6 && < 3.3.7 )": {+ "distroPKGs": [+ "txf"+ ],+ "notes": "kqu"+ }+ },+ "Linux_Debian": {+ "( < 4.2.4 )": {+ "distroPKGs": [],+ "notes": "cp"+ },+ "( <= 7.2.8 && < 7.2.2 && == 3.7.2 && >= 3.3.4 && > 3.1.7 && > 2.2.3 && == 4.1.1 )": {+ "distroPKGs": [],+ "notes": "sh"+ },+ "( == 1.4.4 )": {+ "distroPKGs": [+ "vrlpcpzj",+ "ds",+ "bqnsa",+ "trletko",+ "hjxzkgs"+ ],+ "notes": ""+ }+ },+ "Linux_Gentoo": {+ "( < 4.3.7 && < 8.1.4 && >= 5.1.2 && == 3.6.6 && == 6.1.6 && > 3.3.2 && >= 8.2.8 ) || ( <= 5.7.1 && > 1.8.4 && <= 7.1.6 ) || ( == 6.1.4 && >= 3.6.8 && >= 5.4.1 && >= 5.6.2 && >= 7.2.7 && <= 6.7.3 && >= 5.4.8 && < 7.6.1 && >= 5.4.1 ) || ( > 3.4.1 && < 2.7.4 && < 8.1.4 ) || ( < 5.5.1 && >= 1.1.8 )": {+ "distroPKGs": [+ "iqn",+ "eyfcaon",+ "oqg"+ ],+ "notes": "ztt"+ },+ "( < 5.2.5 && == 8.5.8 && > 9.6.4 && <= 4.1.2 && >= 3.1.8 ) || ( == 8.3.3 && == 2.5.4 && > 8.4.7 && > 8.4.2 && < 6.5.8 ) || ( < 5.5.8 && <= 2.8.7 && == 8.5.4 && > 3.4.2 ) || ( > 8.7.1 && >= 4.4.8 && <= 7.3.6 && <= 9.8.2 ) || ( < 8.7.8 && >= 3.6.5 && >= 6.5.6 && >= 2.8.3 && == 3.1.7 && < 5.7.5 && < 2.1.4 && == 7.5.4 ) || ( <= 7.4.2 && == 6.3.6 && == 6.3.5 && > 5.1.6 && == 7.1.4 && > 4.3.1 && >= 5.3.2 ) || ( > 8.6.3 && > 2.5.2 && >= 2.3.2 && >= 8.2.5 ) || ( > 4.4.2 && == 3.5.5 && == 7.2.8 && == 7.1.4 && == 9.7.2 && >= 1.8.2 && <= 8.1.1 && >= 8.8.7 && >= 5.4.5 )": {+ "distroPKGs": [+ "kmnggr",+ "kdrpqcj",+ "",+ "ehiv"+ ],+ "notes": "pt"+ },+ "( < 6.1.7 && <= 2.7.8 && <= 7.1.4 ) || ( <= 4.6.2 ) || ( > 7.5.2 && > 1.5.6 && > 4.5.1 && == 3.7.7 && <= 4.7.5 && >= 3.7.2 ) || ( < 6.4.6 && >= 8.9.3 && == 2.3.3 ) || ( <= 6.8.6 && <= 4.5.3 ) || ( == 3.3.4 && >= 8.8.2 )": {+ "distroPKGs": [+ "ojqgb",+ "yjrrm",+ "rcy",+ "i",+ "ugic"+ ],+ "notes": "byxa"+ },+ "( <= 8.3.7 && == 6.4.2 && == 8.3.7 && >= 6.6.3 && == 7.5.8 )": {+ "distroPKGs": [+ "z",+ "hpa",+ "lwmtlyvk",+ "zivmzja",+ "",+ "",+ "goa",+ "dk"+ ],+ "notes": ""+ },+ "( == 6.4.6 && <= 1.8.8 && > 1.4.5 && <= 7.7.8 && < 3.6.2 && > 4.8.4 ) || ( > 2.7.2 && == 3.1.4 && <= 6.6.8 && == 6.7.1 && == 4.8.2 && < 7.2.4 )": {+ "distroPKGs": [+ "zoszfbk",+ "sgt",+ "haebu",+ "s",+ "z"+ ],+ "notes": ""+ },+ "( > 4.6.4 && > 4.3.8 && == 1.4.4 && == 6.5.3 && > 2.7.2 && > 2.6.3 && >= 2.7.4 && == 3.1.4 && >= 7.3.7 )": {+ "distroPKGs": [],+ "notes": "stixw"+ },+ "( >= 1.8.8 && < 1.1.3 )": {+ "distroPKGs": [+ "njjl",+ "m",+ "j",+ "lztmkbs",+ "q",+ "rkpwta",+ "",+ "pxkfqvnw"+ ],+ "notes": "tlhzca"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "pjlkpj",+ "nqvzwn",+ "dxo",+ "isjmppu",+ "",+ "esu"+ ],+ "notes": "frfqbl"+ }+ },+ "Windows": {+ "( > 1.6.7 && < 2.8.4 && <= 3.5.8 && >= 5.2.7 && >= 5.1.3 && < 5.1.1 && > 7.2.4 && >= 5.7.1 )": {+ "distroPKGs": [+ "qdknuro",+ "qpkus",+ "nqh",+ "qfdb",+ "ncjxx"+ ],+ "notes": "csks"+ }+ }+ }+ },+ "GHCup": {+ "1.2.7": {+ "Darwin": {},+ "FreeBSD": {+ "unknown_versioning": {+ "distroPKGs": [+ "kecbaog",+ "susj",+ "fxm",+ "c",+ "y"+ ],+ "notes": "fxmf"+ }+ },+ "Linux_Alpine": {+ "( < 1.4.8 && <= 3.5.4 && <= 3.2.2 && >= 4.2.1 && > 2.7.4 && >= 3.2.6 && == 1.1.5 && <= 4.6.6 && > 6.3.5 )": {+ "distroPKGs": [+ "ytakp",+ "ncy",+ "xxkuin",+ "pyj"+ ],+ "notes": "uwuhwfsm"+ },+ "( == 1.3.2 && < 4.7.9 && <= 4.2.3 && == 6.5.6 ) || ( <= 8.4.1 )": {+ "distroPKGs": [+ "a",+ "fo",+ "rftw",+ "rwspthj",+ "wk",+ "oaie",+ "kaadphoe",+ "sag"+ ],+ "notes": "cx"+ },+ "( == 5.1.3 && >= 3.8.6 ) || ( >= 4.8.6 && >= 3.1.2 && >= 7.4.4 && <= 6.1.5 && >= 5.5.4 ) || ( < 5.5.4 && <= 7.3.7 && <= 7.3.7 && < 3.9.6 )": {+ "distroPKGs": [+ "eyqlf",+ "enm"+ ],+ "notes": ""+ },+ "( == 7.8.3 ) || ( >= 4.6.5 && < 7.4.3 && == 7.4.8 && >= 4.3.8 && >= 8.8.6 )": {+ "distroPKGs": [+ "blpth",+ "nof",+ "i"+ ],+ "notes": "sr"+ },+ "( > 8.3.5 && == 6.7.5 )": {+ "distroPKGs": [+ "jjxax",+ "sffucocq",+ "cdkydy",+ "n",+ "zn",+ "ninisyzm",+ "gwe",+ "smwrvtl"+ ],+ "notes": "dydji"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "uryda",+ "ze"+ ],+ "notes": "tubm"+ }+ },+ "Linux_Mint": {+ "( > 1.6.6 && >= 7.4.2 && >= 8.5.8 && <= 1.1.4 ) || ( == 7.1.6 && > 6.4.8 && >= 3.3.1 && == 8.4.7 && < 3.1.5 && >= 7.8.6 ) || ( > 2.7.6 && < 7.7.5 && == 7.8.5 && == 4.6.8 && > 8.7.6 && >= 2.3.7 && < 1.5.6 ) || ( >= 4.6.5 && > 4.6.5 && < 1.1.6 && >= 3.7.7 && >= 5.1.7 && > 6.5.1 && == 2.3.3 && > 7.3.2 && >= 7.2.8 ) || ( >= 7.7.3 && > 5.7.7 && <= 6.8.2 && >= 4.7.3 && < 2.7.3 && >= 4.3.6 && == 7.6.3 ) || ( == 6.7.4 && >= 6.7.4 && < 3.7.6 && >= 5.1.6 )": {+ "distroPKGs": [+ "cgures",+ "fhy"+ ],+ "notes": "pfifofyy"+ },+ "( > 8.6.3 && > 6.2.2 && == 4.2.5 && == 4.1.3 && <= 6.6.3 && < 7.2.6 && < 3.1.1 && == 6.8.3 ) || ( <= 2.7.5 && == 7.1.5 )": {+ "distroPKGs": [+ "b",+ "nkkkaxkq",+ "sm"+ ],+ "notes": ""+ },+ "( >= 1.7.4 && <= 2.2.6 && >= 3.2.6 && < 6.3.9 )": {+ "distroPKGs": [+ "jm"+ ],+ "notes": ""+ },+ "( >= 3.4.3 && < 4.7.3 && >= 2.6.8 && < 8.3.2 && == 3.7.7 && <= 4.1.1 && < 2.3.7 )": {+ "distroPKGs": [+ "s",+ "jaiatee",+ "xhmyk"+ ],+ "notes": "azokb"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "nt",+ "twayybzm",+ "tl",+ "vixjfdx",+ "despxw",+ "idv",+ "cb"+ ],+ "notes": "wiuld"+ }+ }+ },+ "8.1.5": {+ "Darwin": {+ "unknown_versioning": {+ "distroPKGs": [+ "x",+ "rki",+ "mrotqsas",+ "hcvdxy",+ "",+ "yw"+ ],+ "notes": "ujgwewdi"+ }+ },+ "Linux_Mint": {+ "( <= 6.3.2 && < 7.2.4 && > 8.3.2 && <= 6.4.3 ) || ( == 4.1.2 && > 2.4.6 && < 7.2.2 && <= 5.6.8 && >= 7.3.1 && > 4.5.4 && < 1.5.4 && == 4.5.6 ) || ( == 1.8.4 && >= 3.5.4 && == 4.8.3 && < 4.4.1 && > 6.6.6 && > 2.2.2 && >= 4.4.2 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "vuurwcb"+ },+ "( <= 7.5.4 && > 8.4.4 && == 7.7.6 && == 2.4.7 && >= 1.1.8 && <= 7.1.4 )": {+ "distroPKGs": [+ "hsj",+ "dfnz",+ "kpn",+ "ztunb",+ "ea"+ ],+ "notes": "m"+ },+ "( == 2.8.5 && == 1.1.3 ) || ( >= 6.1.8 && <= 1.6.1 && > 6.1.2 )": {+ "distroPKGs": [+ "phze",+ "crlvalr",+ "xjxnbm"+ ],+ "notes": "dmlsxd"+ },+ "( > 5.2.3 )": {+ "distroPKGs": [+ "vttg",+ "ds",+ "p",+ "fgrvjtn",+ "bia",+ "kmtq",+ "g",+ "rcfognf"+ ],+ "notes": "xtpjiin"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "zyovd",+ "jgxvvppd",+ "z",+ "imdak"+ ],+ "notes": "qntc"+ }+ },+ "Linux_Ubuntu": {+ "( < 6.7.1 && > 3.5.7 ) || ( < 3.3.4 ) || ( > 1.4.5 && == 7.4.1 && <= 4.7.2 )": {+ "distroPKGs": [+ "aqnod"+ ],+ "notes": "pgol"+ },+ "( < 7.8.6 && > 7.3.1 && > 3.6.3 && <= 8.2.4 ) || ( > 7.7.8 && > 2.3.2 && == 4.5.2 && < 6.6.3 )": {+ "distroPKGs": [+ "nu",+ "ucn",+ "oxyw",+ "y",+ "",+ "jvgezdwm",+ "dheo",+ "vezf"+ ],+ "notes": "uiht"+ },+ "( > 4.7.6 && >= 8.4.6 && == 2.3.5 && >= 8.2.1 ) || ( <= 6.6.4 && < 6.9.1 && > 3.6.3 && >= 1.3.1 && >= 8.7.4 ) || ( < 8.7.5 && <= 5.5.5 && >= 7.8.8 ) || ( < 6.4.8 && >= 2.4.1 && >= 3.1.8 && < 6.1.5 && < 4.1.8 && <= 6.4.3 && >= 2.4.4 && >= 5.5.8 && <= 1.4.7 ) || ( <= 7.7.3 && == 4.7.2 && == 2.2.1 && > 1.4.7 && >= 9.7.5 )": {+ "distroPKGs": [],+ "notes": "xmgngsn"+ },+ "( >= 3.2.8 && <= 7.6.1 && >= 1.6.8 && == 7.8.6 && >= 3.2.4 && >= 7.3.7 && == 2.4.6 )": {+ "distroPKGs": [+ "isczvss",+ "qvibrcn",+ "suz",+ "qq",+ "o",+ "uu",+ "vjvmgm"+ ],+ "notes": "tjtjeef"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "kylyagfh"+ }+ },+ "Windows": {+ "( < 4.1.7 && < 6.1.4 && < 8.8.2 && == 4.6.6 )": {+ "distroPKGs": [+ "yyg",+ "kr"+ ],+ "notes": "oegkwp"+ },+ "( <= 2.7.6 && > 2.6.7 && <= 8.1.6 ) || ( <= 3.4.6 && < 5.7.4 && < 7.7.8 && == 2.1.6 && > 3.5.4 && == 8.5.7 && >= 4.6.2 )": {+ "distroPKGs": [+ "fpkcjwt",+ "ywfy"+ ],+ "notes": "w"+ },+ "( == 2.3.5 && > 1.5.7 && < 7.4.7 && < 7.7.7 && < 5.5.1 && < 4.8.7 && < 6.1.1 && >= 6.5.3 && > 3.8.7 )": {+ "distroPKGs": [+ "zhpv",+ "zxdhxj",+ "g",+ "jblaxss",+ "urgqgss",+ "wkatoan",+ "w"+ ],+ "notes": "bxehwy"+ },+ "( > 3.6.7 && == 5.4.2 && == 2.7.8 && > 1.3.2 && <= 8.7.6 ) || ( > 3.4.4 && > 3.6.4 ) || ( == 3.4.4 && == 7.2.1 && == 7.4.4 && == 7.2.1 && < 1.7.3 && >= 2.8.7 && <= 4.4.2 ) || ( < 6.7.1 && <= 3.6.8 && < 2.6.6 && < 6.5.8 )": {+ "distroPKGs": [],+ "notes": "wetedmz"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "wvygln"+ }+ }+ }+ },+ "Stack": {+ "4.1.3": {+ "Darwin": {+ "unknown_versioning": {+ "distroPKGs": [+ "i"+ ],+ "notes": "tn"+ }+ },+ "FreeBSD": {+ "( == 3.1.3 && < 4.4.7 && >= 3.9.1 && < 5.2.8 && <= 2.5.6 )": {+ "distroPKGs": [+ "d",+ "o",+ "",+ "pvshcd",+ "",+ "xuuwj"+ ],+ "notes": "wdghr"+ },+ "( == 4.1.4 && <= 3.2.1 && <= 7.8.8 && <= 2.6.4 && < 7.7.1 && > 8.4.2 )": {+ "distroPKGs": [+ "",+ "bjjr",+ "gkga"+ ],+ "notes": "twujmxgf"+ },+ "( >= 4.7.4 && <= 6.7.4 && > 3.2.7 && > 8.4.3 && >= 6.2.1 && < 3.2.8 && >= 5.8.4 && <= 8.1.1 && >= 5.4.1 )": {+ "distroPKGs": [+ "xkionrcq",+ "tvieeiiq",+ "lujcnwl",+ "yviw",+ "mse"+ ],+ "notes": "xbzj"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "arf"+ ],+ "notes": ""+ }+ },+ "Linux_Exherbo": {+ "( < 2.1.6 && <= 1.6.7 && > 8.6.4 && == 5.5.2 && < 1.4.5 ) || ( == 6.3.3 && <= 7.3.7 && >= 2.3.6 ) || ( >= 2.7.1 && > 5.5.5 && == 6.4.6 && >= 1.5.1 && < 3.4.1 && == 7.4.4 )": {+ "distroPKGs": [],+ "notes": "fpvlsch"+ },+ "( > 3.4.4 ) || ( == 2.4.6 && == 4.8.4 && > 8.5.2 && > 2.2.5 && >= 1.5.1 && > 5.5.3 && > 1.4.1 )": {+ "distroPKGs": [+ "zwaxt",+ "otagh",+ "exfhnkos",+ ""+ ],+ "notes": "xh"+ },+ "( >= 2.8.3 )": {+ "distroPKGs": [+ "n",+ "piqfdq",+ "",+ "emebnmwl",+ "",+ "xjctrkz",+ ""+ ],+ "notes": "ufuyeyj"+ },+ "( >= 4.5.6 && >= 2.2.4 && <= 7.2.8 && <= 6.5.6 && == 2.1.1 && > 5.8.8 && > 1.5.1 )": {+ "distroPKGs": [+ "jrodfj",+ "nckfazb",+ "hkfalg"+ ],+ "notes": "kngda"+ },+ "unknown_versioning": {+ "distroPKGs": [+ ""+ ],+ "notes": "onfpcywk"+ }+ }+ },+ "4.4.7": {+ "Darwin": {+ "( < 6.2.8 ) || ( <= 4.7.5 && >= 5.8.4 && <= 6.8.2 && < 5.3.5 && == 2.1.3 ) || ( <= 8.7.1 && > 7.7.5 && >= 6.4.9 && >= 8.1.2 && < 8.3.3 && < 5.6.6 && <= 7.8.1 && >= 6.4.8 && >= 2.4.8 ) || ( == 8.6.6 && > 2.5.2 && > 1.3.8 && > 3.1.3 && <= 4.7.5 && == 4.5.4 && == 5.3.2 && < 6.3.2 && == 7.2.3 ) || ( == 4.1.1 && <= 5.6.8 && == 1.6.6 )": {+ "distroPKGs": [+ "",+ "rlrydc",+ "tyj",+ "wwqbpnwp",+ "x",+ "gyiexzd"+ ],+ "notes": "qmtsria"+ }+ },+ "Linux_UnknownLinux": {+ "( < 8.7.1 ) || ( <= 6.1.5 && > 2.5.2 && > 2.5.6 && < 2.2.4 ) || ( >= 5.4.3 && >= 3.6.5 && <= 3.7.7 && < 4.3.7 && == 4.8.5 )": {+ "distroPKGs": [+ "tg",+ "y",+ "",+ "xrdpqwd",+ "mzvdn",+ "xrhkq",+ "qztpfk",+ "vxfp"+ ],+ "notes": "bctkaav"+ },+ "( == 8.2.3 && > 5.5.7 && < 8.2.2 && < 4.7.2 && <= 5.3.4 && > 1.4.2 && >= 8.1.5 && == 7.4.4 && < 3.3.2 )": {+ "distroPKGs": [+ "zzn",+ "ocfckgin"+ ],+ "notes": "peq"+ },+ "( >= 7.5.5 && < 2.8.7 && > 8.2.8 && < 8.3.8 && <= 2.1.6 && > 5.1.4 && > 8.6.1 && <= 8.3.3 ) || ( > 5.4.4 && >= 8.1.2 && < 8.7.8 && >= 6.5.5 )": {+ "distroPKGs": [+ "nvfnmucs",+ "jfxvsmns",+ "helshlvv",+ ""+ ],+ "notes": "kouqws"+ }+ },+ "Windows": {+ "( == 2.5.7 && >= 6.6.5 && >= 4.4.5 && >= 4.3.2 && <= 2.5.8 && < 3.5.2 && <= 4.6.5 && == 2.3.6 && <= 6.3.5 )": {+ "distroPKGs": [+ "",+ "qtapbjjj",+ "l",+ "i"+ ],+ "notes": "nxh"+ },+ "( == 4.4.6 && >= 6.7.8 && > 8.4.7 )": {+ "distroPKGs": [+ "m",+ "jojebol"+ ],+ "notes": "c"+ },+ "( == 6.7.7 && == 3.7.1 && <= 4.4.6 && <= 1.1.4 && >= 1.8.5 && == 7.2.7 && > 4.7.4 )": {+ "distroPKGs": [+ "j",+ "cdyr",+ "htsua",+ "b"+ ],+ "notes": "mcmwgqy"+ },+ "( >= 3.1.6 && > 1.6.1 )": {+ "distroPKGs": [+ "a",+ "tigigwq",+ "ueq",+ "dqjt"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "nlksczx",+ "psutibqs",+ "hzp",+ "fd",+ "ej",+ ""+ ],+ "notes": "lp"+ }+ }+ },+ "5.2.7": {+ "Darwin": {+ "( < 3.8.4 && > 2.2.7 && < 8.6.1 && == 6.7.2 )": {+ "distroPKGs": [+ "hflt",+ "iilqss",+ "wfnogu"+ ],+ "notes": ""+ },+ "( > 3.1.6 && >= 1.3.2 && <= 2.3.3 && >= 2.2.10 && >= 8.6.7 && > 8.5.2 && > 4.2.6 )": {+ "distroPKGs": [+ "hefcvjf",+ ""+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "opw",+ "vqeodie",+ "jgqi",+ "kyh",+ "l",+ "hupurco",+ "dsuybs"+ ],+ "notes": "y"+ }+ },+ "FreeBSD": {+ "( < 2.4.6 && < 5.6.3 && >= 3.1.4 && <= 1.8.5 && <= 7.7.6 ) || ( <= 4.6.3 )": {+ "distroPKGs": [],+ "notes": "gqlbck"+ },+ "( < 8.5.4 && == 2.2.2 && < 8.5.8 && <= 3.3.1 && > 2.8.4 && == 8.2.3 && >= 7.1.7 ) || ( <= 3.7.8 && >= 3.1.1 && == 8.6.1 && < 1.7.5 && < 7.2.4 && < 6.1.4 && >= 5.6.5 )": {+ "distroPKGs": [+ "gket",+ "vizrq",+ ""+ ],+ "notes": "dxylke"+ },+ "( == 5.2.1 && > 6.9.1 && > 5.8.2 && >= 1.6.6 && >= 6.5.6 && >= 2.5.3 && > 1.1.1 ) || ( > 1.7.1 && == 2.4.2 ) || ( >= 3.3.6 && < 1.4.6 && <= 4.5.4 && < 8.8.8 && >= 8.4.1 && == 1.8.1 && <= 3.2.1 && <= 1.4.8 ) || ( <= 4.2.4 && <= 3.3.5 && >= 5.8.7 && == 4.4.4 && >= 4.2.4 && == 5.8.3 && >= 6.8.7 && > 3.4.5 && == 7.2.7 )": {+ "distroPKGs": [+ "y"+ ],+ "notes": "cskfoyn"+ },+ "( >= 4.8.3 && < 7.8.8 && <= 5.3.2 && == 1.2.3 ) || ( < 6.6.3 ) || ( < 2.1.4 && >= 8.6.2 && > 7.8.3 ) || ( == 6.1.2 && < 3.5.1 && < 2.8.4 && == 5.1.5 && <= 8.8.1 && < 2.6.1 && == 3.2.3 && == 4.5.5 && > 5.8.8 ) || ( < 4.8.5 && <= 8.4.4 && < 7.2.6 && == 4.7.7 && > 3.8.5 && <= 8.3.4 && <= 2.2.2 && <= 6.6.8 && < 5.5.2 )": {+ "distroPKGs": [],+ "notes": ""+ }+ },+ "Linux_Fedora": {},+ "Windows": {+ "( == 5.4.2 && <= 7.7.7 && < 3.6.5 && > 1.2.4 && > 8.5.8 && < 6.7.8 && <= 7.4.2 )": {+ "distroPKGs": [+ "rd"+ ],+ "notes": "h"+ },+ "( > 4.5.4 && >= 2.2.4 && == 4.1.7 && < 5.2.5 && > 3.6.3 && == 1.3.7 && > 1.3.2 && > 7.5.8 && > 6.7.5 ) || ( > 7.4.3 && < 1.7.8 ) || ( >= 3.8.8 && > 8.6.1 && == 5.2.5 && <= 5.3.3 && > 2.2.1 && < 4.5.5 && <= 2.4.6 ) || ( < 4.6.7 && == 1.2.2 && >= 5.6.1 && > 4.8.4 && >= 2.9.7 && > 3.4.5 && <= 5.4.8 && == 4.3.3 && > 8.7.8 ) || ( == 2.5.7 ) || ( < 7.2.1 && >= 3.6.3 && > 7.4.2 )": {+ "distroPKGs": [+ "bb",+ "dgj",+ "lcqxrq",+ ""+ ],+ "notes": "egvekf"+ },+ "( >= 3.1.1 && <= 7.8.7 && == 5.8.1 && < 5.8.6 && < 1.6.8 && >= 1.3.2 && >= 6.2.3 )": {+ "distroPKGs": [+ "bv",+ "kwvin"+ ],+ "notes": "xaew"+ }+ }+ },+ "6.2.6": {+ "Darwin": {+ "( < 6.7.2 && <= 2.5.7 && < 2.3.1 && <= 7.8.3 && == 7.2.5 && == 8.4.6 && == 2.4.5 )": {+ "distroPKGs": [+ "d",+ "b",+ "ojdznyx"+ ],+ "notes": "qd"+ },+ "( == 6.2.5 ) || ( == 7.4.2 && < 2.1.1 ) || ( < 4.4.8 && == 1.1.6 && > 1.8.5 && <= 1.8.5 && < 1.3.7 ) || ( >= 4.2.5 && >= 8.3.1 && >= 1.1.7 && < 8.3.3 && <= 5.2.7 && <= 5.6.5 && == 1.3.8 && > 3.1.7 && < 4.4.6 ) || ( >= 1.7.3 )": {+ "distroPKGs": [],+ "notes": "booav"+ },+ "( >= 1.4.8 && == 2.3.5 && <= 8.4.2 && >= 7.3.8 && == 5.5.3 && >= 9.2.3 && < 7.3.8 && < 2.6.4 && > 1.2.5 ) || ( >= 5.8.2 && > 3.1.5 && == 8.2.3 )": {+ "distroPKGs": [+ "bvqalz",+ "",+ "",+ "kxtovz",+ "uxzokev",+ "gevwsn"+ ],+ "notes": "cx"+ }+ },+ "FreeBSD": {+ "( < 6.1.4 ) || ( >= 3.3.5 && >= 8.6.8 && < 4.8.8 && <= 5.3.1 && > 1.1.1 && < 3.2.8 && >= 5.6.8 && <= 1.8.2 && < 8.6.5 )": {+ "distroPKGs": [+ "",+ "zhzq",+ "fnuzph",+ "pjznzdp",+ "y"+ ],+ "notes": ""+ },+ "( <= 6.6.6 && > 6.2.7 && >= 3.6.5 && == 6.5.1 && > 2.8.1 && <= 6.6.8 && < 7.4.4 ) || ( < 6.6.2 && < 7.7.8 ) || ( <= 2.4.7 )": {+ "distroPKGs": [+ "knnmp",+ "m",+ "yrew",+ "aek",+ "qqnqvnc"+ ],+ "notes": "kpzwoh"+ },+ "( == 4.4.3 && >= 4.5.7 && >= 6.3.3 && <= 4.2.3 )": {+ "distroPKGs": [+ "ntqfhy",+ "htsvm",+ "ivrax",+ "nuwnn",+ "spgakhbk"+ ],+ "notes": "xmy"+ },+ "( > 8.5.8 && > 5.2.6 && == 6.8.7 && >= 4.4.1 && == 1.4.6 && == 4.1.7 && == 2.8.8 )": {+ "distroPKGs": [+ "hdnwi",+ "uhtikpx",+ "rbvyu"+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "p",+ "ultuepb",+ "",+ "gvnist",+ "uvamrxh",+ "m"+ ],+ "notes": "y"+ }+ },+ "Linux_Alpine": {+ "( == 5.3.5 && >= 4.6.8 && == 8.6.1 && < 8.8.5 && <= 8.1.8 && < 6.8.8 && <= 4.7.7 ) || ( <= 5.2.3 && > 5.3.5 && > 6.2.6 && < 5.3.5 && > 4.6.8 )": {+ "distroPKGs": [+ "fj"+ ],+ "notes": "ibgctxi"+ },+ "( == 5.6.5 && > 8.6.2 && <= 2.3.6 && < 7.1.5 && <= 5.8.3 )": {+ "distroPKGs": [+ "tfbeujln",+ "ei",+ "tqgmogjs",+ "s",+ "qlxhsxye",+ ""+ ],+ "notes": "jgeykmvz"+ },+ "( > 3.5.1 )": {+ "distroPKGs": [+ "f",+ "bjqj"+ ],+ "notes": ""+ },+ "( >= 6.4.3 && < 2.6.4 && > 6.6.1 && == 6.4.5 && > 7.5.7 && > 8.3.7 && > 8.7.5 )": {+ "distroPKGs": [+ "a",+ "g",+ "ul",+ "iexhmi",+ "xflrgo"+ ],+ "notes": "yf"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "p"+ ],+ "notes": "ege"+ }+ },+ "Linux_Ubuntu": {+ "( < 3.1.3 && <= 6.1.3 && < 1.5.4 && > 2.4.4 && <= 6.1.4 ) || ( > 3.7.5 && == 1.8.4 )": {+ "distroPKGs": [],+ "notes": "hak"+ },+ "( > 1.8.9 && > 5.2.2 && > 8.4.4 && < 6.3.2 && > 3.2.3 ) || ( <= 3.4.8 && > 8.3.2 && > 2.3.6 ) || ( <= 4.8.4 && >= 1.4.8 ) || ( == 8.1.8 && == 6.7.6 && < 8.5.2 && == 2.1.6 ) || ( < 7.4.1 && > 5.4.4 ) || ( > 4.2.4 && == 1.6.4 ) || ( > 4.2.7 && > 7.1.8 && <= 4.5.8 && < 4.4.8 && >= 6.3.5 && == 7.4.7 && < 8.3.5 && <= 2.2.1 ) || ( >= 4.5.5 && > 7.7.1 && == 2.2.4 && >= 8.5.6 && <= 7.2.6 && == 2.7.1 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "fsjlz"+ },+ "( > 4.7.5 && >= 5.4.4 && < 4.4.2 )": {+ "distroPKGs": [+ "gtin",+ "afaoo",+ "rnztdumx",+ "rt"+ ],+ "notes": "vbu"+ },+ "( > 6.3.5 && > 4.5.8 )": {+ "distroPKGs": [+ "kw"+ ],+ "notes": "wond"+ },+ "( >= 5.5.5 && >= 2.8.5 && <= 2.6.5 && < 6.2.8 && == 3.7.4 && <= 8.3.6 && <= 1.1.6 ) || ( <= 1.2.5 && >= 2.2.8 && < 2.3.4 && < 9.6.5 && == 5.3.6 && < 8.3.4 )": {+ "distroPKGs": [],+ "notes": "cbhaong"+ },+ "( >= 6.4.5 )": {+ "distroPKGs": [],+ "notes": "bpl"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "pollumf",+ "u",+ "dseg",+ "dryxca"+ ],+ "notes": "mv"+ }+ },+ "Windows": {+ "( <= 6.3.3 && <= 7.4.4 && <= 9.5.4 && > 2.8.4 && == 6.7.3 && > 8.4.6 && < 2.3.7 && <= 8.4.8 )": {+ "distroPKGs": [+ "avzhff",+ "akeluev",+ "qx",+ "duoyyav",+ "wdbuejdy",+ "xuigrzw",+ "wbolvel"+ ],+ "notes": "ot"+ },+ "( > 1.3.3 && < 7.1.3 ) || ( >= 6.2.1 && <= 1.4.4 && < 5.1.1 && == 5.3.7 && <= 1.5.8 && >= 6.8.3 ) || ( == 3.1.6 && < 6.6.3 )": {+ "distroPKGs": [+ "fwlgww",+ "",+ "z",+ "jh",+ "bogzzw",+ "efdu",+ "yvzrhu"+ ],+ "notes": "tkrh"+ },+ "( > 7.1.3 && < 6.4.3 && >= 5.2.2 && >= 4.6.8 && > 5.5.5 && == 5.5.3 ) || ( == 1.1.5 && > 5.4.1 && >= 7.7.2 && == 5.3.4 && < 6.7.8 )": {+ "distroPKGs": [+ "tyz",+ "ojtppwcd",+ "dvwe",+ "y",+ "wtm",+ "y",+ "ihm",+ "ii"+ ],+ "notes": "gmhh"+ }+ }+ },+ "8.1.6": {+ "Windows": {}+ },+ "8.4.8": {}+ }+ }+ },+ {+ "ghcupDownloads": {+ "GHC": {+ "1.4.8": {+ "viArch": {+ "A_32": {+ "Linux_Gentoo": {+ "( <= 3.8.5 && == 5.8.4 && >= 4.6.6 )": {+ "dlHash": "nyi",+ "dlSubdir": {+ "RegexDir": "\u0007"+ },+ "dlUri": "http:nef"+ },+ "( <= 4.5.6 && >= 1.3.3 && >= 6.7.8 && > 4.4.1 && < 2.4.6 && <= 7.1.8 && < 1.4.6 )": {+ "dlHash": "bep",+ "dlSubdir": {+ "RegexDir": "\u0014a棾\"\\A"+ },+ "dlUri": "https:d"+ },+ "( > 8.1.2 && < 3.7.5 && >= 5.6.3 && > 8.7.3 && < 7.3.5 && <= 6.1.3 && <= 2.2.4 )": {+ "dlHash": "hmj",+ "dlSubdir": null,+ "dlUri": "https:xbf"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {},+ "FreeBSD": {+ "( >= 1.8.7 && > 1.2.4 && == 3.7.6 ) || ( <= 4.2.4 && == 5.3.2 && >= 1.1.2 && == 8.8.1 && > 4.3.6 && <= 6.5.1 ) || ( >= 3.7.6 )": {+ "dlHash": "plzkk",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "u",+ "dlSubdir": {+ "RegexDir": "}\\+?>"+ },+ "dlUri": "http:"+ }+ },+ "Linux_Alpine": {+ "( < 6.2.5 ) || ( > 5.7.4 && >= 3.1.6 && < 6.5.1 && >= 2.8.4 ) || ( >= 3.8.6 && < 8.3.7 && > 2.5.2 && > 6.1.2 && <= 5.8.6 && > 7.6.7 && >= 1.1.5 ) || ( >= 7.6.7 && == 3.6.5 ) || ( > 7.6.4 && == 2.2.7 && > 2.1.3 && > 8.8.6 && >= 5.7.4 )": {+ "dlHash": "g",+ "dlSubdir": {+ "RegexDir": "\u0008#k𢍵"+ },+ "dlUri": "https:bxmyk"+ },+ "( == 3.3.4 && >= 7.3.4 && < 4.4.8 ) || ( > 2.4.7 && > 6.6.5 && > 4.2.3 && < 5.6.8 ) || ( == 4.8.1 && < 2.6.4 && == 5.7.1 && >= 1.8.2 && < 3.8.8 )": {+ "dlHash": "kaax",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:wjuhprsj"+ },+ "( == 5.6.1 && < 1.4.5 && < 4.1.1 && == 3.8.2 && <= 7.5.3 && >= 1.7.2 && < 3.7.3 )": {+ "dlHash": "ybxqjxgl",+ "dlSubdir": null,+ "dlUri": "https:j"+ },+ "( > 3.6.6 && >= 7.5.8 && >= 7.6.8 && == 7.3.1 && == 2.1.5 && >= 5.4.4 && > 8.8.4 ) || ( > 8.4.5 )": {+ "dlHash": "ox",+ "dlSubdir": "ggD\u0007+\r",+ "dlUri": "http:ukcofzug"+ },+ "( >= 8.6.2 && >= 7.3.8 && < 2.8.2 && > 5.4.5 ) || ( <= 3.3.2 && < 3.8.5 && <= 6.4.7 && <= 6.7.3 && < 2.6.2 && >= 6.3.1 ) || ( <= 5.8.3 && > 2.8.4 && >= 6.5.2 && > 7.8.7 && >= 6.7.2 )": {+ "dlHash": "ats",+ "dlSubdir": {+ "RegexDir": "粎U\u0016"+ },+ "dlUri": "https:zevkbgcv"+ },+ "unknown_versioning": {+ "dlHash": "ixk",+ "dlSubdir": "\u0017",+ "dlUri": "http:c"+ }+ },+ "Linux_CentOS": {+ "( <= 4.6.3 && <= 4.1.3 ) || ( >= 6.6.3 ) || ( < 4.5.2 && >= 5.2.4 ) || ( > 1.3.7 && >= 8.8.1 && <= 4.8.3 && < 2.1.5 && == 7.8.1 && < 4.2.3 && == 4.2.3 )": {+ "dlHash": "",+ "dlSubdir": "ZIm-'5\tk",+ "dlUri": "http:zueopma"+ },+ "( == 2.6.2 && > 5.4.6 && == 8.5.2 && <= 7.7.1 && <= 7.4.3 && == 5.7.4 && > 4.2.5 && <= 2.8.6 && < 2.8.7 ) || ( < 8.1.6 )": {+ "dlHash": "",+ "dlSubdir": "𫎛Gc/",+ "dlUri": "https:"+ },+ "( > 8.5.6 && > 1.7.1 && > 6.3.6 && == 1.6.8 && >= 6.1.1 && > 3.4.1 && >= 6.4.8 && >= 2.6.3 && >= 7.3.5 )": {+ "dlHash": "fe",+ "dlSubdir": "",+ "dlUri": "https:wwxvdg"+ },+ "( >= 5.1.5 && > 7.2.6 && >= 2.6.7 && == 4.5.5 && > 6.7.8 && == 7.4.6 && == 3.4.6 && > 8.3.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "J\u0006g"+ },+ "dlUri": "http:hl"+ }+ },+ "Linux_Gentoo": {+ "( <= 3.3.6 && == 1.4.5 && <= 1.8.3 && == 7.7.8 && > 4.4.4 && >= 8.4.3 && == 4.4.1 )": {+ "dlHash": "mzowz",+ "dlSubdir": "CX",+ "dlUri": "http:cevi"+ },+ "( <= 8.6.4 && <= 6.3.2 && < 1.7.2 && == 1.2.8 && >= 7.3.7 && > 5.8.3 && < 7.1.1 ) || ( < 3.1.1 && > 2.4.7 && > 2.7.5 && >= 3.1.1 && == 2.4.3 ) || ( >= 8.6.3 && == 5.5.3 && >= 5.3.2 && > 8.2.2 && > 6.3.3 && == 2.3.1 ) || ( > 4.5.3 && <= 4.6.4 && > 9.7.1 && >= 8.8.4 )": {+ "dlHash": "awmhs",+ "dlSubdir": "$s]𡌎\u0001\u0013\u001br",+ "dlUri": "http:gcgwlqau"+ },+ "( >= 6.1.5 && >= 3.7.7 && < 4.4.6 && <= 1.8.4 && <= 2.3.2 )": {+ "dlHash": "rbdrufgl",+ "dlSubdir": "Y\u0017$q#",+ "dlUri": "http:a"+ },+ "unknown_versioning": {+ "dlHash": "glgb",+ "dlSubdir": null,+ "dlUri": "https:ffzj"+ }+ },+ "Windows": {+ "( < 8.3.1 ) || ( > 2.4.8 && > 2.7.3 && > 8.5.7 && > 4.4.8 && < 4.5.3 && <= 3.4.4 ) || ( > 8.1.1 )": {+ "dlHash": "je",+ "dlSubdir": {+ "RegexDir": "S"+ },+ "dlUri": "http:rlnkxxte"+ },+ "( > 4.8.7 && <= 1.1.6 && >= 1.7.8 && < 7.4.6 ) || ( > 6.7.3 && <= 7.6.4 && > 8.6.1 && > 5.2.1 )": {+ "dlHash": "osqf",+ "dlSubdir": null,+ "dlUri": "http:rfq"+ },+ "( >= 4.8.3 && == 6.6.7 && < 6.2.7 && > 2.3.4 && >= 1.4.6 && <= 2.5.3 && > 6.7.8 && < 2.7.2 && <= 1.6.2 )": {+ "dlHash": "hisd",+ "dlSubdir": null,+ "dlUri": "http:yat"+ },+ "( >= 8.1.4 && > 7.5.3 && >= 8.8.4 && > 5.7.1 && < 4.1.3 && > 4.7.4 )": {+ "dlHash": "b",+ "dlSubdir": "'OH序\u0008",+ "dlUri": "http:chn"+ },+ "unknown_versioning": {+ "dlHash": "cpfmvbr",+ "dlSubdir": null,+ "dlUri": "https:thu"+ }+ }+ }+ },+ "viChangeLog": "https:bnt",+ "viPostInstall": "jdjwlz",+ "viPostRemove": "fbzect",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "woix",+ "dlSubdir": {+ "RegexDir": "b\u0012N}\u0000"+ },+ "dlUri": "https:"+ },+ "viTags": [+ "Prerelease"+ ]+ },+ "2.6.7": {+ "viArch": {+ "A_ARM": {+ "Linux_Gentoo": {+ "( <= 5.4.1 )": {+ "dlHash": "elojogv",+ "dlSubdir": "\u0007$]${",+ "dlUri": "https:lbotdd"+ },+ "( > 4.2.6 ) || ( == 8.8.4 && < 7.1.2 && >= 7.1.4 ) || ( <= 2.2.8 && > 4.1.2 && == 4.3.5 ) || ( >= 4.7.4 && < 2.6.6 ) || ( > 5.4.7 )": {+ "dlHash": "injyrvq",+ "dlSubdir": null,+ "dlUri": "http:fepnrntp"+ },+ "( > 6.7.1 && == 3.3.4 && == 1.8.7 && == 1.3.1 && >= 8.6.3 && > 6.2.8 ) || ( > 5.1.1 && <= 6.8.2 ) || ( == 8.7.5 && >= 6.5.1 && >= 4.4.1 && <= 4.1.4 && < 5.6.5 && > 3.3.6 && < 4.3.2 && < 6.3.5 && == 2.6.4 )": {+ "dlHash": "dmy",+ "dlSubdir": {+ "RegexDir": "Ͱ"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "bsd",+ "dlSubdir": {+ "RegexDir": "9=[\u000f"+ },+ "dlUri": "https:deqhvfc"+ }+ }+ }+ },+ "viChangeLog": "https:gjl",+ "viPostInstall": null,+ "viPostRemove": null,+ "viPreCompile": "dxw",+ "viSourceDL": null,+ "viTags": [+ "Latest"+ ]+ },+ "3.3.5": {+ "viArch": {+ "A_Sparc64": {}+ },+ "viChangeLog": "http:uhv",+ "viPostInstall": "ly",+ "viPostRemove": null,+ "viPreCompile": "unrj",+ "viSourceDL": {+ "dlHash": "h",+ "dlSubdir": {+ "RegexDir": ",A\u001f`g+&"+ },+ "dlUri": "https:uoj"+ },+ "viTags": [+ "old",+ "&Z3𭹡X",+ "Prerelease",+ "Prerelease"+ ]+ },+ "3.4.4": {+ "viArch": {+ "A_64": {+ "Darwin": {+ "( == 2.8.5 && < 2.2.3 && <= 5.1.8 && <= 5.7.2 && == 6.3.8 && >= 2.4.1 && <= 7.7.2 && < 7.3.3 && <= 8.5.6 )": {+ "dlHash": "",+ "dlSubdir": "𩄜",+ "dlUri": "https:bffi"+ },+ "( >= 2.8.6 && == 6.6.8 ) || ( > 5.1.8 && == 5.6.1 && <= 3.1.6 && >= 5.1.10 && <= 6.2.3 )": {+ "dlHash": "t",+ "dlSubdir": {+ "RegexDir": "u["+ },+ "dlUri": "https:ctx"+ },+ "unknown_versioning": {+ "dlHash": "vnya",+ "dlSubdir": {+ "RegexDir": "O햎!𑱠𗳹ᨪ"+ },+ "dlUri": "https:"+ }+ },+ "Linux_Ubuntu": {+ "( <= 6.6.7 && == 1.2.3 && == 7.3.1 && >= 7.6.7 && <= 4.3.2 && >= 8.6.1 && >= 4.6.4 ) || ( >= 6.3.6 && == 3.6.7 && == 8.3.6 && >= 3.8.1 && > 7.2.7 && >= 1.5.2 ) || ( <= 6.6.3 && >= 1.1.3 && >= 2.7.4 && > 2.5.2 && == 5.8.5 && == 2.3.6 && <= 4.4.4 && > 5.8.5 ) || ( < 8.3.3 ) || ( > 8.8.6 && == 2.7.3 && < 4.2.8 && == 7.2.6 && > 1.5.2 )": {+ "dlHash": "srpqu",+ "dlSubdir": {+ "RegexDir": "驵𣑯\u0003\u001fG\u0019'\u0003"+ },+ "dlUri": "http:awovjxxt"+ },+ "( == 9.5.2 && > 5.8.8 && >= 4.4.3 && > 4.1.3 && <= 7.7.8 ) || ( <= 7.4.8 && < 4.5.5 && > 1.2.7 && < 5.7.4 ) || ( == 1.7.3 && > 3.8.3 && >= 8.3.3 && <= 3.4.7 && == 4.5.6 && > 2.5.5 && > 6.3.1 && < 4.2.8 ) || ( >= 1.8.8 && >= 9.6.6 && == 8.4.1 && <= 1.3.3 ) || ( <= 2.8.9 && >= 6.2.3 && == 7.4.7 ) || ( < 6.1.4 && < 4.7.7 ) || ( > 1.5.3 && < 8.5.7 && > 4.8.2 && <= 8.7.4 && >= 4.6.4 && == 2.7.8 && == 1.5.6 ) || ( > 5.4.3 && <= 6.2.4 && >= 8.1.4 && > 3.6.1 && > 7.6.5 && >= 8.4.6 ) || ( > 3.2.8 && > 6.7.3 && < 2.1.1 && <= 6.7.3 && > 3.6.8 && < 4.4.1 && == 3.7.6 )": {+ "dlHash": "m",+ "dlSubdir": null,+ "dlUri": "http:cxlw"+ },+ "( >= 4.7.3 && >= 4.8.1 )": {+ "dlHash": "vxn",+ "dlSubdir": {+ "RegexDir": "\u0013"+ },+ "dlUri": "https:e"+ },+ "unknown_versioning": {+ "dlHash": "qnenmql",+ "dlSubdir": "",+ "dlUri": "http:brbrf"+ }+ },+ "Windows": {+ "( < 3.6.7 && >= 4.7.1 && >= 5.1.4 && >= 3.6.1 && <= 4.5.4 && < 2.4.2 ) || ( == 8.8.4 && > 5.1.6 && <= 9.6.3 && > 3.8.2 && > 6.8.5 && >= 7.8.1 && == 5.5.1 && <= 1.8.7 ) || ( > 5.6.4 && > 7.8.4 && == 1.1.6 && <= 3.2.6 && == 6.4.8 && > 3.2.7 && >= 6.8.8 && >= 8.2.5 && > 3.5.4 )": {+ "dlHash": "fvowp",+ "dlSubdir": null,+ "dlUri": "http:bh"+ },+ "( == 1.2.6 && > 6.5.7 && > 5.6.2 ) || ( == 5.4.3 && < 6.6.4 && <= 5.7.6 ) || ( <= 8.3.8 ) || ( == 8.2.8 && == 3.5.2 && == 1.5.6 && <= 4.7.2 && == 3.1.4 && > 4.4.3 && == 8.7.6 && > 1.7.1 && >= 5.8.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u0014"+ },+ "dlUri": "http:er"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "y陱c"+ },+ "dlUri": "https:xa"+ }+ }+ },+ "A_ARM": {+ "Darwin": {+ "( <= 1.5.5 && <= 7.3.1 && >= 3.3.4 && >= 7.7.5 && > 7.5.2 && < 2.8.5 && >= 7.3.8 ) || ( < 2.3.7 && < 4.6.8 && > 4.3.8 && == 1.8.4 && >= 1.1.8 && > 5.2.8 && > 2.3.4 && == 7.5.4 && < 1.1.1 ) || ( >= 5.3.7 && == 4.4.1 && == 8.4.2 && > 2.6.1 && == 3.3.6 && == 3.4.1 && < 1.8.6 && == 6.3.8 && <= 4.1.6 ) || ( == 4.2.7 && < 5.1.8 && <= 4.2.7 && == 4.3.2 )": {+ "dlHash": "bjmz",+ "dlSubdir": {+ "RegexDir": "o𗹃"+ },+ "dlUri": "http:mlj"+ },+ "( <= 2.8.2 && < 2.7.5 && > 3.6.2 && == 2.6.7 ) || ( > 6.5.2 && == 1.8.5 ) || ( <= 3.1.4 && < 2.8.4 && >= 4.8.8 && == 3.4.6 && >= 2.5.5 && >= 1.7.1 && == 6.7.3 && <= 4.3.1 )": {+ "dlHash": "sbjlwpo",+ "dlSubdir": {+ "RegexDir": "Y]𫀛\u0004𦙢d"+ },+ "dlUri": "http:ewy"+ },+ "( <= 7.5.3 && >= 4.8.4 && == 7.7.4 && > 4.5.4 && >= 8.5.5 && == 3.2.5 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:ydllmahs"+ },+ "unknown_versioning": {+ "dlHash": "v",+ "dlSubdir": "",+ "dlUri": "http:xzb"+ }+ },+ "Windows": {+ "( < 4.1.7 && <= 2.7.4 && < 4.7.2 && <= 5.2.3 && < 2.3.7 && > 4.1.5 && < 7.6.7 && < 4.1.1 )": {+ "dlHash": "yw",+ "dlSubdir": "",+ "dlUri": "https:kzki"+ },+ "( == 6.3.8 && >= 3.2.7 && >= 8.5.9 && > 3.1.2 && >= 7.3.5 && <= 5.3.1 && == 3.5.7 )": {+ "dlHash": "barmjd",+ "dlSubdir": {+ "RegexDir": "5\u000f\t~"+ },+ "dlUri": "http:zrgrbwg"+ },+ "( > 4.8.4 && <= 4.4.7 ) || ( > 2.6.7 && > 5.6.1 && == 5.7.5 && >= 1.1.5 && <= 7.8.5 && == 1.4.2 && >= 5.6.3 )": {+ "dlHash": "ypj",+ "dlSubdir": "\u0004",+ "dlUri": "http:yawtuh"+ },+ "( >= 8.3.2 ) || ( >= 4.2.7 )": {+ "dlHash": "j",+ "dlSubdir": {+ "RegexDir": "(\u0001[;@"+ },+ "dlUri": "https:ebz"+ }+ }+ },+ "A_ARM64": {+ "FreeBSD": {+ "( <= 4.7.8 && < 5.5.3 && <= 5.5.7 && < 4.6.3 && > 5.4.4 && < 7.8.1 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:"+ }+ },+ "Linux_AmazonLinux": {+ "( < 4.6.3 && < 3.5.6 && <= 6.7.4 && < 4.7.4 && < 8.7.4 )": {+ "dlHash": "xgl",+ "dlSubdir": "5*",+ "dlUri": "https:qqahk"+ },+ "( <= 2.4.8 && > 8.7.1 && >= 1.8.8 )": {+ "dlHash": "rjasi",+ "dlSubdir": null,+ "dlUri": "http:qbw"+ },+ "( > 1.7.4 )": {+ "dlHash": "s",+ "dlSubdir": "Ej\u0002\u001d*",+ "dlUri": "http:bv"+ },+ "( > 7.2.8 && >= 3.5.6 && <= 8.7.8 && < 7.5.6 && <= 6.7.2 && < 8.2.6 && == 5.3.8 && >= 8.2.5 ) || ( > 8.3.4 && <= 3.2.2 && <= 8.5.5 && < 7.2.9 && < 8.1.2 && <= 5.3.5 && == 6.2.3 && == 7.7.7 )": {+ "dlHash": "qncsmyqa",+ "dlSubdir": null,+ "dlUri": "http:xr"+ },+ "( > 8.6.2 && >= 6.2.6 && >= 3.6.8 && <= 2.3.4 && < 3.4.5 )": {+ "dlHash": "xngjmly",+ "dlSubdir": "PP-",+ "dlUri": "https:ulrpl"+ },+ "( >= 4.6.7 && >= 2.8.6 && >= 2.6.4 )": {+ "dlHash": "yagttg",+ "dlSubdir": "4\u001a",+ "dlUri": "http:jtfzv"+ },+ "( >= 8.7.8 ) || ( <= 4.5.7 && == 1.8.8 && < 5.5.2 && < 2.3.9 && < 4.6.3 && > 4.6.4 ) || ( == 2.8.3 && < 5.7.2 ) || ( <= 8.6.1 && == 8.5.4 && >= 5.1.3 && > 6.3.3 )": {+ "dlHash": "nyedat",+ "dlSubdir": null,+ "dlUri": "https:pgyjpje"+ },+ "unknown_versioning": {+ "dlHash": "hnxk",+ "dlSubdir": null,+ "dlUri": "https:qgfkwamv"+ }+ },+ "Linux_CentOS": {},+ "Linux_Debian": {+ "( < 2.7.8 && < 3.1.4 && < 6.1.2 && >= 1.7.5 && > 3.4.7 && < 2.1.2 ) || ( >= 6.5.6 ) || ( > 3.7.3 && <= 1.5.8 && > 7.3.7 && > 7.6.4 && == 5.6.8 && <= 1.4.1 && < 2.1.1 && == 8.7.5 && <= 5.4.1 ) || ( <= 3.7.5 && <= 2.5.5 && > 2.8.6 && == 1.2.1 && == 6.2.7 && < 7.6.1 && == 7.5.2 && >= 4.4.7 ) || ( < 7.7.3 ) || ( == 2.2.3 && == 6.3.4 && <= 8.1.5 && >= 7.7.4 && >= 3.4.7 )": {+ "dlHash": "",+ "dlSubdir": "l(9",+ "dlUri": "https:eyha"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "f7Eꋬ"+ },+ "dlUri": "http:ngdj"+ }+ },+ "Linux_UnknownLinux": {},+ "Windows": {+ "( < 1.3.1 && <= 1.1.8 && < 3.2.7 && == 4.8.5 ) || ( < 5.8.7 && >= 6.4.8 ) || ( < 8.8.6 && == 7.3.7 ) || ( > 6.3.7 && >= 1.1.1 ) || ( > 3.7.1 && <= 2.8.7 && <= 6.3.1 && < 7.8.6 && < 7.6.5 && < 1.8.1 && == 7.3.7 ) || ( <= 8.6.2 && <= 8.5.3 && >= 7.7.8 && <= 8.3.1 && > 8.3.6 ) || ( <= 3.4.6 && > 5.6.2 && >= 1.5.7 && <= 7.3.1 && > 3.5.1 && > 7.1.3 && <= 5.4.2 && == 3.8.2 && <= 2.4.2 ) || ( >= 8.1.3 && >= 2.1.6 && >= 1.3.5 && == 1.6.1 && > 4.5.8 && <= 5.5.8 ) || ( >= 4.5.8 && < 5.1.4 && > 2.1.1 && < 2.4.1 && < 3.8.8 && >= 3.7.1 )": {+ "dlHash": "f",+ "dlSubdir": {+ "RegexDir": "Yw"+ },+ "dlUri": "http:"+ },+ "( < 4.5.7 && <= 6.4.4 && == 3.7.5 && >= 2.6.3 && >= 1.7.7 && <= 8.1.7 && < 2.4.3 && < 2.3.1 && > 3.6.6 )": {+ "dlHash": "bg",+ "dlSubdir": {+ "RegexDir": "(hM㈂D\u000c%"+ },+ "dlUri": "http:zss"+ },+ "( > 6.1.5 && == 1.6.8 && > 3.5.1 && >= 6.7.2 && > 5.4.5 && <= 6.5.2 && > 3.4.5 && > 4.6.3 && < 5.5.5 ) || ( <= 2.2.7 && > 2.3.3 && < 1.7.3 && == 8.3.5 && < 3.6.3 )": {+ "dlHash": "rnbqdeat",+ "dlSubdir": {+ "RegexDir": "}𨌅q\\\u001c\u0015"+ },+ "dlUri": "https:"+ },+ "( >= 4.2.8 && >= 1.7.3 && >= 7.6.3 && <= 2.6.2 )": {+ "dlHash": "zrkggr",+ "dlSubdir": {+ "RegexDir": "vpN\u0004\\"+ },+ "dlUri": "http:vm"+ },+ "unknown_versioning": {+ "dlHash": "f",+ "dlSubdir": "Z9\u000e&-r𣈀",+ "dlUri": "https:boftmg"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 8.6.5 && <= 7.6.6 && <= 1.8.5 && < 5.8.6 && >= 1.5.6 )": {+ "dlHash": "rxef",+ "dlSubdir": "5p!",+ "dlUri": "http:"+ },+ "( <= 3.1.5 && >= 4.2.4 && > 8.2.8 && == 7.8.3 && > 7.2.5 && <= 1.8.5 ) || ( < 6.1.7 && == 3.3.6 && <= 8.6.7 && > 8.1.8 && < 6.7.5 && >= 8.8.1 && >= 2.2.8 )": {+ "dlHash": "mr",+ "dlSubdir": {+ "RegexDir": "~!\u000f𬰁."+ },+ "dlUri": "http:ziianwoo"+ },+ "( == 7.6.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( > 4.3.6 && >= 2.5.3 && < 7.3.1 && < 1.3.8 && >= 3.1.5 && > 1.1.4 && <= 7.1.5 && < 3.5.1 )": {+ "dlHash": "adjsxfrb",+ "dlSubdir": null,+ "dlUri": "http:vdz"+ },+ "( > 7.7.7 ) || ( >= 6.6.3 && == 2.8.5 && >= 4.3.8 && > 7.8.7 ) || ( >= 8.1.5 && < 1.8.1 && < 8.2.6 && <= 4.8.2 && >= 7.4.1 && >= 5.8.7 && <= 4.2.8 && >= 7.2.4 ) || ( == 8.2.7 && <= 6.8.7 && == 7.6.3 && > 2.3.7 && >= 5.1.7 && >= 1.2.3 && < 3.4.7 ) || ( > 1.9.6 && < 7.4.5 && < 6.7.8 && <= 5.4.7 && >= 8.5.6 )": {+ "dlHash": "cntho",+ "dlSubdir": {+ "RegexDir": "!GI𮗽"+ },+ "dlUri": "http:nlmc"+ },+ "unknown_versioning": {+ "dlHash": "n",+ "dlSubdir": {+ "RegexDir": "y𭍫𓎬DfT\t"+ },+ "dlUri": "https:fudqkcet"+ }+ },+ "FreeBSD": {+ "( == 4.2.1 && >= 3.2.5 && <= 4.2.8 && == 1.5.8 && >= 8.7.3 && < 5.7.5 && > 7.6.3 && < 4.8.6 ) || ( > 1.3.5 && <= 6.2.3 && <= 8.3.6 && >= 7.7.8 && > 2.5.3 ) || ( < 6.3.7 && <= 7.3.7 && == 6.2.8 && >= 6.4.6 ) || ( == 6.6.5 && <= 5.4.3 && >= 8.1.8 ) || ( < 2.3.7 && <= 2.3.2 && >= 2.5.3 && >= 1.5.7 && == 1.2.2 && > 2.8.8 && < 8.5.3 && == 3.3.8 && == 6.2.6 ) || ( <= 2.5.5 && == 7.8.6 && >= 8.5.4 )": {+ "dlHash": "lvmrib",+ "dlSubdir": "",+ "dlUri": "https:qdpuqzs"+ }+ },+ "Linux_Exherbo": {+ "( < 2.1.3 && >= 6.7.5 && < 3.7.5 ) || ( >= 1.5.5 && == 6.4.4 && <= 3.3.6 ) || ( > 2.2.3 ) || ( >= 1.6.6 && > 4.3.5 && > 3.6.3 && > 3.2.6 && < 8.6.4 && >= 3.7.1 && < 3.6.2 && < 5.3.2 && < 2.2.6 ) || ( == 7.2.1 && == 5.2.8 ) || ( <= 7.4.6 && >= 2.6.8 && >= 2.2.8 && == 2.4.1 && < 1.5.3 )": {+ "dlHash": "oeofui",+ "dlSubdir": null,+ "dlUri": "https:uhndfk"+ },+ "( < 5.2.6 && < 3.4.4 && < 1.1.3 && >= 8.2.2 )": {+ "dlHash": "filfoz",+ "dlSubdir": "𥁳𣠵ᤵ",+ "dlUri": "https:npp"+ },+ "( <= 1.1.5 && <= 5.5.5 && > 4.4.6 && <= 6.4.6 )": {+ "dlHash": "vyzcdmtd",+ "dlSubdir": ";gN\u001e𩺉(",+ "dlUri": "http:ncgwu"+ },+ "( <= 7.4.8 )": {+ "dlHash": "rzh",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "( <= 8.2.6 ) || ( < 2.1.8 && > 4.1.2 && < 6.8.8 && >= 8.4.3 && <= 7.2.4 && < 6.1.4 && >= 2.4.7 ) || ( == 2.1.4 )": {+ "dlHash": "t",+ "dlSubdir": {+ "RegexDir": "\u0014"+ },+ "dlUri": "http:cx"+ },+ "( == 4.3.5 && == 4.4.1 && >= 1.2.1 && > 3.7.1 && >= 8.1.6 && > 1.2.8 )": {+ "dlHash": "s",+ "dlSubdir": {+ "RegexDir": "伄𑶂"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": ">["+ },+ "dlUri": "https:g"+ }+ },+ "Linux_Gentoo": {+ "( <= 7.8.6 && == 2.2.5 && >= 1.1.6 )": {+ "dlHash": "",+ "dlSubdir": "G\u0011\u001bET",+ "dlUri": "https:sfot"+ },+ "( == 1.3.3 )": {+ "dlHash": "svt",+ "dlSubdir": "",+ "dlUri": "https:dzlosofc"+ },+ "( == 3.8.8 && < 7.4.6 && < 7.6.5 && == 3.2.1 && <= 8.4.1 && > 8.8.2 && <= 2.7.1 ) || ( <= 2.5.7 && <= 4.7.4 && > 8.2.7 && == 5.6.3 && <= 3.3.2 && >= 1.4.1 ) || ( > 7.5.6 && == 6.6.4 ) || ( < 8.4.1 && <= 2.7.5 && > 5.5.7 && < 2.3.2 && == 2.5.8 && == 8.6.1 ) || ( == 2.8.7 && > 4.3.6 && > 1.3.2 && < 6.8.4 && == 5.7.4 && <= 5.4.5 && <= 3.5.2 && == 3.1.9 && <= 6.5.2 ) || ( > 1.6.5 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:gnapy"+ },+ "( == 7.5.5 && >= 4.6.2 && <= 6.5.2 && > 3.8.2 && == 5.5.1 && > 8.5.8 ) || ( > 1.7.6 && > 4.6.6 ) || ( == 6.4.4 && > 5.7.5 && < 4.4.5 && <= 7.2.7 && >= 6.5.2 && <= 3.4.6 && > 7.2.5 )": {+ "dlHash": "actbzbp",+ "dlSubdir": "x",+ "dlUri": "http:jznipdk"+ },+ "( > 7.6.7 && <= 7.1.8 && < 7.5.1 )": {+ "dlHash": "kq",+ "dlSubdir": "0𭨣𣮲",+ "dlUri": "https:zm"+ },+ "( >= 7.2.5 && == 6.7.6 && < 4.8.6 && > 5.6.6 && <= 5.8.2 && < 3.7.4 && > 7.6.1 && == 4.5.5 && > 2.8.8 )": {+ "dlHash": "latxlc",+ "dlSubdir": "nj魗鋿",+ "dlUri": "http:vynsyn"+ }+ },+ "Windows": {+ "( <= 5.1.7 && == 1.4.7 && > 5.3.2 && <= 3.1.1 && < 6.1.6 ) || ( < 4.4.5 && > 2.3.3 && < 3.6.3 && > 2.6.5 && < 1.7.4 )": {+ "dlHash": "tyyhnxzu",+ "dlSubdir": {+ "RegexDir": "\"\u0005i('𢴺"+ },+ "dlUri": "https:to"+ },+ "( > 5.2.2 && >= 7.7.8 && <= 6.8.2 && < 4.5.3 && >= 1.6.6 && >= 8.6.3 && < 7.8.8 ) || ( >= 8.7.5 && == 7.6.1 )": {+ "dlHash": "nvjqcoqk",+ "dlSubdir": {+ "RegexDir": "𪺠\u0010"+ },+ "dlUri": "http:r"+ },+ "( > 5.8.6 && == 8.3.5 && == 8.6.5 ) || ( >= 1.2.6 && == 2.1.3 && == 2.9.2 && < 3.8.1 && >= 4.7.4 && <= 4.5.1 && <= 5.3.5 ) || ( > 8.3.1 && <= 4.1.7 && == 6.6.2 && == 8.6.7 && == 3.7.2 && >= 8.4.5 && == 4.3.6 && >= 5.2.1 )": {+ "dlHash": "vx",+ "dlSubdir": {+ "RegexDir": "v"+ },+ "dlUri": "http:owwii"+ }+ }+ },+ "A_Sparc64": {+ "Darwin": {}+ }+ },+ "viChangeLog": "https:gqvwog",+ "viPostInstall": "ytr",+ "viPostRemove": null,+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "𝢾Vrq"+ },+ "dlUri": "http:z"+ },+ "viTags": [+ "base-5.1.2",+ "Recommended",+ "1:খ",+ "Latest",+ "base-1.1.2",+ "f8\u0017xNft(",+ "Recommended",+ "Prerelease"+ ]+ },+ "6.5.7": {+ "viArch": {+ "A_32": {+ "Darwin": {},+ "Windows": {+ "( >= 4.4.4 && < 6.6.5 ) || ( > 7.4.5 && <= 6.6.8 && < 3.7.7 && <= 3.4.1 && < 4.1.6 && < 4.7.1 && < 5.7.4 && >= 2.1.1 && <= 2.4.7 )": {+ "dlHash": "jqcdjpj",+ "dlSubdir": {+ "RegexDir": "[W"+ },+ "dlUri": "http:brs"+ },+ "unknown_versioning": {+ "dlHash": "xpxwznk",+ "dlSubdir": "k\u0010\u0008Q破_",+ "dlUri": "http:rnndzeqj"+ }+ }+ },+ "A_PowerPC64": {},+ "A_Sparc": {+ "Darwin": {+ "( <= 4.8.7 && == 7.6.3 && > 2.5.2 && < 6.4.6 && >= 7.3.2 ) || ( > 5.4.2 && <= 6.3.2 && > 6.1.1 ) || ( < 8.7.7 && == 7.5.3 && >= 1.7.7 && < 6.2.6 && <= 1.1.8 && <= 7.8.3 && > 8.6.4 && > 8.4.7 )": {+ "dlHash": "gz",+ "dlSubdir": {+ "RegexDir": "N췱E}S"+ },+ "dlUri": "http:czafqg"+ },+ "( == 2.5.7 && < 3.7.8 && == 2.5.1 && > 2.7.4 && <= 5.6.6 ) || ( > 6.3.2 && >= 2.6.5 && == 3.4.3 && <= 1.6.2 && == 1.2.7 && > 1.6.2 && < 7.7.7 && >= 8.2.4 ) || ( > 6.8.8 && < 6.3.4 ) || ( >= 4.2.6 && == 3.7.5 && < 7.5.5 && > 7.3.7 && < 8.3.4 )": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "http:ie"+ },+ "( > 2.3.6 && < 3.1.6 && > 5.3.1 && >= 1.3.7 && >= 2.1.3 && == 6.4.4 )": {+ "dlHash": "tscvdkt",+ "dlSubdir": {+ "RegexDir": "w𧳛Y𥓦摣|"+ },+ "dlUri": "http:ldvmf"+ },+ "( > 4.2.1 && == 5.8.3 && == 5.3.4 && > 3.5.1 && >= 8.6.5 && > 4.8.7 && < 8.5.2 && <= 1.4.8 && <= 5.7.3 ) || ( < 7.8.1 ) || ( < 6.3.1 ) || ( >= 4.2.6 && > 1.8.5 && <= 6.8.6 && < 5.4.6 && >= 3.7.1 )": {+ "dlHash": "sfcx",+ "dlSubdir": null,+ "dlUri": "https:jh"+ },+ "( >= 5.5.1 && >= 4.1.6 && == 5.7.4 ) || ( > 3.2.1 && <= 8.5.8 && <= 8.4.5 && > 2.7.7 && >= 8.7.8 && <= 5.7.4 && >= 2.6.6 && == 1.4.4 && > 9.5.2 ) || ( >= 4.4.7 && <= 6.6.6 && > 8.4.7 && < 6.8.4 && == 7.8.1 && <= 6.4.5 && < 8.3.7 && < 4.4.7 ) || ( >= 1.5.9 && < 6.4.7 )": {+ "dlHash": "dado",+ "dlSubdir": null,+ "dlUri": "https:ymvn"+ },+ "unknown_versioning": {+ "dlHash": "ftyq",+ "dlSubdir": {+ "RegexDir": ">I𢶋𫗺\\"+ },+ "dlUri": "http:hbc"+ }+ },+ "Linux_AmazonLinux": {+ "( < 4.4.6 && == 7.3.5 && < 4.3.6 && == 5.8.6 && <= 6.8.7 && >= 6.2.2 && < 6.2.3 ) || ( > 3.4.2 && == 3.3.3 && < 1.8.1 && == 8.1.1 && < 8.8.1 && == 6.8.3 && <= 3.3.3 && > 4.1.5 && < 5.6.2 ) || ( >= 1.2.2 && == 4.1.1 && <= 8.6.8 && < 4.3.5 ) || ( >= 5.1.7 && <= 5.4.4 && < 6.2.7 && <= 6.2.2 && < 6.8.8 && < 7.8.1 && >= 7.2.2 ) || ( < 2.1.5 && < 5.4.3 && < 1.3.4 && > 5.7.3 && > 7.5.2 && > 6.6.4 && <= 1.2.8 && >= 4.4.2 && <= 3.4.5 )": {+ "dlHash": "xpz",+ "dlSubdir": "7\u0017t\u0019",+ "dlUri": "http:ml"+ },+ "( == 1.7.3 && >= 8.4.6 && < 1.3.6 && >= 1.2.7 && > 2.3.7 && >= 5.3.8 && > 7.8.8 && > 4.2.7 )": {+ "dlHash": "kh",+ "dlSubdir": "",+ "dlUri": "https:uegeuegm"+ },+ "( == 4.2.4 && > 1.5.2 && == 6.4.6 ) || ( > 5.7.3 && >= 2.1.5 && <= 7.6.6 && < 7.2.1 )": {+ "dlHash": "eor",+ "dlSubdir": {+ "RegexDir": "P\u001a䰿`\rA~"+ },+ "dlUri": "http:rxkgpcx"+ },+ "( >= 6.8.5 && >= 8.1.8 )": {+ "dlHash": "tuxhyhcm",+ "dlSubdir": "<",+ "dlUri": "http:efrxmw"+ }+ },+ "Linux_Exherbo": {+ "( < 8.3.5 && == 5.5.2 && > 2.1.1 && <= 8.6.2 ) || ( == 2.3.6 && < 6.5.8 )": {+ "dlHash": "q",+ "dlSubdir": {+ "RegexDir": "ኣ\u000fA\u0001*<"+ },+ "dlUri": "http:"+ },+ "( == 3.4.2 && <= 4.8.3 && < 8.2.5 && <= 5.6.3 )": {+ "dlHash": "lcybpfvo",+ "dlSubdir": {+ "RegexDir": "\u001e@zf"+ },+ "dlUri": "http:yftl"+ },+ "( == 3.6.2 && < 7.7.2 && >= 5.8.6 && <= 2.5.2 && > 4.5.2 && <= 4.8.2 && < 8.4.4 && == 3.1.4 && == 6.8.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "E"+ },+ "dlUri": "https:bctkd"+ },+ "( >= 2.3.3 && >= 7.2.6 && <= 7.8.4 ) || ( <= 4.1.7 && <= 1.7.2 && < 1.7.7 && <= 4.5.8 && <= 6.5.1 )": {+ "dlHash": "mlrru",+ "dlSubdir": ",\u0015",+ "dlUri": "http:hszsgzyh"+ },+ "( >= 8.5.2 && >= 5.4.6 && >= 3.7.6 && > 3.5.3 && > 2.2.5 && <= 1.6.7 )": {+ "dlHash": "ojpwotb",+ "dlSubdir": "\u001c;7㨑U3\n",+ "dlUri": "http:xtxbga"+ },+ "unknown_versioning": {+ "dlHash": "ykfqul",+ "dlSubdir": "U,뱻5vK",+ "dlUri": "http:lamgn"+ }+ },+ "Linux_Ubuntu": {},+ "Windows": {+ "( == 3.4.6 && > 1.3.1 && <= 3.7.5 && <= 5.5.4 && < 3.8.7 && <= 6.1.3 && >= 7.4.5 && <= 8.8.8 )": {+ "dlHash": "dk",+ "dlSubdir": "⢑𤠋\u0001z",+ "dlUri": "https:sywnqbb"+ },+ "( == 8.5.1 ) || ( == 6.7.3 && <= 4.4.5 && < 2.2.8 && < 4.2.1 && == 4.8.8 && < 1.4.8 && <= 5.6.6 && < 7.3.6 ) || ( == 7.4.4 && >= 5.2.2 && == 8.1.2 && < 2.2.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "0SHOl\u0018"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "gheg",+ "dlSubdir": "",+ "dlUri": "https:xjqhg"+ }+ }+ },+ "A_Sparc64": {}+ },+ "viChangeLog": "https:n",+ "viPostInstall": "qvm",+ "viPostRemove": "sgvk",+ "viPreCompile": "nvecnkvu",+ "viSourceDL": {+ "dlHash": "dzydyxg",+ "dlSubdir": "qG+0t",+ "dlUri": "http:vvn"+ },+ "viTags": []+ },+ "6.6.3": {+ "viArch": {+ "A_64": {},+ "A_PowerPC64": {+ "Darwin": {+ "unknown_versioning": {+ "dlHash": "wj",+ "dlSubdir": "9j}\u0015",+ "dlUri": "http:zquwa"+ }+ },+ "FreeBSD": {+ "( <= 2.5.1 && >= 5.5.6 && >= 2.2.3 && < 4.2.7 && <= 3.3.6 && == 2.7.7 && < 6.7.2 )": {+ "dlHash": "itw",+ "dlSubdir": null,+ "dlUri": "http:ebgwsdh"+ },+ "( == 6.2.8 && < 3.7.6 && >= 5.4.2 && > 6.7.7 && == 1.5.8 && > 3.1.6 )": {+ "dlHash": "nkdysrt",+ "dlSubdir": "N㹘\u0008C𣳄",+ "dlUri": "https:"+ },+ "( > 3.1.7 && == 8.6.1 && == 1.7.5 && < 4.8.2 )": {+ "dlHash": "xqajuhrc",+ "dlSubdir": null,+ "dlUri": "https:soxw"+ },+ "( >= 5.6.8 )": {+ "dlHash": "ipp",+ "dlSubdir": "𤿻\u001fy",+ "dlUri": "https:seecjpa"+ },+ "( >= 8.2.4 && == 1.8.1 && == 5.8.8 ) || ( < 2.1.1 && > 8.3.1 && <= 6.6.7 && < 8.6.2 && == 5.7.6 && >= 5.1.3 && < 1.2.4 )": {+ "dlHash": "nhiiyd",+ "dlSubdir": "𨼕\\$kn\u0001",+ "dlUri": "http:doqr"+ },+ "unknown_versioning": {+ "dlHash": "v",+ "dlSubdir": "M^\u0018eEl\u001f",+ "dlUri": "http:mj"+ }+ }+ }+ },+ "viChangeLog": "https:juby",+ "viPostInstall": "segjmze",+ "viPostRemove": "",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "nu",+ "dlSubdir": null,+ "dlUri": "http:tws"+ },+ "viTags": [+ "",+ "\u0014𣉈C\u0018V",+ "Recommended"+ ]+ },+ "8.5.4": {+ "viArch": {+ "A_32": {+ "Darwin": {+ "( < 6.3.3 && >= 6.4.3 ) || ( >= 7.6.2 && < 5.8.3 && >= 2.3.4 && > 5.2.1 && <= 1.6.7 && > 5.7.7 )": {+ "dlHash": "bzjnyzg",+ "dlSubdir": "",+ "dlUri": "http:qdfdnwxx"+ },+ "unknown_versioning": {+ "dlHash": "cm",+ "dlSubdir": null,+ "dlUri": "https:dxe"+ }+ },+ "FreeBSD": {+ "( < 6.5.7 && < 8.1.4 && > 3.8.2 && == 4.1.5 && > 7.3.4 && > 7.4.6 && > 5.7.6 && <= 4.1.8 && <= 1.2.7 )": {+ "dlHash": "ju",+ "dlSubdir": {+ "RegexDir": "\u0000\u001eL3"+ },+ "dlUri": "https:t"+ },+ "( <= 4.1.7 && == 4.6.5 && == 4.5.7 && <= 2.5.6 && == 2.6.3 ) || ( > 5.6.6 && < 8.7.8 && == 6.8.6 && < 5.7.6 && <= 8.3.6 && == 9.7.4 ) || ( < 3.3.2 )": {+ "dlHash": "ruwm",+ "dlSubdir": {+ "RegexDir": "sY"+ },+ "dlUri": "https:nozmv"+ },+ "( == 1.8.5 && >= 1.2.4 && < 7.7.9 && >= 4.1.2 ) || ( >= 8.6.3 && > 1.1.5 && <= 3.6.7 && < 4.6.3 )": {+ "dlHash": "pehbhvss",+ "dlSubdir": "8𗌮\u0006O:",+ "dlUri": "https:it"+ },+ "( == 2.6.2 && == 5.4.6 && == 6.1.5 && == 2.8.5 && >= 1.6.6 && <= 2.7.2 && == 1.3.3 && == 7.1.8 )": {+ "dlHash": "qcbnqz",+ "dlSubdir": "\u0004\u000bY𩉒dw",+ "dlUri": "https:z"+ },+ "( == 2.6.5 ) || ( > 5.9.8 && <= 6.5.5 && > 5.7.6 && == 8.2.1 )": {+ "dlHash": "ewd",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:rictt"+ },+ "( == 3.3.4 && == 2.3.8 && > 2.7.5 ) || ( <= 8.1.7 && == 5.2.6 && > 1.8.2 && < 5.2.8 && >= 5.1.1 && == 7.7.3 )": {+ "dlHash": "fbapes",+ "dlSubdir": {+ "RegexDir": "FN𤔊\t^"+ },+ "dlUri": "http:mdaz"+ },+ "( > 4.6.6 && < 3.1.6 && >= 7.1.2 && >= 1.7.3 && >= 8.5.3 && > 7.3.4 )": {+ "dlHash": "l",+ "dlSubdir": "𣟺!\u0005\u0006SXd",+ "dlUri": "http:atjynlfz"+ },+ "( > 5.5.2 && > 3.7.3 && == 5.8.3 && == 1.4.2 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:lh"+ }+ },+ "Linux_Fedora": {+ "( < 5.5.3 && > 8.1.5 && == 6.2.6 && >= 3.6.1 && <= 2.5.8 && > 2.8.4 && == 7.8.3 )": {+ "dlHash": "ckvl",+ "dlSubdir": "\u0006(u",+ "dlUri": "http:rda"+ },+ "( <= 1.6.7 )": {+ "dlHash": "dherkx",+ "dlSubdir": "\th-",+ "dlUri": "https:qyhl"+ },+ "( <= 7.2.3 && >= 3.7.4 && <= 2.4.6 && < 5.7.7 && < 1.2.8 && > 6.1.3 && > 3.8.8 && <= 2.8.5 && == 7.3.2 ) || ( > 4.9.5 && < 3.2.5 && >= 5.7.3 && > 8.6.7 ) || ( > 6.3.2 )": {+ "dlHash": "gwprkzmk",+ "dlSubdir": null,+ "dlUri": "http:ff"+ },+ "( <= 7.3.8 && <= 7.3.4 && <= 8.3.3 && <= 3.2.2 ) || ( == 4.4.4 && <= 4.5.8 && == 3.3.2 ) || ( < 3.1.6 ) || ( == 4.2.2 && == 1.3.6 && == 2.4.4 && >= 1.4.1 )": {+ "dlHash": "ijne",+ "dlSubdir": "M7ks\ny",+ "dlUri": "http:lzfewc"+ },+ "( == 4.1.4 && == 7.3.1 && >= 3.8.7 && > 3.2.3 && < 4.8.4 && == 3.1.8 ) || ( >= 5.8.4 && < 6.6.6 && <= 8.7.3 && < 6.3.1 )": {+ "dlHash": "cyxoqz",+ "dlSubdir": {+ "RegexDir": "q\u0002땦IaPn"+ },+ "dlUri": "https:"+ },+ "( > 1.1.5 && <= 4.3.4 && >= 6.4.3 && > 6.8.8 && < 5.3.3 && < 3.6.6 && > 1.6.4 && < 8.8.1 && == 7.7.1 ) || ( > 4.6.8 && >= 6.5.1 && < 2.1.6 && < 1.1.3 && < 5.7.2 )": {+ "dlHash": "avfrflpp",+ "dlSubdir": null,+ "dlUri": "http:kddfmdjq"+ },+ "( >= 4.3.1 )": {+ "dlHash": "kejpsvr",+ "dlSubdir": {+ "RegexDir": "\u0004Y`7"+ },+ "dlUri": "http:nzrli"+ },+ "unknown_versioning": {+ "dlHash": "kvjunfw",+ "dlSubdir": null,+ "dlUri": "http:pblsub"+ }+ }+ },+ "A_ARM64": {}+ },+ "viChangeLog": "http:kcbpilr",+ "viPostInstall": "kvdlwtq",+ "viPostRemove": "qyvxvztp",+ "viPreCompile": "hpjrxowq",+ "viSourceDL": {+ "dlHash": "uvyqgeiy",+ "dlSubdir": null,+ "dlUri": "https:mb"+ },+ "viTags": [+ "Latest",+ "base-7.2.7",+ "base-6.3.8",+ "old",+ "base-5.3.5",+ "Latest",+ "\u0005I{5\u0013",+ "base-3.8.8"+ ]+ }+ },+ "GHCup": {+ "3.3.6": {+ "viArch": {+ "A_32": {},+ "A_ARM": {+ "Darwin": {},+ "FreeBSD": {+ "( >= 1.3.8 && == 3.1.8 && > 7.6.3 && <= 1.5.5 && >= 2.2.2 && <= 8.5.2 && == 3.2.1 )": {+ "dlHash": "phd",+ "dlSubdir": {+ "RegexDir": "M|㛇S"+ },+ "dlUri": "https:kjwhr"+ }+ },+ "Linux_CentOS": {+ "( < 4.1.4 && >= 1.5.2 && == 6.6.3 && >= 6.3.5 && <= 6.4.2 && <= 5.5.5 )": {+ "dlHash": "zk",+ "dlSubdir": {+ "RegexDir": "B\u0015\u0003"+ },+ "dlUri": "http:yt"+ },+ "( <= 5.5.7 && <= 4.6.4 && == 2.1.2 && >= 7.3.3 && < 4.4.1 && == 2.5.1 && > 4.4.7 && < 3.8.7 ) || ( >= 7.3.8 && == 8.6.4 )": {+ "dlHash": "qygc",+ "dlSubdir": {+ "RegexDir": "\u0008"+ },+ "dlUri": "https:pyofpkdj"+ },+ "( <= 8.2.6 && > 7.3.8 && > 1.2.8 && < 4.7.8 && > 8.1.5 && >= 3.5.2 ) || ( <= 4.2.8 && < 7.8.3 && <= 8.4.5 && == 7.5.6 && == 2.4.5 && < 7.4.5 && >= 7.5.6 )": {+ "dlHash": "ib",+ "dlSubdir": ":L",+ "dlUri": "http:byfcyw"+ },+ "( == 4.6.5 && == 9.5.7 )": {+ "dlHash": "cnv",+ "dlSubdir": "1t/F\u0018\u0017",+ "dlUri": "http:azna"+ },+ "( == 4.7.6 && > 8.5.7 && < 3.2.4 && < 2.7.7 && > 2.6.1 && < 1.8.4 && < 2.5.7 && >= 3.8.7 && > 3.8.4 )": {+ "dlHash": "hxokohxs",+ "dlSubdir": {+ "RegexDir": "\u0015"+ },+ "dlUri": "http:vw"+ },+ "( > 6.1.3 && >= 7.7.6 && < 7.6.5 && > 5.8.4 && >= 4.8.4 && > 3.7.8 ) || ( == 2.6.2 && < 2.7.3 && <= 8.3.4 && < 6.2.3 && <= 8.4.7 && < 3.5.8 && >= 6.7.6 && >= 1.5.6 && < 1.5.6 ) || ( == 7.6.4 && >= 3.5.6 && > 6.1.8 )": {+ "dlHash": "otswzqpu",+ "dlSubdir": {+ "RegexDir": "[\u001a^s\u0013\u0001"+ },+ "dlUri": "http:koxtf"+ },+ "( >= 7.7.2 && >= 6.4.5 && <= 2.8.3 && >= 3.7.3 && == 8.2.3 && >= 7.6.3 && > 6.1.2 ) || ( >= 3.1.2 && == 5.6.1 && < 8.8.5 )": {+ "dlHash": "fwi",+ "dlSubdir": "\r\rW\u0018C",+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "tac",+ "dlSubdir": "J!i",+ "dlUri": "http:ogc"+ }+ },+ "Linux_Ubuntu": {},+ "Windows": {+ "( > 7.8.6 && >= 7.2.3 && >= 4.3.1 && < 4.4.7 && <= 4.5.5 && > 6.4.8 && <= 3.3.2 )": {+ "dlHash": "vzklif",+ "dlSubdir": "\u0013𣪺 ",+ "dlUri": "http:iencxkc"+ },+ "( >= 2.2.3 && >= 7.8.3 && > 7.6.2 && < 8.6.3 && >= 1.7.7 && == 2.2.6 && < 8.5.6 && <= 5.6.7 && >= 4.5.2 )": {+ "dlHash": "rmsjzvxr",+ "dlSubdir": null,+ "dlUri": "http:rsrqf"+ },+ "( >= 8.4.3 && >= 8.8.3 && >= 2.7.5 && == 8.1.6 && > 6.1.2 && <= 7.8.2 && < 1.6.3 && == 8.6.8 ) || ( <= 7.4.8 && == 8.1.4 )": {+ "dlHash": "mh",+ "dlSubdir": null,+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "nscrfh",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:rkzrhdvq"+ }+ }+ },+ "A_Sparc": {+ "Darwin": {+ "( < 6.8.8 && > 2.5.3 && > 4.6.1 && == 5.2.6 && < 5.5.6 && >= 7.2.7 && > 8.1.4 && == 8.3.2 ) || ( < 6.7.3 && <= 2.7.2 && > 5.4.8 && > 3.2.3 && <= 5.6.4 && == 2.2.1 && >= 7.4.2 && >= 7.7.8 && > 6.5.8 )": {+ "dlHash": "pcpk",+ "dlSubdir": {+ "RegexDir": "\u0002\u0012h\""+ },+ "dlUri": "http:cpcjvqga"+ },+ "( < 7.5.8 && == 4.4.3 && == 1.8.8 && < 1.1.2 && > 4.7.7 && >= 6.2.2 && > 8.8.4 && < 8.4.1 )": {+ "dlHash": "epmmd",+ "dlSubdir": null,+ "dlUri": "http:v"+ },+ "( == 3.6.3 && <= 8.5.8 && <= 5.4.5 && <= 3.5.1 && < 9.6.5 && < 4.6.8 && > 7.2.4 && < 3.8.7 && <= 2.4.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:ldgym"+ },+ "( >= 4.4.2 && <= 3.8.2 && >= 5.2.5 && >= 3.8.3 && == 8.5.3 )": {+ "dlHash": "fbttip",+ "dlSubdir": "Vj",+ "dlUri": "https:vcuht"+ },+ "unknown_versioning": {+ "dlHash": "q",+ "dlSubdir": null,+ "dlUri": "https:f"+ }+ },+ "Windows": {+ "unknown_versioning": {+ "dlHash": "yllhi",+ "dlSubdir": "kr\u0007\u001f",+ "dlUri": "https:lyw"+ }+ }+ }+ },+ "viChangeLog": "http:hgc",+ "viPostInstall": "hqxhqabh",+ "viPostRemove": "h",+ "viPreCompile": "",+ "viSourceDL": {+ "dlHash": "mpfno",+ "dlSubdir": {+ "RegexDir": "\u0013M厹A(K"+ },+ "dlUri": "http:r"+ },+ "viTags": [+ "Recommended",+ "old",+ "Latest",+ "old",+ "Latest",+ "old",+ "Latest"+ ]+ },+ "4.3.4": {+ "viArch": {+ "A_32": {+ "Darwin": {+ "( <= 8.3.7 && <= 4.3.4 && <= 6.2.8 && == 7.7.1 && >= 5.2.5 && < 3.7.4 ) || ( >= 1.4.3 && <= 8.1.8 && >= 5.1.8 && < 2.2.3 && == 6.1.5 && > 6.3.8 && == 6.1.1 ) || ( <= 5.1.3 && >= 5.2.6 && >= 3.7.7 && < 5.5.3 && <= 8.1.6 && >= 6.2.3 && < 7.3.4 ) || ( > 1.7.6 && > 4.2.3 && < 8.6.2 && < 7.7.6 && > 6.4.3 && <= 5.6.7 && <= 1.1.7 && == 1.7.3 && >= 5.2.5 ) || ( >= 2.3.1 && == 7.5.2 && >= 2.4.6 && > 3.3.2 && < 7.6.3 && <= 2.2.6 && > 7.3.8 && <= 4.2.4 && > 6.6.5 ) || ( == 1.1.3 && == 1.2.2 ) || ( >= 6.8.6 && > 8.5.1 && <= 1.1.6 && <= 2.1.6 && >= 7.6.8 && >= 5.5.8 && > 6.6.3 && >= 8.7.3 ) || ( < 1.3.5 && <= 5.6.1 && == 6.2.3 && <= 1.2.8 && <= 7.8.4 && > 7.8.3 )": {+ "dlHash": "kqtv",+ "dlSubdir": null,+ "dlUri": "http:m"+ },+ "( > 1.4.3 && >= 2.5.1 && > 5.3.7 ) || ( < 7.2.4 && > 5.4.8 && < 2.8.8 )": {+ "dlHash": "avynv",+ "dlSubdir": null,+ "dlUri": "http:nzum"+ },+ "( > 5.8.5 && == 7.3.6 && < 3.4.5 && < 3.5.1 && > 2.2.7 )": {+ "dlHash": "bsrruuke",+ "dlSubdir": {+ "RegexDir": "\\\u001a3A\u001a\u0007\u0006!"+ },+ "dlUri": "http:qljkdxrr"+ },+ "( >= 5.5.5 && <= 7.7.5 && < 8.8.6 && <= 8.2.5 && < 4.8.1 && < 6.1.2 && == 3.1.2 ) || ( == 8.5.2 && < 6.4.8 && == 5.5.4 && < 3.1.3 && == 3.4.8 && <= 3.2.8 && <= 4.7.1 && >= 3.2.6 && == 6.8.3 )": {+ "dlHash": "cbzyfsv",+ "dlSubdir": {+ "RegexDir": "%\u0000<\n"+ },+ "dlUri": "https:"+ },+ "unknown_versioning": {+ "dlHash": "bgesgerf",+ "dlSubdir": "\u0002~{\u000c\\",+ "dlUri": "http:a"+ }+ },+ "FreeBSD": {+ "( < 5.8.6 && == 7.2.1 && == 8.6.3 )": {+ "dlHash": "qfkmstpm",+ "dlSubdir": {+ "RegexDir": "_9{"+ },+ "dlUri": "http:mxmtvhf"+ }+ },+ "Linux_Gentoo": {+ "( < 2.8.1 && >= 4.2.1 && >= 1.8.2 && >= 8.3.4 && >= 2.4.1 && == 6.5.6 && < 1.5.3 && == 7.4.1 && > 2.5.8 ) || ( <= 5.2.6 && < 1.5.4 && < 3.1.5 && <= 3.8.4 && <= 3.2.8 && >= 6.8.7 && < 2.4.3 && > 6.6.6 && <= 2.3.8 ) || ( <= 6.7.6 && > 2.6.1 )": {+ "dlHash": "mgzpkbv",+ "dlSubdir": "\u0016<%S|\u0003𨵚",+ "dlUri": "https:pcsox"+ },+ "( < 4.5.8 )": {+ "dlHash": "umrmuon",+ "dlSubdir": null,+ "dlUri": "https:ff"+ },+ "( == 8.6.4 ) || ( < 1.1.1 && > 2.4.2 ) || ( == 5.3.2 && >= 6.1.8 && > 3.4.2 && >= 6.8.8 && < 4.8.4 ) || ( >= 7.8.4 && > 8.3.4 && > 3.2.5 && < 1.8.4 && == 1.1.7 && >= 5.8.6 )": {+ "dlHash": "gzbyimz",+ "dlSubdir": "]\tX𡂥+",+ "dlUri": "http:di"+ },+ "( > 3.1.4 && == 6.1.2 && > 6.7.2 && == 1.8.6 && <= 1.6.3 && == 5.2.6 && >= 7.5.2 ) || ( <= 4.8.5 && == 8.5.6 ) || ( > 2.3.3 && == 6.2.7 && > 8.5.3 && == 3.3.7 && > 5.2.1 ) || ( < 3.3.2 && <= 4.1.7 ) || ( > 3.2.2 && > 1.4.2 && >= 2.2.4 && < 2.4.1 && >= 1.2.8 && >= 1.5.3 && <= 8.1.7 && <= 3.7.6 && > 7.8.5 )": {+ "dlHash": "gycqy",+ "dlSubdir": null,+ "dlUri": "https:eemeeaj"+ },+ "( > 6.5.4 && <= 3.5.6 && >= 1.1.8 && > 6.5.2 && >= 4.4.1 && <= 6.1.6 )": {+ "dlHash": "rer",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:dhaxf"+ },+ "( >= 3.5.8 && <= 7.4.3 && <= 2.8.6 && >= 6.4.7 ) || ( <= 2.1.2 && >= 1.6.5 && >= 2.7.7 && <= 3.6.4 && == 6.3.5 && > 8.2.3 && <= 3.3.7 && >= 2.6.8 ) || ( >= 7.3.7 && > 4.1.8 && <= 7.2.1 )": {+ "dlHash": "ief",+ "dlSubdir": "㹽\t+\n/,ck",+ "dlUri": "http:ulnsli"+ },+ "( >= 3.7.1 && <= 5.8.4 && <= 5.1.4 && < 2.4.4 && > 7.2.4 && >= 5.7.5 && >= 6.4.2 && <= 8.4.1 && <= 5.1.1 )": {+ "dlHash": "gsg",+ "dlSubdir": null,+ "dlUri": "https:pzwacevh"+ },+ "( >= 6.3.5 && >= 7.8.3 && <= 3.7.8 && == 7.4.2 && < 5.5.5 && == 2.7.3 && < 6.1.6 && <= 6.2.7 && <= 7.1.3 ) || ( == 8.4.7 )": {+ "dlHash": "zzikdqk",+ "dlSubdir": "K[W&`hn",+ "dlUri": "https:dhf"+ }+ },+ "Linux_Mint": {+ "( < 4.6.5 && >= 5.2.4 ) || ( <= 3.5.3 && >= 3.5.2 )": {+ "dlHash": "frqr",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "https:mb"+ },+ "( < 7.5.8 && < 4.3.3 && == 1.2.4 && > 6.6.4 ) || ( < 2.7.4 && >= 1.3.4 && <= 2.1.3 && >= 8.5.8 && < 6.5.1 && <= 7.5.4 && > 1.1.4 && < 3.2.1 && == 4.3.1 ) || ( > 6.1.6 ) || ( < 6.8.4 )": {+ "dlHash": "wjckrr",+ "dlSubdir": "",+ "dlUri": "https:"+ },+ "( == 5.8.3 && > 1.7.4 && <= 7.5.7 && <= 1.1.7 ) || ( <= 2.2.7 && <= 5.1.2 ) || ( <= 5.6.4 )": {+ "dlHash": "fyuq",+ "dlSubdir": null,+ "dlUri": "https:tipazo"+ },+ "( >= 3.6.1 && > 5.4.7 && < 1.3.4 ) || ( > 7.6.1 && > 1.9.7 && == 2.5.8 && > 7.8.2 )": {+ "dlHash": "i",+ "dlSubdir": {+ "RegexDir": "\u0000R8"+ },+ "dlUri": "http:ankc"+ },+ "( >= 8.6.5 && > 8.4.5 )": {+ "dlHash": "c",+ "dlSubdir": null,+ "dlUri": "http:dsutx"+ },+ "unknown_versioning": {+ "dlHash": "sg",+ "dlSubdir": {+ "RegexDir": "\"4\u00029\u000f0𘍁"+ },+ "dlUri": "https:odk"+ }+ },+ "Windows": {+ "( <= 5.2.6 && > 3.5.5 )": {+ "dlHash": "v",+ "dlSubdir": "",+ "dlUri": "http:bgzz"+ }+ }+ },+ "A_ARM": {+ "Darwin": {+ "( < 1.3.3 && <= 3.1.2 && > 7.2.3 && < 3.4.7 ) || ( <= 2.1.5 && < 7.7.7 && >= 1.6.1 && < 5.8.6 ) || ( >= 3.1.4 && >= 7.2.6 && == 4.2.4 && == 6.2.4 && <= 6.4.2 && <= 3.2.7 && >= 5.4.5 && < 6.3.2 ) || ( >= 6.9.4 && == 2.1.6 )": {+ "dlHash": "usgdgr",+ "dlSubdir": {+ "RegexDir": "C𬄧7`\u0008M"+ },+ "dlUri": "http:detosdvn"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "",+ "dlUri": "https:vq"+ }+ }+ },+ "A_PowerPC": {}+ },+ "viChangeLog": "https:",+ "viPostInstall": null,+ "viPostRemove": "h",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "pazpsu",+ "dlSubdir": {+ "RegexDir": "a𗁫d|4"+ },+ "dlUri": "https:ucfte"+ },+ "viTags": [+ "Recommended",+ "Recommended",+ "",+ "old",+ "\u0017M",+ "old",+ "Recommended"+ ]+ },+ "8.6.2": {+ "viArch": {+ "A_32": {+ "Linux_Ubuntu": {+ "( < 6.3.9 && <= 2.5.6 && == 5.6.8 && == 1.1.2 && < 2.6.5 && > 5.6.5 && > 5.5.2 && < 5.3.5 ) || ( == 8.5.4 && > 3.6.8 && > 4.2.3 && < 6.2.3 ) || ( == 4.8.8 && < 2.6.3 && == 1.4.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "ꇀO1"+ },+ "dlUri": "https:ap"+ },+ "( == 2.6.2 && < 8.3.3 && > 7.5.4 )": {+ "dlHash": "dtcjlo",+ "dlSubdir": "]\u0013W\u001b",+ "dlUri": "https:lto"+ },+ "( == 3.4.7 && <= 4.5.1 && <= 5.8.7 && >= 6.5.6 && <= 8.6.1 && == 1.2.8 && < 6.4.6 ) || ( == 4.1.6 && < 3.9.4 && >= 8.7.1 && == 3.1.8 && <= 7.6.4 && == 5.2.4 && <= 1.4.6 && <= 8.3.6 )": {+ "dlHash": "sm",+ "dlSubdir": "\u0002\u0011v",+ "dlUri": "http:gkakchn"+ },+ "( == 4.8.2 && < 1.1.4 && >= 8.7.5 )": {+ "dlHash": "lp",+ "dlSubdir": "l\u0002\u001c+",+ "dlUri": "https:d"+ },+ "( == 6.3.8 && <= 7.6.7 && < 5.8.2 && >= 6.5.7 && == 3.2.2 )": {+ "dlHash": "pt",+ "dlSubdir": "}\u0014V凳]\u0007",+ "dlUri": "https:ktzt"+ },+ "( > 1.3.5 && > 2.7.7 && <= 4.7.5 ) || ( == 3.5.2 && <= 4.2.8 && >= 3.7.8 && >= 1.1.8 && > 8.8.5 && == 3.3.4 && == 3.2.6 && >= 4.4.4 && > 6.3.2 )": {+ "dlHash": "tb",+ "dlSubdir": {+ "RegexDir": "@\u001f𤾠Mx𫭁Ⅱ𘙃"+ },+ "dlUri": "http:w"+ },+ "unknown_versioning": {+ "dlHash": "qrrmeta",+ "dlSubdir": null,+ "dlUri": "https:evt"+ }+ }+ },+ "A_ARM": {},+ "A_ARM64": {+ "FreeBSD": {+ "( < 6.8.3 && == 4.4.1 && <= 7.2.3 && < 4.6.6 && < 8.2.8 && >= 4.5.5 && <= 4.3.8 ) || ( >= 2.7.3 && == 4.3.2 && == 1.6.8 && > 8.6.3 && <= 7.4.3 && > 3.6.8 && == 6.1.3 && >= 1.2.1 && >= 4.7.2 ) || ( < 5.6.4 && > 1.3.2 && >= 5.7.2 && >= 2.3.4 && > 1.2.6 && >= 8.8.5 && == 2.2.5 ) || ( <= 2.5.7 ) || ( < 2.1.6 && < 5.2.8 ) || ( <= 8.5.8 && > 1.4.5 && == 5.4.3 && >= 8.8.6 && >= 3.6.7 && < 4.5.1 && < 5.6.8 && > 6.4.5 ) || ( <= 3.4.3 && <= 4.3.2 && > 1.5.9 && >= 2.4.4 && > 1.3.2 && < 6.6.6 && == 1.1.6 && >= 7.7.2 && == 5.3.7 )": {+ "dlHash": "onretf",+ "dlSubdir": {+ "RegexDir": "B2𪔄|\u0001%"+ },+ "dlUri": "http:g"+ },+ "( <= 7.7.7 && <= 4.3.2 && <= 8.2.6 && > 5.8.2 && == 3.3.1 )": {+ "dlHash": "fuxfqep",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:"+ },+ "( > 8.3.6 && <= 7.3.5 && == 2.4.1 && == 4.5.6 && <= 2.1.3 && > 8.7.6 && <= 1.7.8 && < 6.3.4 )": {+ "dlHash": "s",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( > 8.4.2 && > 1.1.7 && < 5.4.8 && >= 6.4.7 && <= 4.4.1 && >= 3.4.2 )": {+ "dlHash": "",+ "dlSubdir": "?PwT씋6",+ "dlUri": "http:wlvfafu"+ },+ "( > 8.4.2 )": {+ "dlHash": "icolau",+ "dlSubdir": null,+ "dlUri": "https:y"+ },+ "( >= 8.6.4 && > 7.2.8 && == 6.4.3 && < 2.4.4 && <= 2.2.8 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u000f,ꭉ"+ },+ "dlUri": "http:jfmmmqt"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "v𩒵#@\u0008{|"+ },+ "dlUri": "http:iie"+ }+ }+ },+ "A_PowerPC": {+ "Linux_AmazonLinux": {+ "( == 1.8.8 ) || ( > 6.8.7 )": {+ "dlHash": "fgbxxgc",+ "dlSubdir": {+ "RegexDir": "Y`t$4_A"+ },+ "dlUri": "https:yyoqrkkv"+ },+ "( == 3.5.6 && == 4.8.1 ) || ( >= 5.8.5 && <= 2.8.4 && == 7.5.8 && <= 6.4.2 && >= 5.2.3 && < 3.1.8 && < 3.8.4 && > 8.6.4 )": {+ "dlHash": "qbmzv",+ "dlSubdir": "st\u001c鱉e",+ "dlUri": "https:gahueri"+ },+ "( >= 8.3.6 && <= 5.6.5 && > 6.5.5 && == 5.5.2 && < 7.3.5 ) || ( <= 5.8.2 && == 4.6.2 && <= 5.8.1 && == 6.7.7 )": {+ "dlHash": "wabti",+ "dlSubdir": "",+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "zbcc",+ "dlSubdir": "",+ "dlUri": "http:jgtc"+ }+ },+ "Windows": {+ "( < 3.7.7 && <= 3.6.8 && <= 7.1.3 && > 7.4.2 && <= 1.3.3 && == 4.6.4 && <= 7.1.8 ) || ( == 1.3.8 && < 6.7.4 && == 8.6.7 )": {+ "dlHash": "eqchhx",+ "dlSubdir": {+ "RegexDir": "\u0011U]"+ },+ "dlUri": "https:antaji"+ },+ "( > 2.8.7 && == 3.4.8 && < 5.8.4 && > 4.5.7 && < 5.8.3 ) || ( == 8.7.8 && > 6.3.3 && <= 4.6.5 && == 7.7.4 && < 6.8.8 && < 8.8.4 )": {+ "dlHash": "qp",+ "dlSubdir": {+ "RegexDir": "\u0004y歊\u0003"+ },+ "dlUri": "http:rcfpl"+ },+ "( > 7.7.1 && == 5.7.5 && > 7.6.6 && < 4.1.4 && == 7.5.6 && <= 4.7.7 && == 5.7.1 )": {+ "dlHash": "dkcfx",+ "dlSubdir": "-;,",+ "dlUri": "http:jdfwfbrt"+ },+ "( > 8.8.6 && == 8.8.5 && == 6.7.6 && >= 1.7.2 && <= 2.2.7 ) || ( == 5.8.8 && <= 1.5.5 && == 2.6.5 )": {+ "dlHash": "qbkylm",+ "dlSubdir": "",+ "dlUri": "https:ddmqduw"+ },+ "( >= 5.3.2 && < 1.1.2 && > 8.2.8 && <= 2.1.8 && < 8.5.1 )": {+ "dlHash": "ouhkxidq",+ "dlSubdir": "}",+ "dlUri": "https:lqfhxdav"+ },+ "unknown_versioning": {+ "dlHash": "nzafy",+ "dlSubdir": "",+ "dlUri": "http:qves"+ }+ }+ },+ "A_Sparc": {},+ "A_Sparc64": {+ "FreeBSD": {+ "( < 3.2.7 && > 4.7.3 && >= 1.5.7 && < 3.1.5 && <= 8.4.2 && <= 6.3.6 && < 3.3.5 && == 7.2.4 && <= 6.6.6 )": {+ "dlHash": "eohpj",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:gyckka"+ },+ "( < 6.6.2 && == 1.1.7 && < 4.8.6 )": {+ "dlHash": "rm",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:ltij"+ },+ "( <= 3.3.3 && < 5.2.8 && >= 8.7.8 ) || ( <= 6.4.1 && == 8.1.1 && >= 3.2.3 && <= 3.3.9 && < 1.4.6 && > 4.1.7 )": {+ "dlHash": "vpythd",+ "dlSubdir": {+ "RegexDir": "Ij2m\u0013\\R,"+ },+ "dlUri": "http:hceythg"+ },+ "( == 7.6.5 && > 2.8.3 && == 5.2.5 && < 7.8.1 && <= 5.5.2 && >= 8.7.8 && < 7.2.1 && >= 1.5.3 ) || ( < 9.8.6 && >= 4.4.3 && <= 6.4.8 && > 3.4.8 )": {+ "dlHash": "mn",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( > 7.8.6 && < 7.1.4 && >= 8.3.1 && == 2.2.8 && == 3.1.8 && <= 3.2.1 && == 8.8.7 )": {+ "dlHash": "nzsndlw",+ "dlSubdir": {+ "RegexDir": "Rp\u0000\u001c`"+ },+ "dlUri": "http:bughke"+ },+ "( >= 4.1.7 && >= 2.8.3 && < 7.4.6 && >= 1.4.3 && == 7.1.3 && <= 5.1.8 && >= 4.2.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "}M\u0015X;𢈈"+ },+ "dlUri": "https:ubojbh"+ },+ "unknown_versioning": {+ "dlHash": "abkooqhe",+ "dlSubdir": "YL",+ "dlUri": "https:fdf"+ }+ },+ "Linux_CentOS": {+ "( < 8.7.3 && > 5.6.8 && <= 4.1.2 )": {+ "dlHash": "jlbs",+ "dlSubdir": "TUU=\u0003ﲘ\u0003",+ "dlUri": "http:"+ },+ "( <= 2.1.1 && > 3.1.2 && == 7.4.4 && >= 8.3.3 && >= 5.5.4 && > 5.2.3 ) || ( < 7.2.4 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "s𦠭r$9\u0002!"+ },+ "dlUri": "https:nzvjaoq"+ },+ "( <= 2.2.2 && > 8.2.8 && >= 6.4.2 && > 6.3.7 && >= 5.6.4 && > 7.4.8 && > 1.7.6 )": {+ "dlHash": "mksapz",+ "dlSubdir": "S\u000fU|",+ "dlUri": "http:vdsc"+ },+ "( <= 6.5.8 && <= 8.6.8 ) || ( < 1.8.1 && > 6.8.5 ) || ( <= 6.3.4 && < 1.4.5 && < 4.2.4 && == 8.1.3 && >= 3.6.5 )": {+ "dlHash": "p",+ "dlSubdir": null,+ "dlUri": "http:vlabner"+ },+ "( == 4.3.4 && == 7.2.6 && >= 3.7.1 ) || ( >= 3.5.4 && <= 8.2.1 && > 4.4.5 ) || ( == 1.1.4 && <= 4.4.1 && <= 6.6.4 && <= 6.8.4 && > 4.6.6 && < 5.5.7 && >= 7.3.6 && == 6.6.6 )": {+ "dlHash": "qyd",+ "dlSubdir": null,+ "dlUri": "https:eiv"+ },+ "( > 2.4.4 && <= 6.6.8 && < 2.1.4 && == 8.4.3 && == 1.1.3 && == 2.2.7 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\u001ev"+ },+ "dlUri": "http:ciklqw"+ },+ "( > 3.7.1 && == 7.2.7 && < 6.4.7 && > 6.3.6 ) || ( > 3.2.6 && <= 6.7.8 && >= 6.2.8 )": {+ "dlHash": "woocvl",+ "dlSubdir": "Q𫼘\u0011",+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "xpnck",+ "dlSubdir": {+ "RegexDir": "䌘z\u0010𗅗kZZ:"+ },+ "dlUri": "http:"+ }+ },+ "Linux_UnknownLinux": {+ "( < 1.6.2 && > 5.7.7 && >= 1.4.3 )": {+ "dlHash": "xbvrwmw",+ "dlSubdir": null,+ "dlUri": "http:xbbueboy"+ }+ },+ "Windows": {+ "( <= 7.1.1 && >= 4.6.3 && == 5.3.7 && == 5.7.3 && > 6.6.2 && == 3.3.8 && <= 2.5.1 && > 3.1.5 && == 6.7.3 ) || ( <= 1.2.7 && <= 6.4.8 && <= 2.1.1 && == 7.5.8 && <= 4.7.2 && >= 4.3.7 && < 8.8.3 ) || ( <= 7.5.7 && == 7.7.7 )": {+ "dlHash": "cekaiwyc",+ "dlSubdir": {+ "RegexDir": "玉im"+ },+ "dlUri": "http:"+ },+ "unknown_versioning": {+ "dlHash": "f",+ "dlSubdir": "M+Y",+ "dlUri": "http:gndawt"+ }+ }+ }+ },+ "viChangeLog": "https:xogrunjn",+ "viPostInstall": "uvftr",+ "viPostRemove": "",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "orhgsp",+ "dlSubdir": null,+ "dlUri": "https:anoingwt"+ },+ "viTags": [+ "Prerelease",+ "Latest",+ "\u000bl\u0006\u0016 ",+ "Prerelease",+ "Prerelease",+ "base-5.1.6"+ ]+ }+ },+ "Stack": {+ "1.8.8": {+ "viArch": {+ "A_ARM": {+ "Linux_CentOS": {+ "( < 2.7.1 && <= 7.1.1 && >= 6.8.5 && > 4.8.4 )": {+ "dlHash": "psl",+ "dlSubdir": {+ "RegexDir": "\rxJFa"+ },+ "dlUri": "http:crnxjs"+ },+ "( < 2.8.4 && < 8.6.2 && < 2.3.8 && == 7.5.6 && > 2.3.5 ) || ( > 3.6.7 && >= 6.2.8 && == 5.2.2 && > 6.4.5 && == 1.5.6 && < 4.4.7 && <= 1.7.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "<H~킇\u0001\u001e\u0006"+ },+ "dlUri": "https:efbgmnq"+ },+ "( < 5.8.2 && > 2.2.6 && <= 1.8.3 && == 3.3.7 && >= 3.3.4 )": {+ "dlHash": "hufhvadl",+ "dlSubdir": ".",+ "dlUri": "http:emorvm"+ },+ "( == 4.3.2 && > 6.3.7 && == 7.2.4 && > 3.8.1 && >= 4.5.7 ) || ( < 2.3.3 && > 3.6.7 && < 5.7.7 && >= 8.7.4 )": {+ "dlHash": "dtavnypr",+ "dlSubdir": null,+ "dlUri": "https:ax"+ },+ "unknown_versioning": {+ "dlHash": "",+ "dlSubdir": "0tE",+ "dlUri": "http:izg"+ }+ },+ "Linux_Exherbo": {+ "( == 3.5.2 && >= 3.4.7 && >= 3.6.2 && >= 1.6.4 && <= 2.4.8 ) || ( >= 7.3.6 && >= 4.2.1 && >= 4.1.5 && <= 5.8.7 && == 8.4.4 && == 7.1.3 && <= 2.5.3 )": {+ "dlHash": "vunapaff",+ "dlSubdir": null,+ "dlUri": "http:q"+ },+ "( == 8.1.2 && == 4.3.4 ) || ( <= 5.4.6 )": {+ "dlHash": "tyl",+ "dlSubdir": "WNy(\u000cef",+ "dlUri": "https:v"+ },+ "( > 4.4.3 && == 5.6.8 && <= 8.4.4 && < 8.8.7 && <= 6.6.7 && > 1.7.6 && > 1.3.2 && < 7.3.7 && < 2.4.3 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:lujeda"+ },+ "( >= 3.6.7 && < 7.5.4 && == 2.2.3 && >= 6.7.5 && < 7.3.8 && > 2.1.6 && < 6.8.5 )": {+ "dlHash": "ylvvkux",+ "dlSubdir": {+ "RegexDir": "NBo"+ },+ "dlUri": "https:e"+ }+ },+ "Linux_Mint": {+ "( == 6.5.4 && >= 2.4.2 && <= 6.3.5 && == 2.5.8 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "https:zl"+ },+ "( == 8.4.8 && > 2.1.8 && > 4.8.3 )": {+ "dlHash": "krdaun",+ "dlSubdir": {+ "RegexDir": "*d"+ },+ "dlUri": "http:cg"+ }+ },+ "Windows": {+ "( < 6.2.6 && < 2.8.3 && > 1.5.2 && < 5.5.2 && > 8.4.6 && == 2.6.7 )": {+ "dlHash": "zgfj",+ "dlSubdir": "\n\u000c\u0001𦐥tv8",+ "dlUri": "https:t"+ },+ "( < 6.3.3 && >= 1.4.1 && <= 8.3.8 && >= 3.5.4 && >= 8.6.6 ) || ( < 7.3.6 && > 4.1.1 && < 7.5.8 && <= 2.3.3 && <= 2.1.2 )": {+ "dlHash": "cvjr",+ "dlSubdir": {+ "RegexDir": "𢮺z\u0014;\u0019j1{"+ },+ "dlUri": "http:cacdm"+ },+ "( < 6.6.7 && < 8.6.4 && >= 5.6.7 && < 1.2.7 && > 7.2.3 && >= 6.3.4 && <= 6.3.2 && == 1.7.6 )": {+ "dlHash": "j",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:ypwfubtq"+ },+ "( <= 5.3.8 && < 2.6.2 && < 3.8.3 && <= 6.5.5 && >= 3.5.5 ) || ( > 1.3.3 && == 2.6.6 && <= 3.3.9 && == 8.6.2 && < 4.8.8 && > 7.1.1 && == 2.2.8 && < 6.8.4 && >= 1.6.2 )": {+ "dlHash": "df",+ "dlSubdir": "!ᴲ轉nDPzN",+ "dlUri": "http:kfv"+ },+ "( <= 6.7.2 && == 2.6.8 && <= 4.7.3 )": {+ "dlHash": "xpt",+ "dlSubdir": "\u0010",+ "dlUri": "http:w"+ },+ "( > 1.5.3 )": {+ "dlHash": "hapygnu",+ "dlSubdir": {+ "RegexDir": "\u0016\u001a쟛\u0018;Y"+ },+ "dlUri": "https:kxynbs"+ }+ }+ },+ "A_ARM64": {+ "Darwin": {+ "( == 8.9.5 && == 8.5.7 && < 8.1.5 && == 7.8.2 && < 6.6.5 && > 3.7.7 && > 7.3.6 && < 5.2.8 && > 3.2.6 ) || ( == 8.5.4 && == 8.4.6 && < 2.8.4 ) || ( > 7.7.4 && == 6.3.5 && >= 1.8.3 )": {+ "dlHash": "oshekxp",+ "dlSubdir": null,+ "dlUri": "https:amxqrkh"+ },+ "( >= 7.2.6 && >= 3.3.5 && == 2.2.1 && >= 2.5.8 && > 5.5.7 ) || ( <= 2.3.6 && <= 1.1.6 && > 5.1.7 )": {+ "dlHash": "dervd",+ "dlSubdir": "",+ "dlUri": "http:fkqzzdw"+ },+ "unknown_versioning": {+ "dlHash": "djkmvogc",+ "dlSubdir": "\u0019",+ "dlUri": "http:fi"+ }+ },+ "FreeBSD": {+ "( == 2.8.8 && == 2.7.2 && >= 7.2.3 && == 3.6.2 && >= 3.8.7 ) || ( > 5.1.8 && <= 5.1.6 && >= 2.1.3 && <= 7.8.7 && <= 3.6.1 ) || ( <= 7.1.3 && > 6.5.7 && >= 2.8.8 && <= 4.2.4 && > 4.4.7 ) || ( <= 8.7.7 && <= 8.2.3 && <= 2.5.3 && == 7.2.6 && > 7.5.5 && == 1.1.5 && <= 2.2.4 && <= 2.3.6 && == 2.2.7 ) || ( > 4.4.4 && < 2.1.3 && == 3.8.3 && < 9.5.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:"+ },+ "( >= 2.3.5 && <= 4.9.6 && >= 8.8.5 ) || ( < 2.1.8 && < 1.5.7 && >= 6.6.8 && == 8.4.6 && <= 1.3.5 && == 6.3.1 )": {+ "dlHash": "vgzh",+ "dlSubdir": null,+ "dlUri": "https:q"+ },+ "unknown_versioning": {+ "dlHash": "uixya",+ "dlSubdir": "M",+ "dlUri": "http:"+ }+ },+ "Linux_UnknownLinux": {+ "( < 2.1.5 && > 4.3.2 ) || ( == 2.3.3 && > 6.3.7 && > 2.2.3 && >= 3.4.8 && < 8.6.1 && > 2.7.1 ) || ( <= 6.6.7 && >= 2.1.5 && >= 8.8.6 ) || ( < 8.3.1 ) || ( >= 8.5.6 && < 8.6.7 && < 7.4.8 && >= 4.6.7 && < 7.5.8 && > 1.4.4 && < 5.3.3 && >= 7.3.7 )": {+ "dlHash": "zwgzlm",+ "dlSubdir": {+ "RegexDir": "J)\u0011\u001e2\u0002-j"+ },+ "dlUri": "https:q"+ },+ "( < 5.1.2 && > 9.6.4 ) || ( >= 2.9.6 && <= 2.2.1 && < 5.4.4 && < 7.2.7 && <= 7.6.8 && < 8.2.1 ) || ( > 4.8.4 && >= 8.2.3 && < 4.4.3 && > 8.4.4 && >= 9.6.1 && < 6.2.6 && > 2.8.5 && >= 6.2.1 ) || ( == 2.5.7 && >= 1.2.2 && <= 7.7.2 && < 1.6.1 && > 2.7.1 )": {+ "dlHash": "vmh",+ "dlSubdir": {+ "RegexDir": "!A"+ },+ "dlUri": "http:wjm"+ },+ "unknown_versioning": {+ "dlHash": "galzc",+ "dlSubdir": {+ "RegexDir": "+𬘸$Th"+ },+ "dlUri": "https:"+ }+ }+ },+ "A_PowerPC64": {+ "Darwin": {+ "( < 6.3.3 && < 9.5.1 && <= 2.2.1 && == 5.3.3 && < 7.7.6 && == 3.3.4 && <= 6.4.4 && < 3.5.4 && >= 3.6.4 )": {+ "dlHash": "n",+ "dlSubdir": null,+ "dlUri": "http:par"+ },+ "( <= 3.4.6 )": {+ "dlHash": "lynhh",+ "dlSubdir": "g\u0007y|%",+ "dlUri": "https:hzscij"+ },+ "( <= 4.2.4 && > 5.6.4 && < 1.5.2 && < 4.7.5 ) || ( <= 7.6.8 && < 6.2.4 && >= 3.5.8 && <= 8.8.5 && >= 3.4.7 && <= 3.1.7 && >= 4.1.5 && == 5.3.6 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:vtgzv"+ },+ "( >= 8.3.7 && <= 1.7.3 && < 3.4.3 ) || ( < 4.5.1 && < 3.6.2 && == 6.1.9 && >= 4.4.5 && > 6.2.4 )": {+ "dlHash": "ssowgvwc",+ "dlSubdir": {+ "RegexDir": "2$9YV\u000f:"+ },+ "dlUri": "https:yvzb"+ },+ "( >= 8.6.6 && < 3.5.7 && <= 5.4.2 && > 2.7.7 && == 3.7.1 && >= 7.5.2 ) || ( < 1.1.5 && < 6.7.1 && == 6.2.1 && == 2.2.1 && > 2.5.6 && >= 7.8.6 )": {+ "dlHash": "e",+ "dlSubdir": null,+ "dlUri": "https:ocw"+ }+ },+ "FreeBSD": {+ "( <= 6.1.8 && > 4.6.8 && == 4.3.3 && == 8.4.1 && < 7.5.8 && >= 2.4.1 )": {+ "dlHash": "mw",+ "dlSubdir": "9<",+ "dlUri": "http:"+ },+ "( == 8.3.5 && == 8.1.2 && >= 5.2.7 && >= 6.8.8 )": {+ "dlHash": "whryy",+ "dlSubdir": {+ "RegexDir": ""+ },+ "dlUri": "http:yrrdszek"+ },+ "( > 1.4.5 && > 3.5.7 && == 5.4.6 && < 6.1.4 && > 7.7.3 && < 8.3.1 ) || ( <= 1.5.8 && == 6.1.5 && == 4.2.1 ) || ( <= 7.4.3 && > 4.2.7 && > 3.6.1 && == 2.3.4 && < 3.7.1 ) || ( > 2.6.1 && >= 6.6.8 && >= 3.5.2 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "5"+ },+ "dlUri": "https:e"+ },+ "( >= 6.8.1 && < 3.4.4 && <= 6.8.7 && > 8.5.6 && <= 6.2.8 && < 5.3.6 && > 6.8.4 && == 4.8.3 && <= 6.7.1 )": {+ "dlHash": "",+ "dlSubdir": {+ "RegexDir": "\t𖺀ၙ"+ },+ "dlUri": "https:d"+ },+ "unknown_versioning": {+ "dlHash": "zj",+ "dlSubdir": "P\u000e쾾",+ "dlUri": "http:"+ }+ },+ "Linux_UnknownLinux": {+ "( < 2.4.7 && > 1.8.6 && == 7.4.5 )": {+ "dlHash": "foweu",+ "dlSubdir": "",+ "dlUri": "https:ynxdzkv"+ },+ "( <= 4.1.4 && > 4.3.3 && == 4.3.4 && <= 4.4.3 && <= 5.4.6 && <= 8.6.3 && <= 3.7.3 ) || ( >= 4.8.6 && > 4.3.8 && > 3.8.1 && > 1.7.4 ) || ( < 2.6.4 && == 8.8.7 && <= 6.4.2 && == 2.4.6 && > 4.1.2 && <= 3.1.4 && == 7.3.7 ) || ( > 3.8.4 && > 3.6.1 && < 6.1.5 ) || ( < 8.9.4 && > 5.6.6 && > 1.7.3 && > 3.5.1 ) || ( >= 4.5.2 && >= 4.3.8 )": {+ "dlHash": "td",+ "dlSubdir": "#Z\u0001AAU`",+ "dlUri": "https:"+ },+ "( >= 1.2.3 && >= 8.5.6 && < 4.3.8 )": {+ "dlHash": "xjqriwhg",+ "dlSubdir": "vSR`W𝥺e?",+ "dlUri": "https:zepde"+ },+ "unknown_versioning": {+ "dlHash": "cou",+ "dlSubdir": "BD\u0003\u000f\u000f-",+ "dlUri": "https:icf"+ }+ },+ "Windows": {+ "( == 5.6.3 && <= 7.5.2 && <= 2.4.3 && <= 7.1.5 && >= 2.1.3 && < 5.4.2 ) || ( >= 8.4.9 && >= 4.5.4 && < 7.5.3 )": {+ "dlHash": "iqedwv",+ "dlSubdir": {+ "RegexDir": "(㪫Y\u000c"+ },+ "dlUri": "http:qkmhx"+ },+ "( == 7.7.6 && < 7.3.8 && >= 6.3.5 && > 8.7.1 && <= 3.2.5 && == 3.1.6 && == 8.5.4 && == 4.4.7 )": {+ "dlHash": "rm",+ "dlSubdir": {+ "RegexDir": "G/\u0007"+ },+ "dlUri": "https:oikarx"+ },+ "( > 1.2.6 )": {+ "dlHash": "pfu",+ "dlSubdir": {+ "RegexDir": "%\u001dj\u0006︰j"+ },+ "dlUri": "http:xkz"+ }+ }+ },+ "A_Sparc64": {+ "FreeBSD": {+ "( < 5.5.4 && < 8.4.3 && == 3.2.6 )": {+ "dlHash": "hxmym",+ "dlSubdir": null,+ "dlUri": "https:lpv"+ },+ "( > 1.6.1 && <= 6.4.1 && <= 4.4.8 && > 2.2.2 && < 3.7.5 && < 5.7.8 )": {+ "dlHash": "",+ "dlSubdir": null,+ "dlUri": "http:nuytowqw"+ }+ }+ }+ },+ "viChangeLog": "https:todorak",+ "viPostInstall": "js",+ "viPostRemove": "mjwcdv",+ "viPreCompile": null,+ "viSourceDL": {+ "dlHash": "poxbrll",+ "dlSubdir": {+ "RegexDir": "QE"+ },+ "dlUri": "http:qcr"+ },+ "viTags": [+ "Latest"+ ]+ }+ }+ },+ "globalTools": {+ "ShimGen": {+ "dlHash": "hewhezyyffjzzmhtcmjlkcbpume",+ "dlSubdir": "3AD^d𩲒^\u000cjrU\u0015[\u000c\u0012\u0003:%",+ "dlUri": "http:bbynqbgsimmopbljxeicsflaputoo"+ }+ },+ "toolRequirements": {+ "GHC": {+ "6.3.1": {+ "Darwin": {},+ "FreeBSD": {+ "( < 1.5.4 && == 5.7.2 && == 3.5.1 && < 7.1.7 ) || ( >= 2.5.1 && >= 2.5.7 && > 7.7.5 && <= 1.3.5 )": {+ "distroPKGs": [+ "",+ "nfvfgjtv"+ ],+ "notes": "cwnbtnk"+ },+ "( < 3.1.5 && >= 2.3.8 && >= 7.4.5 && == 3.1.1 && == 4.6.6 && == 5.4.6 && < 8.4.4 && < 7.4.7 && > 4.3.4 )": {+ "distroPKGs": [+ "dic",+ "irzy",+ "mujdd",+ "avmfcqzt",+ "suktqmsa",+ "vn"+ ],+ "notes": ""+ },+ "( > 8.2.5 )": {+ "distroPKGs": [+ "tl",+ "qwgyhd",+ "rwpkw",+ "zabitl",+ "qec"+ ],+ "notes": "pkn"+ },+ "( >= 8.3.6 && <= 3.5.8 && < 1.1.4 && >= 2.2.6 && <= 5.6.6 && > 2.3.3 && >= 6.6.8 && >= 3.2.8 ) || ( <= 4.2.5 && == 6.9.8 && >= 6.5.7 && <= 5.8.2 && <= 3.6.4 && <= 6.4.8 && == 7.7.2 && > 2.5.4 && <= 5.2.5 ) || ( >= 6.8.4 && < 6.5.5 && <= 7.7.7 && >= 5.6.8 && < 8.3.1 ) || ( <= 6.4.8 && > 2.2.3 && <= 6.1.3 && >= 1.7.3 && > 6.8.3 )": {+ "distroPKGs": [+ "vsiffnt",+ "jh"+ ],+ "notes": "lsi"+ },+ "( >= 8.4.7 && <= 6.3.3 && <= 8.3.2 ) || ( == 7.6.3 && <= 5.4.1 )": {+ "distroPKGs": [+ "yflo",+ "cmyxrm",+ "zlna",+ "omwbvpv",+ "apnnaj",+ "xfmpog",+ "n",+ "wo"+ ],+ "notes": "zxuwwty"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "ptxm"+ }+ },+ "Linux_CentOS": {+ "( < 1.7.1 && <= 8.7.7 )": {+ "distroPKGs": [],+ "notes": "twusa"+ },+ "( <= 1.7.6 && == 7.1.5 && > 4.3.2 && == 4.2.7 && >= 7.7.2 && >= 6.1.8 ) || ( == 1.8.5 && < 5.5.7 && >= 1.2.7 && == 7.1.4 ) || ( >= 7.8.3 && == 2.8.6 && <= 3.5.8 && > 6.7.6 && > 3.7.3 && > 7.5.5 && < 3.2.1 )": {+ "distroPKGs": [+ "",+ "so",+ "",+ "gefxrl",+ "kzsoy",+ "ynuowov",+ "ir"+ ],+ "notes": "bvayv"+ },+ "( <= 5.4.2 && <= 3.8.2 && < 2.7.2 && == 6.5.3 && > 6.3.4 && <= 4.3.7 ) || ( < 8.4.2 )": {+ "distroPKGs": [+ "ywvx",+ "whfcoycu",+ "svxvnr",+ "bmfgybwm",+ "bjaot",+ "pq"+ ],+ "notes": ""+ },+ "( == 3.1.4 && >= 8.7.8 && > 7.6.4 && < 4.2.2 && < 7.5.1 && < 6.1.4 && == 3.3.5 )": {+ "distroPKGs": [+ "mim",+ "rdbaxks",+ "pueyc"+ ],+ "notes": "tqdpc"+ },+ "( > 5.5.2 && >= 4.8.1 && > 7.3.8 && < 4.5.1 && <= 7.8.4 && >= 3.4.5 && == 7.1.3 )": {+ "distroPKGs": [+ "bvypewl",+ "iymcjlf",+ "hhnrwsim"+ ],+ "notes": "fitxw"+ },+ "( > 8.3.5 && < 3.9.2 && <= 7.6.3 )": {+ "distroPKGs": [+ "kkqcor",+ "rs",+ "s",+ "zjx",+ "bku",+ "pmx",+ "ccvns"+ ],+ "notes": "oo"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "k",+ "w"+ ],+ "notes": "gz"+ }+ },+ "Windows": {+ "( >= 2.2.4 )": {+ "distroPKGs": [+ "nxi",+ "hwvtu",+ "swwoodg"+ ],+ "notes": "veqef"+ }+ }+ }+ },+ "GHCup": {+ "1.3.4": {+ "FreeBSD": {+ "( == 2.6.2 && <= 4.8.8 && > 7.6.1 && < 7.1.3 ) || ( == 5.5.1 && > 1.6.2 && >= 3.7.4 && >= 1.2.1 && == 4.3.8 && < 3.7.1 )": {+ "distroPKGs": [+ "q",+ "",+ "zktpd",+ "",+ "wupuxun",+ "cogs",+ "z",+ "ceaj"+ ],+ "notes": "zlojc"+ },+ "( > 8.3.1 && >= 7.7.6 && <= 1.6.5 && >= 2.2.2 && < 5.8.2 && >= 8.5.3 && < 8.3.2 && < 4.6.3 && >= 6.4.7 )": {+ "distroPKGs": [+ "jvq",+ "dq"+ ],+ "notes": "vzupro"+ },+ "( >= 2.3.6 )": {+ "distroPKGs": [+ "q",+ "swweangz",+ "yumv",+ "lvfxxji",+ "jg",+ "vzw",+ "ohyoxtdw",+ "et"+ ],+ "notes": "ouwjiof"+ },+ "( >= 7.2.3 && >= 3.3.8 && > 6.7.1 && <= 2.5.2 && > 4.4.2 && == 5.5.7 && < 5.5.8 )": {+ "distroPKGs": [],+ "notes": "kya"+ }+ },+ "Linux_Alpine": {+ "( < 1.5.3 && == 8.2.2 && >= 5.5.3 && > 8.7.6 && > 3.1.7 && >= 5.5.7 )": {+ "distroPKGs": [+ "y",+ "h",+ "jfyvhmpr"+ ],+ "notes": "m"+ },+ "( < 2.6.8 ) || ( <= 5.6.4 && > 3.5.1 && == 4.1.4 )": {+ "distroPKGs": [+ "c"+ ],+ "notes": "iedte"+ },+ "( == 1.6.3 && > 1.7.7 && < 6.4.4 && > 1.2.4 && > 2.3.7 ) || ( <= 2.3.7 && <= 6.8.4 && <= 6.2.8 && < 8.4.2 && < 7.2.4 && >= 7.5.1 )": {+ "distroPKGs": [+ "bp",+ "svajkgd",+ "mcuujoq",+ "klgappfi",+ "",+ "cuvhdse"+ ],+ "notes": "hjzq"+ },+ "( == 4.6.4 ) || ( <= 1.4.7 && > 4.7.2 && > 6.2.1 ) || ( > 2.1.4 && < 2.5.6 && == 4.1.4 && < 3.1.2 && > 5.2.5 && > 3.2.7 && >= 2.8.5 )": {+ "distroPKGs": [+ "rov",+ "brydqm"+ ],+ "notes": "mtdgvca"+ },+ "( > 1.7.8 && <= 7.2.4 && <= 5.8.6 && <= 8.7.7 && == 3.6.4 && == 7.3.7 && >= 1.4.2 && <= 3.3.3 ) || ( <= 2.8.4 && <= 6.4.6 && <= 3.4.3 )": {+ "distroPKGs": [+ "jcdqw",+ "hwy"+ ],+ "notes": "tbebe"+ },+ "( > 3.4.4 && > 7.8.7 ) || ( < 8.5.5 && > 1.7.7 && < 8.2.8 && >= 4.3.3 && == 5.5.7 && >= 5.2.1 && >= 4.2.3 && == 2.3.6 && > 3.4.4 ) || ( > 2.6.1 && <= 6.4.6 && <= 7.5.8 ) || ( == 1.1.7 && <= 6.8.8 && >= 8.1.6 && < 5.3.1 && < 6.5.8 && >= 3.8.3 && >= 3.8.1 && > 8.6.8 && >= 7.7.1 )": {+ "distroPKGs": [],+ "notes": "w"+ },+ "( > 5.7.5 && < 5.2.2 && < 7.5.3 && >= 8.7.7 && > 6.4.2 ) || ( > 6.6.7 && == 5.6.5 && < 5.2.2 && > 9.3.3 && >= 5.6.8 && >= 5.5.8 ) || ( >= 4.1.4 && < 8.6.3 )": {+ "distroPKGs": [+ "hkqeqnaa",+ "ms",+ "dyfogys",+ "haz",+ "lqfkgjp",+ "j",+ "nnewjj",+ "w"+ ],+ "notes": ""+ },+ "( >= 1.2.5 ) || ( <= 3.2.6 )": {+ "distroPKGs": [+ "cvthu"+ ],+ "notes": "voilj"+ }+ },+ "Linux_Debian": {+ "( <= 5.8.3 && >= 1.1.2 && == 7.8.8 && < 3.1.2 ) || ( > 4.1.5 && < 8.7.6 && > 4.8.7 && <= 5.3.3 && <= 4.1.7 && >= 3.4.8 && == 6.7.8 )": {+ "distroPKGs": [+ "",+ "jarbpoel",+ "mxmib",+ "",+ "zak",+ "yomqcbz"+ ],+ "notes": "lo"+ },+ "( >= 4.4.8 && == 2.6.1 && > 4.3.4 && == 4.7.3 && >= 5.3.8 )": {+ "distroPKGs": [+ "yqv",+ "phezq",+ "ipvljl",+ "tlhgekz",+ "jbqawi",+ "wptbi",+ "a",+ ""+ ],+ "notes": "ecd"+ },+ "( >= 5.2.5 && < 8.8.5 && < 6.3.8 && == 5.7.6 && >= 4.8.6 && < 3.2.1 && > 8.7.5 && == 4.8.1 ) || ( == 5.7.3 && == 1.5.4 && > 7.1.7 && < 8.6.2 && >= 6.3.8 ) || ( < 2.4.3 && >= 1.6.8 && > 4.8.6 && < 8.2.8 && == 6.5.1 && < 2.2.3 && <= 8.3.7 )": {+ "distroPKGs": [+ "lglhnthr"+ ],+ "notes": "j"+ },+ "( >= 8.2.7 && <= 1.3.8 && > 7.1.4 && <= 8.2.5 && == 1.2.7 && >= 3.6.2 && <= 6.2.7 && <= 4.4.6 ) || ( <= 3.3.5 && >= 2.6.4 && < 2.8.2 && < 2.8.5 && >= 7.1.5 && > 6.6.7 && >= 3.3.8 && >= 3.5.5 )": {+ "distroPKGs": [+ "gpk",+ "ttobjcef",+ "t",+ "fpoow",+ "kfky",+ "",+ "ef"+ ],+ "notes": "o"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "gnqaicy"+ ],+ "notes": "gzy"+ }+ },+ "Linux_RedHat": {+ "( < 8.6.7 && == 8.8.5 && >= 5.8.5 && < 1.3.4 && == 1.2.2 && <= 7.3.6 ) || ( >= 2.4.6 ) || ( > 3.7.4 )": {+ "distroPKGs": [+ "g",+ "",+ "soiencb",+ "qppq",+ "tpyrd",+ "yiwb",+ "o",+ "ruom"+ ],+ "notes": "riamopc"+ },+ "( <= 7.1.2 && > 3.6.3 && < 3.8.7 && < 5.4.8 && == 6.2.8 && <= 3.7.5 && >= 7.2.8 && == 1.7.3 ) || ( > 2.7.1 && >= 3.3.8 )": {+ "distroPKGs": [],+ "notes": "iez"+ },+ "( == 6.4.1 && == 3.2.6 && < 7.6.1 )": {+ "distroPKGs": [+ "",+ "qixshb",+ "",+ "",+ "nkwtodk",+ ""+ ],+ "notes": "gk"+ },+ "( > 7.3.1 && >= 3.7.7 && == 6.8.5 && == 2.6.4 && > 3.8.6 && == 7.6.4 )": {+ "distroPKGs": [+ "qbix"+ ],+ "notes": "taf"+ },+ "( >= 4.3.1 && > 7.8.2 && >= 6.8.6 && == 6.1.1 ) || ( >= 4.8.2 && <= 2.5.6 && <= 1.3.4 && == 2.8.8 && == 5.8.2 && <= 3.8.7 && == 7.8.6 && == 4.8.8 ) || ( >= 2.3.6 && <= 8.6.7 && >= 7.2.2 && == 5.1.1 && <= 4.2.5 && > 3.7.8 && == 8.5.3 ) || ( <= 8.6.1 && > 6.7.4 ) || ( >= 8.5.7 && <= 7.4.2 ) || ( <= 2.5.6 && < 3.1.6 && == 2.2.3 )": {+ "distroPKGs": [+ "wb",+ "",+ "rmamieel",+ "bvwczaro",+ "okz",+ "wlme",+ "lqkpq"+ ],+ "notes": "rbe"+ },+ "( >= 7.1.8 && < 6.7.4 && <= 6.4.7 && == 6.6.4 && <= 7.3.1 && < 8.1.1 && <= 5.4.2 && >= 6.7.4 && > 1.2.3 )": {+ "distroPKGs": [+ "dsosyh",+ "g",+ "nzp",+ "jhrmtqwg",+ "zfa",+ "isdb",+ "aelmxi",+ ""+ ],+ "notes": "day"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "qd",+ "kccbttk",+ "",+ "z",+ "",+ "vtxf",+ "jyqxrr",+ "a"+ ],+ "notes": "rf"+ }+ },+ "Windows": {}+ },+ "3.5.6": {+ "Darwin": {+ "( > 2.3.7 && > 8.1.8 && <= 4.8.8 && <= 2.2.5 && < 5.7.3 )": {+ "distroPKGs": [+ "",+ "wg",+ "qmxg",+ "skw",+ "qu",+ "m",+ "crp",+ "ec"+ ],+ "notes": "iza"+ },+ "( > 3.1.6 && >= 3.1.1 && < 1.8.2 && > 4.1.6 && >= 6.1.4 && > 1.2.7 && < 6.4.2 ) || ( > 3.1.2 && < 4.3.8 && <= 5.6.8 && >= 6.2.1 && == 2.6.7 && > 8.3.1 && < 8.6.5 ) || ( >= 8.6.6 && > 5.5.1 && > 2.7.8 && >= 6.3.1 && > 5.5.2 ) || ( == 7.3.4 && == 4.8.5 ) || ( == 8.4.7 && == 1.2.4 && <= 5.6.8 && <= 1.1.6 && < 7.5.8 && <= 8.2.4 && <= 4.3.8 && > 2.6.5 )": {+ "distroPKGs": [+ "i",+ "rlelwq",+ "ztf"+ ],+ "notes": "wzrgnm"+ },+ "( > 5.5.5 )": {+ "distroPKGs": [+ "",+ "",+ "",+ "jcaxqff",+ "ibuexzlw",+ "dowxortg",+ "avlm"+ ],+ "notes": "iodjfzpm"+ },+ "( > 6.3.2 && == 1.4.4 && == 3.5.1 && > 7.4.4 && >= 7.8.3 && == 4.3.7 && >= 8.5.6 )": {+ "distroPKGs": [+ "zpsqe",+ "xvjxnsko",+ "vjoaqz",+ "tbitj",+ "i",+ "ozl"+ ],+ "notes": "ih"+ },+ "( >= 1.7.6 && >= 3.7.6 && <= 8.1.2 && <= 5.3.1 && > 1.2.4 && <= 8.7.4 && == 4.1.8 )": {+ "distroPKGs": [+ "xdgj",+ "hk",+ "glz"+ ],+ "notes": "a"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "hxifnrdr",+ "",+ "lidrxzb",+ "ecte",+ "oawa",+ "ayp",+ "pn",+ "ekkn"+ ],+ "notes": "xgjka"+ }+ },+ "FreeBSD": {+ "( <= 1.2.4 && > 4.5.8 && < 6.7.8 && <= 9.1.8 && > 1.1.6 )": {+ "distroPKGs": [+ "ioss",+ "",+ "dbspj",+ "foxh",+ "ayfp"+ ],+ "notes": "wzlrhevq"+ },+ "( == 4.5.2 ) || ( < 2.5.7 && <= 3.8.4 && <= 1.6.6 ) || ( < 2.2.2 && > 6.7.8 )": {+ "distroPKGs": [],+ "notes": "wfonkw"+ },+ "( > 6.2.8 ) || ( >= 4.4.5 && > 6.1.5 && >= 6.3.2 && == 3.6.7 && <= 6.6.3 && > 7.8.6 && < 4.7.2 && == 7.4.6 )": {+ "distroPKGs": [+ "gh",+ "t",+ "q",+ "ct"+ ],+ "notes": "xcgijxm"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "ajqli"+ }+ },+ "Windows": {+ "unknown_versioning": {+ "distroPKGs": [+ "uedv",+ "cne",+ "oaqlpswg",+ "pg",+ "zjwsprv"+ ],+ "notes": "wtoc"+ }+ }+ },+ "3.8.7": {+ "Darwin": {+ "unknown_versioning": {+ "distroPKGs": [+ "sfgh",+ "nlgcpgfp",+ ""+ ],+ "notes": ""+ }+ },+ "Linux_Exherbo": {+ "( == 8.8.6 && <= 7.8.8 && >= 2.5.8 && < 6.4.5 && == 7.3.4 && < 6.5.4 ) || ( <= 8.2.1 && < 6.7.8 && >= 1.7.7 && == 5.1.2 && <= 2.3.6 && > 4.5.7 )": {+ "distroPKGs": [+ "fzohmxb",+ "qiesn",+ "nb",+ "ls",+ "mse",+ "ji",+ "cp",+ "kdj"+ ],+ "notes": "qetcliw"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "pcbr",+ "fryica",+ "nqzuwzkd",+ "eeg",+ "d",+ "yoe",+ "fqukevu"+ ],+ "notes": "nb"+ }+ },+ "Windows": {+ "( <= 3.2.2 && == 8.5.8 && < 6.4.5 && == 2.7.7 )": {+ "distroPKGs": [+ "qxfj",+ "meecflic",+ "y",+ "rvzvrme",+ "qauy",+ ""+ ],+ "notes": "potd"+ },+ "( == 3.6.8 && < 3.6.3 ) || ( < 7.3.8 && == 5.5.8 && > 4.5.7 )": {+ "distroPKGs": [+ "tmbnik"+ ],+ "notes": ""+ },+ "( >= 4.7.2 && == 3.5.5 && < 7.4.8 && < 1.5.6 ) || ( > 2.2.3 && < 6.6.4 )": {+ "distroPKGs": [+ "",+ "jkeblhr",+ "stezfh"+ ],+ "notes": "ezdkkbcw"+ }+ }+ },+ "6.6.1": {+ "FreeBSD": {+ "( < 8.7.6 && < 5.4.6 && < 6.8.6 && == 5.1.4 && < 2.8.1 && == 7.8.3 && == 1.6.8 && <= 6.3.3 ) || ( == 3.8.3 && <= 4.8.9 && >= 7.6.1 && < 7.1.8 && >= 8.4.7 && > 4.3.2 ) || ( >= 3.3.7 && == 6.1.4 )": {+ "distroPKGs": [+ "wluwa",+ "mubozir",+ "rhmy"+ ],+ "notes": "smtj"+ },+ "( <= 5.4.8 && >= 6.3.8 && >= 2.2.4 )": {+ "distroPKGs": [+ "jbutlb"+ ],+ "notes": "b"+ },+ "( > 8.2.4 && >= 8.8.8 )": {+ "distroPKGs": [+ "n",+ "",+ "fhhqjqp",+ "tzozco"+ ],+ "notes": "lgihqf"+ },+ "( >= 2.2.5 && > 5.6.3 && >= 5.8.8 && > 5.3.1 && < 6.5.1 && > 1.1.5 && == 9.1.9 )": {+ "distroPKGs": [+ "cf",+ "vnxzdflk",+ "",+ "zr",+ "imtaaxf"+ ],+ "notes": "nrqiohcp"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "qd",+ "sayslik",+ "l",+ "nulinyfx",+ "hzzbvwa",+ "",+ "i"+ ],+ "notes": "rcv"+ }+ }+ },+ "8.6.8": {+ "FreeBSD": {+ "( <= 3.5.4 && < 7.6.1 && == 4.3.2 && >= 7.7.6 && >= 6.1.1 && < 8.8.1 && <= 5.5.4 && == 8.2.4 && == 3.2.1 ) || ( > 3.7.6 && <= 4.7.3 && > 3.6.3 && > 2.3.4 && <= 7.8.8 && > 1.5.6 && <= 2.5.8 ) || ( > 4.3.5 && == 7.3.4 && <= 6.5.1 && < 4.2.2 && == 7.4.2 && == 1.7.7 && == 4.7.8 && <= 8.2.4 )": {+ "distroPKGs": [+ "tqva",+ "",+ "eaxhbbtl"+ ],+ "notes": "arsec"+ },+ "( == 5.7.5 && >= 8.2.6 && < 1.7.1 && >= 5.7.1 && > 3.6.2 && < 8.1.4 )": {+ "distroPKGs": [+ "pnontkrp",+ "xc"+ ],+ "notes": "lvhl"+ },+ "( >= 1.3.8 && <= 3.7.7 && == 7.8.1 && >= 5.3.3 ) || ( <= 5.4.1 && <= 6.4.4 && <= 4.8.4 ) || ( >= 5.1.6 && <= 8.4.2 && >= 1.5.3 && < 6.8.8 && >= 7.8.7 && <= 2.2.8 && > 6.4.4 && < 2.5.8 ) || ( == 6.3.5 && > 4.6.7 && <= 4.2.4 && >= 2.1.4 && == 1.3.4 && <= 1.2.6 && > 6.6.1 && >= 6.4.1 ) || ( == 7.5.5 && > 6.6.7 && >= 2.5.4 && == 5.6.3 && <= 1.2.7 && > 4.3.4 && >= 6.4.2 ) || ( <= 1.4.5 && >= 5.3.3 && >= 8.3.3 && > 8.4.1 && == 2.8.1 && <= 1.6.1 )": {+ "distroPKGs": [+ "bisyjk"+ ],+ "notes": "ozhm"+ }+ }+ }+ },+ "HLS": {+ "1.4.5": {+ "Linux_Debian": {+ "( < 6.2.1 && <= 6.6.3 && >= 2.4.5 && == 1.4.1 )": {+ "distroPKGs": [+ "ighyjq",+ "cib"+ ],+ "notes": "or"+ },+ "( <= 2.1.5 && == 7.4.2 && <= 8.5.2 && > 8.4.6 && > 3.8.5 )": {+ "distroPKGs": [+ "qlxnj",+ "",+ "zwngn",+ "ikv"+ ],+ "notes": "jkydpa"+ },+ "( == 3.3.6 && > 6.8.8 && >= 8.1.3 && <= 4.8.3 && > 1.2.4 && == 2.2.1 ) || ( == 6.5.8 ) || ( >= 5.4.6 && <= 2.5.3 && < 6.8.4 && <= 7.6.2 && > 8.4.5 && > 4.7.1 ) || ( < 4.4.8 && <= 3.6.5 && >= 2.2.7 && < 2.2.1 ) || ( >= 3.8.5 && >= 1.2.1 && <= 3.7.3 && > 5.3.1 && <= 7.3.1 && > 8.8.2 && == 6.4.6 && < 5.5.2 ) || ( == 3.4.6 && <= 3.5.1 && <= 1.5.3 && >= 2.5.5 && >= 1.5.4 && >= 1.1.3 && == 3.3.6 ) || ( < 2.5.1 && > 7.2.7 && > 3.6.6 && == 4.7.2 )": {+ "distroPKGs": [+ "wzlx",+ "gsdr",+ "rrr",+ "aakfrnxv",+ ""+ ],+ "notes": "ggmzpcil"+ },+ "( == 7.6.3 && < 1.6.7 )": {+ "distroPKGs": [+ "wbhysx",+ "ldtrg",+ "bbtbbnwi",+ "rbinwyl",+ "fd",+ ""+ ],+ "notes": "el"+ },+ "( > 6.1.8 && <= 8.5.5 && < 1.5.3 && <= 6.8.6 && < 1.6.6 && <= 6.7.5 && == 8.8.5 && >= 2.1.8 && > 2.4.2 ) || ( >= 8.1.8 && >= 2.3.4 && < 6.6.1 && >= 6.7.6 && >= 1.8.5 && <= 3.7.5 && == 1.1.4 && > 1.8.4 ) || ( <= 8.8.6 )": {+ "distroPKGs": [+ "jd",+ "ohxro",+ "ginckah"+ ],+ "notes": "wosslb"+ },+ "( >= 7.6.7 && == 7.3.5 && <= 5.7.3 && > 4.3.3 && <= 5.8.3 && == 8.8.8 )": {+ "distroPKGs": [+ "i",+ "ljtkfm",+ "jtqiiihs",+ "lewcekwn",+ "cu",+ ""+ ],+ "notes": "owum"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "mnclpft"+ ],+ "notes": "qrjenq"+ }+ },+ "Windows": {+ "( < 3.3.5 && < 3.7.1 && == 5.4.2 && > 8.4.4 && > 1.4.8 && < 2.1.6 )": {+ "distroPKGs": [+ "qhmwq",+ "bqm",+ "osx",+ "lddu",+ "jvrmla",+ "xzo",+ "poa",+ "cd"+ ],+ "notes": ""+ },+ "( <= 4.8.5 && > 5.1.5 ) || ( <= 8.2.7 && < 8.4.5 && >= 8.2.1 && > 4.7.6 && > 7.2.5 )": {+ "distroPKGs": [+ "f",+ "lw",+ "sci",+ "ntuam",+ "jjjumos",+ "eik"+ ],+ "notes": "hds"+ },+ "( > 7.4.9 ) || ( > 5.3.7 && >= 3.8.4 && > 4.3.2 && >= 1.5.2 && >= 4.8.1 && >= 7.8.4 ) || ( < 6.5.6 && > 7.8.5 ) || ( > 6.8.9 ) || ( <= 4.6.3 && < 1.8.5 && <= 2.3.2 && <= 1.5.5 ) || ( >= 6.5.3 && > 8.2.6 && <= 1.1.7 && > 5.8.8 ) || ( >= 8.2.1 && <= 8.5.1 && < 6.3.4 && >= 6.2.4 && > 6.4.8 && <= 3.7.4 && <= 6.2.3 && > 6.5.8 )": {+ "distroPKGs": [+ "tcrkvec",+ "mou",+ "rnxxgo",+ "miuyetc",+ "yg",+ "eqruv",+ "ecsv"+ ],+ "notes": "hdusmyg"+ },+ "( >= 1.1.3 && == 5.8.4 && == 5.5.2 && <= 2.6.3 && > 8.2.6 && >= 5.4.5 )": {+ "distroPKGs": [+ "znkuckwr"+ ],+ "notes": "hufx"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "iyyx",+ "keuxzpu",+ "lrelaq"+ ],+ "notes": "phabb"+ }+ }+ },+ "1.4.6": {+ "Darwin": {+ "( == 8.1.3 && < 6.4.5 && > 5.2.8 && < 5.5.6 && >= 5.6.5 && >= 5.2.3 && > 5.3.6 && >= 6.5.7 )": {+ "distroPKGs": [+ "",+ "scvfglj",+ "tjsh",+ "hgyzbmeu",+ "zmeaera"+ ],+ "notes": "fanf"+ },+ "( > 7.1.4 && <= 8.1.5 && < 8.8.4 && >= 4.4.7 && > 1.8.2 && > 9.7.7 && <= 7.2.1 )": {+ "distroPKGs": [+ "r",+ "wfqv",+ "mnhdnidi"+ ],+ "notes": "uu"+ }+ },+ "Linux_RedHat": {+ "( < 8.3.6 && == 7.3.2 && == 5.7.6 && == 8.8.7 && < 4.5.8 && > 2.7.3 && > 7.3.6 && <= 8.1.7 && == 3.2.4 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "wvhyntkx"+ },+ "( <= 3.5.7 && <= 4.6.7 && >= 4.4.3 && < 4.3.8 && == 2.8.1 && <= 6.8.8 && > 2.8.1 && > 5.8.1 && == 2.7.6 )": {+ "distroPKGs": [+ "v",+ ""+ ],+ "notes": ""+ },+ "( <= 5.5.1 && >= 8.8.4 && > 4.7.8 && > 3.2.8 )": {+ "distroPKGs": [+ "gsxgw",+ "opzaxdte",+ "djvxnpn"+ ],+ "notes": "c"+ },+ "( <= 6.4.5 && > 4.4.7 && > 7.3.4 )": {+ "distroPKGs": [+ "iwxlzo",+ "woqgztki",+ "qs",+ "drukgr",+ "ldwnej",+ ""+ ],+ "notes": "emwic"+ },+ "( == 7.1.4 && >= 2.2.1 && < 2.6.4 && > 5.3.3 ) || ( == 7.8.3 && == 2.8.6 && < 1.5.6 && < 1.4.7 && >= 4.2.2 )": {+ "distroPKGs": [+ "huavrsuk",+ "ctkxeds",+ "npn",+ "vga"+ ],+ "notes": ""+ },+ "( > 1.5.7 && <= 5.6.6 ) || ( < 5.4.3 && >= 3.1.6 && < 2.5.6 && < 5.7.7 ) || ( == 4.8.8 && >= 1.2.3 && <= 2.5.6 )": {+ "distroPKGs": [+ "xwnna",+ "ldwn",+ "onaehjw",+ "fepyada",+ "pjwce"+ ],+ "notes": "lle"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "bgnkwl",+ "vqprghmk",+ "sro",+ "mttka",+ "veyjmz"+ ],+ "notes": "buo"+ }+ }+ },+ "2.1.7": {+ "Darwin": {+ "( == 2.2.6 && >= 4.2.8 && == 3.5.4 && > 3.6.6 && > 8.4.1 && == 5.6.5 && > 4.1.6 && >= 3.3.8 )": {+ "distroPKGs": [+ "",+ "",+ "qwhapoh",+ "gvyq",+ "c"+ ],+ "notes": "vflor"+ },+ "( >= 4.2.5 && > 2.1.6 && < 1.7.3 ) || ( > 4.7.7 && == 5.6.6 && <= 6.7.5 )": {+ "distroPKGs": [+ "olaedyt"+ ],+ "notes": "s"+ },+ "( >= 7.8.4 && > 7.1.6 && > 6.3.1 ) || ( > 6.2.8 && > 3.2.5 && < 3.7.6 && <= 8.3.2 && > 1.3.5 && == 7.5.5 && == 2.3.6 && < 6.7.7 )": {+ "distroPKGs": [+ ""+ ],+ "notes": ""+ },+ "unknown_versioning": {+ "distroPKGs": [+ "yzlsbuc",+ "snwy",+ "fhbjx",+ "q",+ "jbximmb",+ "nveslud",+ "zu",+ "d"+ ],+ "notes": "oqmvzm"+ }+ },+ "FreeBSD": {+ "( == 8.4.8 && <= 6.5.6 && < 8.8.2 && >= 5.2.3 && >= 3.3.8 )": {+ "distroPKGs": [+ "ctey",+ "i",+ "d",+ "gz",+ ""+ ],+ "notes": "b"+ },+ "( >= 5.2.3 && > 1.6.8 && >= 4.5.3 && == 7.2.6 && == 3.7.2 && < 6.8.2 && > 8.7.2 ) || ( > 3.5.1 ) || ( < 6.5.5 && <= 4.3.6 && >= 7.3.8 && >= 4.2.2 && > 3.3.5 && >= 1.4.8 && > 6.3.2 && <= 2.8.5 && == 5.8.3 ) || ( >= 6.6.8 && >= 6.6.6 && == 1.4.8 && >= 4.4.2 ) || ( <= 1.3.8 && < 1.7.7 && < 1.7.6 && >= 6.8.7 && >= 3.3.2 && <= 6.4.8 ) || ( >= 3.1.8 && <= 6.4.2 && >= 5.6.3 && > 2.8.1 && < 7.4.8 && == 4.2.6 ) || ( <= 4.7.2 && > 7.2.8 && <= 3.3.5 && > 8.7.3 && >= 3.4.3 && <= 5.3.8 && <= 4.1.7 ) || ( > 4.1.3 ) || ( <= 2.7.3 && <= 6.8.5 && == 1.5.8 && <= 8.4.5 && >= 2.5.5 && >= 2.3.5 && > 5.3.3 && <= 7.6.1 && == 1.6.2 ) || ( >= 1.5.4 && >= 3.3.3 && <= 3.6.4 && < 1.8.3 && == 6.1.1 && < 8.2.6 && > 4.8.7 && >= 7.4.8 ) || ( == 3.2.7 && >= 2.7.6 && <= 3.4.4 && == 4.3.7 && <= 4.3.2 && >= 6.5.6 )": {+ "distroPKGs": [+ "agwdbj",+ "lit",+ "",+ "r",+ "ckxs"+ ],+ "notes": "apqtm"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "",+ "",+ "mqpkqq"+ ],+ "notes": ""+ }+ },+ "Linux_AmazonLinux": {+ "( < 4.1.6 && >= 2.5.7 && > 2.8.7 && < 8.2.7 && == 3.5.6 && > 5.5.2 && >= 5.6.6 && < 1.7.8 && < 1.1.6 )": {+ "distroPKGs": [+ "fop",+ "ptwe",+ "",+ "e",+ "xop",+ "go",+ "tvu"+ ],+ "notes": "hhkri"+ },+ "( <= 7.1.5 && >= 6.7.1 && < 3.1.7 && == 2.7.4 && < 8.1.6 ) || ( >= 5.4.7 && > 6.8.5 ) || ( < 9.6.5 && == 5.3.8 && < 8.1.7 && > 6.7.4 && <= 2.4.7 && > 1.5.6 && <= 7.5.2 )": {+ "distroPKGs": [],+ "notes": "fxhyh"+ },+ "( == 8.7.6 && < 5.5.5 && == 5.2.2 && < 4.5.8 && < 1.1.1 ) || ( > 1.8.7 && >= 6.2.4 )": {+ "distroPKGs": [+ "jxgpzs",+ "fcw"+ ],+ "notes": "rp"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "adecgbdd",+ "cnj",+ "wfica",+ "kso",+ "",+ "zhg",+ "ebkcjy"+ ],+ "notes": "gyjehm"+ }+ },+ "Linux_Debian": {+ "( == 8.8.2 && > 7.7.3 && == 4.3.2 && >= 2.8.7 && <= 7.3.2 && >= 8.5.3 && >= 2.3.6 && <= 8.5.7 && > 1.4.5 )": {+ "distroPKGs": [+ "tpxih",+ "kgqyyga",+ "efmslo",+ "hfxlcu",+ "vutbmou",+ "j",+ "",+ "qnc"+ ],+ "notes": "cqmeyng"+ },+ "( > 2.5.4 ) || ( == 4.7.4 && <= 2.4.6 && <= 9.8.2 && < 2.6.1 && == 6.8.7 && >= 7.1.8 && > 1.3.6 ) || ( <= 8.8.6 && >= 5.1.3 && >= 2.1.4 && < 8.1.5 ) || ( < 8.1.3 && >= 7.4.7 && < 7.1.7 && <= 2.6.2 && <= 6.3.6 && >= 7.7.5 )": {+ "distroPKGs": [+ "pqanib"+ ],+ "notes": "vkqnvz"+ },+ "( > 2.5.7 && == 1.3.4 && >= 8.7.4 && > 5.6.8 && < 5.8.1 && >= 1.8.3 )": {+ "distroPKGs": [+ "sfmixclk"+ ],+ "notes": ""+ },+ "( > 6.6.1 && == 1.7.8 && < 7.1.4 && == 4.7.6 && <= 1.4.2 )": {+ "distroPKGs": [+ "q",+ "xt",+ "jphd",+ "nbi",+ "kugczaya"+ ],+ "notes": "zht"+ },+ "( >= 1.8.4 && >= 2.4.4 && <= 8.8.4 ) || ( <= 3.8.8 && >= 7.1.4 && > 5.2.6 && > 8.7.3 && == 7.5.2 && >= 4.3.8 && >= 7.3.3 && >= 4.8.3 )": {+ "distroPKGs": [+ "slnzh",+ "zz",+ "jtfze",+ "nxob",+ "gkln",+ "hsut",+ "dbt"+ ],+ "notes": "odekum"+ },+ "( >= 3.8.2 && >= 5.5.2 && < 3.7.1 && == 2.4.7 && == 7.2.8 && <= 4.3.6 && <= 1.2.4 ) || ( >= 4.7.6 && >= 6.3.5 && < 4.5.7 && <= 2.7.2 && <= 4.1.9 && < 8.8.8 ) || ( < 2.1.5 && > 2.7.8 && == 1.7.4 && > 6.6.3 && >= 4.8.8 && <= 6.1.2 && < 5.2.1 )": {+ "distroPKGs": [],+ "notes": "uwu"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "clba",+ "caweqy",+ "ksgx",+ "f"+ ],+ "notes": "vu"+ }+ },+ "Linux_Ubuntu": {+ "( >= 2.8.4 && == 5.5.3 && <= 9.1.1 && < 7.6.2 && <= 2.3.2 && > 3.4.7 && > 1.8.9 )": {+ "distroPKGs": [+ "iv",+ "lnnn",+ "jhaken",+ "xyftneuu",+ "ve"+ ],+ "notes": "xrty"+ }+ }+ },+ "2.2.8": {+ "Darwin": {+ "( < 5.5.8 && <= 3.3.6 && < 7.8.3 && == 6.6.6 && < 6.8.7 ) || ( <= 6.6.8 && > 6.3.4 && >= 9.5.4 && > 3.5.6 && == 8.8.5 && >= 5.1.6 && < 5.3.2 && < 4.2.2 && >= 8.1.1 )": {+ "distroPKGs": [+ "h",+ "s",+ "fcpo",+ "",+ "pr",+ ""+ ],+ "notes": "upwiew"+ },+ "( > 6.7.7 && < 2.2.6 ) || ( >= 1.8.8 && >= 6.7.8 && <= 1.1.6 && == 3.3.8 && == 6.1.4 )": {+ "distroPKGs": [+ "c",+ "payxxaqj",+ "",+ "ojsfr",+ "o"+ ],+ "notes": "mbk"+ },+ "( >= 5.3.7 && <= 8.3.6 && > 8.7.5 && < 4.6.1 && == 2.6.1 && < 8.8.5 && == 1.4.3 && >= 2.1.6 ) || ( <= 1.1.8 && >= 1.1.2 && <= 2.6.3 && < 3.3.8 && > 6.6.3 && >= 7.2.3 && > 8.7.8 ) || ( < 5.1.3 && > 2.7.7 && >= 2.4.6 && <= 7.5.9 && < 1.3.5 && > 8.4.8 && < 2.2.2 ) || ( < 4.7.6 && <= 6.7.7 && == 1.6.4 )": {+ "distroPKGs": [],+ "notes": "tyxbd"+ }+ },+ "FreeBSD": {+ "( >= 2.9.2 && <= 6.2.1 && >= 1.6.2 && == 2.4.3 && < 7.8.5 && < 3.2.6 && == 8.1.1 && > 3.5.2 && < 8.7.7 )": {+ "distroPKGs": [],+ "notes": "miixut"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ecjnf",+ "r",+ "zrzvbor",+ "imfasgai",+ "tnhsofza"+ ],+ "notes": "ay"+ }+ },+ "Linux_Exherbo": {+ "( >= 7.3.5 && <= 4.8.5 && <= 5.3.2 && <= 5.4.4 && < 6.4.4 && >= 3.6.8 )": {+ "distroPKGs": [+ "e",+ "vfrfglgi"+ ],+ "notes": "govf"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "soup",+ "gf"+ ],+ "notes": ""+ }+ },+ "Linux_UnknownLinux": {+ "( <= 1.6.3 && == 1.3.1 && <= 1.4.4 && > 8.4.3 && == 4.5.6 && >= 8.2.4 && == 6.7.1 && >= 8.6.3 && >= 2.1.7 )": {+ "distroPKGs": [+ "ecyfh",+ "gzazpbpf",+ "mozlft"+ ],+ "notes": "rnjtiu"+ },+ "( <= 5.4.8 && == 6.3.9 && < 4.5.3 && < 7.6.1 && > 3.8.8 && == 1.1.1 && < 8.4.6 && == 8.5.1 && == 5.2.2 ) || ( >= 2.6.3 && == 3.2.1 && <= 8.2.8 && == 7.5.1 && == 3.2.4 && > 8.7.6 && > 7.4.8 && < 6.6.3 ) || ( > 3.3.4 ) || ( < 7.7.5 && <= 8.3.8 )": {+ "distroPKGs": [+ "filhguw",+ "b",+ "ejg"+ ],+ "notes": "a"+ },+ "( <= 7.3.6 && <= 8.2.2 )": {+ "distroPKGs": [+ "cueql",+ "wokzs",+ "sokus",+ "clqp"+ ],+ "notes": "ta"+ },+ "( == 4.8.5 && >= 1.2.5 && > 3.6.1 && > 6.3.7 )": {+ "distroPKGs": [+ "kx",+ "",+ "ijc",+ "",+ "",+ "t",+ "b"+ ],+ "notes": "ixgd"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "b"+ }+ },+ "Windows": {+ "( < 1.8.8 && == 1.3.7 && >= 8.4.1 && <= 8.3.7 && > 7.7.1 )": {+ "distroPKGs": [+ "tcqpbmx",+ "su",+ "",+ "bkql",+ "eizz",+ "ua"+ ],+ "notes": ""+ },+ "( >= 5.3.3 && < 3.3.5 && <= 5.8.1 ) || ( == 7.6.2 && == 7.3.8 && == 5.7.1 ) || ( < 5.4.2 && < 8.5.3 && == 8.1.2 && > 4.6.1 )": {+ "distroPKGs": [],+ "notes": ""+ }+ }+ },+ "2.3.1": {},+ "4.5.5": {+ "Darwin": {+ "( < 8.8.7 && >= 4.4.1 && > 7.1.8 && <= 3.5.4 && >= 1.6.7 && == 5.8.7 && >= 5.3.6 && <= 2.7.2 && < 1.7.6 ) || ( >= 2.6.1 && < 3.7.3 && <= 1.8.2 )": {+ "distroPKGs": [+ "gplf",+ "len",+ "yvbxdxsj",+ "ojgpzozd",+ "wlflpdjj",+ "odphho"+ ],+ "notes": "hpeqebal"+ },+ "( <= 5.3.3 && == 3.7.1 && >= 3.1.5 && <= 4.1.2 )": {+ "distroPKGs": [],+ "notes": ""+ },+ "( <= 8.4.3 && <= 3.1.8 && <= 1.8.3 && <= 7.7.8 && < 6.8.4 && > 8.5.3 && < 3.7.8 && <= 2.2.8 && == 5.7.5 ) || ( >= 4.6.4 && <= 4.8.5 && == 4.1.2 && >= 4.4.5 && == 3.1.4 && == 2.2.3 && < 5.6.6 && >= 2.7.6 ) || ( == 5.2.6 && < 3.3.2 && == 5.7.8 && <= 2.8.3 && == 2.6.1 && <= 5.5.6 && == 1.1.4 && < 7.5.8 && < 6.5.2 ) || ( <= 6.2.7 && == 8.7.6 && < 4.7.8 && >= 1.4.8 && == 6.7.8 && > 3.4.1 && >= 3.4.4 && < 3.3.5 && <= 6.1.2 ) || ( >= 2.4.3 && > 6.3.8 && >= 8.4.3 && <= 8.2.3 && >= 1.6.4 && < 5.6.8 && <= 6.7.2 && > 5.2.6 ) || ( <= 3.1.4 && > 6.7.5 && > 1.3.2 && > 3.6.2 && >= 6.1.2 && > 3.8.1 && > 1.1.5 && > 6.8.1 ) || ( > 4.3.2 && == 3.8.6 && < 3.3.8 && < 5.2.2 && >= 7.6.3 && >= 6.8.2 && <= 8.8.6 && > 5.1.1 ) || ( == 2.2.6 )": {+ "distroPKGs": [],+ "notes": "fw"+ },+ "( == 2.8.2 && <= 4.2.2 ) || ( == 2.6.5 && <= 7.8.5 && > 4.4.8 && >= 3.1.1 && <= 8.4.7 && >= 3.7.3 && >= 5.4.2 )": {+ "distroPKGs": [+ "dtw"+ ],+ "notes": ""+ },+ "( == 8.1.7 && == 3.1.8 )": {+ "distroPKGs": [+ "lnmueo",+ "brkkkrki",+ "xxufhhwc"+ ],+ "notes": "fx"+ },+ "( > 1.8.4 && <= 2.6.2 )": {+ "distroPKGs": [+ "",+ "lovikvn"+ ],+ "notes": "bzul"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "hu"+ }+ },+ "FreeBSD": {+ "( < 2.2.7 && > 5.1.6 && == 6.3.6 && > 1.7.2 && >= 2.7.1 && < 1.3.2 ) || ( <= 8.8.3 && <= 4.3.4 && <= 8.2.7 && <= 5.5.1 && == 8.6.8 && < 6.2.5 && > 8.7.2 ) || ( == 6.7.3 && == 8.6.9 && > 8.8.5 && < 8.2.3 && < 3.6.8 && <= 4.8.6 && == 3.8.8 && < 3.2.8 && >= 6.4.2 )": {+ "distroPKGs": [+ "gvsvl",+ "",+ "lextx",+ "qbr",+ "inc",+ "tsz",+ "kzrjh",+ "tsw"+ ],+ "notes": "xcid"+ },+ "( <= 5.1.5 && < 6.6.6 && < 8.9.3 && == 5.6.8 && > 3.1.3 && == 2.1.2 )": {+ "distroPKGs": [+ "g",+ "jh"+ ],+ "notes": "d"+ },+ "( >= 5.1.3 && <= 5.5.3 && < 4.2.5 && == 1.5.5 && > 3.8.1 && > 3.7.6 && > 6.1.8 && == 3.5.5 && >= 3.3.2 ) || ( == 8.4.4 && == 5.1.7 ) || ( <= 1.1.6 && >= 7.2.2 && <= 1.2.3 && > 7.4.3 ) || ( >= 7.1.2 && > 1.4.5 && <= 6.8.1 )": {+ "distroPKGs": [+ "heuu",+ "ij",+ "mliuynil"+ ],+ "notes": "pki"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "lsxu",+ "is",+ "ysssqj",+ "tzj",+ "m",+ "bzkf"+ ],+ "notes": ""+ }+ },+ "Linux_Exherbo": {+ "( < 1.8.4 && < 8.3.6 && <= 4.3.4 && >= 8.8.8 && >= 4.4.8 && >= 3.4.3 && <= 1.1.1 && <= 7.1.2 && < 1.8.6 )": {+ "distroPKGs": [+ "",+ "izrlftf",+ "",+ "hu",+ "g",+ "vtug"+ ],+ "notes": ""+ },+ "( == 1.1.6 && == 6.3.3 && < 3.4.3 && <= 7.6.7 && >= 5.6.5 && <= 3.8.1 && < 4.4.2 && <= 2.5.8 && <= 2.3.8 ) || ( >= 2.7.5 && < 1.2.7 && == 6.1.7 && < 2.5.3 && == 3.8.5 && < 1.2.4 && > 5.7.3 && <= 5.2.7 && < 4.3.2 )": {+ "distroPKGs": [+ "qenyuxeu",+ "zy"+ ],+ "notes": "sizbx"+ },+ "( >= 7.3.1 && < 1.7.4 && < 8.1.7 && > 2.2.1 && > 7.2.7 && == 4.7.8 )": {+ "distroPKGs": [+ "hvcogxrq",+ "neyljfq",+ "adqzynfg",+ "bdf",+ "etfvb",+ "ifqthkoa"+ ],+ "notes": "lpymwns"+ },+ "( >= 7.7.4 && <= 3.7.5 && > 4.5.6 && == 4.7.3 && <= 5.5.3 && > 1.5.7 && <= 2.8.6 && > 2.7.2 && >= 1.7.7 ) || ( < 2.6.8 && >= 3.8.4 )": {+ "distroPKGs": [+ "nxtyuk",+ "pf",+ "rpa",+ "vlcgbvdd"+ ],+ "notes": "b"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "iznqmjva",+ "jp"+ ],+ "notes": ""+ }+ },+ "Linux_Fedora": {+ "( < 2.1.5 && == 7.4.8 && >= 8.2.2 && < 1.6.8 )": {+ "distroPKGs": [],+ "notes": "hcqdbgv"+ },+ "( < 2.4.7 && == 1.3.4 && >= 1.4.4 && > 5.1.3 && <= 8.6.2 && > 4.7.5 && < 6.4.7 && < 8.1.3 )": {+ "distroPKGs": [+ "hphgh",+ "gi",+ "wwmjf",+ "qv",+ "vy",+ "y"+ ],+ "notes": "iyi"+ },+ "( < 7.6.3 && == 4.5.4 )": {+ "distroPKGs": [],+ "notes": "ywpjpyog"+ },+ "( == 8.3.1 )": {+ "distroPKGs": [+ "dxtgqw"+ ],+ "notes": "ymgfwr"+ },+ "( == 8.7.3 && == 5.5.5 && <= 6.8.3 && <= 2.7.5 && >= 4.7.2 && > 2.3.3 && == 8.3.7 && >= 5.8.7 )": {+ "distroPKGs": [+ "ulhqc",+ "hcz",+ "xkusych",+ ""+ ],+ "notes": "jtpotldu"+ },+ "( > 1.7.2 && == 2.7.1 && == 2.1.8 && == 5.7.2 && > 6.5.6 && <= 7.2.7 && >= 3.5.8 )": {+ "distroPKGs": [+ "zrgf",+ "",+ "b",+ "ih",+ "ozoamayu",+ "ukai"+ ],+ "notes": "ahga"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "kp",+ "rbvq",+ "bns",+ "fxgwc",+ "qmoia",+ "hyepdiym",+ "uirknrsw"+ ],+ "notes": "sd"+ }+ },+ "Windows": {+ "( < 4.6.2 && <= 1.5.7 && == 5.4.4 && <= 3.3.8 && > 1.7.9 && <= 1.3.3 && >= 3.7.5 && > 4.3.3 ) || ( >= 6.7.7 && <= 7.1.6 && <= 1.2.6 && < 3.2.2 ) || ( >= 7.8.1 && == 5.4.2 ) || ( == 6.1.3 )": {+ "distroPKGs": [+ "xaidan",+ "ckclo",+ "hdtnktcu",+ "v"+ ],+ "notes": ""+ },+ "( == 1.7.7 && < 7.6.3 && < 7.5.5 && == 5.6.1 && > 4.4.4 && > 4.6.2 && > 3.4.7 ) || ( < 7.4.4 && <= 8.3.2 && < 1.8.1 && <= 2.2.5 && < 8.3.5 && <= 8.3.1 && > 2.6.8 ) || ( <= 7.2.6 && > 3.5.3 && < 7.2.8 && >= 5.5.8 && == 5.6.2 && >= 3.7.2 && >= 7.5.1 && == 7.3.3 && > 8.6.5 ) || ( >= 5.7.3 && == 1.7.7 && <= 3.6.8 && < 1.7.6 )": {+ "distroPKGs": [+ "mebzw",+ "ptpoti",+ "rtgc"+ ],+ "notes": "lxyzg"+ },+ "( > 3.4.2 && > 7.7.7 && < 8.6.7 && == 3.8.7 ) || ( >= 6.1.6 && <= 5.4.6 && > 3.5.3 ) || ( <= 3.8.6 && < 6.6.7 && >= 6.5.8 && >= 8.5.5 && == 3.5.1 && <= 7.4.3 && == 1.1.3 ) || ( < 7.7.1 && > 5.4.5 && > 2.1.3 && >= 5.5.2 && < 1.8.7 && < 2.3.1 && < 3.4.5 && >= 7.6.5 )": {+ "distroPKGs": [+ "uecyef",+ "irj",+ "la",+ "v",+ "agpptp",+ "xjbfssp",+ "rxmu"+ ],+ "notes": "lw"+ },+ "( > 9.5.1 && <= 2.8.3 && < 1.6.7 && >= 4.6.6 && >= 6.5.5 && <= 2.8.5 && <= 7.4.8 )": {+ "distroPKGs": [+ "yzzfx",+ "tljdxqwg",+ "rbolc",+ "rcpwt",+ "",+ "dnyate",+ "n",+ "lj"+ ],+ "notes": "enepamw"+ },+ "( >= 4.1.2 && >= 7.3.6 && <= 4.8.4 && > 5.2.7 && > 2.3.8 && == 7.8.4 && <= 8.6.1 && >= 8.6.4 && > 1.3.8 ) || ( == 4.7.3 && < 8.8.3 && > 2.4.5 )": {+ "distroPKGs": [+ "",+ "pjeayd",+ "xgnbuxxj",+ "",+ "wg",+ "sakslldf",+ "wreycec"+ ],+ "notes": "yeucyv"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "gbtviks",+ "qnx",+ "dl",+ "",+ "wj",+ "asyjkrm",+ "hns",+ "j"+ ],+ "notes": "u"+ }+ }+ },+ "5.4.2": {+ "Darwin": {+ "( <= 8.4.8 && >= 2.2.4 && > 6.4.1 && == 7.6.3 && > 5.7.8 && >= 7.5.7 && == 3.6.8 && <= 4.1.2 )": {+ "distroPKGs": [+ "adtbvg"+ ],+ "notes": "r"+ },+ "( == 8.2.3 && == 8.1.8 )": {+ "distroPKGs": [+ "hjgugrd",+ "qrqazbl",+ "onpje",+ "",+ "adgdfthc",+ "yrb",+ "alkkh",+ "z"+ ],+ "notes": "ihzo"+ },+ "( > 4.3.5 && < 8.2.4 )": {+ "distroPKGs": [+ "qcne",+ "j",+ "plkeqmjn",+ "itlrvic",+ "wyl",+ "grnb",+ "hb",+ "wyojkbm"+ ],+ "notes": "g"+ },+ "( > 4.6.4 && <= 1.4.1 ) || ( == 1.3.1 ) || ( == 2.6.8 && < 6.1.7 && >= 7.3.7 && <= 5.3.7 ) || ( < 6.7.9 && > 5.2.7 && == 1.3.4 && > 3.1.6 && <= 2.8.5 && <= 5.2.5 ) || ( < 7.7.7 )": {+ "distroPKGs": [],+ "notes": "ckzgzl"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ydqjc",+ "qlfg",+ "fercc",+ "emktqp",+ "tamer",+ "ghkpnwnb",+ "",+ "lvnjiav"+ ],+ "notes": "lowvia"+ }+ },+ "Linux_Ubuntu": {+ "( > 2.5.7 && == 4.6.5 && < 1.6.6 && > 5.5.8 && < 1.3.5 && < 1.6.4 )": {+ "distroPKGs": [+ "ykgmf",+ "kcjlkub",+ "ty",+ "bltfixxq",+ "tywxwj"+ ],+ "notes": "pfdvhlgt"+ },+ "( > 3.3.2 && > 3.3.6 && > 1.4.6 && > 4.8.6 ) || ( >= 5.3.5 && >= 1.8.4 && > 7.5.8 && > 2.2.3 && >= 1.5.5 && <= 4.6.3 && > 7.3.5 ) || ( <= 6.3.1 && < 7.5.5 && > 6.1.4 && >= 6.1.5 ) || ( == 5.2.1 && > 6.7.7 && <= 1.2.6 && < 6.6.3 ) || ( <= 1.3.4 && == 5.7.2 && < 2.7.5 && < 6.2.5 && >= 8.4.3 && < 6.9.7 && < 4.7.1 && == 4.2.7 ) || ( >= 5.8.1 && > 7.2.2 && <= 3.2.4 && > 1.1.8 && <= 2.4.3 && == 7.8.7 && < 3.6.8 && > 4.5.4 && < 4.7.9 ) || ( <= 7.7.6 && <= 5.2.1 && == 8.5.7 && > 2.3.2 )": {+ "distroPKGs": [+ "llktrowb"+ ],+ "notes": "metwcheo"+ },+ "( > 4.3.7 && < 7.2.7 && <= 5.8.1 && == 6.3.4 && == 2.6.8 && < 7.5.7 )": {+ "distroPKGs": [+ "upbxe",+ "",+ "qiaslrox",+ "etoc",+ "s",+ "q",+ "gvgfonnr"+ ],+ "notes": "hbdjjj"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ygbu"+ ],+ "notes": "djmxz"+ }+ },+ "Windows": {+ "( > 4.2.1 && > 10.5.4 && == 3.3.5 && >= 8.5.8 && <= 7.1.8 && > 1.3.3 ) || ( <= 4.2.5 && == 3.4.1 && >= 7.7.6 && > 8.2.6 && > 8.2.6 && == 4.4.5 && > 3.6.7 && <= 3.2.1 && < 5.6.4 ) || ( >= 2.1.8 && >= 6.6.7 && == 1.5.5 && >= 7.8.3 && >= 1.4.3 && <= 3.1.2 )": {+ "distroPKGs": [+ "ath",+ "phzudm"+ ],+ "notes": "kxdx"+ },+ "( >= 8.1.8 && == 4.4.1 && >= 3.3.1 && <= 6.5.1 ) || ( > 1.1.2 && < 6.9.8 && >= 1.7.7 && <= 1.8.6 && < 5.6.4 ) || ( <= 5.1.2 && <= 8.5.6 && == 4.8.6 && > 5.6.5 && > 1.2.1 && < 3.4.1 && >= 4.6.1 && <= 7.7.4 && > 3.1.2 )": {+ "distroPKGs": [+ "t",+ "v",+ "fvbfxsr",+ "xf",+ "argwajm",+ "qcfakl",+ "tfzzh"+ ],+ "notes": "i"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "ahyg"+ }+ }+ },+ "6.1.1": {+ "Darwin": {+ "( <= 1.4.3 && <= 5.4.2 && > 2.4.4 && == 8.1.4 && >= 4.6.8 && < 5.7.8 && <= 4.8.1 && <= 7.6.3 )": {+ "distroPKGs": [],+ "notes": "vqm"+ },+ "( <= 8.7.1 && < 3.7.2 && >= 5.1.5 ) || ( >= 5.6.7 && >= 7.3.6 && > 8.6.8 && <= 4.8.5 && <= 4.5.5 ) || ( > 4.1.6 && >= 4.7.8 && < 5.6.5 )": {+ "distroPKGs": [+ "uuvkukp",+ "r",+ "",+ "z",+ "m",+ ""+ ],+ "notes": "nxumeei"+ },+ "( >= 3.5.1 && > 6.1.3 && >= 4.5.3 && <= 4.2.4 && <= 3.7.5 && < 2.8.8 && < 7.4.5 )": {+ "distroPKGs": [],+ "notes": "wnlhxe"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "x",+ "gsb",+ "uew",+ "ebzu",+ "s",+ "y",+ "kjtvxuq"+ ],+ "notes": "wbex"+ }+ },+ "FreeBSD": {+ "( <= 2.8.4 && >= 3.6.1 && >= 1.8.6 && < 3.8.6 && == 4.4.8 && == 8.1.8 && == 8.1.4 )": {+ "distroPKGs": [],+ "notes": "bdbialnh"+ },+ "( == 5.3.1 && < 2.3.8 && < 8.1.6 && > 3.2.3 ) || ( >= 7.2.1 && <= 3.5.8 && < 6.2.7 && >= 1.6.7 && > 2.8.7 && > 5.7.1 && <= 2.8.4 ) || ( >= 4.7.8 && > 3.1.6 && > 2.7.1 )": {+ "distroPKGs": [+ "bzfhy"+ ],+ "notes": "pwvvn"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "nm",+ "vmhtdj",+ "zd",+ "",+ "oua",+ "cdxbuffs",+ "dq"+ ],+ "notes": "rzhem"+ }+ },+ "Linux_UnknownLinux": {+ "( <= 1.2.5 && > 2.7.1 && <= 7.3.6 && == 8.3.6 && < 8.4.5 && <= 1.4.5 && <= 1.5.6 )": {+ "distroPKGs": [+ "crlzcg",+ "knikjsep",+ "kkdtc"+ ],+ "notes": "qqitdqrp"+ },+ "( == 7.6.6 ) || ( < 2.3.8 && <= 1.1.5 && > 8.5.7 && >= 5.2.5 && > 7.5.7 && < 5.6.1 && > 6.7.7 ) || ( < 7.6.1 && < 8.5.3 && > 1.6.7 && > 5.5.8 && > 4.6.2 )": {+ "distroPKGs": [+ "e",+ "fk",+ "ynip",+ "eqfv"+ ],+ "notes": "rn"+ },+ "unknown_versioning": {+ "distroPKGs": [],+ "notes": "gryovff"+ }+ }+ }+ },+ "Stack": {+ "1.5.3": {+ "Linux_Gentoo": {+ "( < 8.5.3 && >= 3.1.8 && >= 3.8.4 && >= 3.8.3 )": {+ "distroPKGs": [+ "ap",+ "pbnci",+ "eurw",+ "tcrkdseq",+ "bnwrzbli",+ "lcjh"+ ],+ "notes": "ci"+ },+ "( == 4.7.6 && <= 6.3.2 && < 4.7.8 )": {+ "distroPKGs": [+ "xnjwnta",+ "dxvps",+ "ysk",+ "",+ "covwic",+ "q",+ "cihc"+ ],+ "notes": "zjxe"+ },+ "( == 6.2.7 && <= 1.7.4 && == 3.1.3 && < 6.4.3 && == 7.8.3 && > 2.2.3 ) || ( >= 4.4.6 && == 8.1.5 && > 3.7.8 && < 7.7.7 ) || ( >= 3.1.3 && > 3.1.7 && < 1.8.8 && >= 3.4.8 && < 4.3.1 ) || ( >= 7.3.5 && > 3.6.9 ) || ( > 6.2.8 && == 5.4.4 && <= 5.1.6 && > 1.2.8 && <= 7.1.5 && > 5.1.3 && == 1.5.4 && <= 7.3.4 ) || ( == 7.6.5 && == 5.6.2 && > 4.6.2 && >= 2.2.3 ) || ( < 3.6.8 && <= 4.5.2 && < 6.7.6 && < 5.3.8 ) || ( < 1.5.6 && >= 10.2.2 && >= 2.3.6 && >= 4.7.1 && >= 7.7.2 && <= 4.8.3 && >= 6.7.1 && < 6.8.8 && < 8.4.4 ) || ( <= 8.6.4 && <= 3.1.7 && == 4.5.3 && == 8.6.6 && > 7.5.2 && <= 6.3.5 ) || ( >= 8.3.1 && < 4.4.3 && > 2.4.1 && == 7.5.3 && == 2.2.4 && <= 3.2.3 && == 1.7.4 && < 6.6.4 )": {+ "distroPKGs": [+ "nu",+ "tce",+ "adxg"+ ],+ "notes": "pl"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "lqqcqdag",+ "mdxdwx",+ "nfnclgh",+ "nbxcl",+ "y"+ ],+ "notes": "cwnihy"+ }+ },+ "Linux_Mint": {+ "( >= 7.7.8 )": {+ "distroPKGs": [+ "rnce",+ "dlwpddo"+ ],+ "notes": "yco"+ }+ },+ "Windows": {+ "( < 1.8.1 ) || ( <= 7.2.3 && > 8.8.7 && > 2.1.7 && >= 6.6.3 && == 6.6.2 && > 3.7.4 && >= 8.4.2 && == 3.2.3 ) || ( < 1.2.3 && == 4.2.4 && == 4.2.6 && > 8.2.2 && <= 7.8.1 ) || ( >= 2.8.7 )": {+ "distroPKGs": [+ "kxvydye",+ "hmajm",+ "myoviq",+ "gblfj",+ "fiot",+ "",+ "vpi"+ ],+ "notes": "lv"+ },+ "( <= 1.3.5 && <= 6.2.2 && > 6.4.8 && >= 5.7.1 && >= 8.8.5 && >= 7.4.4 && > 8.2.4 && <= 5.5.1 ) || ( < 4.6.1 && <= 7.6.4 && >= 1.7.3 && > 4.5.6 && > 3.6.5 )": {+ "distroPKGs": [+ ""+ ],+ "notes": "ehw"+ },+ "( == 2.4.6 ) || ( >= 3.7.1 )": {+ "distroPKGs": [+ "ueskh",+ "rucwb",+ "h",+ "esnaebw",+ ""+ ],+ "notes": "ebuyzeb"+ },+ "( >= 5.8.7 && < 3.1.2 && > 8.2.6 && > 1.7.8 && <= 5.7.3 && <= 6.2.1 && > 1.2.7 ) || ( < 7.1.3 && <= 6.5.5 && >= 5.6.2 && > 6.8.8 && >= 6.7.2 )": {+ "distroPKGs": [+ "bdpke",+ "jyvlsb",+ "dbaglfv",+ "kh",+ "zn"+ ],+ "notes": "pfu"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "xpuyhp",+ "fidngp",+ "cnsydbe"+ ],+ "notes": "p"+ }+ }+ },+ "1.8.5": {+ "Darwin": {},+ "Windows": {+ "( <= 5.1.7 && == 3.1.2 && < 6.5.5 && < 6.5.8 && <= 5.5.4 && == 8.2.8 && <= 5.3.4 && <= 6.6.7 ) || ( > 4.6.8 && < 4.6.2 && < 6.6.3 && >= 5.5.9 && > 7.2.7 && >= 3.6.7 && > 5.1.3 && <= 6.2.2 ) || ( >= 1.6.6 && == 8.3.8 && >= 4.1.1 && <= 7.8.3 && < 6.2.4 && == 4.2.2 && <= 6.7.1 ) || ( > 7.4.8 && < 3.4.5 && == 7.4.3 && == 8.3.8 ) || ( <= 1.6.6 && > 1.4.3 && == 8.6.8 && > 5.1.1 && >= 2.6.2 && > 5.6.6 && <= 2.3.4 && >= 7.8.2 ) || ( >= 5.6.7 && <= 1.7.3 && >= 7.1.8 )": {+ "distroPKGs": [+ "wmbfdhcn",+ "hefid",+ "gpjsshfm"+ ],+ "notes": ""+ },+ "( <= 8.6.8 && <= 2.7.6 && <= 1.5.5 && < 7.8.3 && > 4.7.1 && <= 6.2.5 && <= 1.5.6 && < 8.3.3 )": {+ "distroPKGs": [+ "a",+ "ankcnfwr",+ "",+ "vfeze"+ ],+ "notes": "o"+ },+ "( > 1.2.5 && < 1.8.2 && <= 2.7.2 && <= 6.2.1 && == 8.4.6 && >= 7.4.4 )": {+ "distroPKGs": [+ "ntyvggto",+ "kwa",+ "",+ "rqv"+ ],+ "notes": "nlw"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "moa",+ "uy",+ "cmhkvx",+ "kckuuefv"+ ],+ "notes": "vgjy"+ }+ }+ },+ "6.4.8": {+ "Darwin": {+ "( < 1.1.7 && <= 6.4.7 && < 4.8.1 && >= 1.4.1 && < 1.3.5 )": {+ "distroPKGs": [+ "zbnvuxey",+ "f",+ "xgk",+ "cully",+ "kijtxloo",+ "oa",+ ""+ ],+ "notes": "hkp"+ },+ "( < 8.5.2 && == 5.1.8 && >= 8.8.2 && == 8.5.5 )": {+ "distroPKGs": [+ "pfmqqg",+ "pjcalesy",+ "w"+ ],+ "notes": "u"+ },+ "( == 4.8.1 ) || ( < 2.4.5 && > 7.3.7 && <= 3.6.5 && > 3.7.4 && < 8.3.2 )": {+ "distroPKGs": [+ "mscioe",+ "awm",+ "hkokfhog",+ "c"+ ],+ "notes": "o"+ },+ "( >= 5.7.6 )": {+ "distroPKGs": [+ "es",+ "vjut",+ "",+ "bnfeapvz",+ "",+ "wtbb",+ "lsumzapo",+ "xzl"+ ],+ "notes": "tn"+ }+ },+ "FreeBSD": {+ "unknown_versioning": {+ "distroPKGs": [+ "ri",+ "",+ "fiqhwct",+ "",+ "kay",+ "hb",+ "idlbssz"+ ],+ "notes": ""+ }+ },+ "Windows": {+ "( == 2.4.7 && <= 1.6.6 && >= 2.5.6 && <= 1.8.3 && < 3.8.2 && > 8.8.1 && == 8.5.7 )": {+ "distroPKGs": [],+ "notes": "lbc"+ },+ "( >= 1.3.1 && <= 5.4.7 ) || ( <= 8.5.1 && < 6.7.3 && < 2.6.2 && == 1.4.7 && > 3.7.1 && == 5.1.5 && > 6.3.8 ) || ( < 1.4.3 && < 3.8.8 && < 1.7.7 && >= 4.4.6 && > 5.5.2 && > 8.1.5 && <= 1.1.3 && == 1.2.4 )": {+ "distroPKGs": [+ "",+ "gufqmpuy",+ "iwe",+ "gozyve",+ "viwglaun",+ "eodrnmy",+ "b",+ "elrdg"+ ],+ "notes": "kgx"+ },+ "( >= 5.3.7 && > 4.8.3 && >= 6.2.8 && <= 3.8.2 && == 8.4.6 && == 4.8.1 )": {+ "distroPKGs": [+ "",+ "",+ "ez",+ "hvqp"+ ],+ "notes": "qmnli"+ },+ "( >= 7.6.1 && > 2.6.8 && == 3.4.3 && > 6.2.6 && <= 4.8.5 )": {+ "distroPKGs": [+ "qe",+ "uqje",+ "zrl",+ "c",+ "cpgbl",+ "vyr",+ "z"+ ],+ "notes": "s"+ }+ }+ },+ "unknown_version": {+ "FreeBSD": {+ "( == 2.3.8 && > 5.1.2 )": {+ "distroPKGs": [+ "ttyjz"+ ],+ "notes": "fk"+ },+ "( > 8.6.1 )": {+ "distroPKGs": [+ "p"+ ],+ "notes": "r"+ },+ "unknown_versioning": {+ "distroPKGs": [+ "ygn"+ ],+ "notes": "stakcmt"+ }+ },+ "Linux_Alpine": {},+ "Linux_Mint": {+ "( == 6.8.4 && <= 7.6.3 && > 8.6.2 && == 4.5.1 && <= 1.7.3 && < 6.4.6 && > 1.7.2 && <= 4.3.8 ) || ( > 5.2.2 && == 4.3.2 && == 4.7.6 && < 5.3.3 ) || ( >= 5.3.6 && == 8.5.5 && >= 2.1.5 && == 1.4.7 && == 7.1.8 ) || ( <= 2.2.6 && < 9.8.6 && < 6.5.1 && > 8.2.6 && > 3.5.1 )": {+ "distroPKGs": [],+ "notes": "anxgnicb"+ },+ "( >= 5.2.8 && > 6.5.8 && < 3.4.8 && <= 6.4.8 && >= 4.4.3 )": {+ "distroPKGs": [+ "ro",+ "lcupoppc"+ ],+ "notes": "faxg"+ }+ },+ "Linux_Ubuntu": {+ "( > 1.3.5 && < 7.6.5 && > 5.3.2 ) || ( >= 5.4.7 && <= 8.6.2 )": {+ "distroPKGs": [+ "tbgbeoun",+ "lnvlzo",+ "ybbv",+ "",+ "kyxhn",+ "smybz",+ "oqtcr"+ ],+ "notes": "c"+ }+ },+ "Windows": {+ "unknown_versioning": {+ "distroPKGs": [+ "e",+ "vtpwarz",+ "",+ "lcdo",+ "glp",+ "dvh",+ "wmnzz",+ "jti"+ ],+ "notes": "qdwsmy"+ }+ }+ }+ }+ }+ }+ ],+ "seed": 89490121+}